برای اشکالزدایی و ثبت وقایع، تبلیغاتی که با موفقیت بارگذاری میشوند، یک شیء GADResponseInfo ارائه میدهند. این شیء علاوه بر اطلاعاتی در مورد تبلیغی که بارگذاری شده است، شامل اطلاعاتی در مورد آبشار میانجیگری مورد استفاده برای بارگذاری تبلیغ نیز میشود.
برای مواردی که یک تبلیغ با موفقیت بارگذاری میشود، شیء تبلیغ دارای یک ویژگی GADResponseInfo است. برای مثال، GADInterstitialAd.responseInfo اطلاعات پاسخ را برای یک تبلیغ بینابینی بارگذاری شده دریافت میکند.
برای مواردی که تبلیغات بارگذاری نمیشوند و فقط یک خطا موجود است، GADResponseInfo با استفاده از کلید GADErrorUserInfoKeyResponseInfo در دیکشنری userInfo مربوط به خطا در دسترس است.
سویفت
fileprivate func loadInterstitial() { InterstitialAd.load( with: "ca-app-pub-3940256099942544/4411468910", 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:@"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 | شناسه پاسخ، یک شناسه منحصر به فرد برای پاسخ تبلیغ است. از این شناسه میتوان برای شناسایی و مسدود کردن تبلیغ در مرکز بررسی تبلیغات (ARC) استفاده کرد. |
extrasDictionary | اطلاعات اضافی در مورد پاسخ تبلیغ را برمیگرداند. موارد اضافی ممکن است کلیدهای زیر را برگردانند:
|
سویفت
fileprivate func loadInterstitial() { InterstitialAd.load( with: "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"] } }
هدف-سی
- (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 | شناسه منبع تبلیغ مرتبط با این پاسخ آداپتور. برای کمپینها، 6060308706800320801 برای نوع هدف کمپین تبلیغاتی واسطهای و 7068401028668408324 برای انواع هدف نمایش و کلیک برگردانده میشود. برای فهرست شناسههای منبع تبلیغ ممکن، زمانی که یک شبکه تبلیغاتی تبلیغ را ارائه میدهد، به منابع تبلیغ مراجعه کنید. |
adSourceInstanceId | شناسه نمونه منبع تبلیغ مرتبط با این پاسخ آداپتور. |
adSourceInstanceName | نام نمونه منبع تبلیغ مرتبط با این پاسخ آداپتور. |
adSourceName | منبع تبلیغاتی که نشاندهنده شبکه تبلیغاتی خاصی است که به نمایش تبلیغات میپردازد. برای کمپینها، Mediated House Ads برای نوع هدف کمپین تبلیغات واسطهای و Reservation Campaign برای انواع هدف نمایش و کلیک بازگردانده میشود. برای فهرست نامهای منبع تبلیغاتی ممکن، زمانی که یک شبکه تبلیغاتی به تبلیغ میپردازد، به Ad sources مراجعه کنید. |
adNetworkClassName | نام کلاس آداپتور شبکه تبلیغاتی که تبلیغ را بارگذاری کرده است. |
adUnitMapping | پیکربندی شبکه از رابط کاربری AdMob تنظیم شده است. |
latency | مدت زمانی که شبکه تبلیغاتی صرف بارگذاری یک تبلیغ کرده است. اگر شبکه تلاشی برای بارگذاری نداشته باشد، مقدار 0 را برمیگرداند. |
سویفت
fileprivate func loadInterstitial() { InterstitialAd.load( with: "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 } }
هدف-سی
- (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; }]; }