如果广告加载失败,系统会调用回调,并提供 LoadAdError 对象。
对于 AdManagerAdView,系统将调用以下内容:
Kotlin
fun onAdFailedToLoad(error: LoadAdError)
Java
public void onAdFailedToLoad(LoadAdError adError);
以下示例展示了广告加载失败时可用的信息:
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/admob/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
  // 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(@NonNull LoadAdError adError) {
  // Gets the domain from which the error came.
  String errorDomain = adError.getDomain();
  // Gets the error code. See
  // https://developers.google.com/admob/android/reference/com/google/android/gms/ads/AdRequest#constant-summary
  // for a list of possible codes.
  int errorCode = adError.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 = adError.getMessage();
  // Gets additional response information about the request. See
  // https://developers.google.com/admob/android/response-info
  // information.
  ResponseInfo responseInfo = adError.getResponseInfo();
  // Gets the cause of the error, if available.
  AdError cause = adError.getCause();
  // All of this information is available using the error's toString() method.
  Log.d("Ads", adError.toString());
}调试常见错误日志记录消息
在 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 找不到中介适配器。 | |
| com.google.android.gms.internal.ads.*: Received error HTTP response code: 403 | Ad Manager 服务器拒绝了该请求。 | 请稍后再试。如果问题可以稳定重现,请使用广告检查器捕获请求网址,然后与支持团队联系。 |