我有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进行应用程序?
感谢您的所有评论。
答案 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);
}