GADMobileAds
类提供了全局设置,用于控制移动广告 SDK 收集的特定信息。
视频广告音量控制
如果您的应用有自己的音量控制,例如自定义的音乐或音效音量,那么向 Google 移动广告 SDK 报告应用的音量后,视频广告会遵循相关的应用音量设置。这可确保用户收到符合预期的视频广告音量。
设备音量由音量按钮或操作系统级的音量滑块控制,它决定了设备的音频输出音量。但是,应用可相对于该设备音量独立调节自己的音量水平,从而定制音频体验。
对于应用打开、横幅广告、插页式广告、激励广告和插页式激励广告格式,您可以通过设置 applicationVolume
属性向 Google 移动广告 SDK 报告应用的相对音量。广告音量的有效值范围为 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;
...
}
对于开屏广告、横幅广告、插页式广告、激励广告和插页式激励广告格式,您可以通过设置 applicationMuted
属性来告知 Google 移动广告 SDK 应用已静音:
Swift
GADMobileAds.sharedInstance().applicationMuted = true
Objective-C
GADMobileAds.sharedInstance.applicationMuted = YES;
默认情况下,applicationVolume
设置为 1
(当前设备音量),applicationMuted
设置为 NO
。
原生广告
如需了解如何控制静音设置,请参阅 GADVideoOptions
。对于原生广告,不支持自定义音量控件。
音频会话
通过使用音频会话,您可以向系统告知自己的应用音频行为要求。如需了解音频会话的更多信息,请参阅 Apple 的音频会话编程指南。您可以通过 audioVideoManager
属性获取管理 Google 移动广告 SDK 音频的各种可用选项。
如果您不在应用中使用音频,则无需使用这些 API。Google 移动广告 SDK 会在播放音频时自动管理音频会话类别。如果您要在应用中播放音频,并希望更严格地控制 Google 移动广告 SDK 播放音频的方式和时机,则可以使用这些 API。
如果您想自己负责管理音频会话的类别,则可以在音视频管理器上将 audioSessionIsApplicationManaged
属性设置为 YES
。
如果您想管理音频会话的类别,则可以实现 GADAudioVideoManagerDelegate
并在音视频管理器上设置 delegate
属性,以便接收广告视频和音频播放事件的通知。然后,您应根据 Apple 的音频会话编程指南,将音频会话类别更改为相关类别。
以下是一个简化的代码示例,显示了上述 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
Cookie 意见征求设置
如果您的应用有特殊要求,您可以设置可选的 NSUserDefaults
gad_has_consent_for_cookies
。如果 gad_has_consent_for_cookies
偏好设置设为 0,Google 移动广告 SDK 将会启用受限广告 (LTD)。
Swift
UserDefaults.standard.set(0, forKey: "gad_has_consent_for_cookies")
Objective-C
NSUserDefaults.standardUserDefaults().setObject(Int(0),
forKey: "gad_has_consent_for_cookies");