שגיאות בטעינת מודעה

במקרים שבהם מודעה לא נטענת, מתבצעת קריאה ל- delegate או ל-completion handler‏ , שמספק אובייקט NSError.

בשביל a GAMBannerView, הערך הזה נקרא:

Swift

func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error)

Objective-C

- (void)bannerView:(nonnull GADBannerView *)bannerView
    didFailToReceiveAdWithError:(nonnull NSError *)error;

הנה קטע קוד שממחיש את המידע שזמין כשמודעה לא נטענת:

Swift

func bannerView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: Error) {
    // Gets the domain from which the error came.
    let errorDomain = error.domain
    // Gets the error code. See
    // https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Enums/GADErrorCode
    // for a list of possible codes.
    let errorCode = error.code
    // Gets an error message.
    let errorMessage = error.localizedDescription
    // Gets additional response information about the request. See
    // https://developers.google.com/ad-manager/mobile-ads-sdk/ios/response-info for more information.
    let responseInfo = (error as NSError).userInfo[GADErrorUserInfoKeyResponseInfo] as? GADResponseInfo
    // Gets the underlyingError, if available.
    let underlyingError = (error as NSError).userInfo[NSUnderlyingErrorKey] as? Error
    if let responseInfo = responseInfo {
        print("Received error with domain: \(errorDomain), code: \(errorCode),"
          + "message: \(errorMessage), responseInfo: \(responseInfo),"
          + "underlyingError: \(underlyingError?.localizedDescription ?? "nil")")
    }
}

Objective-C

- (void)bannerView:(GADBannerView *)bannerView
    didFailToReceiveAdWithError:(NSError *)error {
  // Gets the domain from which the error came.
  NSString *errorDomain = error.domain;
  // Gets the error code. See
  // https://developers.google.com/ad-manager/mobile-ads-sdk/ios/api/reference/Enums/GADErrorCode
  // for a list of possible codes.
  int errorCode = error.code;
  // Gets an error message.
  NSString *errorMessage = error.localizedDescription;
  // Gets additional response information about the request. See
  // https://developers.google.com/ad-manager/mobile-ads-sdk/ios/response-info for more
  // information.
  GADResponseInfo *responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo];
  // Gets the underlyingError, if available.
  NSError *underlyingError = error.userInfo[NSUnderlyingErrorKey];
  NSLog(@"Received error with domain: %@, code: %ld, message: %@, "
        @"responseInfo: %@, underlyingError: %@",
        errorDomain, errorCode, errorMessage, responseInfo,
        underlyingError.localizedDescription);
}

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