J'utilise admob pour diffuser des annonces Android. Les annonces test fonctionnent correctement, mais les annonces réelles ne sont pas diffusées. En outre, je n'ai aucun problème avec les annonces interstitielles réelles car elles fonctionnent correctement. Les vraies bannières publicitaires n'apparaissent pas. Mon code Java est
private InterstitialAd interstitial;
interstitial = new InterstitialAd(MainActivity.this);
interstitial.setAdUnitId("ca-app-pub-********");
AdView adView = (AdView) this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
// Add a test device to show Test Ads
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")
.build();
// Load ads into Banner Ads
adView.loadAd(adRequest);
// Load ads into Interstitial Ads
//interstitial.loadAd(adRequest);
Le fichier de mise en page est
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical" >
<com.google.Android.gms.ads.AdView
Android:id="@+id/adView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-********" />
</LinearLayout>
Lorsque les applications sont nouvellement enregistrées auprès d'AdMob, il faut un certain temps et quelques requêtes d'annonces pour permettre à l'inventaire de se créer. De ce fait, il est possible que vous ne voyiez pas immédiatement les impressions en direct. Une fois que votre application commence à faire plus de demandes, vous devriez voir des résultats plus cohérents. Notez que les annonces de test utilisent les mêmes canaux que les annonces en direct. Le fait de pouvoir renvoyer une annonce test garantit que votre application communique correctement avec notre réseau. Soyez patient, cela fonctionnera après quelques jours.
Supprimer la ligne qui dit
.addTestDevice("4CCC00EF4EA205A6FE82E1AEB26B0839")
En outre, lorsque vous utilisez un périphérique virtuel, les annonces de test sont affichées quoi qu'il en soit. Est-ce que vous le testez sur un appareil réel?
"Il se peut que vous veniez de créer un nouvel ID d'unité d'annonce et de demander des annonces en direct. Cela pourrait prendre quelques heures avant que les annonces ne soient diffusées, si tel est le cas."
J'ai rencontré le même problème. Si vous pouvez afficher des annonces test, c'est bien, les annonces en direct seront diffusées bientôt (bien sûr après avoir supprimé .addTestDevice (...)).
Je suppose que Google a besoin de temps pour collecter des informations (lieu, âge, sexe, etc.) afin de diffuser correctement des annonces susceptibles d'intéresser les internautes.
Vous savez peut-être, mais n'oubliez jamais: NE touchez PAS aux annonces en direct, vous serez banni bientôt.
https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/Android/fBe3YL3ffpo
Vous utilisez peut-être l'ID d'unité exemple: ca-app-pub-3940256099942544/6300978111
Si vous utilisez ci-dessus, vous verrez des annonces test.
Assurez-vous de changer votre propre identifiant d'unité avant de relâcher l'application.
Si vous avez supprimé:
.addTestDevice()
Assurez-vous ensuite que vous utilisez le même identifiant que AdMob dans votre fichier string.xml.
Regardez votre logcat. Il dira pourquoi les annonces réelles ne sont pas diffusées.
C'est probablement parce qu'il n'y en a aucun disponible à afficher pour votre appareil, à votre emplacement, en ce moment.
Pour créer un identifiant d'unité d'annonce dynamique
Connectez-vous à
dans votre XML ajouter AdView
<com.google.Android.gms.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/adView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id">
</com.google.Android.gms.ads.AdView>
à l'intérieur des cordes <string name="banner_ad_unit_id">your_new_ad_unit</string>
dans votre code Java
AdView mAdView = (AdView) v.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
Si vous avez choisi le modèle Native Express, utilisez ce lien. NativeExpressAdView ne fonctionnera pas avec AdView. https://firebase.google.com/docs/admob/Android/native-express
NativeExpressAdView adView = (NativeExpressAdView)findViewById(R.id.adView);
<com.google.Android.gms.ads.NativeExpressAdView
Android:id="@+id/adView"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
ads:adUnitId="ca-app-123123123123/123123123"
ads:adSize="320x150">
</com.google.Android.gms.ads.NativeExpressAdView>
J'ai aussi été confronté à ce problème. AdView et IntersitialAd ne m'ont montré que des publicités de test sur le simulateur. Mais il y avait de vraies publicités sur le appareil réel. Je pense que Firebase peut détecter si vous utilisez le simulateur ou l'appareil réel. J'ai utilisé firebase:
com.google.firebase: firebase-ads: 11.0.4
En fait, j'ai aussi fait face à ce problème. Vous devez vous connecter pour admob et aller à l'application que vous avez ajoutée ici. Cette application a un identifiant d'admob. Utilisez l'identifiant de l'application pour faire ces étapes . Créez ensuite une nouvelle bannière ou le type d'annonce de cette application (dans admob) et utilisez l'identifiant de cette bannière pour terminer ces étapes . Lorsque vous créez une bannière, elle vous donnera les instructions.
Répondant à une vieille question, mais je rencontrais le même problème, à savoir que les annonces test sont visibles et que les annonces de clé de production ne fonctionnent pas.
J'ai compris plus tard que je n'avais pas communiqué les détails de mon paiement à Admob.
Les détails de paiement dans Admob sont un must. S'il vous plaît mettre à jour et vérifier après quelques heures, il commence à apparaître.