廣告載入錯誤

如果廣告無法載入,系統會呼叫 回呼 ,提供 LoadAdError物件。

針對 an AdView,會呼叫以下內容:

以下程式碼片段說明廣告載入失敗時可用的資訊:

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 Mobile Ads 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,因此廣告要求未成功。
  • 檢查網際網路設定。
  • 移除 android:sharedUserId="android.uid.system",並將應用程式設為系統應用程式。
網路連線速度過慢,導致廣告請求失敗。 請改善網際網路連線品質,然後再試一次。
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 Mobile Ads SDK 找不到中介服務適配器。
  • 使用廣告檢查器中的「查看可用的轉接器」功能,診斷 Google Mobile Ads SDK 無法找到哪些轉接器。
  • 在專案中新增缺少的轉接器。如要瞭解如何為每個廣告來源完成這項步驟,請參閱「 聯播網詳細資料」一節。
com.google.android.gms.internal.ads.*: Received error HTTP response code: 403 AdMob 伺服器拒絕要求。 請稍後再試。如果一再發生,請使用廣告檢查器擷取要求網址,然後與支援團隊聯絡。