【问题标题】:Interstitial ad is displayed with delay插页式广告延迟显示
【发布时间】: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


    【解决方案1】:

    我在本周的一些广告中注意到了这一点。似乎他们正在提供一种导致这种延迟的新型插页式广告,因为它以前从未发生过。在修复之前,我暂时禁用了文字和图片广告(因为视频广告似乎效果不错)。

    【讨论】:

      【解决方案2】:

      您无法量化您遇到的延迟。所以这个问题很难回答。但是,如果在您调用 show() 之前已经下载了广告,那么唯一的延迟将是渲染,这会受到您运行的硬件和您当时正在进行的其他处理的影响。

      【讨论】:

      • 听起来您有一个复杂的视图,可能会影响您的测量。建议您使用 AdView 创建一个非常简单的 Activity 并记录新的统计信息。这也可能会导致您的视图出现问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多