我正在完成一个视频应用程序,我在离开视频activity时显示间隙广告。我只想每X分钟显示一次,但似乎每次我离开那个屏幕时它都在显示。
这是我的activity密码。
onCreate:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle b = getIntent().getExtras();
videoId = b.getString("videoId");
setContentView(R.layout.youtube_player);
interstitialAd= new InterstitialAd(this);
interstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen));
AdRequest adRequest = new AdRequest.Builder().build();
interstitialAd.loadAd(adRequest);
etc...
onbackpressed:
@Override
public void onBackPressed() {
ShowAds();
}
private void ShowAds() {
if (interstitialAd.isLoaded()) {
interstitialAd.show();
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
finish();
}
});
}else{
super.onBackPressed();
}
}`
当然,在admob中是这样设置的:
注意:我的应用程序没有发布,所以它正在显示“预览”o“示例”。我正在使用我的广告单元ID:
谢谢,
两种选择:
>
间隙广告显示当我离开当前的activity,但只有当我在当前的activity完成X分钟。
boolean isAdShow=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int minute=1; // X minute
isAdShow=false;
new CountDownTimer(minute*60000,1000) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
isAdShow=true;
}
}.start();
}
private void ShowAds() {
if (interstitialAd.isLoaded() && isAdShow) {
interstitialAd.show();
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
finish();
}
});
}else{
super.onBackPressed();
}
}
不需要等待用户按下后退按钮并离开当前activity,只需从定时器的onfinish()
方法调用showads()
即可。
我将推荐使用1st一个,因为它不会违反AdMob广告策略和用户体验。
编辑
您还可以使用X次计数器,例如当X=3
时,即在调用oncreate()
方法3次之后,可以显示AD。
public static int adCounter;
public static final int TIME_COUNTER=3; //Should be always greater than zero
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
adCounter++;
}
private void ShowAds() {
if (interstitialAd.isLoaded() && adCounter%TIME_COUNTER==0) {
interstitialAd.show();
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
super.onAdClosed();
finish();
}
});
}else{
super.onBackPressed();
}
}