擷取廣告回應的相關資訊

為了偵錯和記錄,成功載入的廣告會提供 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 使用者介面。
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
}