2016-05-31 5 views
4

一部のユーザーが意図的にバナー広告を何度もクリックしようとしています。これはアカウント停止または終了の問題に直面しています。何人かの限界(たとえば3)を超えた場合、広告の読み込みを停止する方法を誰かが知っていますか?バナー広告の読み込みを停止するにはどうすればよいですか?

AdView adView = (AdView) findViewById(R.id.adView); 
    AdRequest adRequest = new AdRequest.Builder() 
      .setRequestAgent("android_studio:ad_template").build(); 

    adView.loadAd(adRequest); 
    if(currentbannerclick>3) 
    { 

     // some code to not load the ad. 
    } 

答えて

0

広告がクリックされたかどうかは、アクティビティライフサイクルコールバックを使用して確認できます。ユーザーが広告をクリックした時間を知ることができ、adView.loadAd(adRequest);に電話するのは、ユーザーが広告をクリックしてしきい値を下回った場合に限られます。

0

これは動作するはずです:

private void loadAd() { 
    // This is a one element array because it needs to be declared final 
    // TODO: you should probably load the default value from somewhere because of activity restarts 
    final int[] currentBannerClick = {0}; 

    final AdView adView = (AdView) findViewById(R.id.adView); 
    adView.setAdListener(new AdListener() { 
     @Override 
     public void onAdOpened() { 
      super.onAdOpened(); 
      currentBannerClick[0]++; 
      if (currentBannerClick[0] > 3) { 
       adView.setVisibility(View.INVISIBLE); 
       adView.destroy(); 
      } 

      // TODO: save currentBannerClick[0] somewhere, see previous TODO comment 
     } 
    }); 

    if (currentBannerClick[0] <= 3) { 
     AdRequest adRequest = new AdRequest.Builder().addTestDevice(YOUR_DEVICE_ID).build(); 
     adView.setVisibility(View.VISIBLE); 
     adView.loadAd(adRequest); 
    } else { 
     adView.setVisibility(View.INVISIBLE); 
    } 
} 
1

のLinearLayoutのID =コンテナ AdViewのID = adView

if(currentbannerclick>3) 
    container.removeView(adView); 

をあなたの答えのために皆に感謝します。

+0

しかし、広告はまだバックグラウンドで読み込まれます。偽の印象を生み出すだろうか?私の答えを見ると、必要でない場合でも広告が読み込まれないことがわかります。 –

+0

それとは別に、 'adView.setVisibility(View.INVISIBLE);'をうまく使うことができます。今、人々は広告をクリックしてそれをなくすためです。 –

0

AdMobシステムでユーザー用に表示される広告の数を制限することもできます。あなたは、minut、hour、またはdayごとにユーザーあたり3つの広告の制限を設定することができます。

関連する問題