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
.