我有一个带有 Admob 广告的应用程序,但我发现当我使用它时,广告几乎从不刷新,因为我不更改活动,而是在按下按钮时更新文本视图。我曾尝试在 Google 上搜索此内容,但仍不满意。
我想告诉应用程序偶尔刷新添加,例如在单击两次按钮后或类似的东西。有谁知道如何做到这一点并可能有一些示例代码?
使用新的 SDK 现在是:
AdView.loadAd(new AdRequest());
旧 API 版本:
AdView.requestFreshAd();
新的 API 版本:
AdView.loadAd(new AdRequest());
refreshInterval
此外,您可以简单地使用布局 XML 文件中 AdView 元素的属性设置刷新间隔。或者,您可以通过 AdMob 网站上的帐户设置来设置应用中广告的刷新间隔。
文档: http ://code.google.com/mobile/ads/docs/android/intermediate.html#adrefresh
作为替代方案,您还可以让 Admob 以您指定的时间间隔为您刷新广告。在 Admob 中,转到“站点和应用程序”,然后单击所需应用程序的“管理设置”。然后点击“应用设置”。在“自动刷新”下,您可以更改应用中广告的刷新率。
编辑:使用新的 admob 界面,它位于 Monetize > My App Name > My Add Unit Name > Refresh Rate(感谢成熟鹅莓)
在新的 Api 版本AdRequest()
上,构造函数是私有的;你必须使用
AdRequest.Builder
类:
mAdView.loadAd(new AdRequest.Builder().build())
将活动中的 adView 声明为数据成员,然后在活动的构造函数中创建 Timer Task,如下所示
adView = (AdView) findViewById(R.id.adView);
TimerTask tt = new TimerTask() {
@Override
public void run() {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
adView.loadAd(new AdRequest());
}
});
}
};
Timer t = new Timer();
t.scheduleAtFixedRate(tt, 0, 1000 * 60);
//New AdRequest
ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(5);
scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
public void run() {
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
});
}
}, 0, 30, TimeUnit.SECONDS);
private AdRequest adRequest = null;
private void loadBannerRun() {
if(adRequest != null) {
adView.loadAd(adRequest);
return;
}
adView.setAdUnitId(BANNER_AD_TEST);
adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
请测试