インタースティシャル広告は、ホストアプリのインターフェース上に表示されるフルスクリーン広告です。通常は、次のアクティビティの間や、ゲームのステージが切り替わる合間など、アプリの操作中に画面が切り替わるタイミングで表示されます。アプリにインタースティシャル広告が表示されると、ユーザーは広告をタップしてリンク先に移動するか、広告を閉じてアプリに戻るかを選択できます。
このガイドでは、インタースティシャル広告を Android アプリに組み込む方法について説明します。
前提条件
- Google Mobile Ads SDK 19.7.0 以降。
- スタートガイドを完了している。
必ずテスト広告でテストする
アプリの作成とテストの際は、実際の実際の広告ではなく、テスト広告を使用してください。実際の広告を使用すると、アカウントが停止される可能性があります。
以下の Android インタースティシャル向けのテスト専用広告ユニット ID を使用すると、テスト広告を簡単に読み込むことができます。
/6499/example/interstitial
この 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;
private static final String TAG = "MainActivity";
@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 val 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 の初期化と広告読み込みの最適化(ベータ版)を確認する。