このクイックスタート ガイドは、AdMob を使用して、Firebase で構築されたアプリを収益化したいパブリッシャーとデベロッパーを対象としています。
まだお持ちでない場合は、AdMob、Firebase、Google アナリティクスを組み合わせて使用するメリットをすべて学んでください。
このガイドを初めて使用する場合は、 Google Mobile Ads C++ SDK テスト アプリをダウンロードして使用することをお勧めします。
あなたが始める前に
Firebase プロジェクトと Firebase アプリがまだない場合は、Firebase スタート ガイドのAdd Firebase to your C++ projectに従ってください。
Firebase プロジェクトで Google アナリティクスが有効になっていることを確認します。
新しい Firebase プロジェクトを作成する場合は、プロジェクト作成ワークフローで Google アナリティクスを有効にします。
Google アナリティクスが有効になっていない既存の Firebase プロジェクトがある場合は、 統合] タブから Google アナリティクスを有効にできます。
>プロジェクト設定の [
ステップ 1: AdMob アカウントでアプリを設定する
アプリの各プラットフォーム バリアントを AdMob アプリとして登録します。
アプリの各プラットフォーム バリアントを AdMob に登録します。この手順では、このガイドの後半で必要になる固有のAdMob アプリ IDを持つ AdMob アプリを作成します。
Mobile Ads SDK をアプリに追加するよう求められます。このタスクの詳細な手順については、このガイドで後述します。
各 AdMob アプリを対応する Firebase アプリにリンクします。
この手順はオプションですが、強くお勧めします。ユーザー指標を有効にし、AdMob アプリを Firebase にリンクするメリットの詳細をご覧ください。
各プラットフォーム バリアントについて、AdMob アカウントのアプリダッシュボードで次の 2 つの手順を完了します。
ユーザー指標を有効にして、AdMob が AdMob アカウントで精選された分析データを処理および表示できるようにします。 AdMob アプリを Firebase にリンクするためにも必須の設定です。
AdMob アプリを既存の Firebase プロジェクトと対応する Firebase アプリにリンクします。
Firebase アプリに入力したものと同じパッケージ名 (Android) またはバンドル ID (iOS) を入力してください。 [ プロジェクト設定] の [アプリ]カードで、Firebase アプリのパッケージ名またはバンドル ID を見つけます。
> [
ステップ 2: AdMob アプリ ID をアプリに追加する
アンドロイド
以下に示すように<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
ファイルに、 AdMob アプリ IDの文字列値を持つGADApplicationIdentifier
キーを追加します。
この変更はプログラムで行うことができます。
<!-- 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 はプラットフォーム固有ではありませんが、プラットフォーム固有のライブラリ構成が必要です。
アンドロイド
プロジェクトの
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 ポッドを追加します。
Podfile をまだ持っていない場合は作成します。
cd YOUR_APP_DIRECTORY
pod init
Podfile に、Google Mobile Ads C++ SDK のポッドを追加します。
pod 'Google-Mobile-Ads-SDK'
ポッドをインストールしてから、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
を返します。このメソッドはできるだけ早く、理想的にはアプリの起動時に 1 回だけ呼び出します。
Initialize()
を呼び出す方法の例を次に示します。
アンドロイド
// 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 firebase::Future
が作成されて返されます。その後、アプリはFuture
のstatus()
をポーリングして、初期化がいつ完了したかを判断できます。完了すると、アプリはresult()
を呼び出して、結果のAdapterInitializationStatus
を取得できます。
Future
を返すメソッドには、アプリが特定のアクションの最新のFuture
を取得するために使用できる対応する「最終結果」メソッドがあります。たとえば、 firebase::gma::Initialize()
には firebase:: firebase::gma::InitializeLastResult()
::InitializeLastResult() という対応するメソッドがあり、アプリがfirebase::gma::Initialize()
への最後の呼び出しのステータスを確認するために使用できるFuture
を返します。 firebase::gma::Initialize()
.
Future
のステータスが complete で、エラー コードが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 コンソールのAnalyticsダッシュボードでは、集計された統計と主要指標の概要を表示できます。 Google アナリティクス用の Firebase SDK を追加すると、広告キャンペーンのコンバージョンをマークし、Firebase コンソールでカスタム オーディエンスを構築することもできます。
ARPUおよびARPPU指標をより適切に表すために、これらの指標の収益計算にecommerce_purchase
という分析カスタムイベントからのデータを含めることをお勧めします (方法を学ぶ)。
(オプション) Google アナリティクスと Firebase のその他の機能を使用する
アプリの収益化とユーザー エンゲージメントを改善するために、より多くの機会と機能を活用してください。
Google アナリティクス用の Firebase SDK を追加して使用する
アプリにカスタム イベント ログを実装します。
カスタム広告キャンペーンのコンバージョンをマークします。
ARPUおよびARPPU指標の収益計算に ecommerce_purchase
ecommerce_purchase
データを含めます。
詳細については、AdMob アプリで Google アナリティクスと Firebase を使用するためのガイドをご覧ください。
アプリで他の Firebase プロダクトを使用する
Google アナリティクス用の Firebase SDK を追加したら、他の Firebase プロダクトを使用してアプリ内の広告を最適化します。
Remote Configを使用すると、アプリの更新を公開することなく、アプリの動作と外観を無料で変更できます。毎日のアクティブ ユーザー数は無制限です。
A/B テストを使用すると、アプリの UI、機能、またはエンゲージメント キャンペーンの変更をテストして、主要な指標 (収益や維持率など) に影響を与えるかどうかを確認してから、変更を広く展開することができます。