AdMob - 在Android活动中获得更好的表现

时间:2013-05-10 20:47:26

标签: android admob

我有Android应用程序,我在其中实施了AdMob广告。

我的布局代码非常简单 - 将AdView添加到LinearLayout:

<com.google.ads.AdView
    android:id="@+id/adMob1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="{AdID}" />

在onCreate()方法的MyActivity中,我正在调用:

    boolean showAdds = true;
    if(this.showAdds) {
        AdView adView = (AdView) findViewById(R.id.adMob1);
        adView.loadAd(new AdRequest());
    }

在AdMob实施后,在一些较旧的Android设备上(例如在三星Galaxy S1上测试过),应用程序非常慢。但是当我将“showAdds”变量设置为“false”时 - &gt;加载MyActivity要好得多。

是否有可能更快地使用admob进行应用程序?

感谢您的所有评论。

4 个答案:

答案 0 :(得分:7)

我也一直在努力使用AdView增加应用加载时间。我的解决方案是将广告代码移动到延迟处理程序(在onCreate中)......

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  @Override
  public void run() {
     AdRequest adRequest = new AdRequest.Builder().build();
     adView.loadAd(adRequest);
     adView.bringToFront();
  }
}, 5000);

所以现在应用程序快速启动,然后在5秒后加载广告视图。 (使用p.s.bringToFront是因为我的应用布局使用了XML和代码的混合,因此这会阻止adView被隐藏)

答案 1 :(得分:1)

adView在首次启动时在内部加载webview。它需要创建cookie商店等。这将花费长达2秒。如果您在adView之前加载webview,它将从中受益(可能在您的启动屏幕上)。

我在这里发现了这个提示: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/LdUVIZ2AW6M

答案 2 :(得分:-1)

要提高效果,请在广告的XML实施中使用ads:loadAdOnCreate="true"(然后您不需要调用该java代码,所有内容都将通过XML完成)

否则你可以删除布尔showadds。也许这会导致经济放缓。

我已经实现了没有此showadds代码的代码,并且它们可以在显示快速广告的较低设备上正常工作。

更多信息Here

答案 3 :(得分:-2)

将您的adView初始化移至后台主题。

 onCreate(){
       //..some other stuff

       Runnable runnableAdView = new Runnable() {
          @Override
          public void run() {
              initAdView();
          }
        };
       new Thread(runnableAdView).start();
 }

  private void initAdView() {

    // Create the adView
    adView = new AdView(this, AdSize.BANNER, getResources().getString(
            R.string.admob_id));

    // Lookup your LinearLayout assuming its been given

    LinearLayout layout = (LinearLayout) findViewById(R.id.sound_share_screen_ad_container);

    // Add the adView to it
    layout.addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest adRequest = new AdRequest();
    //adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
    //...

    adView.loadAd(adRequest);
}