バナー広告は、デバイス画面の上部か下部にアプリのレイアウト内の一部分を使用して表示されます。アプリの操作中は画面に表示され続けますが、一定時間が経過すると自動的に更新されるよう設定できます。モバイル広告を初めてお使いの場合は、この広告から始めることをおすすめします。事例紹介はこちらをご覧ください。
前提条件
- スタートガイドの手順を完了します。
- (Android のみ)JNI
jobject
参照の取り扱いに精通していること(Android JNI のヒントをご覧ください)。
必ずテスト広告でテストする
アプリの開発とテストでは必ずテスト広告を使用し、配信中の実際の広告は使用しないでください。実際の広告を使用すると、アカウントが停止される可能性があります。
テスト広告を読み込む最も簡単な方法は、バナー用のテスト専用広告ユニット ID を使用することです。この ID は、デバイス プラットフォームによって異なります。
- Android:
ca-app-pub-3940256099942544/6300978111
- iOS:
ca-app-pub-3940256099942544/2934735716
これらの広告ユニット ID は、すべてのリクエストに対してテスト広告を返すように特別に設定されており、アプリのコーディング、テスト、デバッグで自由に使うことができます。なお、テスト用 ID は、アプリを公開する前に必ずご自身の広告ユニット ID に置き換えてください。
Mobile Ads SDK のテスト広告の仕組みについて詳しくは、テスト広告をご覧ください。
実装
AdView
を構成する
バナー広告は AdView
オブジェクトに表示されるため、バナー広告を組み込む最初のステップは、AdView
を作成して配置することです。
アプリの C++ コードに次のヘッダーを追加します。
#include "firebase/gma/ad_view.h"
AdView
オブジェクトを宣言してインスタンス化します。firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
AdSize
を作成し、AdParent
親ビューを使用して広告ビューを初期化します。親ビューは、AndroidActivity
への JNIjobject
参照、またはAdParent
型にキャストされる iOSUIView
へのポインタです。// 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); フューチャーを変数として保持する代わりに、
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. }
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 には、広告ビューの状態の変化について通知を受けるために、拡張して AdView::SetListener()
に渡すことができる AdListener
クラスが用意されています。
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 の例
- GitHub で クイックスタート アプリの例のソースコードをご覧ください。