2016-11-06 67 views
1

我开发了一款Android应用,并且整合了Google的adMob插页式广告。问题是在模拟器上广告成功显示,但在我的设备上显示不出来。我创建了AdMob上创建的广告单元ID,并将应用链接到了adMob。为什么插页式广告无法在设备上显示

这里是我的代码:

InterstitialAd mInterstitialAd; 

mInterstitialAd = new InterstitialAd(this); 
     mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen)); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     // Load ads into Interstitial Ads 
     mInterstitialAd.loadAd(adRequest); 
     mInterstitialAd.setAdListener(new AdListener() { 
      public void onAdLoaded() { 
       showInterstitial(); 
      } 
     }); 

现在showInterstitial()函数:

private void showInterstitial() { 
    Random r = new Random(); 
    if (mInterstitialAd.isLoaded()) { 
     new android.os.Handler().postDelayed(
       new Runnable() { 
        public void run() { 

         mInterstitialAd.show(); 
         AdRequest adRequest = new AdRequest.Builder().build(); 
         mInterstitialAd.loadAd(adRequest); 
        } 
       }, 
       r.nextInt(7000 - 5000) + 5000); 

    } 
} 

我添加了一个随机超时,当在加载广告就会显示出来。

,并在我的gradle这个文件我增加了以下内容:

compile 'com.google.android.gms:play-services-ads:9.8.0' 

NB。我在应用中添加了另一个横幅广告。

它工作得很好,这里的模拟器是截图:

enter image description here

任何一个有为什么插页式广告没有显示在设备上的任何想法? 。谢谢。

+0

你正在收到什么错误代码?检查Logcat输出。 – earthw0rmjim

回答

2

我解决了这个问题,但改变了我的呼叫showInterstitial()函数。问题与广告的加载有关。这里是我的解决办法:

@Override 
    public void onResume() { 
     // Start or resume the game. 
     super.onResume(); 
     showInterstitial(); 
    } 
    @Override 
    protected void onStart() { 
     super.onStart(); 
     showInterstitial(); 
    } 

我展示广告时活动开始或当它恢复,我们需要一个事件来显示广告。

这是我的声明的插页广告和我的showInterstitial()功能:

//Interstitial 
      private InterstitialAd mInterstitialAd; 
      mInterstitialAd = new InterstitialAd(this); 
      mInterstitialAd.setAdUnitId(getString(R.string.banner_ad_unit_interstitial)); 
      AdRequest adRequestInterstitial = new AdRequest.Builder().addTestDevice("deviceid").build(); 
      mInterstitialAd.loadAd(adRequestInterstitial); 

      mInterstitialAd.setAdListener(new AdListener() { 
       @Override 
       public void onAdClosed() { 

       } 

       @Override 
       public void onAdLoaded() { 
        mAdIsLoading = false; 
        showInterstitial(); 
       } 

       @Override 
       public void onAdFailedToLoad(int errorCode) { 
        mAdIsLoading = false; 
       } 
      }); 

这是我的结果对我的三星设备:

enter image description here

我认为这是问题。

+0

你是生命的救星..! :P感谢您帮助我赚取。大声笑 –

0

在创建广告请求时使用“addTestDevice(”“)”“方法。

AdRequest adRequest = new AdRequest.Builder().addTestDevice("deviceid").build(); 

deviceId可以通过在创建新广告后查看logcat输出来获得。 寻找“广告”标记日志中会显示addTestDevice(“一些价值”),同时请求广告。

1
AdRequest adRequest = new AdRequest.Builder().addTestDevice("deviceid").build(); 

用于测试设备。

相关问题