如果广告加载失败,系统会调用 回调 ,以提供 LoadAdError
对象。
对于 an AdView
,系统将调用以下内容:
Java
public void onAdFailedToLoad(LoadAdError adError);
Kotlin
fun onAdFailedToLoad(error: LoadAdError)
以下代码段说明了广告加载失败时可用的信息:
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.
// For example "Account not approved yet". See
// https://support.google.com/admob/answer/9905175 for explanations of
// common errors.
String errorMessage = error.getMessage();
// Gets additional response information about the request. See
// https://developers.google.com/admob/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());
}
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.
// For example "Account not approved yet". See
// https://support.google.com/admob/answer/9905175 for explanations of
// common errors.
val errorMessage = error.message
// Gets additional response information about the request. See
// https://developers.google.com/admob/android/response-info for more
// 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())
}
此信息可用于更准确地确定导致广告加载失败的原因。
尤其是对于网域
MobileAds.ERROR_DOMAIN
下的错误 ,以获取更详细的说明以及可以采取哪些措施来解决问题。
调试常见的错误日志记录消息
在 Google 移动广告 SDK 23.5.0 版中,详细日志记录功能得到增强,以包含广告加载失败位置的堆栈轨迹。这些消息并不表示崩溃,而是标识错误的唯一来源。下表提供了常见的错误日志、说明和建议的解决措施:
错误日志 | 说明 | 建议的操作 |
---|---|---|
com.google.android.gms.ads.nonagon.render.cp: * |
广告服务器未返回广告或任何中介广告来源。 | 如需详细了解此类常见的新手入门问题,请参阅解决常见的新手入门问题。 |
com.google.android.gms.ads.nonagon.render.e: * |
未能加载中介广告瀑布流中的所有广告来源。具体的错误表示最后一个出现故障的广告来源。 | 如需详细了解如何记录每个中介广告来源的失败原因,请参阅响应信息。 |
com.google.android.gms.ads.internal.util.*: Unable to obtain a JavascriptEngine. |
广告请求失败,因为特权进程中不允许使用 WebView 。 |
|
由于网络连接缓慢,广告请求未能成功。 | 请尝试改善互联网连接状况,然后重试。 | |
com.google.android.gms.ads.nonagon.load.a |
广告请求超时。 | |
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 |
由于网络连接问题,广告请求失败。 | |
com.google.android.gms.ads.internal.util.*: Error building
request URL: Cannot determine request type. Is your ad unit id correct? |
广告单元 ID 与预期的正则表达式不符。 | 检查您的广告单元 ID 是否正确。 |
com.google.android.gms.ads.internal.render.bt: Unable to
instantiate mediation adapter class. |
Google 移动广告 SDK 找不到中介适配器。 |