このガイドは、Firebase を使用せずに AdMob で C++ アプリを収益化することをご希望のパブリッシャー様を対象としています。アプリに Firebase を組み込みたい場合や、 詳しくは このバージョンの Firebase バージョン ガイドをご覧ください。
Google Mobile Ads C++ SDK のアプリへの統合は、 広告を表示して収益を得ることができます。SDK を統合すると、次のことが可能になります。 インタースティシャルやリワードなどの広告フォーマットを選択し、手順に沿って 実装します。
Google Mobile Ads C++ SDK は、iOS と Android の Google Mobile Ads SDK をラップしています。
これらのプラットフォームでのみ利用可能ですGoogle Mobile Ads C++ SDK を使用すると
非同期オペレーションをサポートするために Firebase C++ コンストラクトを使用するため、
firebase::gma
Namespace。
このガイドを初めてお読みになる場合は、 Google Mobile Ads C++ テストをダウンロードし、そのまま使用できます アプリ。
前提条件
Android
- Android Studio 3.2 以降を使用している
- アプリのビルドファイルで次の値が使用されていることを確認します。
- 16 以上の
minSdkVersion
- 28 以上の
compileSdkVersion
- 16 以上の
iOS
- Xcode 13 以降を使用している
- iOS 10.0 以降をターゲットとする
AdMob アカウントでアプリを設定する
アプリを AdMob アプリとして登録する手順は次のとおりです。
アプリを登録 AdMob。このステップでは、AdMob の 固有の AdMob アプリ ID を持つアプリ これについては、このガイドの後半で説明します。
Google Mobile Ads C++ SDK をインストールする
Google Mobile Ads C++ SDK は firebase::gma
名前空間内に存在しているため、Firebase C++ SDK をダウンロードしてから、任意のディレクトリに解凍します。
Firebase C++ SDK はプラットフォーム固有ではありませんが、 プラットフォーム固有のライブラリ構成を使用します。
Android
CMake の使用をおすすめしますが、一般的な Firebase C++ SDK スタートガイドに libfirebase_app.a
と libfirebase_gma.a
をアプリにリンクするための ndk-build の手順についても示しています。
プロジェクトの
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}")
アプリを同期して、すべての依存関係に必要なバージョンがあることを確認します。
iOS
このセクションの手順は、Google モバイル広告を C++ SDK を iOS プロジェクトに追加します。
次のコマンドを実行して、CocoaPods バージョン 1 以降を取得します。
sudo gem install cocoapods --pre
解凍した SDK から Google Mobile Ads Pod を追加します。
Podfile がない場合は作成します。
cd APP_DIRECTORY
pod init
Podfile に、Google Mobile Ads C++ SDK の連続配信広告、 Google User Messaging Platform SDK と最小限の Firebase コア SDK (GMA C++ SDK で必須):
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
Pod をインストールし、Xcode で
.xcworkspace
ファイルを開きます。pod install
open APP.xcworkspace
Firebase C++ SDK の次のフレームワークをプロジェクトに追加します。
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
これで完了です。C++ アプリが Google Mobile Ads C++ SDK を使用するように設定されている 他の Firebase サービスは必要ありません。
アプリの AdMob アプリ ID を設定する
Android
Mobile Ads SDK の設定のステップ 3 を行います Android ガイド このページに戻ってください
iOS
Mobile Ads SDK に記載されているInfo.plist のステップに従います iOS ガイドを確認して戻ってきてください このページにリンクできます
Google Mobile Ads SDK を初期化する
広告を読み込む前に、次の方法で Google Mobile Ads C++ SDK をアプリで初期化します。
firebase::gma::Initialize()
を呼び出して SDK を初期化し、
firebase::Future
初期化の完了後(または 30 秒が経過した後)
あります。この処理は 1 回だけ行います(アプリの起動時に行うのが理想的です)。
Initialize()
を呼び出すと、Google Mobile Ads C++ SDK またはメディエーション パートナーの SDK によって広告が事前に読み込まれる場合があります。欧州経済領域(EEA)内のユーザーから同意を得る必要がある場合は、リクエストに適したフラグ(tag_for_child_directed_treatment
や tag_for_under_age_of_consent
など)を設定するか、広告が読み込まれる前になんらかの対応策を取ってください。その後、Google Mobile Ads C++ SDK を初期化する前に firebase::gma::SetRequestConfiguration()
を呼び出して行ってください。詳細については、
ターゲティング ガイドをご覧ください。
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
を返すメソッドには、対応する「前回の結果」があります。メソッドを
アプリは、特定のアクションに対して最新の 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.
}
}
広告フォーマットの選択
これで Google Mobile Ads C++ SDK がインポートされ、 表示されます。AdMob にはさまざまな広告フォーマットが用意されており、その中から適切なものを選択できます アプリのユーザー エクスペリエンスに最適なアプリを選択できます。
バナー
デバイス画面の上部または下部に表示される長方形の広告です。 ユーザーがアプリを操作している間、バナー広告は画面に表示され続けます。 一定時間経過後に自動更新されますモバイル初心者の場合 その出発点として最適です
インタースティシャル
ユーザーが閉じるまでアプリのインターフェース上に全画面表示される広告です。 ゲームのレベルが切り替わる合間やタスクが完了した直後など、アプリの実行の流れが自然に一時停止するタイミングでの使用に適しています。
特典
短い動画の視聴や体験プレイを操作したユーザーに報酬を進呈する広告 表示されなくなります。無料アプリの収益化に使用されます。