Errores al cargar los anuncios

Cuando un anuncio no se carga, siempre hay un método de delegado o controlador de finalización al que se llama y que proporciona un objeto GADRequestError.

En el caso de a GADBannerView, se hace una llamada a lo siguiente:

Swift

func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError)

Objective‑C

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

A continuación, se muestra un fragmento de código donde puede verse qué información aparece cuando un anuncio no se carga:

Swift

func adView(_ bannerView: GADBannerView, didFailToReceiveAdWithError error: GADRequestError) {
    // Gets the domain from which the error came.
    let errorDomain = error.domain
    // Gets the error code. See
    // https://developers.google.com/admob/ios/api/reference/Enums/GADErrorCode
    // for a list of possible codes.
    let errorCode = error.code
    // Gets an error message.
    // For example "Account not approved yet". See
    // https://support.google.com/admob/answer/9905175 for explanations of
    // common errors.
    let errorMessage = error.localizedDescription
    // Gets additional response information about the request. See
    // https://developers.google.com/admob/ios/response-info for more information.
    let responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo] as? GADResponseInfo
    // Gets the underlyingError, if available.
    let underlyingError = error.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)adView:(GADBannerView *)adView
    didFailToReceiveAdWithError:(GADRequestError *)error {
  // Gets the domain from which the error came.
  NSString *errorDomain = error.domain;
  // Gets the error code. See
  // https://developers.google.com/admob/ios/api/reference/Enums/GADErrorCode
  // for a list of possible codes.
  int errorCode = error.code;
  // Gets an error message.
  // For example "Account not approved yet". See
  // https://support.google.com/admob/answer/9905175 for explanations of
  // common errors.
  NSString *errorMessage = error.localizedDescription;
  // Gets additional response information about the request. See
  // https://developers.google.com/admob/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);
}

Esta información se puede utilizar para determinar de forma más precisa por qué no se ha cargado el anuncio. Concretamente, en el caso de los errores del dominio kGADErrorDomain, el objeto localizedDescription , así como las posibles medidas que se pueden tomar para solucionar el problema, en este artículo del Centro de Ayuda .