我想在用户打开应用时加载AdMob插页式广告,并在最小化应用后恢复应用 .
我使用以下代码加载AdMob插页式广告 onResume
:
@Override
protected void onResume() {
super.onResume();
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad));
AdRequest request = new AdRequest.Builder()
.tagForChildDirectedTreatment(true)
.build();
mInterstitialAd.loadAd(request);
mInterstitialAd.setAdListener(new AdListener() {
public void onAdLoaded() {
showInterstitial();
}
});
}
但广告在关闭后会反复加载 . 我尝试在AdMob设置中限制广告在5分钟内显示一次,但它无效 . 如何防止广告重复加载?
1 回答
根据插页式最佳做法,这是禁止的:https://support.google.com/admob/answer/6201362?hl=en&ref_topic=2745287 .
您的代码创建了一个电路 . 您正在活动的
onResume()
上加载插页式广告,并在触发onAdLoaded()
时显示该插页式广告 . 但是,对于onAdLoaded()
被触发,必须从之前可见地显示插页式广告 . 所以,由于插页式广告仍然存在,它会发送onAdLoaded()
,其中会显示插页式广告(showInterstitial()
),它将发送另一个onAdLoaded()
,它会一次又一次地调用showInterstitial()
.您需要尽早发送广告请求,并在致电
showInterstitial()
之前使用isLoaded()检查 .在应用启动时发送广告请求:
然后,把它放在你的_2757160中:
EDIT :仅在应用中的逻辑断点处调用
showInterstitial()
. 在应用启动或应用退出时显示插页式广告不符合AdMob的插页式最佳做法 .