全般設定

GADMobileAds クラスには、Mobile Ads SDK が収集する特定の情報を制御するための全般設定があります。

同一アプリキー

Google Mobile Ads SDK バージョン 8.3.0 で、 同一アプリキー が導入されます。これにより、アプリから収集されたデータを使って、配信する広告の関連性とパーソナライズのレベルを高めることができます。

同一アプリキーはデフォルトで有効になりますが、次の API で無効にできます。

Swift

@import GoogleMobileAds

// Disables the same app key.
GADMobileAds.sharedInstance().requestConfiguration.setSameAppKeyEnabled(false)

Objective-C

@import GoogleMobileAds;

// Disables the same app key.
[GADMobileAds.sharedInstance.requestConfiguration setSameAppKeyEnabled:NO];

動画広告のボリューム調整

アプリに独自のボリューム調整(音楽や音声効果などのカスタム音量設定)機能が備わっている場合、Google Mobile Ads SDK にアプリの設定ボリュームを開示すると、動画広告でアプリ側の設定を使用できるようになります。これにより、想定どおりのボリュームでユーザーに動画広告が配信されるようになります。

デバイスの音声出力の大きさは、デバイスのボリューム(ボリューム ボタンや OS レベルのボリューム スライダーで制御)で決まりますが、アプリでは音声の聞こえ方を独自にコントロールするために、デバイスの設定に対する相対的なボリューム レベルを独自に調節できます。こうした相対的なアプリ ボリュームは、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;
  ...
}

アプリ ボリュームがミュートであることを Google Mobile Ads SDK に通知するには、applicationMuted プロパティを次のように設定します。

Swift

GADMobileAds.sharedInstance().applicationMuted = true

Objective-C

GADMobileAds.sharedInstance.applicationMuted = YES;

デフォルトでは、applicationVolume1(現在のデバイス ボリューム)に設定され、applicationMutedNO に設定されています。

オーディオ セッションを変更する

オーディオ セッションでは、アプリの音声動作について、ご自身の意図をシステムに表明できます。オーディオ セッションについて詳しくは、Apple の Audio Session Programming Guide をご覧ください。Google Mobile Ads SDK のオーディオ管理に使えるオプションは、audioVideoManager プロパティ経由で設定できます。

オーディオを使用しないアプリでは、これらの API は不要です。その場合はオーディオの再生時に、Google Mobile Ads SDK によってオーディオ セッション カテゴリが自動的に管理されます。これらの API は、アプリ内でオーディオを再生し、Google Mobile Ads SDK によるオーディオ再生の方法とタイミングを厳密に管理したい場合にご利用ください。

オーディオ セッション カテゴリをご自身の責任で管理する場合は、オーディオ動画管理で audioSessionIsApplicationManaged プロパティに YES を設定します。

オーディオ セッション カテゴリを管理するには、GADAudioVideoManagerDelegate を実装し、オーディオ動画管理で delegate プロパティを設定して、広告動画イベントとオーディオ再生イベントの通知を有効にする必要があります。そして、Apple の Audio Session Programming Guide(上記のリンク)に沿って、オーディオ セッション カテゴリを関連するカテゴリに変更します。

次に示すサンプルコードでは、上記の API を使用してアプリで音楽を再生する場合の推奨手法を示します。

Swift

func setUp() {
    GADMobileAds.sharedInstance().audioVideoManager.delegate = self
    GADMobileAds.sharedInstance().audioVideoManager.audioSessionIsApplicationManaged = false
}
func myAppWillStartPlayingMusic() {
    // Mutes all Google video ads.
    GADMobileAds.sharedInstance().audioVideoManager.audioSessionIsApplicationManaged = true
    GADMobileAds.sharedInstance().applicationMuted = true
}
func myAppDidStopPlayingMusic() {
    // Un-mutes all of our video ads.
    GADMobileAds.sharedInstance().audioVideoManager.audioSessionIsApplicationManaged = false
    GADMobileAds.sharedInstance().applicationMuted = 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;
}

- (void)myAppWillStartPlayingMusic {
  // Mutes all Google video ads.
  GADMobileAds.sharedInstance.audioVideoManager.audioSessionIsApplicationManaged = YES;
  GADMobileAds.sharedInstance.applicationMuted = YES;
}
- (void)myAppDidStopPlayingMusic {
  // Un-mutes all of our video ads.
  GADMobileAds.sharedInstance.audioVideoManager.audioSessionIsApplicationManaged = NO;
  GADMobileAds.sharedInstance.applicationMuted = 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];
}

クラッシュ レポート

iOS アプリで発生した例外は Mobile Ads SDK で調査され、SDK が原因の場合には記録されます。これらの例外情報を収集することで、将来の SDK バージョンで同じ例外が発生する事態を防止することが目的です。

クラッシュ レポートはデフォルトで有効になります。SDK 関連の例外記録を希望されない場合は、disableSDKCrashReporting メソッドを呼び出すことで、この機能を無効にできます。このメソッドは、次のようにアプリの起動時に呼び出すのが最適です。

Swift

AppDelegate.swift

func application(application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  GADMobileAds.disableSDKCrashReporting()
  return true
}

Objective-C

AppDelegate.m
- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GADMobileAds disableSDKCrashReporting];
  return YES;
}