Admob annonce interstitielle ne s'affiche pas
j'ai utilisé pour afficher AdMob bannière sur mon avenir apps, et j'aimerais essayer les annonces interstitielles.
J'ai vérifié L'implémentation du SDK AdMob, et j'ai copié leur source d'exemple parce que c'était exactement ce que je voulais (c'est-à-dire l'interstitiel affiché lors du lancement de l'activité).
j'ai essayé sur émulateur et sur ma galaxie, aucune annonce n'a été affichée.
Voici le code source:
public class Asscreed extends Activity {
private InterstitialAd interstitial;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_asscreed);
// Create the interstitial.
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("ca-app-pub-6046034785851961/xxxxxx");
// Create ad request.
AdRequest adRequest = new AdRequest.Builder().build();
// Begin loading your interstitial.
interstitial.loadAd(adRequest);
}
// Invoke displayInterstitial() when you are ready to display an interstitial.
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
}
les importations sont OK et le Google Play Les Services de la bibliothèque est bien sûr importés.
j'utilise cet exemple: AdMob Android Guides-Interstitial Ad.
Quelqu'un pourrait-il me dire ce qui ne va pas dans mon code?
7 réponses
Vous devez attendre l'annonce chargé. Alors seulement, vous pouvez appeler displayInterstial () méthode, qui montrerait l'annonce.
vous pouvez Vous inscrire pour l'auditeur, qui vous permettra de savoir quand le chargement est terminé.
interstitial.setAdListener(new AdListener(){ public void onAdLoaded(){ displayInterstitial(); } });
c'est ce qui fait pour moi.
// Begin listening to interstitial & show ads.
interstitial.setAdListener(new AdListener(){
public void onAdLoaded(){
interstitial.show();
}
});
je me demande encore pourquoi tous les gars de google upload code mettant en œuvre des instructions qui ne fonctionnent tout simplement pas après l'un les suit au point..
j'ai eu le même problème. La question était que l'activité de la dgsma n'était pas définie dans le manifeste. S'il vous plaît assurez-vous que vous avez l'étiquette d'activité suivante dans votre fichier de manifeste
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("Your Interstitial Id ca-app-pub-46563563567356235/3452455");
AdRequest adRequest1 = new AdRequest.Builder()
.build();
mInterstitialAd.loadAd(adRequest1);
mInterstitialAd.setAdListener(new com.google.android.gms.ads.AdListener() {
@Override
public void onAdLoaded() {
mInterstitialAd.show();
super.onAdLoaded();
}
});
Je l'ai résolu en changeant mon id admob à un ancien élément de l'application, comme ca-app-pub-0243484158988577/9196272994
essayez de l'initialiser dans onCreate, mais n'appelez la méthode show () qu'à partir d'un événement, tel qu'un clic sur un bouton.
Vous pouvez utiliser ce code, l'ids de test fonctionne:
@Override
protected void onCreate(Bundle savedInstanceState) {
...
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713"); //test id
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712"); //test ad
mInterstitialAd.loadAd(new AdRequest.Builder().build());
btn_test.setOnClickListener(view -> {
showInterstitial();
});
...
}
private void showInterstitial()
{
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
} else {
Log.d("TAG", "The interstitial wasn't loaded yet.");
}
}
vous n'avez pas appelé displayinstial().
mais ce que vous devez faire est d'appeler l'auditeur pour l'interstitiel:
interstitial.setAdListener(this);
il implémente alors l'écouteur de votre activité et l'affiche ensuite en téléchargement (ou quelque chose).