インタースティシャル広告は、ホストアプリのインターフェース上に全画面表示される広告です。通常は、次のアクティビティに移行する前や、ゲームのレベルが変わる際のポーズ画面など、アプリの画面が切り替わる自然なタイミングで表示されます。 アプリにインタースティシャル広告が表示されると、ユーザーは広告をタップしてリンク先に移動するか、広告を閉じてアプリに戻るかを選択できます。
このガイドでは、インタースティシャル広告を Android アプリに統合する方法について説明します。
Prerequisites
- Google Mobile Ads SDK 19.7.0 以降
- スタートガイドの手順を完了します。
常にテスト広告でテストする
アプリの開発とテストでは必ずテスト広告を使用し、配信中の実際の広告は使用しないでください。実際の広告を使用すると、アカウントが停止される可能性があります。
テスト広告を読み込む際は、次に示す Android インタースティシャル専用のテスト広告ユニット ID を使うと簡単です。
/6499/example/interstitial
この ID は、すべてのリクエストに対してテスト広告を返す特別な ID で、アプリのコーディング、テスト、デバッグで自由に使うことができます。なお、このテスト用 ID は、アプリを公開する前に必ずご自身の広告ユニット ID に置き換えてください。
Mobile Ads SDK のテスト広告の仕組みについて詳しくは、テスト広告をご覧ください。
広告を読み込む
インタースティシャル広告を読み込むには、AdManagerInterstitialAd
静的 load()
メソッドを呼び出して AdManagerInterstitialAdLoadCallback
を渡し、読み込まれた広告かエラーの可能性を受け取ります。他の形式の読み込みコールバックと同様に、AdManagerInterstitialAdLoadCallback
では LoadAdError
を利用して、より再現性の高いエラーの詳細を提供します。
Java
import com.google.android.gms.ads.admanager.AdManagerInterstitialAd; import com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback; public class MainActivity extends Activity { private AdManagerInterstitialAd mAdManagerInterstitialAd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build(); AdManagerInterstitialAd.load(this,"/6499/example/interstitial", adRequest, new AdManagerInterstitialAdLoadCallback() { @Override public void onAdLoaded(@NonNull AdManagerInterstitialAd interstitialAd) { // The mAdManagerInterstitialAd reference will be null until // an ad is loaded. mAdManagerInterstitialAd = interstitialAd; Log.i(TAG, "onAdLoaded"); } @Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { // Handle the error Log.d(TAG, loadAdError.toString()); mAdManagerInterstitialAd = null; } }); } }
Kotlin
import com.google.android.gms.ads.admanager.AdManagerInterstitialAd; import com.google.android.gms.ads.admanager.AdManagerInterstitialAdLoadCallback; class MainActivity : AppCompatActivity() { private var mAdManagerInterstitialAd: AdManagerInterstitialAd? = null private final var TAG = "MainActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) var adRequest = AdManagerAdRequest.Builder().build() AdManagerInterstitialAd.load(this,"/6499/example/interstitial", adRequest, object : AdManagerInterstitialAdLoadCallback() { override fun onAdFailedToLoad(adError: LoadAdError) { Log.d(TAG, adError?.toString()) mAdManagerInterstitialAd = null } override fun onAdLoaded(interstitialAd: AdManagerInterstitialAd) { Log.d(TAG, 'Ad was loaded.') mAdManagerInterstitialAd = interstitialAd } }) } }
FullScreenContentCallback を設定する
FullScreenContentCallback
は、InterstitialAd
の表示に関連するイベントを処理します。InterstitialAd
を表示する前に、コールバックを以下のように設定してください。
Java
mAdManagerInterstitialAd.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."); mAdManagerInterstitialAd = null; } @Override public void onAdFailedToShowFullScreenContent(AdError adError) { // Called when ad fails to show. Log.e(TAG, "Ad failed to show fullscreen content."); mAdManagerInterstitialAd = 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
mAdManagerInterstitialAd?.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.") mAdManagerInterstitialAd = null } override fun onAdFailedToShowFullScreenContent(adError: AdError?) { // Called when ad fails to show. Log.e(TAG, "Ad failed to show fullscreen content.") mAdManagerInterstitialAd = 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 (mAdManagerInterstitialAd != null) { mAdManagerInterstitialAd.show(MyActivity.this); } else { Log.d("TAG", "The interstitial ad wasn't ready yet."); }
Kotlin
if (mAdManagerInterstitialAd != null) { mAdManagerInterstitialAd?.show(this) } else { Log.d("TAG", "The interstitial ad wasn't ready yet.") }
ベスト プラクティス
- インタースティシャル広告がアプリに適した広告タイプかどうかを検討します。
- インタースティシャル広告は、自然な移行ポイント(画面の切り替わりなど)があるアプリに適しています。 画像の共有やゲームレベルの完了など、アプリ内でのタスクが完了すると、その時点になります。ユーザーはアクションの中断を期待しているため、操作性を損なうことなくインタースティシャル広告を簡単に表示できます。アプリ ワークフローのどの時点でインタースティシャル広告を表示し、ユーザーがそれにどう反応する可能性が高いかを必ず検討してください。
- インタースティシャル広告を表示するときは、必ず操作を一時停止してください。
- インタースティシャル広告には、テキスト、イメージ、動画など、さまざまなタイプがあります。アプリにインタースティシャル広告を表示する場合は、広告で使用できるよう、一部のリソースの使用を一時的に停止することも重要です。たとえば、インタースティシャル広告を表示するための呼び出しを行った場合は、アプリによるオーディオ出力を一時停止してください。
- 十分な読み込み時間を確保する。
- インタースティシャル広告を適切なタイミングで表示することが重要ですが、同様にユーザーが読み込みを待たずに済むようにすることも重要です。
show()
を呼び出す前にload()
を呼び出して、あらかじめ広告を読み込むことで、インタースティシャル広告が完全に表示されるタイミングでアプリを表示できます。 - 大量の広告をユーザーに表示しないようにしましょう。
- アプリ内のインタースティシャル広告の頻度を増やすことは、収益を増やすには良いように思えるかもしれませんが、ユーザー エクスペリエンスが低下し、クリック率が低下する可能性もあります。ユーザーがアプリを楽しめなくなるため、過度に頻繁に広告を表示するのは避けてください。
GitHub の例
次のステップ
- 広告のターゲット設定について確認します。
- 詳しくは、ユーザーのプライバシーについての記事をご覧ください。
- 最適化された SDK の初期化と広告読み込み(ベータ版)を確認する。