במקרים שבהם מודעה לא נטענת, מתבצעת קריאה ל- callback method , שמספק אובייקט LoadAdError
.
עבור an AdManagerAdView
, הקריאה הבאה מתבצעת:
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.
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 אסור להשתמש בו בתהליכים עם הרשאות. |
|
הבקשה להצגת מודעה נכשלה בגלל חיבור איטי לרשת. | כדאי לנסות לשפר את החיבור לאינטרנט ולנסות שוב. | |
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 אין אפשרות למצוא את מתאם בחירת הרשת. |
|
com.google.android.gms.internal.ads.*: Received error HTTP response code: 403 |
הבקשה נדחתה על ידיAd Manager שרתי. | יש לנסות שוב מאוחר יותר. אם הבעיה מתרחשת באופן עקבי, צריך לתעד את כתובת ה-URL של הבקשה באמצעות בודק המודעות ופונים לתמיכה. |