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

Sau khi quảng cáo tải hoặc không tải được, hãy kiểm tra đối tượng ResponseInfo. Đối tượng này trình bày chi tiết về quảng cáo đã tải và siêu dữ liệu về quy trình dàn xếp kiểu thác nước được dùng để xử lý yêu cầu.

Nếu quảng cáo tải thành công, thì thực thể quảng cáo sẽ chứa phương thức getResponseInfo. Ví dụ: phương thức interstitialAd.getResponseInfo trả về thông tin phản hồi cho đối tượng InterstitialAd đã tải.

Nếu quảng cáo không tải được, hãy truy cập vào thuộc tính không bắt buộc responseInfo trên đối tượng LoadAdError, ví dụ: error.responseInfo.

Kiểm tra đối tượng thông tin phản hồi

Đối tượng ResponseInfo cung cấp thông tin chẩn đoán chi tiết được trả về từ một yêu cầu quảng cáo.

Ví dụ sau đây cho thấy kết quả thông tin phản hồi về một quảng cáo đã tải:

Android

{
  "responseId": "COOllLGxlPoCFdAx4Aod-Q4A0g",
  "responseExtras": {},
  "loadedAdSourceResponseInfo": {
    "adapterClassName": "com.google.ads.mediation.admob.AdMobAdapter",
    "latencyMillis": 328,
    "name": "Reservation campaign",
    "id": "7068401028668408324",
    "instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
    "instanceId": "4665218928925097",
    "credentials": {},
    "mediationAdError": null
  },
  "adSourceResponses": [
    {
      "adapterClassName": "com.google.ads.mediation.admob.AdMobAdapter",
      "latencyMillis": 328,
      "name": "Reservation campaign",
      "id": "7068401028668408324",
      "instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
      "instanceId": "4665218928925097",
      "credentials": {},
      "mediationAdError": null
    }
  ]
}

iOS

{
  "responseId": "COOllLGxlPoCFdAx4Aod-Q4A0g",
  "responseExtras": {},
  "loadedAdSourceResponseInfo": {
    "adapterClassName": "GADMAdapterGoogleAdMobAds",
    "latencyMillis": 328,
    "name": "Reservation campaign",
    "id": "7068401028668408324",
    "instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
    "instanceId": "4665218928925097",
    "credentials": {},
    "mediationAdError": null
  },
  "adSourceResponses": [
    {
      "adapterClassName": "GADMAdapterGoogleAdMobAds",
      "latencyMillis": 328,
      "name": "Reservation campaign",
      "id": "7068401028668408324",
      "instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
      "instanceId": "4665218928925097",
      "credentials": {},
      "mediationAdError": null
    }
  ]
}

Đối tượng ResponseInfo cung cấp các thuộc tính sau:

Thuộc tính Loại Mô tả
adSourceResponses readonly AdSourceResponseInfo[] Danh sách các đối tượng AdSourceResponseInfo đại diện cho mỗi lần thử nguồn quảng cáo trong quy trình dàn xếp kiểu thác nước.
loadedAdSourceResponseInfo AdSourceResponseInfo | undefined Siêu dữ liệu cho bộ chuyển đổi nguồn quảng cáo đã tải quảng cáo thành công. Nếu quảng cáo không tải, giá trị này là undefined.
responseExtras Readonly<Record<string, unknown>> Siêu dữ liệu bổ sung mà phản hồi quảng cáo trả về, chẳng hạn như khoá mediation_group_name.
responseId string Giá trị nhận dạng riêng biệt của nội dung phản hồi quảng cáo. Sử dụng mã nhận dạng này để xác định quảng cáo chặn trong Trung tâm xem xét quảng cáo (ARC).

Đọc thông tin phản hồi của nguồn quảng cáo

Đối tượng AdSourceResponseInfo cung cấp siêu dữ liệu cho một bộ chuyển đổi có trong nội dung phản hồi quảng cáo. Các đối tượng này được liệt kê theo thứ tự gọi của từng nguồn quảng cáo trong quy trình dàn xếp kiểu thác nước.

Ví dụ sau đây cho thấy kết quả thông tin phản hồi của nguồn quảng cáo cho một quảng cáo đã tải:

Android

{
  "adapterClassName": "com.google.ads.mediation.admob.AdMobAdapter",
  "latencyMillis": 328,
  "name": "Reservation campaign",
  "id": "7068401028668408324",
  "instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
  "instanceId": "4665218928925097",
  "credentials": {},
  "mediationAdError": null
}

iOS

{
  "adapterClassName": "GADMAdapterGoogleAdMobAds",
  "latencyMillis": 328,
  "name": "Reservation campaign",
  "id": "7068401028668408324",
  "instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
  "instanceId": "4665218928925097",
  "credentials": {},
  "mediationAdError": null
}

Đối với mỗi nguồn quảng cáo, AdSourceResponseInfo sẽ cung cấp các thuộc tính sau:

Thuộc tính Loại Mô tả
adapterClassName string Tên lớp của bộ chuyển đổi mạng quảng cáo.
credentials Readonly<Record<string, string>> Các tham số phía máy chủ được định cấu hình trong giao diện người dùng AdMob cho bộ chuyển đổi này.
id string Mã nhận dạng duy nhất của nguồn quảng cáo.
instanceId string Mã nhận dạng duy nhất của phiên bản nguồn quảng cáo.
instanceName string Tên của phiên bản nguồn quảng cáo.
latencyMillis number Thời gian (tính bằng mili giây) để thực hiện nỗ lực kết nối mạng.
mediationAdError MediationAdError | undefined Nếu mạng không tải được quảng cáo, thì thuộc tính này sẽ mô tả lỗi. Nếu thành công, giá trị này là undefined.
name string Tên của nguồn quảng cáo, ví dụ: "Reservation campaign".

Ghi lại thông tin phản hồi đầy đủ

Phần này trình bày cách triển khai để kiểm tra thông tin phản hồi đầy đủ cho một quảng cáo đã tải.

Ví dụ sau đây ghi nhật ký và kiểm tra thông tin phản hồi khi quảng cáo tải hoặc không tải được:

import {InterstitialAd, LoadAdError} from '@google/mobile-ads';
import type {AdSourceResponseInfo, ResponseInfo} from '@google/mobile-ads';

export async function logResponseInfo(adUnitId: string): Promise<void> {
  try {
    const interstitial = await InterstitialAd.load({adUnitId});
    const responseInfo: ResponseInfo = interstitial.getResponseInfo();

    console.log('Ad Loaded Response ID:', responseInfo.responseId);
    console.log(
      'Loaded Adapter Class Name:',
      responseInfo.loadedAdSourceResponseInfo?.adapterClassName,
    );

    // Inspect each ad source response in the mediation waterfall
    responseInfo.adSourceResponses.forEach(
      (adSourceResponse: AdSourceResponseInfo, index: number) => {
        console.log(
          `Waterfall index ${index}:`,
          adSourceResponse.adapterClassName,
          `Latency: ${adSourceResponse.latencyMillis}ms`,
          adSourceResponse.mediationAdError
            ? `Error: ${adSourceResponse.mediationAdError.message}`
            : 'Success',
        );
      },
    );
  } catch (error) {
    if (error instanceof LoadAdError) {
      console.error('Ad failed to load:', error.message);
      if (error.responseInfo) {
        console.log('Failed Response ID:', error.responseInfo.responseId);
      }
    }
  }
}