שגיאות בטעינת מודעה

במקרים שבהם מודעה לא נטענת, מתבצעת קריאה ל- callback method‏ , שמספק אובייקט 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, בהודעה אפשר לחפש במאמר הזה במרכז העזרה הסבר מפורט יותר ופתרונות אפשריים לבעיה.

ניפוי באגים של הודעות נפוצות ביומן השגיאות

בגרסה 23.5.0 של Google Mobile Ads SDK, תיעוד הלוגי המפורט שופר כך שיכלול מעקב סטאק של המיקום שבו המודעה נכשלת בטעינה. ההודעות האלה לא מצביעות על קריסה, אלא מזהות את המקור הייחודי של השגיאה. בטבלה הבאה מפורטים יומני שגיאות נפוצים, תיאורים והצעות לפעולות לפתרון הבעיות:

יומן שגיאות תיאור הצעות לפעולות
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? מזהה יחידת המודעות לא תואם לביטוי רגולרי צפוי. בודקים אם מזהה יחידת המודעות נכון.
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 שרתי. יש לנסות שוב מאוחר יותר. אם הבעיה מתרחשת באופן עקבי, צריך לתעד את כתובת ה-URL של הבקשה באמצעות בודק המודעות ופונים לתמיכה.