通用設定

GADMobileAds 類別提供通用設定,用於控制 Mobile Ads SDK 收集的特定資訊。

影片廣告音量控制

如果您的應用程式有專屬的音量控制項 (例如自訂音樂或音效音量),向 Google Mobile Ads SDK 公開應用程式音量,即可讓影片廣告採用應用程式音量設定。這可確保使用者接收到影片廣告時,廣告的音量符合預期。

裝置音量可透過音量鍵或作業系統層級的音量滑桿控制,用於決定裝置音訊輸出的音量。不過,應用程式可以獨立調整相對於裝置音量的音量,以提供客製化的音訊體驗。

針對應用程式開啟、橫幅、插頁式、獎勵和獎勵插頁式廣告格式,您可以設定 applicationVolume 屬性,向 Google Mobile Ads 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 Mobile Ads SDK 應用程式音量已調低:

Swift

GADMobileAds.sharedInstance().applicationMuted = true

Objective-C

GADMobileAds.sharedInstance.applicationMuted = YES;

根據預設,applicationVolume 會設為 1 (目前裝置音量),applicationMuted 則設為 NO

原生廣告

如要瞭解如何控制靜音設定,請參閱 GADVideoOptions。原生廣告不支援自訂音量控制。

音訊工作階段

音訊工作階段可讓您向系統表達應用程式音訊行為的意圖。如要進一步瞭解音訊工作階段,請參閱 Apple 的音訊工作階段程式設計指南。 管理 Google Mobile Ads SDK 音訊的選項是透過 audioVideoManager 屬性提供。

如果應用程式不使用音訊,就不需要使用這些 API。Google Mobile Ads SDK 會在播放音訊時自動管理音訊工作階段類別。如果您在應用程式中播放音訊,且想要更嚴密控管 Google Mobile Ads SDK 播放音訊的方式和時間,可以使用這些 API。

如果您想自行管理音訊工作階段類別,可以在音訊/視訊管理工具中將 audioSessionIsApplicationManaged 屬性設為 YES

如果您想管理音訊工作階段類別,可以實作 GADAudioVideoManagerDelegate,並在音訊/視訊管理工具上設定 delegate 屬性,以便接收廣告影片和音訊播放事件的通知。接著,請根據 Apple 的 Audio Session Programming Guide,將音訊工作階段類別變更為相關類別。

以下是簡化的程式碼範例,說明在應用程式播放音樂時,使用上述 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 Mobile Ads 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。如果 gad_has_consent_for_cookies 偏好設定為零,Google Mobile Ads 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");