بازیابی اطلاعات درباره پاسخ آگهی

برای اهداف اشکال‌زدایی و گزارش‌گیری، آگهی‌های باموفقیت بارگیری‌شده GADResponseInfo شیء ارائه می‌دهند. این شیء علاوه‌بر اطلاعات مربوط به آبشار واسطه‌گری که برای بار کردن آگهی استفاده شده است، حاوی اطلاعاتی درباره آگهی بارشده است.

برای مواردی که آگهی باموفقیت بار می‌شود، عنصر آگهی دارای GADResponseInfo دارایی است. برای مثال، GADInterstitialAd.responseInfo اطلاعات پاسخ را برای آگهی بینابینی بارشده دریافت می‌کند.

برای مواردی که آگهی‌ها بار نمی‌شوند و فقط خطا دردسترس است، GADResponseInfo بااستفاده از کلید GADErrorUserInfoKeyResponseInfo در فرهنگ لغت خطای userInfo دردسترس است.

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))")
  }
}

آبجکتیو-سی

- (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 شناسه پاسخ یک شناسه یکتا برای پاسخ آگهی است. این شناسه می‌تواند برای شناسایی و مسدود کردن آگهی در مرکز مرور آگهی‌ها (ARC) استفاده شود.
extrasDictionary اطلاعات اضافی درباره پاسخ آگهی برمی‌گرداند. «موارد اضافی» ممکن است کلیدهای زیر را برگرداند:
  • ‫creative_id: شناسه عنصر خلاقانه آگهی انتخاب‌شده. فقط برای آگهی‌های رزرو برگردانده شد.
  • line_item_id: شناسه ردیف آگهی انتخابی. فقط برای آگهی‌های رزرو برگردانده شد.

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"]
  }
}

آبجکتیو-سی

- (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 شناسه منبع آگهی مرتبط با این پاسخ آداپتور.
adSourceInstanceId شناسه نمونه منبع آگهی مرتبط با این پاسخ آداپتور.
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
  }
}

آبجکتیو-سی

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