每次单击按钮时如何显示 Admob 插页式广告?

How to display Admob interstitial every time a button is clicked?

我想知道如何在每次按下按钮时显示 Admob 插页式广告。我设法展示了一个插页式广告,但只是在第一次按下按钮时。这是我的代码:

 package hamza.gforx.com.guforx;

 import android.content.Intent;
 import android.os.Bundle;
 import android.support.v7.app.AppCompatActivity;
 import android.view.View;
 import com.google.android.gms.ads.AdRequest;
 import com.google.android.gms.ads.AdView;
 import com.google.android.gms.ads.InterstitialAd;
 import com.google.android.gms.ads.AdListener;



   public class MainActivity extends AppCompatActivity {
    // "ca-app-pub-3940256099942544/1033173712"
    InterstitialAd mInterstitialAd;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
     mInterstitialAd = new InterstitialAd(this);

     // set the ad unit ID
     mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");

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

    // Load ads into Interstitial Ads
      mInterstitialAd.loadAd(adRequest);


      mInterstitialAd.setAdListener(new AdListener() {

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

         @Override
         public void onAdFailedToLoad(int i) {
             super.onAdFailedToLoad(i);
         }

         @Override
         public void onAdLeftApplication() {
             super.onAdLeftApplication();
         }

         @Override
         public void onAdOpened() {
            super.onAdOpened();
         }

         public void onAdLoaded() {
             if (mInterstitialAd.isLoaded()) {
             }
          }
      });
  }



    public void onButtonClick(View v) {
     if (mInterstitialAd.isLoaded()) {
        mInterstitialAd.show();
    }
    if (v.getId() == R.id.Bdisplay) ;
    {
        Intent i =new Intent(MainActivity.this, Display.class);
        startActivity(i);
    }

   }


      public void onButton1(View v1) {
          if (mInterstitialAd.isLoaded()) {
              mInterstitialAd.show();
          }
          if (v1.getId() == R.id.Button1) ;
           {
            Intent o =new Intent(MainActivity.this, Page.class);
            startActivity(o);
           }

       }


   public void onButton2(View v2) {
    if (v2.getId() == R.id.Button2) ;
    {
        Intent q =new Intent(MainActivity.this, Page2.class);
        startActivity(q);
    }
     if (mInterstitialAd.isLoaded()) {
         mInterstitialAd.show();
    }

  }

}

提前致谢。

确保每次都加载广告 (mInterstitialAd.loadAd(adRequest))。

也有可能点击按钮时广告还没有加载,所以没有显示。

您需要在每次展示后加载广告。为了在尝试显示之前让它有足够的时间加载,建议在 onAdClosed() 回调中重新加载(不显示)广告。

您需要在关闭广告以供下次显示时加载 gadInterstitialAd,因此请在 onAdClosed() 方法中调用 loadIntersitialAd()

mInterstitialAd.setAdListener(new AdListener() {

    @Override
    public void onAdClosed() {
        loadIntersitialAd();
     }

     @Override
     public void onAdFailedToLoad(int i) {

     }

     @Override
     public void onAdLeftApplication() {

     }

     @Override
     public void onAdOpened() {

     }

     public void onAdLoaded() {

     }
  });

private void loadIntersitialAd(){

    AdRequest interstitialRequest = new AdRequest.Builder().build();
    mInterstitialAd.loadAd(interstitialRequest);
}