J'avais l'habitude d'afficher la bannière AdMob sur mes futures applications, et j'aimerais essayer les annonces interstitielles.
J'ai vérifié la mise en œuvre du SDK AdMob et j'ai copié leur exemple de source, car c'était exactement ce que je voulais (c'est-à-dire l'interstitiel affiché lors du lancement de l'activité).
Je l'ai essayé sur émulateur et sur mon Galaxy, 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 la bibliothèque des services Google Play est bien sûr importée.
J'utilise cet exemple: AdMob Android Guides - Annonce interstitielle .
Quelqu'un pourrait-il me dire ce qui ne va pas dans mon code?
Vous devez attendre que l'annonce soit chargée. Alors seulement, vous pouvez appeler la méthode displayInterstial (), qui afficherait l'annonce.
Vous pouvez vous inscrire pour un auditeur, qui vous permettra de savoir quand le chargement est terminé.
interstitial.setAdListener (new AdListener () { public void onAdLoaded () { displayInterstitial (); } });
cela l'a fait pour moi.
// Begin listening to interstitial & show ads.
interstitial.setAdListener(new AdListener(){
public void onAdLoaded(){
interstitial.show();
}
});
je me demande toujours pourquoi tous les gars de Google téléchargent des instructions de mise en œuvre de code qui ne fonctionnent tout simplement pas après que l'on les a suivies jusqu'au point ..
J'ai eu le même problème. Le problème était que l'activité admob n'était pas définie dans le manifeste. Veuillez vous assurer d'avoir la balise d'activité suivante dans votre fichier 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();
}
});
Essayez de l'initialiser dans onCreate, mais appelez uniquement la méthode show () à partir d'un événement, tel qu'un clic de bouton.
Vous pouvez utiliser ce code, les ID de test fonctionnent:
@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.");
}
}