In cases where an ad fails to load, a
callback
is called which provides a LoadAdError
object.
For an AdManagerAdView
, the following is called:
Kotlin
fun onAdFailedToLoad(error: LoadAdError)
Java
public void onAdFailedToLoad(LoadAdError adError);
The following example shows the information available when an ad fails to load:
Kotlin
override fun onAdFailedToLoad(error: LoadAdError) {
// Gets the domain from which the error came.
val errorDomain = error.domain
// Gets the error code. See
// https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest#constant-summary
// for a list of possible codes.
val errorCode = error.code
// Gets an error message.
val errorMessage = error.message
// Gets additional response information about the request. See
// https://developers.google.com/ad-manager/mobile-ads-sdk/android/response-info
// information.
val responseInfo = error.responseInfo
// Gets the cause of the error, if available.
val cause = error.cause
// All of this information is available using the error's toString() method.
Log.d("Ads", error.toString())
}
Java
@Override
public void onAdFailedToLoad(LoadAdError error) {
// Gets the domain from which the error came.
String errorDomain = error.getDomain();
// Gets the error code. See
// https://developers.google.com/android/reference/com/google/android/gms/ads/AdRequest#constant-summary
// for a list of possible codes.
int errorCode = error.getCode();
// Gets an error message.
String errorMessage = error.getMessage();
// Gets additional response information about the request. See
// https://developers.google.com/ad-manager/mobile-ads-sdk/android/response-info
// for more information.
ResponseInfo responseInfo = error.getResponseInfo();
// Gets the cause of the error, if available.
AdError cause = error.getCause();
// All of this information is available using the error's toString() method.
Log.d("Ads", error.toString());
}
Debug common error logging messages
In version 23.5.0 of the Google Mobile Ads SDK, verbose logging was enhanced to include a stack trace of where the ad fails to load. These message don't indicate a crash, but rather identify the unique source of the error. The following table provides common error logs, descriptions, and suggested actions for resolution:
Error log | Description | Suggested action(s) |
---|---|---|
com.google.android.gms.ads.nonagon.render.cp: * |
The ad server did not return an ad or any mediation ad sources to request. | For details to troubleshoot no fills, see Troubleshoot unfilled impressions. |
com.google.android.gms.ads.nonagon.render.e: * |
All ad sources in the mediation waterfall failed to load. The specific error represents the last ad source that failed. | For details about logging each mediation ad source's failure reason, see Response Info. |
com.google.android.gms.ads.internal.util.*: Unable to obtain a JavascriptEngine. |
The ad request was unsuccessful because WebView is not
allowed in privileged processes. |
|
The ad request was unsuccessful because of a slow network connection. | Try improving your internet connection and try again. | |
com.google.android.gms.ads.nonagon.load.a |
The ad request timed out. | |
com.google.android.gms.ads.internal.util.*: Error while
connecting to ad server: Unable to resolve host "pubads.g.doubleclick.net":
No address associated with hostname |
The ad request was unsuccessful due to network connectivity. | |
com.google.android.gms.ads.internal.util.*: Error building
request URL: Cannot determine request type. Is your ad unit id correct? |
The ad unit ID did not match an expected regular expression. | Check if your ad unit ID is correct. |
com.google.android.gms.ads.internal.render.bt: Unable to
instantiate mediation adapter class. |
The Google Mobile Ads SDK can't find the mediation adapter. |
|
com.google.android.gms.internal.ads.*: Received error HTTP response code: 403 |
Ad Manager servers rejected the request. | Try again later. If consistently reproducible, capture the request URL using ad inspector and contact support. |