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

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

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

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

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

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

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

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

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

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

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

לפניכם דוגמה לפלט של 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 מוחזר עבור סוגי היעדים 'חשיפות' ו'קליקים'. במקורות מודעות מפורטת רשימה של השמות האפשריים של מקורות המודעות כשמודעה מוצגת על ידי רשת מודעות.
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;
  }];
}