擷取廣告回應的相關資訊

為了偵錯和記錄,成功載入的廣告會提供 GADResponseInfo敬上 物件。這個物件包含所載入廣告的相關資訊,以及 用來載入廣告的中介服務刊登序列相關資訊。

如果廣告成功載入,廣告物件會有 GADResponseInfo 屬性。例如: GADInterstitialAd.responseInfo敬上 取得已載入插頁式廣告的回應資訊。

如果廣告無法載入且只顯示錯誤, 使用 GADErrorUserInfoKeyResponseInfo 鍵可以使用 GADResponseInfo 相關的 userInfo 字典。

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request
  ) { (ad, error) in
    if let error = error {
      let responseInfo = (error as NSError).userInfo[GADErrorUserInfoKeyResponseInfo] as? GADResponseInfo
      print("\(String(describing: responseInfo))")
      return
    }
    let responseInfo = ad?.responseInfo
    print("\(String(describing: responseInfo))")
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    if (error) {
      GADResponseInfo *responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo];
      NSLog(@"%@", responseInfo.description);
      return;
    }
    GADResponseInfo *responseInfo = ad.responseInfo;
    NSLog(@"%@", responseInfo.description);
  }];
}

回覆資訊

以下範例輸出顯示已載入廣告傳回的偵錯資料:

  ** Response Info **
    Response ID: CLz5r-KMtfoCFQvv7QodfGAMHw
    Network: GADMAdapterGoogleAdMobAds

  ** Loaded Adapter Response **
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.357

  ** Extras Dictionary **
    {
        "mediation_group_name" = Campaign;
    }

  ** Mediation line items **
    Entry (1)
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.357

GADResponseInfo 中的房源 包括:

屬性 說明
adNetworkInfoArray 傳回 GADAdNetworkResponseInfo 的清單 包含廣告回應中每個轉接程式的中繼資料。可以是 用於對刊登序列中介服務和出價執行錯誤進行偵錯。請注意, 清單就會比對廣告請求的中介服務刊登序列順序

詳情請參閱轉接程式回應資訊 可能不準確或不適當

loadedAdNetworkResponseInfo 傳回與轉接程式對應的 GADAdNetworkResponseInfo 載入廣告
adNetworkClassName 傳回載入的廣告聯播網的中介服務轉接程式類別名稱 廣告。
responseIdentifier 回應 ID 是廣告回應的專屬 ID。這個 ID 可用來在廣告檢閱中心 (ARC) 中找出並封鎖廣告。
extrasDictionary

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

  • mediation_group_name:中介服務群組的名稱
  • mediation_ab_test_name中介服務 A/B 版本測試的名稱。 如適用
  • mediation_ab_test_variant: 中介服務 A/B 版本測試 (如適用)

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request
  ) { (ad, error) in
    let responseInfo = ad?.responseInfo

    let responseIdentifier = responseInfo?.responseIdentifier
    let adNetworkClassName = responseInfo?.adNetworkClassName
    let adNetworkInfoArray = responseInfo?.adNetworkInfoArray
    let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo
    let mediationGroupName = responseInfo?.extrasDictionary["mediation_group_name"]
    let mediationABTestName = responseInfo?.extrasDictionary["mediation_ab_test_name"]
    let mediationABTestVariant = responseInfo?.extrasDictionary["mediation_ab_test_variant"]
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    GADResponseInfo *responseInfo = ad.responseInfo;

    NSString *responseIdentifier = responseInfo.responseIdentifier;
    NSString *adNetworkClassName = responseInfo.adNetworkClassName;
    NSArray *adNetworkInfoArray = responseInfo.adNetworkInfoArray;
    GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo;
    NSString *mediationGroupName = responseInfo.extrasDictionary[@"mediation_group_name"];
    NSString *mediationABTestName = responseInfo.extrasDictionary[@"mediation_ab_test_name"];
    NSString *mediationABTestVariant = responseInfo.extrasDictionary[@"mediation_ab_test_variant"];
  }];
}

轉接程式回應資訊

GADAdNetworkResponseInfo敬上 包含廣告回應中每個轉接程式的中繼資料 對刊登序列中介服務和出價執行程序進行偵錯。清單的順序 比對廣告請求的中介服務刊登序列順序。

以下是 GADAdNetworkResponseInfo 輸出內容範例:

    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:Reservation campaign
    Ad Source ID:7068401028668408324
    Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
    Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
    AdUnitMapping:
{
}
    Error: (null)
    Latency: 0.277

針對每個廣告聯播網,GADAdNetworkResponseInfo 提供下列資料: 屬性:

屬性 說明
error 與網路要求相關的錯誤。退貨程序 nil:如果聯播網成功載入廣告或聯播網 未嘗試存取。
adSourceId 與這個轉接程式回應相關聯的廣告來源 ID。 對於廣告活動,中介服務廣告會傳回 6060308706800320801 廣告活動目標類型 系統會針對曝光和點擊傳回 7068401028668408324 目標類型查看廣告來源 系統會傳回可能的廣告來源 ID 清單。
adSourceInstanceId 與這個轉接程式相關聯的廣告來源執行個體 ID 回應。
adSourceInstanceName 與這個轉接程式相關聯的廣告來源執行個體名稱 回應。
adSourceName 代表放送廣告的特定廣告聯播網的廣告來源 以廣告活動來說 中介服務的廣告會傳回 Mediated House Ads 廣告活動目標類型 系統會針對曝光和點擊傳回 Reservation Campaign 目標類型查看廣告來源 會列出系統提供的 廣告。
adNetworkClassName 載入廣告的廣告聯播網轉接程式類別名稱。
adUnitMapping 當中的網路設定 AdMob 使用者介面。
latency 廣告聯播網載入廣告的時間長度。退貨程序 如未嘗試網路,則為 0

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: request
  ) { (ad, error) in
    let responseInfo = ad?.responseInfo
    let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo

    let adNetworkError = loadedAdNetworkResponseInfo?.error
    let adSourceId = loadedAdNetworkResponseInfo?.adSourceID
    let adSourceInstanceId = loadedAdNetworkResponseInfo?.adSourceInstanceID
    let adSourceInstanceName = loadedAdNetworkResponseInfo?.adSourceInstanceName
    let adSourceName = loadedAdNetworkResponseInfo?.adSourceName
    let adNetworkClassName = loadedAdNetworkResponseInfo?.adNetworkClassName
    let adUnitMapping = loadedAdNetworkResponseInfo?.adUnitMapping
    let latency = loadedAdNetworkResponseInfo?.latency
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
   request:request
   completionHandler:^(GADInterstitialAd *ad, NSError *error) {
    GADResponseInfo *responseInfo = ad.responseInfo;
    GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo;

    NSError *adNetworkError = loadedAdNetworkResponseInfo.error;
    NSString *adSourceId = loadedAdNetworkResponseInfo.adSourceID;
    NSString *adSourceInstanceId = loadedAdNetworkResponseInfo.adSourceInstanceID;
    NSString *adSourceInstanceName = loadedAdNetworkResponseInfo.adSourceInstanceName;
    NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName;
    NSString *adNetworkClassName = loadedAdNetworkResponseInfo.adNetworkClassName;
    NSDictionary *adUnitMapping = loadedAdNetworkResponseInfo.adUnitMapping;
    NSTimeInterval latency = loadedAdNetworkResponseInfo.latency;
  }];
}