Bước 3: Thiết lập Firebase Remote Config để hiển thị các trải nghiệm quảng cáo cụ thể
| Giới thiệu: Tối ưu hoá hoạt động kiếm tiền kết hợp bằng AdMob, Google Analytics và Firebase |
| Bước 1: Sử dụng AdMob để tạo đơn vị quảng cáo mới cho quảng cáo hiển thị |
| Bước 2: Thiết lập Google Analytics |
|
Bước 3: Thiết lập Firebase Remote Config để hiển thị các trải nghiệm quảng cáo cụ thể |
Ở cuối bước cuối cùng, bạn đã tìm hiểu về đối tượng Google Analytics. Trong bước này, bạn sẽ tạo một tham số do boolean kiểm soát Remote Config (gọi là ad_control_switch) tận dụng đối tượng "Người mua hàng". Sau đó, bạn sẽ thêm logic vào mã của ứng dụng để xác định nội dung mà ứng dụng sẽ hiển thị dựa trên giá trị của tham số đó.
Thiết lập các tham số và điều kiện Remote Config trong bảng điều khiển Firebase
Trong bảng điều khiển Firebase, hãy mở dự án Firebase của bạn.
Trong ngăn bên trái, hãy mở rộng mục Tương tác, rồi chọn Cấu hình từ xa.
Nhấp vào Tạo cấu hình (hoặc Thêm tham số nếu trước đây bạn đã sử dụng Remote Config).
Trong bảng Tạo thông số, hãy hoàn tất các bước sau:
Trong trường Tên thông số, hãy nhập
ad_control_switch.Trong trình đơn thả xuống
Data type, hãy chọn Boolean.Nhấp vào Tạo mới, rồi chọn Tạo điều kiện mới.
Trong hộp thoại Define a new condition (Xác định điều kiện mới), hãy hoàn tất các bước sau:
Trong trường Name (Tên), hãy nhập
Purchasers Group(hoặc bất kỳ tên nào khác dễ nhận dạng cho điều kiện).Trong trình đơn thả xuống Áp dụng nếu..., hãy chọn (Các) đối tượng người dùng.
Trong trình đơn thả xuống Chọn(các) đối tượng, hãy chọn Người mua.
Nhấp vào Lưu điều kiện.
Trong bảng điều khiển Tạo thông số, hãy hoàn tất các bước sau:
Đối với Giá trị của Nhóm người mua, hãy chọn false.
Đối với Giá trị mặc định, hãy chọn true.
Nhấp vào Lưu, rồi nhấp vào Xuất bản thay đổi.
Cấu hình này sẽ kiểm tra xem người dùng có thuộc đối tượng "Người mua" hay không (tức là họ là người dùng trả phí):
Nếu người dùng thuộc đối tượng "Người mua hàng", thì Remote Config sẽ trả về giá trị của
falsecho tham sốad_control_switch.Nếu người dùng không thuộc đối tượng "Người mua hàng", thì Remote Config sẽ trả về giá trị của
truecho tham sốad_control_switch.
Trong các bước sau, bạn sẽ triển khai Remote Config trong ứng dụng của mình để xử lý các giá trị tham số này.
Thêm SDK Remote Config vào ứng dụng của bạn
Trước khi sử dụng Remote Config trong mã ứng dụng, hãy thêm SDK Remote Config vào cơ sở mã của ứng dụng. Xin lưu ý rằng ứng dụng của bạn phải có SDK Google Mobile Ads (AdMob) và SDK Google Analytics cho Firebase từ các bước trước của hướng dẫn này.
Swift
Thêm và cài đặt nhóm Remote Config trong podfile:
pod 'Firebase/RemoteConfig'
Android
Thêm phần phụ thuộc của thư viện Remote Config vào tệp build.gradle:
implementation 'com.google.firebase:firebase-config:23.1.0'
Flutter
Từ gốc của dự án Flutter, hãy chạy lệnh sau để cài đặt trình bổ trợ Remote Config:
flutter pub add firebase_remote_config
Unity
Tải xuống và cài đặt Firebase Unity SDK mới nhất, sau đó thêm gói Remote Config vào dự án của bạn:
FirebaseRemoteConfig.unitypackage
Định cấu hình phiên bản Remote Config
Để ứng dụng của bạn có thể sử dụng các giá trị tham số Remote Config, hãy định cấu hình phiên bản Remote Config sao cho phiên bản đó có thể tìm nạp các giá trị mới cho phiên bản ứng dụng của khách hàng.
Trong ví dụ này, Remote Config được định cấu hình để kiểm tra các giá trị tham số mới mỗi giờ một lần.
Swift
remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings
Kotlin
remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
Java
mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setMinimumFetchIntervalInSeconds(3600)
.build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);
Flutter
remoteConfig = FirebaseRemoteConfig.instance;
final configSettings = FirebaseRemoteConfigSettings(
minimumFetchInterval: Duration(hours: 1),
);
await remoteConfig.setConfigSettings(configSettings);
// Use the `onConfigUpdated` callback to listen for changes to the config settings.
remoteConfig.onConfigUpdated.listen((_) {
print('Config settings confirmed');
});
Unity
var remoteConfig = FirebaseRemoteConfig.DefaultInstance;
var configSettings = new ConfigSettings {
MinimumFetchInternalInMilliseconds =
(ulong)(new TimeSpan(1, 0, 0).TotalMilliseconds)
};
remoteConfig.SetConfigSettingsAsync(configSettings)
.ContinueWithOnMainThread(task => {
Debug.Log("Config settings confirmed");
}
Tìm nạp và kích hoạt Remote Config
Tìm nạp và kích hoạt tham số Remote Config để có thể bắt đầu sử dụng các giá trị tham số mới.
Bạn cần thực hiện lệnh gọi này càng sớm càng tốt trong giai đoạn tải của ứng dụng vì lệnh gọi này không đồng bộ và bạn cần tìm nạp trước giá trị Remote Config để ứng dụng biết có nên hiển thị quảng cáo hay không.
Swift
remoteConfig.fetch() { (status, error) -> Void in
if status == .success {
print("Config fetched!")
self.remoteConfig.activate() { (changed, error) in
// ...
}
} else {
print("Config not fetched")
print("Error: \(error?.localizedDescription ?? "No error available.")")
}
self.loadAdUnit()
}
Kotlin
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val updated = task.result
Log.d(TAG, "Config params updated: $updated")
} else {
Log.d(TAG, "Config params failed to update")
}
loadAdUnit()
}
Java
mFirebaseRemoteConfig.fetchAndActivate()
.addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
@Override
public void onComplete(@NonNull Task<Boolean> task) {
if (task.isSuccessful()) {
boolean updated = task.getResult();
Log.d(TAG, "Config params updated: " + updated);
} else {
Log.d(TAG, "Config params failed to update");
}
loadAdUnit();
}
});
Flutter
remoteConfig = FirebaseRemoteConfig.instance;
// Fetch and activate the latest Remote Config values.
final updated = await remoteConfig.fetchAndActivate();
// Check if the config params were updated successfully.
if (updated) {
print('Config params updated');
} else {
print('Config params failed to update');
}
// Load the ad unit.
_loadAdUnit();
Unity
remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
if (task.IsFaulted) {
Debug.LogWarning("Config params failed to update");
} else {
Debug.Log("Config params updated: " + task.Result);
}
LoadAdUnit();
});
Giờ đây, ứng dụng của bạn đã được định cấu hình để xử lý tham số Remote Config mà bạn đã tạo trước đó trong bước này.
Sử dụng giá trị tham số Remote Config
Sử dụng giá trị Remote Config được tìm nạp trước trong hàm loadAdUnit() để xác định xem phiên bản ứng dụng có nên thực hiện một trong những thao tác sau hay không:
Giá trị tham số
ad_control_switchsẽ phân giải thànhtrue: hiển thị quảng cáo xen kẽ (vì người dùng là người dùng không trả phí).Giá trị tham số
ad_control_switchsẽ chuyển thànhfalse: không hiển thị quảng cáo (vì người dùng là người dùng trả phí).
Swift
private func loadAdUnit() {
let showAds = remoteConfig["ad_control_switch"].boolValue
if showAds {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Kotlin
private fun loadAdUnit() {
var showAds = remoteConfig.getBoolean(ad_control_switch)
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Java
private void loadAdUnit() {
boolean showAds =
mFirebaseRemoteConfig.getBoolean(ad_control_switch);
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Flutter
void _loadAdUnit() {
bool showAds = remoteConfig.getBool(ad_control_switch);
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Unity
void LoadAdUnit() {
bool showAds =
remoteConfig.GetValue("ad_control_switch").BooleanValue;
if (showAds) {
// Load interstitial ad (implemented ad unit)
// per AdMob instructions (the first step of this tutorial).
} else {
// Don't show ads.
}
}
Phát hành ứng dụng
Vì logic để hiển thị quảng cáo hay không nằm trong cơ sở mã của bạn, nên bạn cần phát hành một phiên bản mới của ứng dụng có chứa logic này.
Nếu bạn làm theo các bước trong hướng dẫn này, ứng dụng của bạn sẽ ngay lập tức bắt đầu phân phát trải nghiệm quảng cáo trong ứng dụng tuỳ chỉnh cho người dùng. Bạn có thể theo dõi doanh thu từ quảng cáo trong cả tài khoản AdMob và trang tổng quan Google Analytics (trong bảng điều khiển Firebase hoặc giao diện người dùng Google Analytics).
Vậy là xong! Bạn đã hoàn tất hướng dẫn về cách tối ưu hoá hoạt động kiếm tiền kết hợp bằng cách sử dụng AdMob, Google Analytics và Firebase.
Tài nguyên có liên quan
Xem các hướng dẫn về giải pháp khác:
Xem loạt video: Tối ưu hoá doanh thu từ ứng dụng bằng Firebase vàAdMob
Bước 2: Thiết lập Google Analytics