本快速入門指南適用於希望使用 AdMob 通過使用 Firebase 構建的應用獲利的發布商和開發人員。如果您不打算在您的應用中包含 Firebase,請訪問獨立的 AdMob 指南。
如果您還沒有,請了解結合使用 AdMob、Firebase 和 Google Analytics 的所有優勢。
如果這是您第一次閱讀本指南,我們建議您下載並使用Google 移動廣告 C++ SDK 測試應用進行操作。
在你開始之前
如果您還沒有 Firebase 項目和 Firebase 應用程序,請遵循 Firebase 入門指南:將 Firebase 添加到您的 C++ 項目。
確保在您的 Firebase 項目中啟用了 Google Analytics:
如果您要創建新的 Firebase 項目,請在項目創建工作流程中啟用 Google Analytics。
如果您有一個未啟用 Google Analytics 的現有 Firebase 項目,您可以從您的Integrations選項卡中啟用 Google Analytics。
>項目設置的
第 1 步:在您的 AdMob 帳戶中設置您的應用
將您應用的每個平台變體註冊為 AdMob 應用。
向 AdMob 註冊您應用程序的每個平台變體。此步驟會創建一個具有唯一AdMob 應用程序 ID的 AdMob 應用程序,您將在本指南的後面部分用到它。
系統會要求您將移動廣告 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 App 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 Mobile Ads pod。
如果您還沒有 Podfile,請創建一個:
cd YOUR_APP_DIRECTORY
pod init
在您的 Podfile 中,為 Google Mobile Ads 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
的狀態為完成且其錯誤代碼為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 產品優化您應用中的廣告。
Remote Config使您能夠更改應用程序的行為和外觀,而無需為無限制的每日活躍用戶免費發布應用程序更新。
A/B 測試使您能夠測試對應用的 UI、功能或參與活動的更改,以了解它們是否會對您的關鍵指標(如收入和保留率)產生影響,然後再廣泛推廣這些更改。