Hướng dẫn nhanh này dành cho nhà xuất bản và nhà phát triển muốn sử dụng AdMob để kiếm tiền từ ứng dụng được tạo bằng Firebase. Nếu bạn không dự định đưa Firebase vào ứng dụng, hãy truy cập vào hướng dẫn về AdMob độc lập.
Nếu bạn chưa biết, hãy tìm hiểu tất cả lợi ích khi sử dụng kết hợp AdMob, Firebase và Google Analytics.
Nếu đây là lần đầu tiên bạn đọc hướng dẫn này, bạn nên tải xuống và làm theo bằng ứng dụng kiểm thử SDK C++ cho Google Mobile Ads.
Trước khi bắt đầu
Nếu bạn chưa có dự án Firebase và ứng dụng Firebase, hãy làm theo hướng dẫn bắt đầu sử dụng Firebase: Thêm Firebase vào dự án C++.
Đảm bảo bạn đã bật Google Analytics trong dự án Firebase:
Nếu bạn đang tạo dự án Firebase mới, hãy bật Google Analytics trong quy trình tạo dự án.
Nếu có một dự án Firebase hiện có chưa bật Google Analytics, bạn có thể bật Google Analytics từ thẻ Tích hợp trong phần
. > Cài đặt dự án
Bước 1: Thiết lập ứng dụng trong tài khoản AdMob
Đăng ký từng biến thể nền tảng của ứng dụng dưới dạng ứng dụng AdMob.
Đăng ký từng biến thể nền tảng của ứng dụng bằng AdMob. Bước này tạo một ứng dụng AdMob có Mã ứng dụng AdMob riêng biệt mà bạn sẽ cần dùng trong phần sau của hướng dẫn này.
Bạn sẽ được yêu cầu thêm SDK Mobile Ads vào ứng dụng. Hãy xem hướng dẫn chi tiết về việc này ở phần sau của hướng dẫn này.
Liên kết từng ứng dụng AdMob với ứng dụng Firebase tương ứng.
Bước này không bắt buộc nhưng bạn nên thực hiện. Tìm hiểu thêm về lợi ích của việc bật chỉ số người dùng và liên kết ứng dụng AdMob với Firebase.
Đối với mỗi biến thể nền tảng, hãy hoàn thành hai bước sau trong trang tổng quan Ứng dụng của tài khoản AdMob:
Bật Chỉ số người dùng để cho phép AdMob xử lý và hiển thị dữ liệu phân tích được tuyển chọn trong tài khoản AdMob. Đây cũng là chế độ cài đặt bắt buộc để bạn có thể liên kết ứng dụng AdMob với Firebase.
Liên kết ứng dụng AdMob với dự án Firebase hiện có và ứng dụng Firebase tương ứng.
Đảm bảo rằng bạn nhập cùng một tên gói (Android) hoặc mã gói (iOS) như đã nhập cho ứng dụng Firebase. Tìm tên gói hoặc mã gói của ứng dụng Firebase trong thẻ Ứng dụng của bạn của
Cài đặt dự án . >
Bước 2: Thêm mã ứng dụng AdMob vào ứng dụng
Android
Thêm Mã ứng dụng AdMob vào tệp AndroidManifest.xml
của ứng dụng bằng cách thêm thẻ <meta-data>
như minh hoạ bên dưới.
<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
Trong tệp Info.plist
của ứng dụng, hãy thêm khoá GADApplicationIdentifier
có giá trị chuỗi là Mã ứng dụng AdMob.
Bạn có thể thực hiện thay đổi này theo phương thức lập trình:
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>
Bạn cũng có thể chỉnh sửa thẻ này trong trình chỉnh sửa danh sách tài sản như sau:
Bước 3: Thêm SDK quảng cáo trên thiết bị di động của Google
Vì SDK Google Mobile Ads C++ nằm trong không gian tên firebase::gma
, nên hãy tải SDK Firebase C++ xuống, sau đó giải nén SDK đó vào một thư mục mà bạn chọn.
SDK Firebase C++ không dành riêng cho nền tảng, nhưng yêu cầu cấu hình thư viện dành riêng cho nền tảng.
Android
Trong tệp
gradle.properties
của dự án, hãy chỉ định vị trí của SDK đã giải nén:systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
Thêm nội dung sau vào tệp
settings.gradle
của dự án: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"
Thêm nội dung sau vào tệp Gradle (ở cấp ứng dụng) của mô-đun (thường là
app/build.gradle
), bao gồm phần phụ thuộc thư viện cho SDK Google Mobile Ads C++.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 }
Thêm nội dung sau vào tệp
CMakeLists.txt
của dự án.# 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}")
Đồng bộ hoá ứng dụng để đảm bảo rằng tất cả phần phụ thuộc đều có các phiên bản cần thiết.
Bạn đã hoàn tất! Ứng dụng C++ của bạn được định cấu hình để sử dụng SDK C++ của Google Mobile Ads.
iOS
Các bước trong phần này là ví dụ về cách thêm SDK C++ cho Google Mobile Ads vào dự án iOS.
Tải CocoaPods phiên bản 1 trở lên bằng cách chạy:
sudo gem install cocoapods --pre
Thêm nhóm Google Mobile Ads từ SDK đã giải nén.
Tạo Podfile nếu bạn chưa có:
cd YOUR_APP_DIRECTORY
pod init
Thêm pod cho SDK C++ của Google Mobile Ads vào Podfile:
pod 'Google-Mobile-Ads-SDK'
Cài đặt pod, sau đó mở tệp
.xcworkspace
trong Xcode.pod install
open YOUR_APP.xcworkspace
Thêm các khung sau đây từ SDK Firebase C++ vào dự án:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
Bạn đã hoàn tất! Ứng dụng C++ của bạn được định cấu hình để sử dụng SDK C++ của Google Mobile Ads.
Bước 4: Khởi chạy SDK quảng cáo trên thiết bị di động của Google
Trước khi tải quảng cáo, hãy khởi chạy SDK Mobile Ads bằng cách gọi firebase::gma::Initialize()
.
Lệnh gọi này trả về một firebase::Future
hoàn tất sau khi quá trình khởi chạy hoàn tất (hoặc sau khi hết thời gian chờ 30 giây). Chỉ gọi phương thức này một lần và càng sớm càng tốt, tốt nhất là khi khởi chạy ứng dụng.
Dưới đây là ví dụ về cách gọi 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. }
Sử dụng Future
để theo dõi trạng thái hoàn tất của lệnh gọi phương thức
Future
cung cấp cho bạn một cách để xác định trạng thái hoàn tất của các lệnh gọi phương thức không đồng bộ.
Ví dụ: khi ứng dụng của bạn gọi firebase::gma::Initialize()
, một firebase::Future
mới sẽ được tạo và trả về. Sau đó, ứng dụng của bạn có thể thăm dò ý kiến status()
của Future
để xác định thời điểm quá trình khởi chạy hoàn tất.
Sau khi hoàn tất, ứng dụng của bạn có thể gọi result()
để lấy AdapterInitializationStatus
thu được.
Các phương thức trả về Future
có một phương thức "kết quả cuối cùng" tương ứng mà ứng dụng có thể sử dụng để truy xuất Future
gần đây nhất cho một hành động nhất định. Ví dụ: firebase::gma::Initialize()
có một phương thức tương ứng có tên là firebase::gma::InitializeLastResult()
. Phương thức này trả về một Future
mà ứng dụng của bạn có thể dùng để kiểm tra trạng thái của lệnh gọi gần đây nhất đến firebase::gma::Initialize()
.
Nếu trạng thái của Future
là hoàn tất và mã lỗi là firebase::gma::kAdErrorCodeNone
, thì thao tác đã hoàn tất thành công.
Bạn cũng có thể đăng ký lệnh gọi lại để được gọi khi Future
hoàn tất. Trong một số trường hợp, lệnh gọi lại sẽ chạy trong một luồng khác, vì vậy, hãy đảm bảo mã của bạn an toàn cho luồng. Đoạn mã này sử dụng con trỏ hàm cho lệnh gọi lại:
// 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.
}
}
Bước 5: Chọn một định dạng quảng cáo để triển khai trong ứng dụng
AdMob cung cấp nhiều định dạng quảng cáo để bạn có thể chọn định dạng phù hợp nhất với trải nghiệm người dùng trong ứng dụng. Nhấp vào nút của một định dạng quảng cáo để xem hướng dẫn triển khai chi tiết trong tài liệu về AdMob.
Biểu ngữ
Quảng cáo hình chữ nhật xuất hiện ở đầu hoặc cuối màn hình thiết bị
Quảng cáo biểu ngữ lưu lại trên màn hình trong khi người dùng tương tác với ứng dụng và có thể tự động làm mới sau một khoảng thời gian nhất định. Nếu bạn mới sử dụng quảng cáo trên thiết bị di động, thì đây là loại quảng cáo rất phù hợp để bắt đầu.
Triển khai quảng cáo biểu ngữQuảng cáo xen kẽ
Quảng cáo toàn màn hình che phủ giao diện của một ứng dụng cho đến khi người dùng đóng lại
Bạn nên sử dụng quảng cáo xen kẽ tại các điểm dừng tự nhiên trong luồng thực thi của ứng dụng, chẳng hạn như giữa các cấp độ của trò chơi hoặc ngay sau khi hoàn thành một nhiệm vụ.
Triển khai quảng cáo xen kẽCó tặng thưởng
Quảng cáo tặng thưởng cho người dùng khi họ xem những video ngắn và tương tác với cuộc khảo sát hoặc quảng cáo có thể chơi
Quảng cáo có tặng thưởng (hoặc "dựa trên phần thưởng") có thể giúp bạn kiếm tiền từ người dùng chơi miễn phí.
Triển khai quảng cáo có tặng thưởng
Các chủ đề khác mà bạn quan tâm
Xem dữ liệu phân tích và chỉ số người dùng
Sau khi khởi chạy, SDK Mobile Ads sẽ tự động bắt đầu ghi lại sự kiện và thuộc tính người dùng phân tích từ ứng dụng của bạn. Bạn có thể xem dữ liệu này mà không cần thêm mã nào vào ứng dụng hoặc triển khai quảng cáo nào. Dưới đây là nơi bạn có thể xem dữ liệu phân tích này:
Trong thẻ Chỉ số người dùng của tài khoản AdMob (trang tổng quan Trang chủ hoặc Ứng dụng), bạn có thể xem các chỉ số người dùng được tuyển chọn dựa trên dữ liệu phân tích đã thu thập, chẳng hạn như thời lượng phiên trung bình, ARPU và tỷ lệ giữ chân.
Trong trang tổng quan về Analytics của bảng điều khiển Firebase, bạn có thể xem số liệu thống kê tổng hợp và thông tin tóm tắt về các chỉ số chính. Nếu thêm SDK Firebase cho Google Analytics, bạn cũng có thể đánh dấu lượt chuyển đổi cho chiến dịch quảng cáo và tạo đối tượng tuỳ chỉnh trong bảng điều khiển Firebase.
Xin lưu ý rằng để thể hiện tốt hơn các chỉ số ARPU và ARPPU, bạn nên đưa dữ liệu từ một sự kiện tuỳ chỉnh của Analytics có tên là ecommerce_purchase
vào quá trình tính doanh thu cho các chỉ số này (tìm hiểu cách thực hiện).
(Không bắt buộc) Sử dụng thêm các tính năng của Google Analytics và Firebase
Tận dụng nhiều cơ hội và tính năng hơn để cải thiện khả năng kiếm tiền từ ứng dụng và mức độ tương tác của người dùng:
Thêm và sử dụng SDK Firebase cho Google Analytics
Triển khai tính năng ghi nhật ký sự kiện tuỳ chỉnh trong ứng dụng.
Đánh dấu lượt chuyển đổi cho chiến dịch quảng cáo tuỳ chỉnh.
Thêm dữ liệu sự kiện
ecommerce_purchase
vào quá trình tính toán doanh thu cho các chỉ số ARPU và ARPPU.
Để tìm hiểu thêm, hãy xem hướng dẫn về cách sử dụng Google Analytics và Firebase với ứng dụng AdMob.
Sử dụng các sản phẩm Firebase khác trong ứng dụng
Sau khi bạn thêm SDK Firebase cho Google Analytics, hãy sử dụng các sản phẩm Firebase khác để tối ưu hoá quảng cáo trong ứng dụng.
Remote Config cho phép bạn thay đổi cách hoạt động và giao diện của ứng dụng mà không cần phát hành bản cập nhật ứng dụng, không tính phí đối với số lượng người dùng đang hoạt động hằng ngày không giới hạn.
A/B Testing cho phép bạn thử nghiệm các thay đổi đối với giao diện người dùng, tính năng hoặc chiến dịch tương tác của ứng dụng để tìm hiểu xem các thay đổi đó có tác động đến các chỉ số chính (như doanh thu và tỷ lệ giữ chân) hay không trước khi triển khai rộng rãi.