אחזור מידע על התגובה למודעה

למטרות ניפוי באגים ורישום ביומן, מודעות שנטענו בהצלחה מספקות אובייקט GADResponseInfo. האובייקט מכיל מידע על המודעה שהוא נטען, בנוסף למידע על רשימת הרשתות בתהליך בחירת הרשת ששימשה לטעינת המודעה.

במקרים שבהם מודעה נטענת בהצלחה, לאובייקט המודעה יש מאפיין GADResponseInfo. לדוגמה, הקוד GADInterstitialAd.responseInfo מקבל את פרטי התגובה של מודעת מעברון שנטענה.

במקרים שבהם מודעות לא נטענות ומוצגת רק הודעת שגיאה, אפשר להשתמש במפתח GADErrorUserInfoKeyResponseInfo במילון userInfo של השגיאה GADResponseInfo.

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 כוללים:

מאפיין (property) תיאור
adNetworkInfoArray מחזירה את הרשימה של GADAdNetworkResponseInfo עם מטא-נתונים לכל מתאם שנכלל בתגובה למודעה. אפשר להשתמש בנתונים האלה כדי לנפות באגים בתהליך בחירת הרשת (Mediation) ב-Waterfall ובביצוע הבידינג. הסדר של הרשימה תואם את הסדר של רשימת הרשתות בתהליך בחירת הרשת עבור הבקשה הזו להצגת מודעה.

מידע נוסף זמין במאמר מידע על תגובת המתאם.

loadedAdNetworkResponseInfo הפונקציה מחזירה את הערך GADAdNetworkResponseInfo שתואם למתאם שטען את המודעה.
adNetworkClassName הפונקציה מחזירה את שם המחלקה של מתאם תהליך בחירת הרשת (Mediation) של רשת המודעות שנטענו את המודעה.
responseIdentifier מזהה התגובה הוא מזהה ייחודי של התגובה למודעה. אפשר להשתמש במזהה הזה כדי לזהות ולחסום את המודעה במרכז בקרת המודעות (ARC).
extrasDictionary

הצגת מידע נוסף על התגובה למודעה. תוספות עשויות להחזיר את המפתחות הבאים:

  • mediation_group_name: השם של הקבוצה לבחירת רשת
  • mediation_ab_test_name: השם של בדיקת ה-A/B של תהליך בחירת הרשת (Mediation), אם רלוונטי
  • mediation_ab_test_variant: הווריאנט שבו נעשה שימוש בבדיקת ה-A/B של תהליך בחירת הרשת (Mediation), אם רלוונטי

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 מכיל מטא-נתונים לכל מתאם שכלול בתגובה למודעה, וניתן להשתמש בהם לניפוי באגים בתהליך בחירת הרשת (Mediation) ב-Waterfall ובביצוע הבידינג. הסדר ברשימה תואם לסדר ברשימת הרשתות בתהליך בחירת הרשת של הבקשה להצגת מודעה.

הנה פלט לדוגמה של 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 מספק את המאפיינים הבאים:

מאפיין (property) תיאור
error השגיאה שמשויכת לבקשה לרשת. הפונקציה מחזירה את הערך nil אם המודעה נטענה בהצלחה ברשת או אם לא התבצע ניסיון לרשת.
adSourceId המזהה של מקור המודעות שמשויך לתגובת המתאם הזו. בקמפיינים, הערך 6060308706800320801 מוחזר עבור סוג יעד הקמפיין של מודעות בתהליך בחירת הרשת, ו-7068401028668408324 מוחזר עבור סוגי יעדים של חשיפות וקליקים. בקטע מקורות של מודעות מפורטת רשימה של המזהים האפשריים של מקורות המודעות כאשר רשת המודעות מציגה את המודעה.
adSourceInstanceId מזהה המופע של מקור המודעות שמשויך לתגובת המתאם הזו.
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;
  }];
}