全局设置

GADMobileAds 类提供了全局设置,用于控制 移动广告 SDK 收集的信息。

视频广告音量控制

如果您的应用有自己的音量控制,例如自定义音乐或音效 向 Google 移动广告 SDK 披露应用音量信息可启用视频广告 确保遵循应用音量设置这样可确保用户收到 预期音量。

设备音量,通过音量按钮或操作系统级别的音量滑块控制; 确定设备音频输出的音量。不过,应用可以独立地 相对于设备音量调节音量,以定制音频 体验。

对于开屏广告、横幅广告、插页式广告、激励广告和插页式激励广告 您可以向 Google 移动广告 SDK 报告相对的应用音量,方法是: 设置 applicationVolume 属性。广告音量的有效值范围为 从 0.0(静音)到 1.0(当前设备音量)。这里的示例说明了如何 向 SDK 报告相对的应用音量:

Swift

func viewDidLoad() {
  super.viewDidLoad()
  // Set app volume to be half of the current device volume.
  GADMobileAds.sharedInstance().applicationVolume = 0.5
  ...
}

Objective-C

- (void)viewDidLoad {
  [super viewDidLoad];
  // Set app volume to be half of the current device volume.
  GADMobileAds.sharedInstance.applicationVolume = 0.5;
  ...
}

对于开屏广告、横幅广告、插页式广告、激励广告和插页式激励广告 您可以告知 Google 移动广告 SDK 可以通过设置 applicationMuted 属性来静音:

Swift

GADMobileAds.sharedInstance().applicationMuted = true

Objective-C

GADMobileAds.sharedInstance.applicationMuted = YES;

默认情况下,applicationVolume 设置为 1(当前设备音量) 且 applicationMuted 设置为 NO

原生广告

请参阅 GADVideoOptions 了解有关控制静音设置的说明。对于原生广告 支持自定义音量控制。

音频会话

通过音频会话,您可以向系统传达您对应用优化的意图 音频行为。有关音频会话的更多信息,请参阅 Apple 的音频会话编程 导视面板。 管理 Google 移动广告 SDK 音频的可用选项为 该 audioVideoManager 属性。

如果您不在应用中使用音频,则无需使用这些 API。Google 在加载和播放音频会话时,移动广告 SDK 会自动管理音频会话类别。 播放音频。如果您需要在应用中播放音频,并且想要更严格地控制 Google 移动广告 SDK 播放音频的方式和时间,您可以利用这些 API。

在音频视频管理器中,您可以 audioSessionIsApplicationManaged 属性设置为 YES(如果您希望负责管理音频) 会话类别。

如果您想管理音频会话类别,可以实现 GADAudioVideoManagerDelegate 并将 delegate 设置为 媒体资源,以便接收广告视频和音频广告的通知 播放事件。然后,您应将音频会话类别更改为 相关类别(根据 Apple 的 Audio Session Programming 导视面板

下面是一个简化的代码示例,显示了 应用使用上述 API 播放音乐:

Swift

func setUp() {
  GADMobileAds.sharedInstance().audioVideoManager.delegate = self
  GADMobileAds.sharedInstance().audioVideoManager.audioSessionIsApplicationManaged = false
}

// MARK: - GADAudioVideoManagerDelegate
func audioVideoManagerWillPlayAudio(_ audioVideoManager: GADAudioVideoManager) {
  // The Mobile Ads SDK is notifying your app that it will play audio. You
  // could optionally pause music depending on your apps design.
  MyAppObject.sharedInstance().pauseAllMusic()
}

func audioVideoManagerDidStopPlayingAudio(_ audioVideoManager: GADAudioVideoManager) {
  // The Mobile Ads SDK is notifying your app that it has stopped playing
  // audio. Depending on your design, you could resume music here.
  MyAppObject.sharedInstance().resumeAllMusic()
}

Objective-C

- (void)setUp {
  GADMobileAds.sharedInstance.audioVideoManager.delegate = self;
  GADMobileAds.sharedInstance.audioVideoManager.audioSessionIsApplicationManaged = NO;
}

#pragma mark - GADAudioVideoManagerDelegate

- (void)audioVideoManagerWillPlayAudio:(GADAudioVideoManager *)audioVideoManager {
  // The Mobile Ads SDK is notifying your app that it will play audio. You
  // could optionally pause music depending on your apps design.
  [MyAppObject.sharedInstance pauseAllMusic];
}

- (void)audioVideoManagerDidStopPlayingAudio:(GADAudioVideoManager *)audioVideoManager {
    // The Mobile Ads SDK is notifying your app that it has stopped playing
    // audio. Depending on your design, you could resume music here.
  [MyAppObject.sharedInstance resumeAllMusic];
}

崩溃报告

Google 移动广告 SDK 会检查 iOS 应用中发生的异常,并 如果它们是由 SDK 导致的,则记录它们。然后, 在未来的 SDK 版本中会得到解决。

崩溃报告默认处于启用状态。如果您不想看到与 SDK 相关的异常 进行录制,您可以调用 disableSDKCrashReporting 方法结合使用。调用此方法的最佳时机是 应用会启动:

Swift

import GoogleMobileAds

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  func application(_ application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    GADMobileAds.disableSDKCrashReporting()
    return true
  }
}

Objective-C

@import GoogleMobileAds;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

  [GADMobileAds disableSDKCrashReporting];
  return YES;
}

@end

如果您的应用有特殊要求,则可将可选的 NSUserDefaults gad_has_consent_for_cookies。Google 移动广告 SDK 支持 受限广告 (LTD) 如果 gad_has_consent_for_cookies 偏好设置设为 0。

Swift

UserDefaults.standard.set(0, forKey: "gad_has_consent_for_cookies")

Objective-C

NSUserDefaults.standardUserDefaults().setObject(Int(0),
    forKey: "gad_has_consent_for_cookies");