Admob:每次展示的插页式广告

时间:2017-05-22 19:10:48

标签: android admob interstitial

我正在完成视频应用,我在离开视频活动时会显示插页式广告。我只想每隔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:

enter image description here

感谢,

1 个答案:

答案 0 :(得分:1)

两个选项:

  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();
        }
    }
    
  2. 不要等待用户按下后退按钮并保留当前活动,只需从定时器的ShowAds()方法拨打onFinish()

  3. 我建议使用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();
      }
    }