AdMobでインタースティシャル広告の表示

AdMobではバナー広告だけでなく、画面全面に表示されるインタースティシャル広告も作成できます。

全面広告といってもそんなに難しい実装はなく、バナー広告と同じようにアプリに組み込めます。

ここでは、端末のBACKボタンが押されてアプリが終了したタイミングで全面広告を出す実装を紹介します。

広告ユニットの作成

初めにAdMobにログインしてインタースティシャル形式の広告を作ります。

「新しい広告ユニット」から広告フォーマットに「インタースティシャル」を選ぶだけです。

インタースティシャル広告でもバナーと同じように広告ユニットIDが必要になります。

実装例

InterstitialAdクラスがインタースティシャル広告の表示にを使うビューです。

インタースティシャル広告はバナーと違い、読み込みが終了しても自動的には表示されません。

そこでバックボタンが押されたときなどに明示的にshowメソッドで表示する必要があります。

例えば次のようなアクティビティでBACKボタン押下時に全面広告を表示できます。

public class MainActivity extends Activity
{
    private InterstitialAd interstitialAd;
    private final String AD_UNIT_ID = "ca-app-pub-0123456789012345/0123456789";
        ///広告ユニットID

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        /// インタースティシャルを作成。
        interstitialAd = new InterstitialAd(this);
        interstitialAd.setAdUnitId(AD_UNIT_ID);
        loadInterstitialAd();
        
        interstitialAd.setAdListener(new AdListener()
        {
            @Override
            public void onAdClosed() 
            {
                super.onAdClosed();
                loadInterstitialAd();
            }
        });
        
    }
    
    /**インタースティシャル広告の読み込み*/
    private void loadInterstitialAd()
    {
        AdRequest adRequest = new AdRequest.Builder().build();
        interstitialAd.loadAd(adRequest);
    }
    
    /**インタースティシャル広告の表示*/
    private voi showInterstitialAd()
    {
        if (!interstitialAd.isLoaded()) {
            return;
        }
        interstitialAd.show();
    }
    
    /**バックボタン押下時に広告表示*/
    @Override
    public void onBackPressed()
    {
        super.onBackPressed();
        
        showInterstitialAd();
    }
}

onBackPressedというアクティビティ内でBACKボタンを押したときに呼ばれるメソッドで広告を表示していますが、onDestroy内でもOKです。

もし広告が読み込み完了しているならアプリ終了と同時に次のような広告が表示されます。(エミュレーター上)

全面広告の例

インパクトはありますが、毎回終了するたびに表示されるのは鬱陶しく思われるかもしれないので5回に1回くらいの頻度で表示するのが良いみたいです。

関連項目
プライバシーポリシー