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

במקרים שבהם מודעה לא נטענת, מתבצעת קריאה ל- callback method‏ , שמספק אובייקט LoadAdError.

בשביל an AdManagerAdView, הערך הזה נקרא:

הנה קטע קוד שממחיש את המידע שזמין כשמודעה לא נטענת:

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/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.
  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())
}

אפשר להשתמש במידע הזה כדי לקבוע בצורה מדויקת יותר מה גרם לטעינה של המודעה להיכשל.

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

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