【发布时间】:2015-11-05 12:58:04
【问题描述】:
我使用 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;
}
但广告展示需要一些时间。我添加了一些日志消息,它们显示广告已加载 onAdLoaded 被调用。
我测量了广告展示前的延迟,每次都不同。在 Nexus 5 (marshmallow) 上,它从 100 毫秒(很好)到 1500 毫秒(不好但很舒服)。但在 Nexus 7 (2012) 和 Nexus 10 等其他设备上,它的速度从 4s 到 6s 不等,这很糟糕。
我还遇到了搞砸了我的片段生命周期的问题。而且我必须更改从后台堆栈弹出的片段,这会有所帮助(我不会在广告显示之前删除片段,而是在 onAdClosed 之后执行此操作),但是此步骤不会消除广告显示之前的延迟。
所有这些步骤也在 8.3.0 上完成
谁能帮我消除这个延迟?
【问题讨论】:
标签: android admob google-play-services interstitial