擷取廣告回應的相關資訊

選取平台: Android iOS Unity Flutter

基於偵錯和記錄目的,成功載入的廣告會提供 ResponseInfo 物件。這個物件包含所載入廣告的相關資訊,以及用於載入廣告的中介服務刊登序列資訊。

如果廣告載入成功,廣告物件會提供 getResponseInfo() 方法。舉例來說,InterstitialAd.getResponseInfo() 會取得已載入插頁式廣告的回應資訊。

如果廣告載入失敗且只出現錯誤,則可透過 LoadAdError.getResponseInfo() 取得回應資訊。

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())
}

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());
}

回應資訊

以下是 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。您可在廣告審核中心 (ARC) 輸入這個 ID,找出並封鎖特定廣告。
getResponseExtras 傳回與廣告回應有關的額外資訊,可能傳回的鍵值如下:
  • mediation_group_name:中介服務群組的名稱
  • mediation_ab_test_name中介服務 A/B 測試的名稱 (如適用)
  • mediation_ab_test_variant:在中介服務 A/B 測試中使用的變化版本 (如適用)

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")
}

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");
}

轉接程式回應資訊

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 清單,瞭解放送廣告的廣告來源可能使用哪些 ID,請參閱「廣告來源」。
getAdSourceInstanceId 取得與這個轉接程式回應相關聯的廣告來源例項 ID。
getAdSourceInstanceName 取得與這個轉接程式回應相關聯的廣告來源例項名稱。
getAdSourceName 取得與這個轉接程式回應相關聯的廣告來源名稱。 如果是廣告活動,中介服務廣告的廣告活動目標類型會傳回 Mediated House Ads,曝光和點擊目標類型則會傳回 Reservation Campaign。如需廣告來源名稱清單,瞭解放送廣告的廣告來源可能使用哪些名稱,請參閱「廣告來源」。
getAdapterClassName 針對載入廣告的廣告來源轉接程式,取得該轉接程式的類別名稱。
getCredentials 取得在 AdMob UI 中指定的廣告來源轉接程式憑證。
getLatencyMillis 取得廣告來源轉接程式的廣告載入花費時間。如果系統未嘗試從廣告來源載入廣告,則傳回 0

Kotlin

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

  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
}

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();
}