本快速入門指南適用於想要使用 AdMob 通過 Firebase 構建的應用獲利的發布商和開發者。如果您不打算在應用中包含 Firebase,請訪問獨立的 AdMob 指南。
如果您還沒有了解過同時使用 AdMob、Firebase 和 Google Analytics(分析)的所有優勢,請了解一下。
如果這是您第一次閱讀本指南,我們建議您下載並使用Google 移動廣告 C++ SDK 測試應用程序進行操作。
在你開始之前
如果您還沒有 Firebase 項目和 Firebase 應用,請按照 Firebase 入門指南操作:將 Firebase 添加到您的 C++ 項目。
確保您的 Firebase 項目中啟用了 Google Analytics:
如果您要創建新的 Firebase 項目,請在項目創建工作流程期間啟用 Google Analytics。
如果您的現有 Firebase 項目未啟用 Google Analytics(分析),您可以從集成選項卡中啟用 Google Analytics。
>項目設置的
第 1 步:在 AdMob 帳戶中設置您的應用
將應用的每個平台變體註冊為 AdMob 應用。
使用 AdMob 註冊應用程序的每個平台變體。此步驟將創建一個帶有唯一AdMob 應用 ID 的AdMob 應用,您將在本指南的後面部分用到該 ID。
系統會要求您將移動廣告 SDK 添加到您的應用中。在本指南的後面部分中查找有關此任務的詳細說明。
將您的每個 AdMob 應用鏈接到相應的 Firebase 應用。
此步驟是可選的,但強烈建議這樣做。詳細了解啟用用戶指標並將 AdMob 應用關聯到 Firebase 的好處。
對於每個平台變體,請在 AdMob 帳戶的應用信息中心中完成以下兩個步驟:
啟用用戶指標以允許 AdMob 處理並顯示您 AdMob 帳戶中的精選分析數據。這也是將 AdMob 應用鏈接到 Firebase 所必需的設置。
將您的 AdMob 應用鏈接到現有 Firebase 項目和相應的 Firebase 應用。
確保您輸入的包名稱 (Android) 或捆綁包 ID (iOS) 與您為 Firebase 應用輸入的包名稱相同。在項目設置的您的應用卡中查找 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
文件中,添加GADApplicationIdentifier
鍵,其字符串值為您的AdMob 應用 ID 。
您可以通過編程方式進行此更改:
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
或者,在屬性列表編輯器中編輯它:
第 3 步:添加 Google 移動廣告 SDK
由於 Google 移動廣告 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 移動廣告 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 移動廣告 C++ SDK。
iOS系統
本部分中的步驟是如何將 Google 移動廣告 C++ SDK 添加到您的 iOS 項目的示例。
通過運行以下命令獲取 CocoaPods 版本 1 或更高版本:
sudo gem install cocoapods --pre
從解壓的 SDK 添加 Google 移動廣告窗格。
如果您還沒有 Podfile,請創建一個:
cd YOUR_APP_DIRECTORY
pod init
在您的 Podfile 中,添加 Google 移動廣告 C++ SDK 的 Pod:
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 移動廣告 C++ SDK。
第 4 步:初始化 Google 移動廣告 SDK
在加載廣告之前,請通過調用firebase::gma::Initialize()
初始化移動廣告 SDK。
此調用返回一個firebase::Future
,一旦初始化完成(或 30 秒超時後),該調用就會完成。僅調用此方法一次,並且盡可能早,最好是在應用程序啟動時調用。
以下是如何調用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::Future
。然後,您的應用程序可以輪詢Future
的status()
以確定初始化何時完成。完成後,您的應用程序可以調用result()
來獲取生成的AdapterInitializationStatus
。
返回Future
的方法有一個相應的“最後結果”方法,應用程序可以使用該方法來檢索給定操作的最新Future
。例如, firebase::gma::Initialize()
有一個名為firebase::gma::InitializeLastResult()
的相應方法,它返回一個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 文檔中的詳細實施說明。
橫幅
顯示在設備屏幕頂部或底部的矩形廣告
當用戶與應用程序交互時,橫幅廣告會保留在屏幕上,並且可以在一段時間後自動刷新。如果您是移動廣告新手,那麼它們是一個很好的起點。
實施橫幅廣告插頁式
全屏廣告覆蓋應用程序界面,直至用戶關閉
插頁式廣告最適合在應用程序執行流程的自然暫停時使用,例如游戲關卡之間或任務剛完成後。
實施插頁式廣告獎勵
獎勵用戶觀看短視頻以及與可玩廣告和調查互動的廣告
獎勵(或“基於獎勵”)廣告可以幫助免費遊戲用戶獲利。
其他感興趣的話題
查看用戶指標和分析數據
初始化後,移動廣告 SDK 會自動開始記錄應用程序中的分析事件和用戶屬性。您無需向應用添加任何額外代碼或實施任何廣告即可查看此數據。您可以在此處查看此分析數據:
在 AdMob 帳戶的用戶指標卡(主頁或應用程序信息中心)中,您可以查看從收集的分析數據中得出的精選用戶指標,例如平均會話持續時間、 ARPU和保留率。
在 Firebase 控制台的Analytics儀表板中,您可以查看關鍵指標的聚合統計數據和摘要。如果您添加適用於 Google Analytics 的 Firebase SDK ,您還可以在 Firebase 控制台中標記廣告系列的轉化並構建自定義受眾群體。
請注意,為了更好地表示ARPU和ARPPU指標,您可能希望在這些指標的收入計算中包含來自名為ecommerce_purchase
的分析自定義事件的數據(了解操作方法)。
(可選)使用 Google Analytics 和 Firebase 的更多功能
利用更多機會和功能來提高應用貨幣化和用戶參與度:
添加並使用適用於 Google Analytics 的 Firebase SDK
在您的應用程序中實現自定義事件日誌記錄。
標記自定義廣告活動的轉化。
在ARPU和ARPPU指標的收入計算中包含
ecommerce_purchase
事件數據。
要了解更多信息,請訪問將Google Analytics 和 Firebase 與 AdMob 應用結合使用的指南 。
在您的應用中使用其他 Firebase 產品
添加適用於 Google Analytics 的 Firebase SDK 後,可以使用其他 Firebase 產品來優化應用中的廣告。