当前位置:  开发笔记 > Android > 正文

Admob插页式广告(全屏)不会显示

如何解决《Admob插页式广告(全屏)不会显示》经验,为你挑选了1个好方法。

我想在我的Android应用中显示全屏横幅.

onCreate我称之为这个功能:

@Override 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    showInterstitial();
}

我的功能:

private void showInterstitial() {

    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId(getString(R.string.ad_banner_id));
    interstitialAd.show();

    Toast.makeText(this, "Ad will load", Toast.LENGTH_SHORT).show();
}

我的应用程序将崩溃此消息:

引起:java.lang.IllegalStateException:必须在调用show之前在InterstitialAd上设置广告单元ID.

但是我在节目之前设置了广告ID,不是吗?



1> AndroidMecha..:

您没有要求loadAd()使用interstitialAd.插页广告应在您展示广告之前加载.

interstitialAd.loadAd(adRequest);

你也应该在打电话之前检查它是否已加载show().它可能无法立即使用,您可能希望在调用show之前提前加载它.

if(mInterstitial.isLoaded()){
            mInterstitial.show();
            AdRequest adRequest = new AdRequest.Builder().build();
            mInterstitial.loadAd(adRequest); //optionally load again if you plan to show another one
        }

可能的实施(改变它以满足您的要求)

所以基本上可以进入以下内容 onCreate()

    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId(getString(R.string.ad_banner_id));
    AdRequest adRequest = new AdRequest.Builder().build();
    interstitialAd.loadAd(adRequest);
    Toast.makeText(this, "Ad will load", Toast.LENGTH_SHORT).show();

showInterstitial()成为这个

private void showInterstitial() {
        if(mInterstitial.isLoaded()){
                mInterstitial.show();
                //optionally load again if you plan to show another one later
                AdRequest adRequest = new AdRequest.Builder().build();
                mInterstitial.loadAd(adRequest); 
            }
    }

注意:showInterstitial()如果要显示插页式广告,请致电.但是,在打电话后不是立即loadAd().如果网络延迟或广告内容比正常情况重,则需要花费一些时间才能加载一个内部广告,您可能会在几分之一秒内错过.

此外,这里是正确实施Admob Intersitials的文档.

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有