我想在用户首次打开应用时或当用户导航到另一个应用(如浏览器)然后返回到我的应用时,会显示一个admob插页式广告。这是我目前的interstital广告代码,此代码完全包含在OnCreate方法中。
// Create the interstitial.
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("ca-app-pub-XXXXXXXXXXXXXXXX");
// Create ad request.
AdRequest adRequest2 = new AdRequest.Builder().build();
// Begin loading your interstitial.
interstitial.loadAd(adRequest2);
interstitial.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
});
这似乎适用于大多数情况,但在某些设备上,这将创建一个插页式循环,在用户解散后2-3秒显示。其中一个有循环的设备是Galaxy Tab3。我似乎无法找到一种正确的方法来设置我的代码,以便这种行为不会发生在任何设备上。
答案 0 :(得分:3)
使用以下代码在appstart时显示插页式广告。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("***********");
AdRequest adRequest = new AdRequest.Builder().build();
interstitial.loadAd(adRequest);
interstitial.setAdListener(new AdListener() {
public void onAdLoaded() {
displayInterstitial();
}
});
}
public void displayInterstitial() {
if (interstitial.isLoaded()) {
interstitial.show();
}
}
答案 1 :(得分:1)
创建一个布尔变量来帮助它..
boolean ad_shown = false;
当你执行.show()时,将变量设置为true。
别忘了在if
上放一个警卫if (interstitial.isLoaded() && !ad_shown) {