2

我的应用程序在您启动时会打开一个 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);
}
4

1 回答 1

1
  1. 永远不要interstitial.show()AdListener#onAdLoaded(). 您无法控制何时调用它,并且它呈现出非常糟糕的用户体验。而是interstitial.show()在您的应用程序中的自然断点处调用。

  2. 纵向和横向不需要单独的 AdUnitId。无论如何,插页式广告都是一样的。

  3. 您的(原文如此)方法中的所有代码getIntertitalAds()都应该是Activity#onCreate

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

于 2014-06-19T10:28:14.727 回答