J'essaie de charger des annonces Admob Native. Auparavant (avant la mise à jour de l'application), les annonces diffusaient, mais elles ne s'affichent pas. J'ai posté le code, XML et le Logcat ci-dessous.
Code
NativeExpressAdView adView = (NativeExpressAdView) myView.findViewById(R.id.adView);
AdRequest request = new AdRequest.Builder()
.addTestDevice("5BCFF0AAE83AF424648A954038C71DE6")
.addTestDevice("A5E3E2068BD88202CBC281AD76984BEE")//infocus
.build();
adView.loadAd(request);
XML
<com.google.Android.gms.ads.NativeExpressAdView
Android:id="@+id/adView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginTop="10dp"
ads:adSize="320x150"
ads:adUnitId="ca-app-pub-5059726881726792/6223900262"></com.google.Android.gms.ads.NativeExpressAdView>
Logcat
07-14 20:39:57.349 11508-11508/? W/Ads: Failed to load ad: 0
07-14 20:40:07.373 11508-11663/? W/Ads: There was a problem getting an ad response. ErrorCode: 0
Fail to forward ad response.
Android.os.DeadObjectException
at Android.os.BinderProxy.transactNative(Native Method)
at Android.os.BinderProxy.transact(Binder.Java:511)
at com.google.Android.gms.ads.internal.request.ab.a(:com.google.Android.gms:93)
at com.google.Android.gms.ads.internal.request.service.i.run(:com.google.Android.gms:638)
at com.google.Android.gms.ads.internal.util.u.call(:com.google.Android.gms:1055)
at com.google.Android.gms.ads.internal.util.v.run(:com.google.Android.gms:75)
at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:423)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:237)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1113)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:588)
at Java.lang.Thread.run(Thread.Java:818)
07-14 20:40:19.539 1975-4922/? W/Ads: Fail to forward ad response.
Android.os.DeadObjectException
at Android.os.BinderProxy.transactNative(Native Method)
at Android.os.BinderProxy.transact(Binder.Java:511)
at com.google.Android.gms.ads.internal.request.ab.a(:com.google.Android.gms:93)
at com.google.Android.gms.ads.internal.request.service.i.run(:com.google.Android.gms:638)
at com.google.Android.gms.ads.internal.util.u.call(:com.google.Android.gms:1055)
at com.google.Android.gms.ads.internal.util.v.run(:com.google.Android.gms:75)
at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:423)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:237)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1113)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:588)
at Java.lang.Thread.run(Thread.Java:818)
Il n'y a pas de faute dans votre code. C'est parfait. Vous devez juste attendre un peu. Votre identifiant d'annonce étant nouvellement créé, il faudra un certain temps pour récupérer les annonces sur les serveurs de Google. Vous pouvez le vérifier en ajoutant l'ID de bannière/interstitielle que vous créez pour les applications précédentes et vous verrez qu'elles fonctionnent. Alors donnez-lui un peu de temps et cela fonctionnera bientôt. Au moins pour moi, ça arrive tout le temps. Je ne peux sûrement pas dire pour vous, mais pourquoi ne pas essayer?
Dans mon cas, le manque d'informations de paiement était un problème. Lorsque vous vous connecterez au tableau de bord Admob, vous remarquerez que les annonces ne fonctionneront pas tant que nous n'aurons pas ajouté les détails de paiement.
Valeur constante: 0
Cette erreur se produit généralement dans les annonces nouvellement créées. Alors attendez quelques heures que les annonces soient chargées.
Il m'est également arrivé de constater l'erreur "échec du chargement de l'annonce 0", mais il n'y a pas de problème. Attendez parfois une heure, 2 ou même 5 heures, attendez que vous obteniez les annonces.
Vous pouvez toujours exécuter votre projet sur émulateur et vous obtiendrez des informations sur les "annonces émulées" dans votre application
Lorsqu'il fonctionne avec les exemples d'ID de blocs d'annonces , votre compte n'est probablement pas encore approuvé. L'avez-vous créé tout à l'heure?
Les annonces de test ont immédiatement fonctionné pour moi. J'ai dû attendre plusieurs heures pour recevoir le courrier "Excellente nouvelle - votre compte est maintenant approuvé" jusqu'à ce que mes annonces fonctionnent également. N'utilisez de toute façon pas vos propres annonces pour le développement - vous pouvez bloquer votre compte AdMob pour cela!
Donc, dès que les annonces test fonctionnent et que vous avez confirmé que les bons identifiants sont utilisés pour la version finale, vous avez probablement tout fait correctement et il vous suffit d'attendre
Il existe également un ID d'application de test "ca-app-pub-3940256099942544 ~ 3347511713" mais _ je n'ai pas eu de problème à utiliser mon propre identifiant d'application juste après l'avoir créé.
De la Documentation , le code d'erreur 0 signifie Erreur interne.
public static final int ERROR_CODE_INTERNAL_ERROR
Quelque chose s'est passé en interne; par exemple, une réponse invalide était reçu du serveur publicitaire.
Valeur constante: 0
Cette erreur se produit généralement dans annonces nouvellement créées. Alors attendez quelques heures que les annonces soient chargées.