web-dev-qa-db-fra.com

Comment créer Android annonces interstitielles?

J'ai essayé des choses à partir de nombreux blogs mais aucun n'a donné de solution étape par étape. Dois-je modifier quelque chose sur le site AdMob? J'ai créé le site à partir de l'option sit sit/app sous l'onglet Sites et applications.

J'ai utilisé ce code:

interstitial = new InterstitialAd(this, "MyAdMobID");
// Set Ad Listener to use the callbacks below
interstitial.setAdListener(this);
// Create ad request
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
// Begin loading your interstitial      
interstitial.loadAd(adRequest);
adRequest.setTesting(true);
12
Mohammad Abu Hmead

En utilisant le dernier Android framework, j'ai compris que je devais appeler la fonction load () chaque fois que l'annonce était fermée.

import com.google.Android.gms.ads.*;
import Android.os.Handler;
import Android.os.Looper;
import Android.app.Activity;

class MyActivity extends Activity implements AdListener {
  private InterstitialAd adView;  // The ad
  private Handler mHandler;       // Handler to display the ad on the UI thread
  private Runnable displayAd;     // Code to execute to perform this operation

  @Override
  public void onCreate(Bundle savedInstanceState) {
    adView = new InterstitialAd(mContext);
    adView.setAdUnitId("ca-app-pub-XXXXXXXXXX");
    adView.setAdListener(this);
    mHandler = new Handler(Looper.getMainLooper());
    displayAd = new Runnable() {
      public void run() {  
        runOnUiThread(new Runnable() { 
          public void run() { 
            if (adView.isLoaded()) {
              adView.show();
            }
          }
        });
      }
    };
    loadAd();
  }

  @Override
  public void onAdClosed() {
    loadAd(); // Need to reload the Ad when it is closed.
  }

  void loadAd() {
    AdRequest adRequest = new AdRequest.Builder()
    //.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
   .build();

    // Load the adView object witht he request
    adView.loadAd(adRequest);
  }

  //Call displayInterstitial() once you are ready to display the ad.
  public void displayInterstitial() {
    mHandler.postDelayed(displayAd, 1);
  }
}
12
Mikaël Mayer

Contrairement aux bannières, les annonces insterstitielles ne s'affichent pas automatiquement une fois chargées. Vous devrez écouter le rappel onReceiveAd() d'AdMob, et à l'intérieur de ce rappel, appeler interstital.show() pour afficher votre interstitiel.

public YourActivity extends Activity implements AdListener {
  ...

  @Override
  public void onReceiveAd(Ad ad) {
    Log.d("OK", "Received ad");
    if (ad == interstitial) {
      interstitial.show();
    }
  }
}

Découvrez un exemple de code ici . Cet exemple montrera l'interstitiel dès sa réception. Alternativement, vous souhaiterez peut-être attendre un moment approprié pour afficher l'interstitiel, comme à la fin d'un niveau de jeu, et vous pouvez vérifier interstitial.isReady() pour voir si vous pouvez afficher l'interstitiel.

11

Vous ne pouvez plus implémenter AdListener, je l'ai utilisé de cette façon:

final InterstitialAd mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getResources().getString(R.string.interstitial_ad_unit_id));
AdRequest adRequestInter = new AdRequest.Builder().build();
mInterstitialAd.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded() {
        mInterstitialAd.show();
    }
});
mInterstitialAd.loadAd(adRequestInter);

Placez votre propre ID dans strings.xml nommé interstitial_ad_unit_id, ou remplacez

getResources().getString(R.string.interstitial_ad_unit_id)

avec votre ID.

6
LiranNis

Je pense que cet exemple de code vous aidera.

Comment ajouter des annonces interstitielles AdMob dans vos Android

Dans cet exemple, il vous montre tout le code source. Et il fournit également des solutions aux erreurs courantes. Par exemple, solution d'erreur onFailedToReceiveAd et aucune annonce n'a renvoyé de solution. Vous pouvez également télécharger le code source à partir de là.

3
user2490225

Appelez cette fonction à l'ouverture de l'application:

InterstitialAd interstitial;

public void AdMob() {
    AdRequest adRequest = new AdRequest.Builder().addTestDevice("YOUR_TEST_DEVICE_ID").build();
    interstitial = new InterstitialAd(this);
    interstitial.setAdUnitId("YOUR_AD_ID");
    interstitial.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            //Ads loaded
        }

        @Override
        public void onAdClosed() {
            super.onAdClosed();
            //Ads closed
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            super.onAdFailedToLoad(errorCode);
            //Ads couldn't loaded
        }
    });
    interstitial.loadAd(adRequest);
}

Ensuite, vous pouvez diffuser des annonces:

if (interstitial.isLoaded()){
interstitial.show();
}

Vous devez préparer des annonces avant de les diffuser. Cela a pris 3-5 secondes en fonction de la vitesse Internet de l'appareil.

1
Aykut Uludağ

Pour info, la méthode interstitial.isReady() n'est plus supportée. C'est la méthode correcte:

if (interstitial.isLoaded()) {
    interstitial.show();
}
1
Shygar

ajout de bannières et d'annonces interstitielles:

  AdView mAdView;
        InterstitialAd interstitialAd;
        ProgressDialog pd;

        void showAds(){
            if(interstitialAd.isLoaded()){
                interstitialAd.show();
            }
        }
        public void initAds(){
            mAdView = (AdView) findViewById(R.id.adView);

            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);

            interstitialAd=new InterstitialAd(this);
            interstitialAd.setAdUnitId(getResources().getString(R.string.inetial3));
            AdRequest adRequest1=new AdRequest.Builder().build();
            interstitialAd.loadAd(adRequest1);
        }

et en XML:

<com.google.Android.gms.ads.AdView
xmlns:ads="http://schemas.Android.com/apk/res-auto"
        Android:id="@+id/adView"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_centerHorizontal="true"
        Android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id2"
        Android:layout_gravity="bottom|center">
    </com.google.Android.gms.ads.AdView>
0
Adeeb karim

InterstitialAd mInterstitialAd;

  //To load InterstitialAd ads

//app_id for test ca-app-pub-3940256099942544~3347511713


//full_id for test ca-app-pub-3940256099942544/1033173712

MobileAds.initialize(this, getString(R.string.app_id)); 
mInterstitialAd = new InterstitialAd(this);

mInterstitialAd.setAdUnitId(getString(R.string.full_id));

mInterstitialAd.loadAd(new AdRequest.Builder().build());

mInterstitialAd.setAdListener(new AdListener() {


@Override

public void onAdClosed() {

// Load the next interstitial

mInterstitialAd.loadAd(new AdRequest.Builder().build());

}

});

//To show ads
 if (mInterstitialAd.isLoaded()) {
 mInterstitialAd.show();
 } else {
Log.d("TAG", "The interstitial wasn't loaded yet.");
  }
0
Rahul Singh

Essayez ceci dans MainActivity.Java


 private InterstitialAd interstitial; 

 // Initialize the Mobile Ads SDK 
        MobileAds.initialize(this, getString(R.string.admob_app_id)); 
        AdRequest adIRequest = new AdRequest.Builder().build(); 

        // Prepare the Interstitial Ad Activity 
        interstitial = new InterstitialAd(MainActivity.this); 

        // Insert the Ad Unit ID 
       //add admob_interstitial_id unit id in string file 
        interstitial.setAdUnitId(getString(R.string.admob_interstitial_id)); 

        // Interstitial Ad load Request 
        interstitial.loadAd(adIRequest); 

        // Prepare an Interstitial Ad Listener 
        interstitial.setAdListener(new AdListener()  
{ 
            public void onAdLoaded() 
            { 
                // Call displayInterstitial() function when the Ad loads 
                displayInterstitial(); 
            } 
        }); 
    } 

    public void displayInterstitial() 
    { 
        // If Interstitial Ads are loaded then show else show nothing. 
        if (interstitial.isLoaded()) { 
            interstitial.show(); 
        } 
    } 
0
passionatedevops