このクイックスタート ガイドは、Firebase で構築されたアプリを AdMob を使用して収益化したいパブリッシャーおよびデベロッパーを対象としています。Firebase をアプリに組み込む予定がない場合は、スタンドアロンの AdMob ガイドをご覧ください。
詳しくは、AdMob、Firebase、Google Analytics を併用するメリットをご覧ください。
このガイドを初めてお読みになる場合は、Google Mobile Ads C++ SDK テストアプリをダウンロードして使用しながら進めることをおすすめします。
始める前に
Firebase プロジェクトと Firebase アプリがまだない場合は、Firebase スタートガイドの C++ プロジェクトに Firebase を追加するをご覧ください。
Firebase プロジェクトで Google Analytics が有効になっていることを確認します。
Firebase プロジェクトを新たに作成する場合は、プロジェクトの作成ワークフローで Google Analytics を有効にします。
Google Analytics が有効になっていない既存の Firebase プロジェクトがある場合は、
の [ > [プロジェクト設定]統合] タブで Google Analytics を有効にできます。
ステップ 1: AdMob アカウントでアプリを設定する
アプリの各プラットフォーム バリアントを AdMob アプリとして登録します。
アプリの各プラットフォーム バリアントを AdMob に登録します。このステップでは、ガイドの後半で必要になる固有の AdMob アプリ ID を使用して、AdMob アプリを作成します。
Mobile Ads SDK をアプリに追加するよう求められます。このタスクの詳しい手順については、このガイドの後半をご覧ください。
各 AdMob アプリを対応する Firebase アプリにリンクします。
このステップは省略可能ですが、行っていただくことを強くおすすめします。詳しくは、ユーザーに関する指標を有効にし、AdMob アプリを Firebase にリンクするメリットをご確認ください。
プラットフォーム バリアントごとに、AdMob アカウントの [アプリ] ダッシュボードで次の 2 つのステップを行います。
ユーザーに関する指標を有効にして、AdMob が AdMob アカウントのキュレートされた分析データを処理、表示できるようにします。また、これは AdMob アプリを Firebase にリンクするために必須の設定でもあります。
既存の Firebase プロジェクトと対応する Firebase アプリに AdMob アプリをリンクします。
Firebase アプリに入力したものと同じパッケージ名(Android)またはバンドル ID(iOS)を入力してください。Firebase アプリのパッケージ名、バンドル ID は、
プロジェクト設定] の [マイアプリ] カードで確認できます。 > [
ステップ 2: AdMob アプリ ID をアプリに追加する
Android
次のように <meta-data>
タグを追加して、AdMob アプリ ID をアプリの AndroidManifest.xml
ファイルに追加します。
<manifest> <application> <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ADMOB_APP_ID"/> </application> </manifest>
iOS
アプリの Info.plist
ファイルに、GADApplicationIdentifier
キーと AdMob App ID の文字列値を追加します。
この変更は、次のようにプログラムで行うことができます。
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
または、プロパティ リストエディタで編集することもできます。
ステップ 3: Google Mobile Ads SDK を追加する
Google Mobile Ads C++ SDK は firebase::gma
名前空間内に存在しているため、Firebase C++ SDK をダウンロードしてから、任意のディレクトリに解凍します。
Firebase C++ SDK は特定のプラットフォームを必要としませんが、プラットフォーム固有のライブラリ構成が必要です。
Android
プロジェクトの
gradle.properties
ファイルで、解凍した SDK の場所を指定します。systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
プロジェクトの
settings.gradle
ファイルに、以下の内容を追加します。def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
モジュール(アプリレベル)の Gradle ファイル(通常は
app/build.gradle
)に、以下の内容を追加して、Google Mobile Ads C++ SDK のライブラリ依存関係を含めます。android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependency for the Google Mobile Ads C++ SDK apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { gma }
プロジェクトの
CMakeLists.txt
ファイルに、以下の内容を追加します。# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # Add the Google Mobile Ads C++ SDK. # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. set(firebase_libs firebase_gma firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
アプリを同期して、すべての依存関係に必要なバージョンがあることを確認します。
これで設定は完了です。C++ アプリは Google Mobile Ads C++ SDK を使用するように構成されました。
iOS
このセクションの手順は、Google Mobile Ads C++ SDK を iOS プロジェクトに追加する方法の一例です。
次のコマンドを実行して、CocoaPods バージョン 1 以降を取得します。
sudo gem install cocoapods --pre
解凍した SDK から Google Mobile Ads Pod を追加します。
Podfile がない場合は作成します。
cd YOUR_APP_DIRECTORY
pod init
Google Mobile Ads C++ SDK の Pod を Podfile に追加します。
pod 'Google-Mobile-Ads-SDK'
Pod をインストールし、Xcode で
.xcworkspace
ファイルを開きます。pod install
open YOUR_APP.xcworkspace
以下のフレームワークを Firebase C++ SDK からプロジェクトに追加します。
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
これで設定は完了です。C++ アプリは Google Mobile Ads C++ SDK を使用するように構成されました。
ステップ 4: Google Mobile Ads SDK を初期化する
広告を読み込む前に、firebase::gma::Initialize()
を呼び出して Mobile Ads SDK を初期化します。
この呼び出しにより、初期化の完了後(または 30 秒のタイムアウト後)に firebase::Future
が返されます。このメソッドはできるだけ早く、できればアプリの起動時に呼び出してください。
Initialize()
を呼び出す方法の例を次に示します。
Android
// Initialize the Google Mobile Ads library firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(jni_env, j_activity, &result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
iOS
// Initialize the Google Mobile Ads library. firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(&result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
Future
を使用してメソッド呼び出しの完了ステータスをモニタリングする
Future
を使用すると、非同期メソッド呼び出しの完了ステータスを特定できます。
たとえば、アプリが firebase::gma::Initialize()
を呼び出すと、新しい firebase::Future
が作成されて返されます。アプリは Future
の status()
をポーリングして、初期化が完了したタイミングを特定できます。初期化が完了すると、アプリは result()
を呼び出して結果の AdapterInitializationStatus
を取得できます。
Future
を返すメソッドには、それぞれ「前回の結果(LastResult)」を取得するメソッドが用意されています。アプリは、このメソッドを使用して特定のアクションの最新の Future
を取得できます。たとえば、firebase::gma::Initialize()
には firebase::gma::InitializeLastResult()
と呼ばれる対応するメソッドがあります。アプリは、このメソッドで返される Future
を使用して、firebase::gma::Initialize()
への前回の呼び出しのステータスを確認できます。
Future
のステータスが完了で、エラーコードが firebase::gma::kAdErrorCodeNone
の場合、オペレーションは正常に完了しています。
また、Future
が完了したときに呼び出すコールバックを登録することもできます。コールバックが別のスレッドで実行される場合もあるため、コードがスレッドセーフであることを確認してください。次のコード スニペットでは、コールバックに関数ポインタを使用しています。
// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
/*user_data=*/nullptr);
// The OnCompletion callback function.
static void OnCompletionCallback(
const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
// Called when the Future is completed for the last call to firebase::gma::Initialize().
// If the error code is firebase::gma::kAdErrorCodeNone,
// then the SDK has been successfully initialized.
if (future.error() == firebase::gma::kAdErrorCodeNone) {
// success!
} else {
// failure.
}
}
ステップ 5: アプリに実装する広告フォーマットを選択する
AdMob にはさまざまな広告フォーマットが用意されており、アプリのユーザー エクスペリエンスに合わせて最適なフォーマットを選択できます。広告フォーマットのボタンをクリックすると、AdMob のドキュメントで詳しい実装手順を確認できます。
バナー
デバイス画面の上部か下部に表示される長方形の広告です。
ユーザーがアプリを操作している間は画面に残り、一定の時間が経過すると自動的に更新されます。モバイル広告を初めて利用する場合、この広告から開始するのが最適です。
バナー広告を実装するインタースティシャル
ユーザーが閉じるまでアプリのインターフェース上に表示されるフルスクリーン広告です。
アプリの実行フロー間で違和感のないタイミング(ゲームでレベルが切り替わるときやタスクの完了直後など)に使用するのが最適です。
インタースティシャル広告を実装するリワード
短い動画を視聴したり体験プレイ広告やアンケートを操作したユーザーに特典を提供する広告です。
リワード(または「リワードベース」)広告は、無料ユーザーの収益化に効果的です。
その他のトピック
ユーザーに関する指標とアナリティクス データを表示する
初期化後、Mobile Ads SDK はアプリからのアナリティクス イベントとユーザー プロパティのロギングを自動的に開始します。このデータを表示するためにアプリへのコードの追加や広告の実装を行う必要はありません。アナリティクス データが確認できる場所は、次のとおりです。
AdMob アカウントの [ユーザーに関する指標] カード([ホーム] または [アプリ] ダッシュボード)では、平均セッション継続時間、ARPU、定着率など、収集されたアナリティクス データからキュレートされたユーザーに関する指標を表示できます。
Firebase コンソールの [アナリティクス] ダッシュボードでは、集計された統計情報と主要な指標の概要を表示できます。また、Google Analytics 用の Firebase SDK を追加すれば、Firebase コンソールで広告キャンペーンのコンバージョンをマークしたり、カスタム オーディエンスを作成したりもできます。
ARPU および ARPPU 指標の精度を高めるには、これらの指標の収益計算に ecommerce_purchase
というアナリティクス カスタム イベントのデータを含めることをおすすめします(詳細)。
(省略可)Google Analytics と Firebase のその他の機能を使用する
アプリの収益性とユーザー エンゲージメントを向上させるため、より多くの機能を活用します。
Google Analytics 用の Firebase SDK を追加して使用する
アプリにカスタム イベント ロギングを実装します。
カスタム広告キャンペーンのコンバージョンをマークします。
ecommerce_purchase
イベントデータを ARPU および ARPPU 指標の収益計算に含めます。
詳しくは、AdMob アプリで Google Analytics と Firebase を使用するためのガイドをご覧ください。
アプリで他の Firebase プロダクトを使用する
Google Analytics 用の Firebase SDK を追加したら、他の Firebase プロダクトを使用してアプリ内の広告を最適化します。
Remote Config を使用すると、アプリのアップデートを公開しなくても、アプリの動作と外観を変更できます。費用はかからず、1 日あたりのアクティブ ユーザー数に制限はありません。
A/B Testing では、アプリの UI、機能、エンゲージメント キャンペーンに関する変更点をテストすることで、変更を広範囲にロールアウトする前に、主な指標(収益や定着率など)に影響があるかどうかを確認できます。