Truy xuất thông tin về nội dung phản hồi quảng cáo

Để gỡ lỗi và ghi nhật ký, quảng cáo đã tải thành công sẽ cung cấp đối tượng ResponseInfo. Đối tượng này chứa thông tin về quảng cáo đã tải, ngoài thông tin về quy trình dàn xếp kiểu thác nước được dùng để tải quảng cáo.

Trong trường hợp quảng cáo tải thành công, đối tượng quảng cáo sẽ sử dụng phương thức getResponseInfo(). Ví dụ: InterstitialAd.getResponseInfo() sẽ nhận thông tin phản hồi về quảng cáo xen kẽ đã tải.

Trong trường hợp quảng cáo không tải được và chỉ có một lỗi, bạn có thể xem thông tin phản hồi thông qua 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());
}

Thông tin phản hồi

Dưới đây là kết quả mẫu do ResponseInfo.toString() trả về, cho biết dữ liệu gỡ lỗi được trả về cho một quảng cáo đã tải:

{
  "Response ID": "NI3BZZDbGdyQtOUP4o21gAM",
  "Mediation Adapter Class Name": "com.google.ads.mediation.admob.AdMobAdapter",
  "Adapter Responses": [
    {
      "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
      "Latency": 3585,
      "Ad Source Name": "AdMob Network",
      "Ad Source ID": "",
      "Ad Source Instance Name": "AdMob (default)",
      "Ad Source Instance ID": "",
      "Credentials": {
        "pubid": "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=8e&caqid=NI3BZfDhGICQtOUP7ayS4Aw"
      },
      "Ad Error": "null"
    }
  ],
  "Loaded Adapter Response": {
    "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
    "Latency": 3585,
    "Ad Source Name": "AdMob Network",
    "Ad Source ID": "",
    "Ad Source Instance Name": "AdMob (default)",
    "Ad Source Instance ID": "",
    "Credentials": {
      "pubid": "ca-app-pub-3940256099942544\/9257395921\/cak=no_cache&cadc=8e&caqid=NI3BZfDhGICQtOUP7ayS4Aw"
    },
    "Ad Error": "null"
  },
  "Response Extras": {}
}

Các phương thức trên đối tượng ResponseInfo bao gồm:

Phương thức Mô tả
getAdapterResponses Trả về danh sách AdapterResponseInfo chứa siêu dữ liệu cho từng bộ chuyển đổi có trong nội dung phản hồi quảng cáo. Bạn có thể sử dụng danh sách này để gỡ lỗi cách thực thi quy trình đặt giá thầu và dàn xếp kiểu thác nước. Thứ tự của danh sách này khớp với thứ tự của quy trình dàn xếp kiểu thác nước cho yêu cầu quảng cáo này.

Xem bài viết Thông tin phản hồi của bộ chuyển đổi để biết thêm thông tin.

getLoadedAdapterResponseInfo Trả về AdapterResponseInfo tương ứng với bộ chuyển đổi đã tải quảng cáo.
getMediationAdapterClassName Trả về tên lớp bộ chuyển đổi dàn xếp của nguồn quảng cáo đã tải quảng cáo.
getResponseId Giá trị nhận dạng nội dung phản hồi là giá trị nhận dạng duy nhất của nội dung phản hồi quảng cáo. Hệ thống có thể sử dụng giá trị nhận dạng này để xác định và chặn quảng cáo trong Trung tâm xem xét quảng cáo (ARC).
getResponseExtras

Trả về thông tin bổ sung về nội dung phản hồi quảng cáo.

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
}

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

Thông tin phản hồi của bộ chuyển đổi

AdapterResponseInfo chứa thông tin phản hồi cho một nguồn quảng cáo riêng lẻ trong một lượt phản hồi quảng cáo.

Kết quả AdapterResponseInfo mẫu sau đây cho thấy siêu dữ liệu của một quảng cáo đã tải:

{
  "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
  "Latency": 3585,
  "Ad Source Name": "AdMob Network",
  "Ad Source ID": "",
  "Ad Source Instance Name": "AdMob (default)",
  "Ad Source Instance ID": "",
  "Credentials": {
    "pubid": "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=8e&caqid=NI3BZfDhGICQtOUP7ayS4Aw"
  },
  "Ad Error": "null"
}

Đối với mỗi nguồn quảng cáo, AdapterResponseInfo sẽ cung cấp các phương thức sau:

Phương thức Mô tả
getAdError Xem lỗi liên quan đến yêu cầu được gửi tới nguồn quảng cáo. Trả về null nếu nguồn quảng cáo đã tải quảng cáo thành công hoặc nếu nguồn quảng cáo chưa được thử tải.
getAdSourceId Xem mã nguồn quảng cáo liên quan đến nội dung phản hồi của bộ chuyển đổi này.
getAdSourceInstanceId Lấy mã bản sao nguồn quảng cáo liên kết với phản hồi của bộ chuyển đổi này.
getAdSourceInstanceName Xem tên bản sao nguồn quảng cáo liên quan đến nội dung phản hồi của bộ chuyển đổi này.
getAdSourceName Xem tên nguồn quảng cáo liên quan đến nội dung phản hồi của bộ chuyển đổi này.
getAdapterClassName Lấy tên lớp của bộ chuyển đổi nguồn quảng cáo đã tải quảng cáo.
getCredentials Lấy thông tin xác thực của bộ chuyển đổi nguồn quảng cáo được chỉ định trong giao diện người dùng Ad Manager.
getLatencyMillis Xem thời lượng mà bộ chuyển đổi nguồn quảng cáo cần để tải một quảng cáo. Trả về 0 nếu nguồn quảng cáo chưa được thử.

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