アプリ起動時広告は、アプリの読み込み画面を収益化することをお望みのパブリッシャー様を対象とした広告フォーマットです。ユーザーはアプリ起動時広告をいつでも閉じることができます。ユーザーがアプリをフォアグラウンドに移動したときに、アプリ起動時広告を表示します。
詳しくは、アプリ起動時広告のガイドラインをご覧ください。このガイドでは、Android アプリにアプリ起動時広告を組み込む方法を説明します。
始める前に
先に進む前に、次のことを実施してください。
- GMA Next-Gen SDK を設定します。
- テスト用のアプリ起動広告ユニット ID
ca-app-pub-3940256099942544/9257395921を使用します。- アプリの開発とテストでは、配信中の実際の広告ではなく、必ずテスト広告を使用してください。テスト広告ユニット ID を使用しない場合、アカウントが停止される可能性があります。
- アプリを公開する前に、この ID を広告ユニット ID に置き換えてください。
- GMA Next-Gen SDK のテスト広告について詳しくは、テスト広告を有効にするをご覧ください。
広告を読み込む
次の例では、1 つの広告を読み込んでいます。
Kotlin
// Load ads after you initialize MobileAds. AppOpenAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<AppOpenAd> { override fun onAdLoaded(ad: AppOpenAd) { // App open ad loaded. appOpenAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // App open ad failed to load. Log.e(TAG, "App open ad failed to load: ${adError.message}") appOpenAd = null } }, )
Java
// Load ads after you initialize MobileAds. AppOpenAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<AppOpenAd>() { @Override public void onAdLoaded(AppOpenAd ad) { // App open ad loaded. appOpenAd = ad; } @Override public void onAdFailedToLoad(LoadAdError adError) { // App open ad failed to load. Log.e(TAG, "App open ad failed to load: " + adError.getMessage()); appOpenAd = null; } });
テストの際は、テスト広告ユニット ID ca-app-pub-3940256099942544/9257395921 を使用します。
広告を表示する
アプリ起動時広告を表示するには、show メソッドを呼び出します。アプリ起動時広告は、読み込みから 4 時間後に期限切れになります。読み込みに 4 時間以上かかっているアプリ起動時広告は表示しないでください。
次の例では、広告を表示しています。
Kotlin
private fun showAd(appOpenAd: AppOpenAd, activity: Activity) { // Show the ad. appOpenAd.show(activity) }
Java
private void showAd(AppOpenAd appOpenAd, Activity activity) { // Show the ad. appOpenAd.show(activity); }
コールド スタートと読み込み画面を処理する
コールド スタートはアプリがディスクから起動するときに発生し、ウォーム スタートはアプリをメモリから再度開くときに発生します。コールド スタートでは、表示可能な読み込み済みの広告がありません。ウォーム スタートでは、読み込み済みの広告を表示できる場合があります。
コールド スタートでは、アプリが読み込まれて広告が表示される前に、ユーザーがアプリを操作することがあります。ユーザー エクスペリエンスを損なわないように、コールド スタート時のアプリ起動時広告は、アプリのアセットが読み込まれている読み込み画面からのみ表示してください。ユーザーがアプリの読み込みを待っている間に、アプリ起動時広告を表示します。アプリの初回起動時にアプリ起動時広告を表示しない。アセットの読み込みが完了し、広告の読み込みが完了する前にユーザーがメイン コンテンツに到達した場合は、広告を表示しないでください。
広告の表示中に読み込みを継続するには、バックグラウンド スレッドでアプリアセットを読み込みます。広告の表示中に読み込み画面の読み込みが完了した場合は、広告が閉じられたときのコールバック メソッドで読み込み画面を閉じます。
広告イベントをリッスンする
広告を表示する前に、広告のライフサイクル イベントをリッスンします。次の例では、広告イベントのコールバックを登録しています。
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = appOpenAd if (ad == null) { Log.e(TAG, "App open ad is not ready yet.") return } ad.adEventCallback = object : AppOpenAdEventCallback { override fun onAdShowedFullScreenContent() { // App open ad did show. } override fun onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // App open ad did record an impression. } override fun onAdClicked() { // App open ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (appOpenAd == null) { Log.e(TAG, "App open ad is not ready yet."); return; } appOpenAd.setAdEventCallback( new AppOpenAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // App open ad did show. } @Override public void onAdDismissedFullScreenContent() { // App open ad did dismiss. appOpenAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // App open ad failed to show. Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // App open ad did record an impression. } @Override public void onAdClicked() { // App open ad did record a click. } }); }