W przypadku, gdy nie uda się załadować reklamy, wywoływana jest metoda podrzędna , która udostępnia obiekt LoadAdError
.
W przypadku an AdView
jest to:
Java
public void onAdFailedToLoad(LoadAdError adError);
Kotlin
fun onAdFailedToLoad(error: LoadAdError)
Oto fragment kodu, który ilustruje informacje dostępne, gdy reklama nie wczytuje się:
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())
}
Te informacje mogą posłużyć do dokładniejszego określenia przyczyny niepowodzenia wczytywania reklamy.
W szczególności w przypadku błędów w domenie
MobileAds.ERROR_DOMAIN
komunikat
można znaleźć w tym artykule w Centrum pomocy, aby uzyskać bardziej szczegółowe wyjaśnienie i wskazówki dotyczące możliwych działań, które można podjąć w celu rozwiązania problemu.
Debugowanie typowych komunikatów z błędami
W wersji 23.5.0 pakietu SDK do reklam mobilnych Google rozbudowano szczegółowe rejestrowanie, aby uwzględnić ślad stosu, który wskazuje, gdzie nie udało się załadować reklamy. Te komunikaty nie wskazują awarii, ale wskazują unikalne źródło błędu. W tabeli poniżej znajdziesz typowe dzienniki błędów, ich opisy i sugerowane działania:
Dziennik błędów | Opis | Sugerowane działania |
---|---|---|
com.google.android.gms.ads.nonagon.render.cp: * |
Serwer reklam nie zwrócił reklamy ani żadnych źródeł reklam zapośredniczonych na żądanie. | Szczegółowe informacje o typowych problemach z wdrożeniem tego typu znajdziesz w artykule Rozwiązywanie typowych problemów występujących na początku. |
com.google.android.gms.ads.nonagon.render.e: * |
Nie udało się załadować wszystkich źródeł reklam w kaskadzie zapośredniczenia. Ten konkretny błąd dotyczy ostatniego źródła reklam, które nie działało prawidłowo. | Szczegółowe informacje o rejestrowaniu przyczyny niepowodzenia poszczególnych źródeł reklam z pośrednictwem znajdziesz w artykule Informacje o odpowiedzi. |
com.google.android.gms.ads.internal.util.*: Unable to obtain a JavascriptEngine. |
Żądanie reklamy nie powiodło się, ponieważ WebView nie jest dozwolone w procesach uprzywilejowanych. |
|
Żądanie reklamy nie zostało zrealizowane z powodu wolnego połączenia z internetem. | Spróbuj poprawić połączenie z internetem i spróbuj ponownie. | |
com.google.android.gms.ads.nonagon.load.a |
Upłynął limit czasu żądania reklamy. | |
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 |
Żądanie reklamy nie zostało zrealizowane z powodu problemów z połączeniem z siecią. | |
com.google.android.gms.ads.internal.util.*: Error building
request URL: Cannot determine request type. Is your ad unit id correct? |
Identyfikator jednostki reklamowej nie pasuje do oczekiwanego wyrażenia regularnego. | Sprawdź, czy identyfikator jednostki reklamowej jest prawidłowy. |
com.google.android.gms.ads.internal.render.bt: Unable to
instantiate mediation adapter class. |
Pakiet SDK do reklam mobilnych Google nie może znaleźć adaptera zapośredniczenia. |
|
com.google.android.gms.internal.ads.*: Received error HTTP response code: 403 |
SerwerAdMob odrzucił żądanie. | Spróbuj ponownie później. Jeśli problem występuje regularnie, użyj kontrolera reklam, aby pobrać adres URL żądania, a następnie skontaktuj się z zespołem pomocy. |