应用程序开始重复显示插页式广告,直到设备挂起

时间:2017-09-01 22:23:00

标签: android android-studio admob interstitial

我在我的应用上实施了插页式广告和横幅广告。当自动旋转关闭时,它们运行良好。但是当启用自动旋转时,每当屏幕方向发生变化时,我的应用会开始重复显示插页式广告,它会显示广告,直到设备挂起。 并且没有取消广告或反印的任何效果。 我还将广告限制设为

Ad unit-level: 1 impr / 2 minutes
App-level: 1 impr / 2 minutes

但它不起作用。

请建议我解决这个问题。

或者这是Admob的错误吗?

我把代码编写为:

@Override
protected void onCreate(Bundle savedInstanceState) {
    mInterstitialAd.setAdUnitId("*************");
    mInterstitialAd.loadAd(adRequest);

    mInterstitialAd.setAdListener(new AdListener(){
        public void onAdLoaded(){
            mInterstitialAd.show();
        }
    });

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_home);

}

@Override
protected void onStart() {
    super.onStart();
    if (mInterstitialAd.isLoaded()) {
        mInterstitialAd.show();
    }
}

1 个答案:

答案 0 :(得分:0)

@Override
protected void onStart() {
    super.onStart();
    if (mInterstitialAd.isLoaded()) {
        mInterstitialAd.show();
    }
}

在OnStart中加载广告是实施InterstitialAd的不正确方式。这是不允许的插页式广告实施之一" 不允许的示例:页面加载后插页式广告"。在这种情况下,您的广告可能会被禁止。阅读https://support.google.com/admob/answer/6201362?hl=en以了解所有不允许的实现。

当活动对用户可见时,始终会调用OnStart。因此,您的广告将多次加载,这又违反了插页式广告的实施(两次插页式广告实施之间应该有2次点击)。虽然您可以通过创建本地对象并仅显示一次但仍然不是正确的实现方式来克服。

应在特定用户操作上加载插页式广告。例如有关更多示例,请参阅链接https://developers.google.com/admob/android/interstitial

mMyButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mInterstitialAd.isLoaded()) {
            mInterstitialAd.show();
        } else {
            Log.d("TAG", "The interstitial wasn't loaded yet.");
        }
    }
});