擷取廣告回應的相關資訊

為了偵錯與記錄,成功載入的廣告會提供 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 清單,其中包含廣告回應中包含的每個轉接程式的中繼資料。可用於對刊登序列中介服務和出價執行作業進行偵錯。清單的順序與這個廣告請求的中介服務刊登序列順序相符。

詳情請參閱轉接程式回應資訊

getLoadedAdapterResponseInfo 傳回與載入廣告的轉接程式對應的 AdapterResponseInfo
getMediationAdapterClassName 傳回載入廣告的廣告聯播網的中介服務轉接程式類別名稱。
getResponseId 回應 ID 是廣告回應的專屬 ID。您可以運用這個 ID 在廣告審核中心 (ARC) 找出並封鎖廣告。
getResponseExtras

傳回廣告回應的額外資訊。 Extras 可能會傳回下列鍵:

  • 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
}