2017-06-02 14 views
0

インターバル広告の後にインタースティシャル広告が表示されました。私のコードは1回だけ表示されます(60秒後)。 60秒ごとにインタースティシャル広告を表示したいのですが私のコードは以下の通りです..私は、これは広告をこのように実装するのは良い考えではありません知っているが、私はこれを必要とする:インタースティシャル広告が繰り返されていません

package com.ronie.admobads; 

import android.os.Handler; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import com.google.android.gms.ads.AdListener; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.google.android.gms.ads.InterstitialAd; 

public class MainActivity extends AppCompatActivity { 
    InterstitialAd mInterstitialAd; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

// Banner Ad 
     AdView mAdView = (AdView) findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     mAdView.loadAd(adRequest); 

// Prepare the Interstitial Ad 
     mInterstitialAd = new InterstitialAd(MainActivity.this); 

// Insert the Ad Unit ID 
     mInterstitialAd.setAdUnitId(getString(R.string.admob_interstitial_id)); 
     mInterstitialAd.loadAd(adRequest); 


     mInterstitialAd.setAdListener(new AdListener() { 
      public void onAdLoaded() { 
       Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        public void run() { 
         MainActivity.this.mInterstitialAd.show(); 
        } 
       }, 60000); 
      } 
     }); 
    } 
} 

@Abhishek、私はあなたの方法を試してみましたが、インタースティシャル広告は表示されません。私はバナー広告しか見ることができません。私がコードのどこかで間違っているかどうか確認してください。 完全なコードは以下の通りです:

package com.ronie.admobads; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import com.google.android.gms.ads.AdListener; 
import com.google.android.gms.ads.AdRequest; 
import com.google.android.gms.ads.AdView; 
import com.google.android.gms.ads.InterstitialAd; 

import java.util.concurrent.Executors; 
import java.util.concurrent.ScheduledExecutorService; 
import java.util.concurrent.TimeUnit; 

public class MainActivity extends AppCompatActivity { 
    InterstitialAd mInterstitialAd; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

// Banner Ad 
     AdView mAdView = (AdView) findViewById(R.id.adView); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     mAdView.loadAd(adRequest); 

// Prepare the Interstitial Ad 
     mInterstitialAd = new InterstitialAd(MainActivity.this); 

// Insert the Ad Unit ID 
     mInterstitialAd.setAdUnitId(getString(R.string.admob_interstitial_id)); 
     mInterstitialAd.loadAd(adRequest); 


     mInterstitialAd.setAdListener(new AdListener() { 
      public void onAdLoaded() { 
       // don't show Ad here 
      } 

      @Override 
      public void onAdClosed() { 
       createRequest(); //load request whenever ad closed by user 
      } 
     }); 

     ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); 
     scheduler.scheduleAtFixedRate(new Runnable() { 
      public void run() { 
       if (mInterstitialAd.isLoaded()) 
        mInterstitialAd.show(); 
       else 
        mInterstitialAd.show(); 
       createRequest(); 
      } 
     }, 1,1, TimeUnit.MINUTES); 
    } 

     public void createRequest(){ 

      AdRequest adRequest = new AdRequest.Builder().build(); 
      mInterstitialAd.loadAd(adRequest); 
     } 

    } 
+0

あなたは、インタースティシャルを許可しないで実装しようとしています。コードを書くことが正しい方法であるとは限りません。これを行うとアプリが禁止されます –

+0

これはAdMobのサービス規約違反です。 –

答えて

0

あなたはこの方法であなたのイベントのスケジュールを設定することができます

createRequest(); 

mInterstitialAd.setAdListener(new AdListener() { 
      public void onAdLoaded() { 
       // don't show Ad here 
      } 

      @Override 
      public void onAdClosed() { 
       createRequest(); //load request whenever ad closed by user 
      } 
     }); 

ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); 
scheduler.scheduleAtFixedRate(new Runnable() { 
       public void run() { 
        if(mInterstitialAd.isLoaded()) 
         mInterstitialAd.show(); 
        else 
         createRequest(); 
       } 
      }, 1, 1, TimeUnit.MINUTES); 

そしてcreateRequest方法

public void createRequest(){ 

    AdRequest adRequest = new AdRequest.Builder().build(); 
    mInterstitialAd.loadAd(adRequest); 
} 

EDIT

私のミス、I謝る、スレッドはdになるjava.lang.IllegalStateExceptionのためにeadしました。メインのUIスレッドで呼び出す必要があります。

+0

無料ですぐに確認します。 – Aryan

+0

ありがとうAbhishek、私はあなたの自由な時間を待っています。あなたが私をすぐに助けてくれることを願っています。 –

+0

@ SharifulRonie私は私の答えをチェックしてください – Aryan

関連する問題