Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

C++プロジェクトでAdMobを使い始めましょう

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このクイックスタート ガイドは、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 アカウントでアプリを設定する

  1. アプリの各プラットフォーム バリアントを AdMob アプリとして登録します。

    1. AdMobアカウントにログインまたは登録します。

    2. アプリの各プラットフォーム バリアントを AdMob に登録します。この手順では、このガイドの後半で必要になる固有のAdMob アプリ IDを持つ AdMob アプリを作成します。

    Mobile Ads SDK をアプリに追加するよう求められます。このタスクの詳細な手順については、このガイドで後述します。

  2. 各 AdMob アプリを対応する Firebase アプリにリンクします。

    この手順はオプションですが、強くお勧めします。ユーザー指標を有効にし、AdMob アプリを Firebase にリンクするメリットの詳細をご覧ください。

    各プラットフォーム バリアントについて、AdMob アカウントのアプリダッシュボードで次の 2 つの手順を完了します。

    1. ユーザー指標を有効にして、AdMob が AdMob アカウントで精選された分析データを処理および表示できるようにします。 AdMob アプリを Firebase にリンクするためにも必須の設定です。

    2. 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 はプラットフォーム固有ではありませんが、プラットフォーム固有のライブラリ構成が必要です。

アンドロイド

  1. プロジェクトのgradle.propertiesファイルで、解凍した SDK の場所を指定します。

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. プロジェクトの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"
  3. モジュール (アプリ レベル) の 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
    }
  4. プロジェクトの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}")
  5. アプリを同期して、すべての依存関係に必要なバージョンがあることを確認します。

これで準備完了です。 C++ アプリは、Google Mobile Ads C++ SDK を使用するように設定されています。

iOS

このセクションの手順は、Google Mobile Ads C++ SDK を iOS プロジェクトに追加する方法の例です。

  1. 次を実行して、CocoaPods バージョン 1 以降を取得します。

    sudo gem install cocoapods --pre
  2. 解凍した SDK から Google Mobile Ads ポッドを追加します。

    1. Podfile をまだ持っていない場合は作成します。

      cd YOUR_APP_DIRECTORY
      pod init
    2. Podfile に、Google Mobile Ads C++ SDK のポッドを追加します。

      pod 'Google-Mobile-Ads-SDK'
    3. ポッドをインストールしてから、Xcode で.xcworkspaceファイルを開きます。

      pod install
      open YOUR_APP.xcworkspace
    4. 次のフレームワークを 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が作成されて返されます。その後、アプリはFuturestatus()をポーリングして、初期化がいつ完了したかを判断できます。完了すると、アプリは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 は、アプリから分析イベントユーザー プロパティのログを自動的に開始します。アプリにコードを追加したり、広告を実装したりすることなく、このデータを表示できます。この分析データは次の場所で確認できます。

ARPUおよびARPPU指標をより適切に表すために、これらの指標の収益計算にecommerce_purchaseという分析カスタムイベントからのデータを含めることをお勧めします (方法を学ぶ)。

(オプション) Google アナリティクスと Firebase のその他の機能を使用する

アプリの収益化とユーザー エンゲージメントを改善するために、より多くの機会と機能を活用してください。

  • Google アナリティクス用の Firebase SDK を追加して使用する

    詳細については、AdMob アプリで Google アナリティクスと Firebase を使用するためのガイドをご覧ください。

  • アプリで他の Firebase プロダクトを使用する

    Google アナリティクス用の Firebase SDK を追加したら、他の Firebase プロダクトを使用してアプリ内の広告を最適化します。

    • Remote Configを使用すると、アプリの更新を公開することなく、アプリの動作と外観を無料で変更できます。毎日のアクティブ ユーザー数は無制限です。

    • A/B テストを使用すると、アプリの UI、機能、またはエンゲージメント キャンペーンの変更をテストして、主要な指標 (収益や維持率など) に影響を与えるかどうかを確認してから、変更を広く展開することができます。