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

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

広告が正常に読み込まれると、広告オブジェクトには getResponseInfo() メソッドが含まれます。たとえば、InterstitialAd.getResponseInfo() は、読み込まれたインタースティシャル広告のレスポンス情報を取得します。

広告の読み込みに失敗し、エラーしか表示されていない場合、レスポンス情報は LoadAdError.getResponseInfo() から取得できます。

Java

@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
  ResponseInfo responseInfo = interstitialAd.getResponseInfo();
  Log.d(TAG, responseInfo.toString());
}

@Override
public void onAdFailedToLoad(LoadAdError loadAdError) {
  ResponseInfo responseInfo = loadAdError.getResponseInfo();
  Log.d(TAG, responseInfo.toString());
}

Kotlin

override fun onAdLoaded(interstitialAd: InterstitialAd)) {
  val responseInfo = interstitialAd.responseInfo
  Log.d(TAG, responseInfo.toString())
}

override fun onAdFailedToLoad(adError: LoadAdError) {
  val responseInfo = adError.responseInfo
  Log.d(TAG, responseInfo.toString())
}

レスポンス情報

ResponseInfo.toString() から返される出力例を次に示します。これは、読み込まれた広告に対して返されたデバッグデータを示しています。

{
  "Response ID": "COOllLGxlPoCFdAx4Aod-Q4A0g",
  "Mediation Adapter Class Name": "com.google.ads.mediation.admob.AdMobAdapter",
  "Adapter Responses": [
    {
      "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
      "Latency": 328,
      "Ad Source Name": "Reservation campaign",
      "Ad Source ID": "7068401028668408324",
      "Ad Source Instance Name": "[DO NOT EDIT] Publisher Test Interstitial",
      "Ad Source Instance ID": "4665218928925097",
      "Credentials": {},
      "Ad Error": "null"
    }
  ],
  "Loaded Adapter Response": {
    "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
    "Latency": 328,
    "Ad Source Name": "Reservation campaign",
    "Ad Source ID": "7068401028668408324",
    "Ad Source Instance Name": "[DO NOT EDIT] Publisher Test Interstitial",
    "Ad Source Instance ID": "4665218928925097",
    "Credentials": {},
    "Ad Error": "null"
  },
  "Response Extras": {
    "mediation_group_name": "Campaign"
  }
}

ResponseInfo オブジェクトのメソッドは次のとおりです。

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

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

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

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

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

Java

@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
  MyActivity.this.interstitialAd = interstitialAd;

  ResponseInfo responseInfo = interstitialAd.getResponseInfo();
  String responseId = responseInfo.getResponseId();
  String mediationAdapterClassName = responseInfo.getMediationAdapterClassName();
  List<AdapterResponseInfo> adapterResponses = responseInfo.getAdapterResponses();
  AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.getLoadedAdapterResponseInfo();
  Bundle extras = responseInfo.getResponseExtras();
  String mediationGroupName = extras.getString("mediation_group_name");
  String mediationABTestName = extras.getString("mediation_ab_test_name");
  String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
}

Kotlin

override fun onAdLoaded(interstitialAd: InterstitialAd)) {
  val responseInfo = interstitialAd.responseInfo

  val responseId = responseInfo.responseId
  val mediationAdapterClassName = responseInfo.mediationAdapterClassName
  val adapterResponses = responseInfo.adapterResponses
  val loadedAdapterResponseInfo = responseInfo.loadedAdapterResponseInfo
  val extras = responseInfo.responseExtras
  val mediationGroupName = extras.getString("mediation_group_name")
  val mediationABTestName = extras.getString("mediation_ab_test_name")
  val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
}

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

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

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

{
  "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
  "Latency": 328,
  "Ad Source Name": "Reservation campaign",
  "Ad Source ID": "7068401028668408324",
  "Ad Source Instance Name": "[DO NOT EDIT] Publisher Test Interstitial",
  "Ad Source Instance ID": "4665218928925097",
  "Credentials": {},
  "Ad Error": "null"
}

広告ネットワークごとに、AdapterResponseInfo は次のメソッドを提供します。

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

Java

@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
  AdapterResponseInfo loadedAdapterResponseInfo =
      interstitialAd.getResponseInfo().getLoadedAdapterResponseInfo();

  AdError adError = loadedAdapterResponseInfo.getAdError();
  String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
  String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();
  String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
  String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
  String adapterClassName = loadedAdapterResponseInfo.getAdapterClassName();
  Bundle credentials = loadedAdapterResponseInfo.getCredentials();
  long latencyMillis = loadedAdapterResponseInfo.getLatencyMillis();
}

Kotlin

override fun onAdLoaded(interstitialAd: InterstitialAds) {
  val loadedAdapterResponseInfo = interstitialAd.responseInfo.loadedAdapterResponse

  val adError = loadedAdapterResponseInfo.adError
  val adSourceId = loadedAdapterResponseInfo.adSourceId
  val adSourceInstanceId = loadedAdapterResponseInfo.adSourceInstanceId
  val adSourceInstanceName = loadedAdapterResponseInfo.adSourceInstanceName
  val adSourceName = loadedAdapterResponseInfo.adSourceName
  val adapterClassName = loadedAdapterResponseInfo.adapterClassName
  val credentials = loadedAdapterResponseInfo.credentials
  val latencyMillis = loadedAdapterResponseInfo.latencyMillis
}