AdMobの全画面広告(インタースティシャル広告)を実装する方法 | Androidアプリ開発

アプリの収益化をする上で広告を実装することは最もポピュラーな方法のひとつです。
特に全画面広告(インタースティシャル広告)はユーザ満足度を下げる可能性はあるものの、大幅な収益向上化がはかれます。

この記事ではAdMobの全画面広告(インタースティシャル広告)の実装方法について説明します。

AdMobのアプリ登録&プロジェクトにAdMobを導入する

AdMobのアプリ登録、プロジェクトへのFirebaseを用いたAdMob導入などは以下の記事に記載されています。まずはそちらをご覧ねがいます。

AdMobでインタースティシャルの広告ユニットを作成する

まずAdMobでインタースティシャル広告の広告ユニットを作成します。
まずアプリ選択後、左メニューの広告ユニットを選択します。
AdMobでインタースティシャル広告ユニットを作成する
次に「広告ユニットの追加」をクリックします。
AdMobでインタースティシャル広告ユニットを作成する
インタースティシャルを選択します。
AdMobでインタースティシャル広告ユニットを作成する
広告ユニット名を入力(後でレポートに表示されるときに使用されるだけなので好きなもので大丈夫です)して、「広告ユニットを作成」をクリックします。
AdMobでインタースティシャル広告ユニットを作成する
広告ユニットIDが表示されるのでメモしておきます(後でも確認可能です)。
AdMobでインタースティシャル広告ユニットを作成する

コードの実装

まずは、さきほどの広告ユニットIDをstring.xmlに登録しておきます。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="ads_AppId">ca-app-pub-XXXXXXXXXXXXXXX~XXXXXXXXXXX</string>
<string name="ads_UnitId_Interstitial">ca-app-pub-XXXXXXXXXXXX/XXXXXXXXXXX</string>
</resources>
次にAdMobバナー広告導入と同様にAndroidManifest.xmlに広告アプリIDを登録します。

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.areseiproject">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="@string/ads_AppId"
/>
</application>
</manifest>
次に、今回はテストのためにインタースティシャル広告を表示するボタンをつけておきます。
以下がサンプルコードです。

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"
>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Interstitial Ads"
android:onClick="click"
/>
</LinearLayout>
次にActivity.javaの実装です。
以下がサンプルコードです。
InterstitialAdsオブジェクトに広告ユニットIDをセット後に、AdRequestオブジェクトを生成し、広告のロードを開始します。
その後、showメソッドでインタースティシャル広告を表示させます。
public class MainActivity extends Activity {
InterstitialAd interstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, getString(R.string.ads_AppId));
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(getString(R.string.ads_UnitId_Interstitial));
AdRequest adRequest = new AdRequest.Builder()
.build();
interstitialAd.loadAd(adRequest);
}
public void click(View v) {
if(interstitialAd.isLoaded()) interstitialAd.show();
}
}
以上で最低限必要なコードの実装は完了です。
問題がなければボタンを押すと全画面広告が表示されるはずです。

しかし、以下の記事にも記載しましたが、AdMob実装直後やリクエストが少ないうちは広告は表示されませんので注意が必要です。 そこでここではテスト広告を表示してみましょう。
ここまでのサンプルコードをデバッグモードで起動します。
すると、コンソールに以下のようなメッセージが表示されます。
I/Ads: Use AdRequest.Builder.addTestDevice("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") to get test ads on this device.
このメッセージに従って、テストデバイスIDのコードを追加します。

MainActivity.java
public class MainActivity extends Activity {
InterstitialAd interstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, getString(R.string.ads_AppId));
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(getString(R.string.ads_UnitId_Interstitial));
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX") //これを追加
.build();
interstitialAd.loadAd(adRequest);
}
public void click(View v) {
if(interstitialAd.isLoaded()) interstitialAd.show();
}
}
そして、アプリを実行し、以下のように全画面広告が表示されれば成功です。
(ロードが完了しないと表示されないので、ボタンを押すまで多少時間を待つ必要があります)。
実装したインタースティシャルのテスト広告
バナー広告実装の記事で書いた通り、デバッグ中はテスト広告を表示することをオススメします。

実際の使用例

今回はボタンでインタースティシャル広告を表示しましたが、実際はActivityの推移の際に一定確率で表示させたりすることが多いようです。

また、インタースティシャル広告については禁止事項があるため注意です。
特にアプリ起動/終了時やユーザ操作を直接邪魔する行為はブラックリスト入りする可能性があります。
禁止事項の詳細は以下を参照ください。
https://support.google.com/admob/answer/6275345?hl=ja&ref_topic=2745287

広告が表示されないときは?

「広告の実装が完了したつもりだけど広告が表示されない!」という場合は
以下の記事によくある原因と対処方法をまとめていますので、そちらを参照ください。

まとめ

この記事ではAdMobの全画面広告(インタースティシャル広告)の実装の方法を説明しました。
タイトルとURLをコピーしました