Ads are loading, but not showing?

天大地大妈咪最大 提交于 2019-12-17 10:05:39

问题


TL;DR: My interstitial ads are successfully loading, but when I call .show() on them, they don't show up!

I have followed these directions, and the ads load succesfully, but don't show when I call mInterstitialAd.show();:

In onCreate():

 mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("My ID");

    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            requestNewInterstitial();
            beginPlayingGame();
        }
    });
        requestNewInterstitial();

requestNewInterstitial():

  private void requestNewInterstitial() {
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice("Phone's ID")
                .build();

        mInterstitialAd.loadAd(adRequest);
    }

HERE IS THE PROBLEM:

 public void tryAgain(View v) {
        if (mInterstitialAd.isLoaded()) {

            mInterstitialAd.show();
            Log.v(TAG, "LOADED in Game Over!");

        }
       else {
            beginPlayingGame();
        }

        beginPlayingGame();
    }

I get the log saying it is loaded in my log cat, but the ad doesn't actually show! Why is it loading, but not showing?

P.S. I think I actually got it to work once earlier, but it stopped working ever since then. What could be the problem?


回答1:


Please add .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID") to your AdRequestBuilder

AdRequest adRequest = new AdRequest.Builder()
              .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
              .build();

Because in development step, if you made too many request on AdMob sometimes it starts to not showing ads. So on development process work with test ads. If it is work without any problem, when you publish your app on Play Store, your users also will see your ads without any problem




回答2:


It turns out that I just had to remove the extra method call after the else. For example,

public void tryAgain(View v) {
        if (mInterstitialAd.isLoaded()) {

            mInterstitialAd.show();
            Log.v(TAG, "LOADED in Game Over!");

        }
       else {
            beginPlayingGame();
        }

        beginPlayingGame();
    }

should have just been

public void tryAgain(View v) {
        if (mInterstitialAd.isLoaded()) {

            mInterstitialAd.show();
            Log.v(TAG, "LOADED in Game Over!");

        }
       else {
            beginPlayingGame();
        }
    //NOTICE THERE Is NO EXTRA METHOD CALL OF **beginPlayingGame()**
      }



回答3:


Try this code

MobileAds.initialize(this, getString(R.string.admob_app_id));

private InterstitialAd mInterstitialAd;

mInterstitialAd = new InterstitialAd(this);

// set the ad unit ID
mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen));

loadInterstitialAds(mInterstitialAd);

 //Create loadInterstitialAds method
 public void loadInterstitialAds(final InterstitialAd mInterstitialAd) {
        AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                // Check the LogCat to get your test device ID
                .addTestDevice("Phone's ID")
                .build();

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

        mInterstitialAd.setAdListener(new AdListener() {
            public void onAdLoaded() {
                if (mInterstitialAd.isLoaded()) {
                    mInterstitialAd.show();
                }
            }
        });
    }


来源:https://stackoverflow.com/questions/36389729/ads-are-loading-but-not-showing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!