Объявления загружаются, но не отображаются?

TL; DR: мои межстраничные объявления успешно загружаются, но когда я вызываю .show() на них, они не отображаются!

Я следил за этими направлениями, и объявления загружаются успешно, но не отображаются, когда я вызываю mInterstitialAd.show();:

В 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 ID")
                .build();

        mInterstitialAd.loadAd(adRequest);
    }

ЗДЕСЬ ПРОБЛЕМА:

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

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

        }
       else {
            beginPlayingGame();
        }

        beginPlayingGame();
    }

Я получаю журнал, говорящий, что он загружен в моем журнале, но объявление на самом деле не отображается! Почему загрузка, но не отображается?

P.S. Я думаю, что на самом деле я начал работать раньше, но с тех пор он перестает работать. В чем может быть проблема?

Ответ 1

Добавьте .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID") к своему AdRequestBuilder

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

Потому что на этапе разработки, если вы делали слишком много запросов на AdMob, иногда он начинает не показывать рекламу. Таким образом, процесс разработки работает с тестовыми объявлениями. Если это работает без каких-либо проблем, когда вы публикуете свое приложение в Play Маркете, ваши пользователи также будут видеть ваши объявления без каких-либо проблем.

Ответ 2

Оказывается, мне просто нужно было удалить дополнительный вызов метода после else. Например,

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

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

        }
       else {
            beginPlayingGame();
        }

        beginPlayingGame();
    }

должен был быть

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()**
      }