Как назвать несколько промежуточных объявлений?
Я добавил промежуточное объявление (+ баннер) в свое приложение, которое содержит одно действие, нет проблем с баннером, но промежуточное объявление показывается только при запуске приложения, мое приложение не содержит кнопок или действий, только просмотр в формате 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/