我使用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;
}
但广告显示需要一些时间。我已添加了一些日志消息,并显示广告已加载到广告已加载。
我在广告展示之前测量了延迟,并且每次都有不同之处。在Nexus 5(棉花糖)上它是100毫秒,这是好的1500毫米,这是不好,但舒适。但是在Nexus 7(2012)和Nexus 10等其他设备上,它从4s到6s不等,这很糟糕。
此外,我遇到的问题搞砸了我的片段生命周期。我不得不改变从后台堆栈弹出的片段,这有助于(我不会在广告显示之前删除片段,但是在onAdClosed之后执行此操作),但此步骤在广告显示之前不会消除延迟。
所有这些步骤也在8.3.0上完成
有人可以帮助我消除这种延迟吗?
答案 0 :(得分:1)
本周我注意到了一些广告。他们似乎正在服务于一种导致这种延迟的新型间隙,因为它从未发生过。我暂时禁用了文字广告和图片广告(因为视频广告似乎运作良好),直到它被修复。
答案 1 :(得分:0)
您无法量化您遇到的延迟。所以很难回答这个问题。但是,如果在调用show()
之前已经下载了广告,那么唯一的延迟就是渲染,这会受到您运行的硬件以及您当时正在进行的其他处理的影响。