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

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

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

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

Swift

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

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

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

loadedAdNetworkResponseInfo מחזירה את הערך של GADAdNetworkResponseInfo שתואם למתאם שטען את המודעה.
adNetworkClassName מחזירה את שם הסיווג של מתאם תהליך בחירת הרשת של רשת המודעות שטענה את המודעה.
responseIdentifier מזהה התגובה הוא מזהה ייחודי של התגובה לבקשה להצגת מודעה. אפשר להשתמש במזהה הזה כדי לזהות ולחסום את המודעה במרכז בקרת המודעות (ARC).
extrasDictionary הפונקציה מחזירה מידע נוסף על התגובה לבקשה להצגת מודעה. התוספות עשויות להחזיר את המפתחות הבאים:
  • ‫mediation_group_name: השם של הקבוצה לבחירת רשת (Mediation)
  • mediation_ab_test_name: השם של בדיקת ה-A/B של מנגנון בחירת הרשת, אם רלוונטי
  • ‫mediation_ab_test_variant: הווריאנט שנעשה בו שימוש בבדיקת ה-A/B של תהליך בחירת הרשת, אם רלוונטי

Swift

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

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() {
  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
  }
}

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