インタースティシャル広告は、ユーザーが閉じるまでアプリのインターフェース上に全画面表示される広告です。通常は画面が切り替わる際に アプリのフロー(アクティビティ間や次のアクティビティ間の一時停止時など) 獲得できます。アプリにインタースティシャル広告が表示される場合、ユーザーは選択肢を提示できます。 広告をタップしてリンク先に移動するか、広告を閉じて戻ります。 必要があります。 事例紹介。
このガイドでは、インタースティシャル広告を Android アプリや iOS アプリに組み込む方法について説明します Google Mobile Ads C++ SDK を使用します
前提条件
- スタートガイドの手順を完了します。
- (Android のみ)JNI
jobject
参照の使用経験があること( Android JNI に関するヒントをご覧ください)。
必ずテスト広告でテストする
アプリの開発とテストでは必ずテスト広告を使用し、配信中の実際の広告は使用しないでください。実際の広告を使用すると、アカウントが停止される可能性があります。
テスト広告を読み込むには、専用のテスト広告ユニット ID を使用すると、 インタースティシャルについては デバイスプラットフォームによって異なります
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
すべてのリクエストに対してテスト広告を返すように特別に構成されており、 独自のアプリでコーディング、テスト、デバッグを行う際に、自由に使用できます。 必ずご自身の広告ユニット ID に置き換えてください。 。
Mobile Ads SDK のテスト広告の仕組みについて詳しくは、 テスト広告。
実装
インタースティシャル広告を実装する主な手順は次のとおりです。
- 広告を読み込みます。
- コールバックを登録します。
- 広告を表示し、そのライフサイクル イベントを処理します。
InterstitialAd
を構成する
インタースティシャル広告は InterstitialAd
オブジェクトに表示されるので、最初のステップは
アプリにインタースティシャル広告を組み込むには、
InterstitialAd
オブジェクト。
アプリの C++ コードに次のヘッダーを追加します。
#include "firebase/gma/interstial_ad.h"
InterstitialAd
オブジェクトを宣言してインスタンス化します。firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
親ビューを VM にキャストして
InterstitialAd
インスタンスを初期化します。AdParent
型。親ビューは、Android への JNIjobject
参照です。Activity
、または iOS のUIView
へのポインタ。// my_ad_parent is a jobject reference to an Android Activity or // a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
フューチャーを変数として保持する代わりに、
InterstitialAd
オブジェクトでInitializeLastResult()
を呼び出して、初期化オペレーションのステータスを定期的に確認できます。役立つ可能性があります を使用して、グローバル ゲームループの初期化プロセスを追跡します。// Monitor the status of the future in your game loop: firebase::Future<void> result = interstitial_ad->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
firebase::Future
の使用について詳しくは、以下をご覧ください。
Future を使用してメソッドの完了ステータスをモニタリングする
呼び出し。
広告を読み込む
広告の読み込みは、LoadAd()
メソッドを
InterstitialAd
オブジェクト。読み込みメソッドでは、
InterstitialAd
オブジェクトであり、広告ユニット ID と AdRequest
があることを確認します。
渡されます。firebase::Future
が返されます。これを使用して状態をモニタリングできます。
結果を出力できます
次のコードは、InterstitialAd
が完了した後に広告を読み込む方法を示しています。
正常に初期化されました:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
コールバックに登録する
メッセージを受け取るためには、FullScreenContentListener
クラスを拡張する必要があります。
インタースティシャル広告の表示やライフサイクル イベントの通知を通知できます。カスタム
FullScreenContentListener
サブクラスは、
InterstitialAd::SetFullScreenContentListener()
メソッドを呼び出し、
広告が成功または失敗した場合のコールバックと
破棄されます。
次のコードは、クラスを拡張して広告に割り当てる方法を示しています。
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd
は使い捨てオブジェクトです。つまりインタースティシャルが
再表示することはできません。別のコンテナを読み込み、
OnAdDismissedFullScreenContent()
メソッドで
FullScreenContentListener
にすると、次のインタースティシャル広告の読み込みが
すぐに結果が表示されます
広告を表示する
インタースティシャルは、アプリの操作が一時中断するタイミングで表示される必要があります。ゲームレベルをクリアした後の合間やタスクが完了した直後などが適しています。FullScreenContentListener
を使用すると、広告がいつ表示されたかを判断できます。
全画面表示されたコンテンツを表示する場合、Show()
によって返される Future もシグナルを
広告が正常に表示されたとき
firebase::Future<void> result = interstitial_ad->Show();
ベスト プラクティス
- インタースティシャル広告がアプリに適した広告タイプかどうかを検討します。
- インタースティシャル広告は、画面の切り替わりがあるアプリで最適に機能します。「 画像の共有やゲームの完了など、アプリ内のタスクの終了 そのようなポイントが生まれます。ユーザーが休憩を期待しているため ユーザーの操作を妨げずにインタースティシャル広告を 体験できますアプリのワークフローのどの時点で ユーザーの反応を予測します。
- インタースティシャル広告を表示する際はアクションを一時停止してください。
- インタースティシャル広告にはさまざまなタイプ(テキスト、イメージ、
使用できます。アプリにインタースティシャル広告を表示する際は、アプリで一部のリソースの使用を停止して、広告でそのリソースを利用できるようにすることが重要です。たとえば、スペースを表示するための呼び出しを行うと、
アプリからの音声出力は、必ず一時停止してください。
音声の再生を再開するには、次の
OnAdDismissedFullScreenContent
メソッドを実行します。 インストールされているFullScreenContentListener
: ユーザーが ユーザーが広告の操作を終了したとき。また、サービスを一時的に停止することや、 広告の再生中に負荷の高い計算タスク(ゲームループなど)を 表示されます。これにより、処理が遅くなったり、 グラフィックが反応しない、動画が途切れる。 - 十分な読み込み時間を確保しましょう。
- インタースティシャル広告を適切なタイミングで表示することも大事ですが、それと同様に読み込みの待ち時間を短くすることも重要です。表示する前に広告を読み込むと、 アプリの表示が切り替わる際に インタースティシャル広告が完全に読み込まれていることを ディスプレイの 1 つです。
- 大量の広告をユーザーに表示することは避けてください。
- アプリでインタースティシャル広告の表示頻度を増やすと、 ユーザーエクスペリエンスの低下にも つながります クリック率の低下につながりますユーザーがそれほど頻繁にアクセスしないようにします。 中断されることがなくなります。
- インタースティシャルの表示に読み込み完了 Future を使用しないでください。
- ユーザー エクスペリエンスが低下する可能性があります。広告の読み込み前に広告が 表示されます。
参考情報
GitHub の例
- サンプルのソースコードを表示する クイックスタート アプリ 確認できます。
Mobile Ads Garage の動画チュートリアル
成功事例
次のステップ
- 独自のインタースティシャル広告ユニットを AdMob 管理画面:
- 詳しくは、広告のターゲット設定と インタースティシャル広告に関するガイドラインをご覧ください。