広告レスポンスに関する情報の取得

正常に読み込まれた広告は、デバッグとロギングのために GADResponseInfo オブジェクトを提供します。このオブジェクトには、広告の読み込みに使用されたメディエーション ウォーターフォールに関する情報に加えて、読み込まれた広告に関する情報が含まれています。

広告が正常に読み込まれると、広告オブジェクトには GADResponseInfo プロパティが設定されます。たとえば、GADInterstitialAd.responseInfo は、読み込まれたインタースティシャル広告のレスポンス情報を取得します。

広告の読み込みに失敗し、エラーだけが返された場合は、エラーの userInfo ディクショナリのキー GADErrorUserInfoKeyResponseInfo を使用して GADResponseInfo を取得できます。

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "/6499/example/interstitial", request: request
  ) { (ad, error) in
    if let error = error {
      let responseInfo = (error as NSError).userInfo[GADErrorUserInfoKeyResponseInfo] as? GADResponseInfo
      print("\(String(describing: responseInfo))")
      return
    }
    let responseInfo = ad?.responseInfo
    print("\(String(describing: responseInfo))")
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"/6499/example/interstitial"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      GADResponseInfo *responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo];
      NSLog(@"%@", responseInfo.description);
      return;
    }
    GADResponseInfo *responseInfo = ad.responseInfo;
    NSLog(@"%@", responseInfo.description);
  }];
}

レスポンス情報

以下は、読み込まれた広告に対して返されたデバッグデータを示す出力例です。

** Response Info **
    Response ID: BmnCZaSbE_6Mur8P5su8gAY
    Network: GADMAdapterGoogleAdMobAds

  ** Loaded Adapter Response **
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded_interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

  ** Extras Dictionary **
    {
    }

  ** Mediation line items **
    Entry (1)
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded_interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

GADResponseInfo のプロパティは次のとおりです。

プロパティ 説明
adNetworkInfoArray 広告レスポンスに含まれる各アダプタのメタデータを含む GADAdNetworkResponseInfo のリストを返します。ウォーターフォール メディエーションと入札の実行のデバッグに使用できます。リストの順序は、この広告リクエストのメディエーション ウォーターフォールの順序と同じです。

詳細については、Adapter Response Info をご覧ください。

loadedAdNetworkResponseInfo 広告を読み込んだアダプタに対応する GADAdNetworkResponseInfo を返します。
adNetworkClassName 広告を読み込んだ広告ネットワークのメディエーション アダプタ クラス名を返します。
responseIdentifier レスポンス ID は、広告レスポンスを一意に識別する ID です。この ID は、広告レビュー センター(ARC)で広告を識別してブロックする際に使用できます。
extrasDictionary

広告レスポンスに関する追加情報を返します。

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "/6499/example/interstitial", request: request
  ) { (ad, error) in
    let responseInfo = ad?.responseInfo

    let responseIdentifier = responseInfo?.responseIdentifier
    let adNetworkClassName = responseInfo?.adNetworkClassName
    let adNetworkInfoArray = responseInfo?.adNetworkInfoArray
    let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"/6499/example/interstitial"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    GADResponseInfo *responseInfo = ad.responseInfo;

    NSString *responseIdentifier = responseInfo.responseIdentifier;
    NSString *adNetworkClassName = responseInfo.adNetworkClassName;
    NSArray *adNetworkInfoArray = responseInfo.adNetworkInfoArray;
    GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo;
  }];
}

アダプタのレスポンス情報

GADAdNetworkResponseInfo には、広告レスポンスに含まれる各アダプタのメタデータが含まれ、ウォーターフォール メディエーションと入札の実行のデバッグに使用できます。リストの順序は、広告リクエストのメディエーション ウォーターフォールの順序と同じです。

GADAdNetworkResponseInfo の出力例を次に示します。

    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded_interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

GADAdNetworkResponseInfo は、広告ネットワークごとに次のプロパティを提供します。

プロパティ 説明
error ネットワークへのリクエストに関連するエラー。ネットワークが正常に広告を読み込むか、読み込みを試行しなかった場合は、nil を返します。
adSourceId このアダプタ レスポンスに関連付けられている広告ソース ID。
adSourceInstanceId このアダプタ レスポンスに関連付けられている広告ソースのインスタンス ID。
adSourceInstanceName このアダプタ レスポンスに関連付けられている広告ソースのインスタンス名。 収益グループによって入力されていない場合は、空の文字列を返します。
adSourceName インプレッションを配信する特定の広告ネットワークを表す広告ソース。
adNetworkClassName 広告を読み込んだ広告ネットワーク アダプタのクラス名。
adUnitMapping Ad Manager UI で設定されたネットワーク構成。
latency 広告ネットワークが広告の読み込みに費やした時間。接続を試行しなかった場合は、0 を返します。

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "/6499/example/interstitial", request: request
  ) { (ad, error) in
    let responseInfo = ad?.responseInfo
    let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo

    let adNetworkError = loadedAdNetworkResponseInfo?.error
    let adSourceId = loadedAdNetworkResponseInfo?.adSourceID
    let adSourceInstanceId = loadedAdNetworkResponseInfo?.adSourceInstanceID
    let adSourceInstanceName = loadedAdNetworkResponseInfo?.adSourceInstanceName
    let adSourceName = loadedAdNetworkResponseInfo?.adSourceName
    let adNetworkClassName = loadedAdNetworkResponseInfo?.adNetworkClassName
    let adUnitMapping = loadedAdNetworkResponseInfo?.adUnitMapping
    let latency = loadedAdNetworkResponseInfo?.latency
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"/6499/example/interstitial"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    GADResponseInfo *responseInfo = ad.responseInfo;
    GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo;

    NSError *adNetworkError = loadedAdNetworkResponseInfo.error;
    NSString *adSourceId = loadedAdNetworkResponseInfo.adSourceID;
    NSString *adSourceInstanceId = loadedAdNetworkResponseInfo.adSourceInstanceID;
    NSString *adSourceInstanceName = loadedAdNetworkResponseInfo.adSourceInstanceName;
    NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
    NSString *adNetworkClassName = loadedAdNetworkResponseInfo.adNetworkClassName;
    NSDictionary *adUnitMapping = loadedAdNetworkResponseInfo.adUnitMapping;
    NSTimeInterval latency = loadedAdNetworkResponseInfo.latency;
  }];
}