インタースティシャル広告

インタースティシャル広告は、ホストアプリのインターフェース上に全画面表示される広告です。通常は、次のアクティビティに移行する前や、ゲームレベルをクリアした後の合間など、アプリの操作中に画面が切り替わるタイミングで表示されます。アプリにインタースティシャル広告が表示されると、ユーザーは広告をタップしてリンク先 URL に移動するか、広告を閉じてアプリに戻るかを選択することになります。 事例紹介

このガイドでは、インタースティシャル広告を Android アプリに統合する方法について説明します。

前提条件

  • Google Mobile Ads SDK 19.7.0 以降
  • スタートガイドの手順に沿って、Google Mobile Ads SDK をインポートし、Android マニフェストを更新していること

常にテスト広告でテストする

アプリの開発とテストでは必ずテスト広告を使用し、配信中の実際の広告は使用しないでください。実際の広告でテストすると、アカウントが停止される場合があります。

テスト広告を読み込む際は、次に示す Android インタースティシャル向けのテスト専用広告ユニット ID を使うと便利です。

ca-app-pub-3940256099942544/1033173712

この ID は、すべてのリクエストに対してテスト広告を返す特別な ID で、アプリのコーディング、テスト、デバッグで自由に使うことができます。なお、アプリを公開する前に、必ずテスト用 ID をご自身の広告ユニット ID に置き換えてください。

Mobile Ads SDK のテスト広告の仕組みについて詳しくは、テスト広告をご覧ください。

広告を読み込む

インタースティシャル広告を読み込むには、InterstitialAd の静的 load() メソッドを呼び出して、InterstitialAdLoadCallback を渡すと、読み込まれた広告または発生する可能性があるすべてのエラーを受け取ることができます。他の形式の読み込みコールバックと同様に、InterstitialAdLoadCallback では LoadAdError を利用して、より再現性の高いエラーの詳細を提供します。

Java

import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;

public class MainActivity extends Activity {

    private InterstitialAd mInterstitialAd;

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

      MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {}
      });
      AdRequest adRequest = new AdRequest.Builder().build();

      InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest,
        new InterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
        // The mInterstitialAd reference will be null until
        // an ad is loaded.
        mInterstitialAd = interstitialAd;
        Log.i(TAG, "onAdLoaded");
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Handle the error
        Log.i(TAG, loadAdError.getMessage());
        mInterstitialAd = null;
      }
    });
  }
}

Kotlin

import com.google.android.gms.ads.interstitial.InterstitialAd;
import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;
class MainActivity : AppCompatActivity() {
  private var mInterstitialAd: InterstitialAd? = null
  private final var TAG = 'MainActivity'
    override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)

      var adRequest = AdRequest.Builder().build()

      InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest, object : InterstitialAdLoadCallback() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
          Log.d(TAG, adError?.message)
          mInterstitialAd = null
        }

        override fun onAdLoaded(interstitialAd: InterstitialAd) {
          Log.d(TAG, 'Ad was loaded.')
          mInterstitialAd = interstitialAd
        }
      })
    }
}

FullScreenContentCallback を設定する

FullScreenContentCallback は、InterstitialAd の表示に関連するイベントを処理します。InterstitialAd を表示する前に、コールバックを以下のように設定してください。

Java

mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
  @Override
  public void onAdDismissedFullScreenContent() {
    // Called when fullscreen content is dismissed.
    Log.d("TAG", "The ad was dismissed.");
  }

  @Override
  public void onAdFailedToShowFullScreenContent(AdError adError) {
    // Called when fullscreen content failed to show.
    Log.d("TAG", "The ad failed to show.");
  }

  @Override
  public void onAdShowedFullScreenContent() {
    // Called when fullscreen content is shown.
    // Make sure to set your reference to null so you don't
    // show it a second time.
    mInterstitialAd = null;
    Log.d("TAG", "The ad was shown.");
  }
});

Kotlin

mInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
  override fun onAdDismissedFullScreenContent() {
    Log.d(TAG, 'Ad was dismissed.')
  }

  override fun onAdFailedToShowFullScreenContent(adError: AdError?) {
    Log.d(TAG, 'Ad failed to show.')
  }

  override fun onAdShowedFullScreenContent() {
    Log.d(TAG, 'Ad showed fullscreen content.')
    mInterstitialAd = null
  }
}

広告を表示する

インタースティシャル広告は、アプリの操作が一時中断するタイミングで表示される必要があります。ゲームレベルをクリアした後の合間やタスクが完了した直後などが適しています。インタースティシャルを表示するには、show() メソッドを使用します。

Java

if (mInterstitialAd != null) {
  mInterstitialAd.show(MyActivity.this);
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.");
}

Kotlin

if (mInterstitialAd != null) {
  mInterstitialAd?.show(this)
} else {
  Log.d("TAG", "The interstitial ad wasn't ready yet.")
}

おすすめの方法

インタースティシャル広告が自分のアプリに適しているかどうかをよく見極めましょう。
インタースティシャル広告は、画面の切り替わりがあるアプリに適しています。画像の共有やゲームレベルのクリアなど、アプリ内で特定のタスクが完了したタイミングがこうした移行ポイントになります。ユーザーも流れの中断を想定しているため、インタースティシャル広告を表示しても操作性を損ないません。アプリ操作のどのタイミングでインタースティシャル広告を表示し、ユーザーからどのような反応が得られる可能性があるかをご検討ください。
インタースティシャル広告を表示する際には必ずアクションを一時停止しましょう。
インタースティシャル広告には、テキスト、イメージ、動画などのさまざまな種類があります。アプリにインタースティシャル広告を表示する際は、一部のリソースの使用を停止して、広告でそのリソースを利用できるようにすることも重要です。たとえばインタースティシャル広告を呼び出して表示する際は、アプリの音声出力を一時停止します。
十分な読み込み時間を確保しましょう。
インタースティシャル広告の読み込みに時間がかからないようにすることは、適切なタイミングで表示することと同じくらい重要です。show() を呼び出す前に load() を呼び出して広告の読み込みを事前に完了しておくと、表示の段階で待ち時間が発生しません。
過度に広告を表示しないよう注意しましょう。
インタースティシャル広告の表示頻度を増やすことで収益の向上が見込める一方、ユーザーの操作性は損なわれ、クリック率の低下にもつながります。ユーザーがアプリを楽しめなくなるほど頻繁に広告を表示しないでください。

ソースコード

GitHub のサンプル

  • インタースティシャル広告のサンプルアプリ: Java | Kotlin

成功事例

次のステップ