我正在完成视频应用,我在离开视频活动时会显示插页式广告。我只想每隔X分钟显示一次,但每次离开那个屏幕时都会显示出来。
这是我的活动代码。
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:
感谢,
答案 0 :(得分:1)
两个选项:
插页式广告会在我离开当前活动时显示,但仅限我在当前活动中完成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();
}
}
不要等待用户按下后退按钮并保留当前活动,只需从定时器的ShowAds()
方法拨打onFinish()
。
我建议使用1 st ,因为它不违反AdMob广告政策和用户体验。
修改强>
您还可以使用X次计数器,例如X = 3
,即3次onCreate()
方式调用后,有资格显示广告。
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();
}
}