基於偵錯和記錄目的,成功載入的廣告會提供 GADResponseInfo 物件。這個物件包含所載入廣告的相關資訊,以及用於載入廣告的中介服務刊登序列資訊。
當廣告成功載入時,廣告物件會具有 GADResponseInfo 屬性。例如,GADInterstitialAd.responseInfo 會取得已載入插頁式廣告的回應資訊。
當廣告載入失敗且僅有錯誤資訊時,可在錯誤物件的 userInfo 字典中,使用 GADErrorUserInfoKeyResponseInfo 鍵取得 GADResponseInfo。
Swift
fileprivate func loadInterstitial() { AdManagerInterstitialAd.load( with: "/21775744923/example/interstitial", request: request ) { (ad, error) in if let error = error { let responseInfo = (error as NSError).userInfo[GADErrorUserInfoKeyResponseInfo] as? ResponseInfo 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 **
    {
        "creative_id" = "138471856178";
        "line_item_id" = "6707237225";
    }
  ** 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,可在廣告審核中心 (ARC) 用來辨識並封鎖廣告。 | 
| extrasDictionary | 傳回廣告回應的額外資訊,可能包含下列鍵: 
 | 
Swift
fileprivate func loadInterstitial() { AdManagerInterstitialAd.load( with: "/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 let creativeID = responseInfo?.extrasDictionary["creative_id"] let lineItemID = responseInfo?.extrasDictionary["line_item_id"] } }
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; NSString *creativeID = responseInfo.extrasDictionary[@"creative_id"]; NSString *lineItemID = responseInfo.extrasDictionary[@"line_item_id"]; }]; }
轉接程式回應資訊
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() { AdManagerInterstitialAd.load( with: "/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; }]; }