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


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

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

前提条件

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

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

テスト広告は、次に示すインタースティシャル広告向けの専用テスト広告ユニット ID を使うと簡単に読み込むことができます。この ID はデバイス プラットフォームによって異なります。

  • Android: ca-app-pub-3940256099942544/1033173712
  • iOS: ca-app-pub-3940256099942544/4411468910

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

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

実装

インタースティシャル広告を組み込む主な手順は、以下のとおりです。

  1. 広告を読み込みます。
  2. コールバックを登録する
  3. 広告を表示してライフサイクル イベントを処理する

InterstitialAd を構成する

インタースティシャル広告は InterstitialAd オブジェクトに表示されるため、アプリにインタースティシャル広告を組み込む最初のステップは、InterstitialAd オブジェクトを作成して初期化することです。

  1. アプリの C++ コードに次のヘッダーを追加します。

     #include "firebase/gma/interstial_ad.h"

  2. InterstitialAd オブジェクトを宣言してインスタンス化します。

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();

  3. AdParent 型にキャストされた親ビューを使用して、InterstitialAd インスタンスを初期化します。親ビューは、Android Activity への JNI jobject 参照または 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);
    
  4. Future を変数として保持する代わりに、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 を使用してメソッド 呼び出しの完了ステータスをモニタリングするをご覧ください

広告を読み込む

広告の読み込みは、InterstitialAd オブジェクトの LoadAd() メソッドを使用して行います。読み込みメソッドでは、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 {