【问题标题】:Admob interstial loadAd function too slowAdmob 插页式加载功能太慢
【发布时间】:2014-03-23 07:34:19
【问题描述】:

我最近使用 Admob 和 Google Play 服务库添加了一个插页式广告(顺便说一句,这仍然有很多问题)。

插页式广告效果很好,但调用如下:

// Begin loading interstitial
interstitial.loadAd(adInterstitialRequest);

非常慢,我的应用第一次启动最多会延迟 2 秒。

我能做些什么来避免这种情况?我完全按照谷歌here提供的例子。

仅供参考我尝试使用 AsyncTask 在后台加载广告,但似乎无法做到:

03-23 15:50:21.939: E/AndroidRuntime(3572): Caused by: java.lang.IllegalStateException: loadAd must be called on the main UI thread.

谢谢

【问题讨论】:

  • 如何在后台任务中使用 RunOnUIThread。用法说明:stackoverflow.com/a/10135376/1683141
  • 我需要的是避免使用这个 UI Thread 实际上,这个答案对我没有帮助。
  • 遇到同样的问题,引入新的 AdMob 会导致在某些设备上加载应用程序时出现大量延迟。横幅广告大约需要 3 秒,插页式广告大约需要 3 秒。这只是调用 loadAd 而不是实际显示广告。

标签: android admob google-play-services


【解决方案1】:

您是否在使用广告侦听器? 试试这个:

interstitial = new InterstitialAd(this);
interstitial.setAdUnitId(Your-ad-id-here);

// Create ad request.
AdRequest adRequest = new AdRequest.Builder()
        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build();

// Begin loading your interstitial.
interstitial.loadAd(adRequest);

interstitial.setAdListener(new AdListener() {
    public void onAdLoaded() {
        displayInterstitial();
    }
}

【讨论】:

    【解决方案2】:

    为避免您的应用启动速度变慢,请延迟初始化,直到您的活动已加载并可见:

                 mAdView.postDelayed(
                         new Runnable() {
                             @Override
                             public void run() {
                                 mAdView.loadAd(adRequest);
                             }
                         }, 500
                 );
    

    另见AdMob causes delay in displaying fragments

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多