2015-11-05 94 views
1

我使用google-play-services 8.1.0(但它也在7.8.0上测试过)。我创建AdMob插页与此代码:插页式广告延迟显示

_interstitialAd = new InterstitialAd(this); 
_interstitialAd.setAdUnitId(getString(R.string.interstitial_admob)); 
_interstitialAd.setAdListener(new AdListener() { 
    @Override 
    public void onAdClosed() { 
     Logger.log("onAdClosed"); 
     requestNewInterstitial(); 
    } 

    public void onAdFailedToLoad(int errorCode) { 
     Logger.log("onAdFailedToLoad"); 
    } 

    public void onAdLeftApplication() { 
     Logger.log("onAdLeftApplication"); 
    } 

    public void onAdOpened() { 
     Logger.log("onAdOpened"); 
    } 

    public void onAdLoaded() { 
     Logger.log("onAdLoaded"); 
    } 
}); 
requestNewInterstitial(); 

一些用户动作后,我打电话

if (_interstitialAd.isLoaded()) { 
     _interstitialAd.show(); 
     return; 
    } 

但是它需要一些时间显示的广告。我添加了一些日志消息,并显示广告已加载到AdLoaded上。

我测量了广告展示前的延迟时间,并且每次都不一样。在Nexus 5(棉花糖)它是从100毫秒,这是好的1500毫秒这是不好,但舒适。但在Nexus 7(2012)和Nexus 10等其他设备上,它从4秒到6秒不等,这很糟糕。

另外我得到了问题,它搞砸了我的片段生命周期。而且我必须更换来自后台的流片段,这有助于(我不会在广告展示前删除片段,而是在onAdClosed之后执行此操作),但此步骤不会在广告展示之前消除延迟。

所有这些步骤都在做8.3.0以及

任何人可以帮助我消除这种延迟?

回答

0

你不量化你正在经历的什么延迟。所以这个问题很难回答。但是,如果在您致电show()之前已经下载了广告,那么唯一的延迟就是渲染,这是由您运行的硬件以及您当时正在执行的其他处理所影响的。

+0

请看看我编辑的问题 – darkchaos

+0

听起来好像你有一个复杂的观点,可能会影响你的测量。建议您使用AdView创建一个非常简单的活动并记录新的统计信息。这可能也会导致你的观点出现问题。 – William

1

我注意到这与本周的一些广告。看起来他们正在服务一种导致这种延迟的新型间质性,因为它从未发生过。我暂时停用了文字和图片广告(因为视频广告似乎运作良好),直到它被修复。