バナー広告

バナー広告は、デバイス画面の上部か下部に アプリのレイアウト内の一部分を使用して表示されます。アプリの操作中は画面に表示され続けますが、 一定時間が経過すると自動的に更新されるよう設定できます。モバイル広告を初めてお使いの場合は、この広告から始めることをおすすめします。事例紹介

前提条件

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

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

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

  • Android: ca-app-pub-3940256099942544/6300978111
  • iOS: ca-app-pub-3940256099942544/2934735716

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

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

実装

AdView を構成する

バナー広告は AdView オブジェクトに表示されるため、バナー広告を組み込む最初のステップは、AdView を作成して配置することです。

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

     #include "firebase/gma/ad_view.h"
  2. AdView オブジェクトを宣言してインスタンス化します。

      firebase::gma::AdView* ad_view;
      ad_view = new firebase::gma::AdView();
  3. AdSize を作成し、AdParent 親 ビューを使用して広告ビューを初期化します。親ビューは、Android Activity への JNI jobject 参照、または AdParent 型にキャストされた 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 result =
       ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner);
  4. Future を変数として保持する代わりに、 オブジェクトでAdViewを呼び出すことで、初期化オペレーションのステータスを 定期的に確認できます。InitializeLastResult()これは、グローバル ゲームループで初期化プロセスを追跡するのに役立ちます。

      // Monitor the status of the future in your game loop:
      firebase::Future<void> result = ad_view->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.
      }
    
  5. firebase::Future の操作について詳しくは、 Future を使用してメソッド 呼び出しの完了ステータスをモニタリングするをご覧ください

広告の位置を設定する

AdView の位置は、初期化後にいつでも設定できます。

firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);

広告を読み込む

AdView が初期化されたら、広告を読み込むことができます。

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);

AdRequest オブジェクトは単一の広告リクエストを表し、 ターゲティングなどの情報に関するプロパティを含みます。

広告を表示する

最後に、Show() を呼び出して画面に広告を表示します。このメソッドは、広告が初期化された後であればいつでも呼び出すことができます。

firebase::Future<void> result = ad_view->Show();

広告イベント

Google Mobile Ads C++ SDK には、AdListener クラスが用意されています。このクラスを拡張して AdView::SetListener() に渡すことで、広告 ビューの状態の変化について通知を受けることができます。

AdListener のメソッドの拡張は省略可能であるため、必要な メソッドを実装すれば問題ありません。以下に、AdListener メソッドをすべて拡張したクラスの実装例を示します。

class ExampleAdListener
    : public firebase::gma::AdListener {
 public:
  ExampleAdListener() {}
  void OnAdClicked() override {
    // This method is invoked when the user clicks the ad.
  }

  void OnAdClosed() override {
   // This method is invoked when the user closes the ad.
  }

  void OnAdImpression() override {
    // This method is invoked when an impression is recorded for an ad.
  }

  void OnAdOpened() override {
    // This method is invoked when an ad opens an overlay that covers the screen.
  }
};

ExampleAdListener* ad_listener = new ExampleAdListener();
ad_view->SetAdListener(ad_listener);

標準のバナーサイズについては、以下の表をご覧ください。

サイズ(単位はポイント、幅×高さ) 説明 対象 firebase::gma::AdSize の定数値
320×50 バナー 携帯電話とタブレット kBanner
320×100 バナー(大) スマートフォンとタブレット kLargeBanner
300×250 IAB レクタングル(中) スマートフォンとタブレット kMediumRectangle
468×60 IAB フルサイズ バナー タブレット kFullBanner
728×90 IAB ビッグバナー タブレット kLeaderboard
指定された幅 __×最適な高さ アダプティブ バナー スマートフォンとタブレット なし

カスタム広告サイズ

カスタムのバナーサイズを定義するには、幅と高さのパラメータを指定して firebase::gma::AdSize コンストラクタを使用し、希望のサイズを次のように設定します。

firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);

参考情報

GitHub の例

成功事例