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

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

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

前提条件

必ずテスト広告でテストする

アプリの作成とテストの際は、実際の実際の広告ではなく、テスト広告を使用してください。実際の広告を使用すると、アカウントが停止される可能性があります。

以下の Android インタースティシャル向けのテスト専用広告ユニット ID を使用すると、テスト広告を簡単に読み込むことができます。

ca-app-pub-3940256099942544/1033173712

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

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

広告を読み込む

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

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;
  private static final String TAG = "MainActivity";

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

    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.d(TAG, loadAdError.toString());
        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 val 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?.toString())
          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 onAdClicked() {
    // Called when a click is recorded for an ad.
    Log.d(TAG, "Ad was clicked.");
  }

  @Override
  public void onAdDismissedFullScreenContent() {
    // Called when ad is dismissed.
    // Set the ad reference to null so you don't show the ad a second time.
    Log.d(TAG, "Ad dismissed fullscreen content.");
    mInterstitialAd = null;
  }

  @Override
  public void onAdFailedToShowFullScreenContent(AdError adError) {
    // Called when ad fails to show.
    Log.e(TAG, "Ad failed to show fullscreen content.");
    mInterstitialAd = null;
  }

  @Override
  public void onAdImpression() {
    // Called when an impression is recorded for an ad.
    Log.d(TAG, "Ad recorded an impression.");
  }

  @Override
  public void onAdShowedFullScreenContent() {
    // Called when ad is shown.
    Log.d(TAG, "Ad showed fullscreen content.");
  }
});

Kotlin

mInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
  override fun onAdClicked() {
    // Called when a click is recorded for an ad.
    Log.d(TAG, "Ad was clicked.")
  }

  override fun onAdDismissedFullScreenContent() {
    // Called when ad is dismissed.
    Log.d(TAG, "Ad dismissed fullscreen content.")
    mInterstitialAd = null
  }

  override fun onAdFailedToShowFullScreenContent(adError: AdError?) {
    // Called when ad fails to show.
    Log.e(TAG, "Ad failed to show fullscreen content.")
    mInterstitialAd = null
  }

  override fun onAdImpression() {
    // Called when an impression is recorded for an ad.
    Log.d(TAG, "Ad recorded an impression.")
  }

  override fun onAdShowedFullScreenContent() {
    // Called when ad is shown.
    Log.d(TAG, "Ad showed fullscreen content.")
  }
}

広告を表示する

インタースティシャル広告は、アプリ操作の流れが自然に一時停止するタイミングで表示しましょう。ゲームのステージが切り替わる合間や、ユーザーがタスクを完了した後などがその好例です。インタースティシャルを表示するには、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

成功事例

次のステップ