每当您启动时,我的应用程序都会打开一个Publisher InterstitialAd,但当用户关闭时,它会重新打开。这个过程不断发生,然后您将无法使用应用程序,有人可以帮助我吗?

public void getIntertitalAds(boolean isPortraitMode)
{
    interstitial = new PublisherInterstitialAd(context);
    if(isPortraitMode)
        interstitial.setAdUnitId(tags.getAdUnitInterstitial());
    else
        interstitial.setAdUnitId(tags.getAdUnitInterstitialTablet());

    AdListener adListener = new AdListener() {

        @Override
        public void onAdLoaded() {
            super.onAdLoaded();

            if(interstitial!=null)
                interstitial.show();
        }

        @Override
        public void onAdClosed() {
            super.onAdClosed();

            interstitial = null;
        }
    };

    // Create ad request.
    PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
    .build();

    // Begin loading your interstitial.
    interstitial.setAdListener(adListener);
    interstitial.loadAd(adRequest);
}

最佳答案

切勿从interstitial.show()呼叫AdListener#onAdLoaded()。您无法控制何时调用它,这会带来非常差的用户体验。而是在应用程序的自然断点处调用interstitial.show()
无需为纵向和横向使用单独的AdUnitId。插页式广告是一样的。
getIntertitalAds()(sic)方法中的所有代码应为Activity#onCreate


我强烈怀疑您的问题源于1和3的组合。

关于android - 关闭后显示Android Publisher非页内广告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24284590/

10-13 03:28