擷取廣告回應的相關資訊

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

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

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

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "/21775744923/example/interstitial", 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:@"/21775744923/example/interstitial"
   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: BmnCZaSbE_6Mur8P5su8gAY
    Network: GADMAdapterGoogleAdMobAds

  ** Loaded Adapter Response **
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

  ** Extras Dictionary **
    {
    }

  ** Mediation line items **
    Entry (1)
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

GADResponseInfo 中的房源 包括:

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

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

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

傳回廣告回應的額外資訊。

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "/21775744923/example/interstitial", 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
  }
}

Objective-C

- (void)loadInterstitial {
  [GADInterstitialAd
   loadWithAdUnitID:@"/21775744923/example/interstitial"
   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;
  }];
}

轉接程式回應資訊

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

以下是 GADAdNetworkResponseInfo 輸出內容範例:

    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

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

屬性 說明
error 與網路要求相關的錯誤。退貨程序 nil:如果聯播網成功載入廣告或聯播網 未嘗試存取。
adSourceId 與這個轉接程式回應相關聯的廣告來源 ID。
adSourceInstanceId 與這個轉接程式相關聯的廣告來源執行個體 ID 回應。
adSourceInstanceName 與這個轉接程式相關聯的廣告來源執行個體名稱 回應。 傳回 空白字串。
adSourceName 代表放送廣告的特定廣告聯播網的廣告來源
adNetworkClassName 載入廣告的廣告聯播網轉接程式類別名稱。
adUnitMapping 當中的網路設定 Ad Manager 使用者介面。
latency 廣告聯播網載入廣告的時間長度。退貨程序 如未嘗試網路,則為 0

Swift

fileprivate func loadInterstitial() {
  GADInterstitialAd.load(
    withAdUnitID: "/21775744923/example/interstitial", 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:@"/21775744923/example/interstitial"
   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;
  }];
}