Bis*_*ret 2 android interstitial
我在我的应用中运行插页式广告,但我不确定如何预加载它们,以便用户看起来是即时的.通常它可能需要长达10秒,并且用户已经移动到应用程序的不同区域,这非常烦人.
这是应用程序的相关代码:
private void launchInterstitial() {
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId("ca-app-pub-xxxxxxxxxxxxxxxx");
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
showAdInter();
}
@Override
public void onAdFailedToLoad(int errorCode) {
String message = String.format("onAdFailedToLoad (*a)", getErrorReason(errorCode));
}
@Override
public void onAdClosed() {
if (exitApp) {
finish();
}
}
});
}
private void showAdInter() {
if (interstitialAd.isLoaded()){
interstitialAd.show();
} else {
Log.d("","Interstitial ad failed to load");
}
}
public void loadInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("Fxxxxxxxxxxxxxxxxxxxxx")
.build();
interstitialAd.loadAd(adRequest);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试在活动启动时调用launchInterstitial()和loadInterstitial(),然后在我希望广告出现时调用showAdInter(),但它不会那样工作.
有人有主意吗?
无法相信没有人知道这件事,或者不愿意提供帮助.我会在这里发布答案,希望这实际上可以帮助有需要的人.我在onCreate()中调用以下方法:
requestNewInterstitial();
Run Code Online (Sandbox Code Playgroud)
方法如下:
private void requestNewInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.build();
mInterstitialAd.loadAd(adRequest);
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个adlistener,以便在关闭广告后再次在后台重新加载广告:
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
requestNewInterstitial();
}
});
Run Code Online (Sandbox Code Playgroud)
我调用requestNewInterstitial(); 在我的onBackPressed()方法上.
这会产生平滑的结果,插页式广告会瞬间出现.
| 归档时间: |
|
| 查看次数: |
1767 次 |
| 最近记录: |