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

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

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

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

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", 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:@"ca-app-pub-3940256099942544/4411468910"
   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: CLz5r-KMtfoCFQvv7QodfGAMHw
    Network: GADMAdapterGoogleAdMobAds

  ** Loaded Adapter Response **
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.357

  ** Extras Dictionary **
    {
        "mediation_group_name" = Campaign;
    }

  ** Mediation line items **
    Entry (1)
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.357

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

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

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

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

広告レスポンスに関する追加情報を返します。 エクストラは次のキーを返します。

  • mediation_group_name: メディエーション グループの名前
  • mediation_ab_test_name: メディエーション A/B テストの名前(該当する場合)
  • mediation_ab_test_variant: メディエーションの A/B テストで使用されるパターン(該当する場合)

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", 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
    let mediationGroupName = responseInfo?.extrasDictionary["mediation_group_name"]
    let mediationABTestName = responseInfo?.extrasDictionary["mediation_ab_test_name"]
    let mediationABTestVariant = responseInfo?.extrasDictionary["mediation_ab_test_variant"]
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
   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;
    NSString *mediationGroupName = responseInfo.extrasDictionary[@"mediation_group_name"];
    NSString *mediationABTestName = responseInfo.extrasDictionary[@"mediation_ab_test_name"];
    NSString *mediationABTestVariant = responseInfo.extrasDictionary[@"mediation_ab_test_variant"];
  }];
}

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

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

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

    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.277

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

プロパティ 説明
error ネットワークへのリクエストに関連するエラー。ネットワークが正常に広告を読み込むか、読み込みを試行しなかった場合は、nil を返します。
adSourceId このアダプタ レスポンスに関連付けられている広告ソース ID。キャンペーンの場合、メディエーション対象広告のキャンペーン目標タイプに対しては 6060308706800320801 が返され、インプレッション目標タイプとクリック目標タイプに対しては 7068401028668408324 が返されます。広告ネットワークが広告を配信するときに使用できる広告ソース ID のリストについては、広告ソースをご覧ください。
adSourceInstanceId このアダプタ レスポンスに関連付けられている広告ソースのインスタンス ID。
adSourceInstanceName このアダプタ レスポンスに関連付けられている広告ソースのインスタンス名。
adSourceName インプレッションを配信する特定の広告ネットワークを表す広告ソース。 キャンペーンの場合、メディエーション対象広告のキャンペーン目標タイプに対しては Mediated House Ads が返され、インプレッション目標とクリック目標タイプに対しては Reservation Campaign が返されます。広告ネットワークが広告を配信するときの広告ソース名の一覧については、広告ソースをご覧ください。
adNetworkClassName 広告を読み込んだ広告ネットワーク アダプタのクラス名。
adUnitMapping AdMob UI で設定されたネットワーク構成。
latency 広告ネットワークが広告の読み込みに費やした時間。接続を試行しなかった場合は、0 を返します。

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", 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:@"ca-app-pub-3940256099942544/4411468910"
   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;
  }];
}