2016-12-25 23 views
0

ユーザーがアプリを開いてアプリを最小化した後にアプリを再開したときに、AdMobインタースティシャル広告を読み込みたいとします。AdMobインタースティシャル広告繰り返しのonResume

@Override 
protected void onResume() { 
    super.onResume(); 
    mInterstitialAd = new InterstitialAd(this); 
    mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad)); 
    AdRequest request = new AdRequest.Builder() 
      .tagForChildDirectedTreatment(true) 
      .build(); 
    mInterstitialAd.loadAd(request); 

mInterstitialAd.setAdListener(new AdListener() { 
    public void onAdLoaded() { 
     showInterstitial(); 
    } 
}); 
} 

をしかし、広告が閉じた後、繰り返し荷重を保つ:

私はAdMobの間質広告onResumeをロードするには、次のコードを使用しています。 AdMobの設定で5分で1回の広告表示を制限しようとしましたが、動作しませんでした。広告の繰り返し読み込みを防止するにはどうすればよいですか?

答えて

1

ユーザーがアプリを開いて、 がアプリを最小化した後にアプリを再開したときにAdMobインタースティシャル広告を読み込みたいとします。

これは、インタースティシャルのベストプラクティス(https://support.google.com/admob/answer/6201362?hl=en&ref_topic=2745287)によって禁止されています。

コードによって回線が作成されます。アクティビティのonResume()にインタースティシャルを読み込み、onAdLoaded()が発生した場合に表示しています。ただし、onAdLoaded()が発生した場合、インタースティシャルは以前から表示されている必要があります。インタースティシャルはまだ周囲にあるため、インタースティシャル(showInterstitial())を表示するonAdLoaded()を送信し、別のonAdLoaded()を送信します。showInterstitial()が繰り返し呼び出されます。

showInterstitial()に電話する前に、広告リクエストを早めに送信し、isLoaded()のチェックを利用する必要があります。

アプリの起動時に広告リクエストを送信します。

// Initialize the Mobile Ads SDK. 
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713"); 

// Create the InterstitialAd and set the adUnitId. 
mInterstitialAd = new InterstitialAd(this); 

// Defined in res/values/strings.xml 
mInterstitialAd.setAdUnitId(getString(R.string.ad_unit_id)); 

if (!mInterstitialAd.isLoading() && !mInterstitialAd.isLoaded()) { 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     mInterstitialAd.loadAd(adRequest); 
} 

を次に、あなたのshowInterstitial()でこれを置く:

if (mInterstitialAd != null && mInterstitialAd.isLoaded()) { 
      mInterstitialAd.show(); 
} 

EDIT:あなただけのアプリで論理的なブレークポイントでshowInterstitial()を呼び出します。アプリの起動やアプリのexitにインタースティシャル広告を表示しても、AdMobのインタースティシャルのベストプラクティスに準拠していません。