本快速入門指南適合想要使用 AdMob 的發布者和開發人員 透過以 Firebase 建構的應用程式營利 如果您不打算將 Firebase 納入應用程式,請前往 獨立式AdMob 指南。
如果您還不熟悉這個功能,請參閱 優點:AdMob、Firebase 和 和 Google Analytics 相加。
如果您是第一次瀏覽本指南,建議 下載,然後跟著 Google Mobile Ads C++ SDK 測試 app。
事前準備
如果您沒有 Firebase 專案和 Firebase 應用程式,請按照 Firebase 入門指南: 將 Firebase 新增至您的 C++ 專案。
請確認您的 Firebase 專案已啟用 Google Analytics:
如要建立新的 Firebase 專案,請啟用「Google Analytics」 專案建立流程
如果您現有的 Firebase 專案沒有 已啟用 Google Analytics,您可以從下列位置啟用 Google Analytics: 這個 整合項目 (
。 > 的分頁) 專案設定
步驟 1:在 AdMob 帳戶中設定應用程式
將應用程式的每個平台變化版本註冊為 AdMob 應用程式。
向應用程式的每個平台變化版本註冊 AdMob。這個 步驟會建立含有專屬 AdMob 的 AdMob 應用程式 應用程式 ID 這在本指南之後需要用到
系統會要求你在應用程式中加入 Mobile Ads SDK。尋找 本指南稍後會詳細說明這項工作。
將 AdMob 個應用程式連結至對應的 Firebase 應用程式。
這是選擇性步驟,但強烈建議執行。如想進一步瞭解來電目錄、轉接和錄音服務政策, 優點 啟用使用者指標並將 AdMob 應用程式連結至 Firebase。
請前往「應用程式」頁面,為每個平台變化版本完成下列兩個步驟 AdMob帳戶的資訊主頁:
啟用 使用者指標 ,以便 AdMob 處理及顯示以下項目的精選分析資料: AdMob 帳戶。該項設定也必須連結 AdMob 個應用程式至 Firebase。
連結您的 AdMob 個應用程式 連結至現有的 Firebase 專案和對應的 Firebase 應用程式。
請務必輸入相同的套件名稱 (Android) 或軟體包 ID (iOS) 與您為 Firebase 應用程式輸入的資料相同。尋找 Firebase 應用程式 登入「您的應用程式」資訊卡
專案設定 。 >
步驟 2:在應用程式中新增 AdMob 應用程式 ID
Android
新增
AdMob 應用程式 ID
加入應用程式的 AndroidManifest.xml
檔案中,方法是將 <meta-data>
標記新增為
如下所示。
<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 Mobile Ads SDK
由於 Google Mobile Ads C++ SDK 位於 firebase::gma
命名空間,
下載 Firebase C++ SDK。
然後解壓縮到您選擇的目錄。
Firebase C++ SDK 不限平台,但必須 特定平台專屬的程式庫設定
Android
- 敬上
在專案的
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 。
執行下列指令,取得 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 '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 Mobile Ads C++ SDK。
步驟 4:初始化 Google Mobile Ads SDK
載入廣告前,請先呼叫 Mobile Ads SDK,
firebase::gma::Initialize()
。
此呼叫會傳回在初始化後完成的 firebase::Future
完成 (或超過 30 秒逾時後)。請只呼叫此方法一次,
最好能盡早在應用程式啟動時
以下範例說明如何呼叫 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.
}
}
步驟 5:選擇要在應用程式中導入的廣告格式
AdMob 提供多種廣告格式,您可以 最適合應用程式的使用者體驗按下一種廣告格式後 如需詳細的導入操作說明,請參閱 AdMob 說明文件。
橫幅
顯示在裝置螢幕頂端或底部的矩形廣告
橫幅廣告會在使用者與應用程式互動時持續顯示在畫面上, 並重新整理。如果你剛開始使用行動裝置 都是很好的起點
導入橫幅廣告插頁式
全螢幕廣告會覆蓋應用程式介面,直到使用者關閉為止
插頁式廣告最適合用於應用程式流程中自然暫停的時間點 例如在遊戲關卡之間或任務完成後才執行。
導入插頁式廣告獎勵廣告
在使用者觀看短片及與可試玩廣告互動時提供獎勵的廣告 廣告和問卷調查
獎勵廣告 (又稱「獎勵型」) 廣告可透過免費遊戲使用者營利。
其他感興趣的主題
查看使用者指標和數據分析資料
初始化後,Mobile Ads SDK 會自動啟動 記錄分析 事件和 使用者屬性 即可。您不必將任何其他程式碼加入 應用程式或導入任何廣告您可以在這裡查看這項數據分析資料:
在 AdMob 帳戶 (「首頁」或「應用程式」) 的「使用者指標」資訊卡中 資訊主頁),您可以查看精選的使用者 指標 (衍生自 收集的分析資料,例如平均工作階段持續時間 每位使用者的平均收益 (ARPU) 和留存率。
在 Analytics 中 資訊主頁 您可以使用 Firebase 控制台,查看以下項目的匯總統計資料和摘要 重點指標。 如果發生以下情況: 新增 Google Analytics 專用的 Firebase SDK, 你也可以 將廣告活動的轉換標示為轉換 和 建立自訂目標對象 Firebase 控制台。
請注意,為了充分呈現
ARPU 和
ARPPU 指標,則
建議納入來自名為「自訂事件」的 Analytics 自訂事件資料
ecommerce_purchase
因此記錄了這些指標
(瞭解詳情)。
(選用) 使用更多 Google Analytics 和 Firebase 功能
掌握更多商機和功能,提高應用程式營利成效並 使用者參與度:
新增及使用 Google Analytics 專用的 Firebase SDK
導入自訂事件記錄功能 。
標記自訂廣告的轉換 廣告活動。
包含
ecommerce_purchase
個事件 這些資料 計算有關 每位使用者的平均收益 (ARPU) 和 ARPPU 指標。
在應用程式中使用其他 Firebase 產品
新增 Google Analytics 專用 Firebase SDK 後,使用其他 Firebase 來最佳化應用程式內廣告。
Remote Config 可讓您變更行為 但每日活躍使用者人數沒有上限。
A/B Testing 可讓你測試變更 應用程式 UI、功能或參與度廣告活動, 瞭解這類廣告活動是否會 對主要指標 (例如收益和留存率) 的影響