Как назвать несколько промежуточных объявлений?

Я добавил промежуточное объявление (+ баннер) в свое приложение, которое содержит одно действие, нет проблем с баннером, но промежуточное объявление показывается только при запуске приложения, мое приложение не содержит кнопок или действий, только просмотр в формате PDF, что я хочу do показывает рекламу каждые 5 минут, когда пользователь читает pdf. Я искал похожие вопросы, но не смог их получить. вот мой код для загрузки и показа объявления:

    AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

    // Prepare the Interstitial Ad
    interstitial = new InterstitialAd(PDFViewActivity.this);
    // Insert the Ad Unit ID
    interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
    interstitial.loadAd(adRequest);
    // Prepare an Interstitial Ad Listener
    interstitial.setAdListener(new AdListener() {
        public void onAdLoaded() {
            // Call displayInterstitial() function
            displayInterstitial();
        }
    });
}

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

2 ответа

Решение

Я сделал это так:

AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

    // Prepare the Interstitial Ad
    interstitial = new InterstitialAd(this);
    interstitial.setAdUnitId("ca-app-pub-3940256099942544/1033173712");

    interstitial.loadAd(adRequest);

    interstitial.setAdListener(new AdListener() {
        public void onAdLoaded() {
            displayInterstitial();
        }
        public void onAdClosed() {
            requestNewInterstitial();
        }

    });
}

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

public void requestNewInterstitial() {
    mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            AdRequest adRequest = new AdRequest.Builder()
                    .build();
            interstitial.loadAd(adRequest);

            if (mHandler != null) {
                mHandler.postDelayed(this, 100000); //time (ms)
            }
        }
    }, 100000); //time (ms)
}

Итак, вы пытаетесь показывать промежуточную рекламу через регулярные промежутки времени. Ну, вы можете сделать это с помощью строки кода ниже.

Тем не менее, это против политики Google AdMob. Но вот, пожалуйста.

В mainactiviy.java добавьте ниже коды.

prepareAd();

    ScheduledExecutorService scheduler =
            Executors.newSingleThreadScheduledExecutor();
    scheduler.scheduleAtFixedRate(new Runnable() {

        public void run() {
            Log.i("hello", "world");
            runOnUiThread(new Runnable() {
                public void run() {
                    if (mInterstitialAd.isLoaded()) {
                        mInterstitialAd.show();
                    } else {
                       Log.d("TAG"," Interstitial not loaded");
                    }

                    prepareAd();


                }
            });

        }
    }, 20, 20, TimeUnit.SECONDS);

Затем добавьте строки кода ниже перед последней фигурной скобкой MainActivity.java.

public void  prepareAd(){
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-39xxx560xxxxxxx/10331xxxxx");
    mInterstitialAd.loadAd(new AdRequest.Builder().build());
}

public void  prepareAd(){
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId("ca-app-pub-39xxx560xxxxxxx/10331xxxxx");
    mInterstitialAd.loadAd(new AdRequest.Builder().build());
}

Промежуточный идентификатор AdMob, используемый здесь, является образцом идентификатора. Коды взяты с http://www.elegantespace.com/how-to-load-interstitial-ad-at-regular-interval-of-time/

Другие вопросы по тегам