Hướng dẫn: Tối ưu hóa khả năng kiếm tiền kết hợp bằng AdMob, Google Analytics và Firebase

Bước 3: Thiết lập Cấu hình từ xa Firebase để hiển thị trải nghiệm quảng cáo cụ thể


Giới thiệu: Tối ưu hóa khả nă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 để hiển thị
Bước 2: Thiết lập Google Analytics

Bước 3: Thiết lập Cấu hình từ xa Firebase để hiển thị trải nghiệm quảng cáo cụ thể


Khi kết thúc 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 thông số được kiểm soát bằng boolean Cấu hình từ xa (được gọi là ad_control_switch ) để tận dụng đối tượng "Người mua". Sau đó, bạn sẽ thêm logic vào mã ứng dụng để biết ứng dụng sẽ hiển thị gì dựa trên giá trị của thông số đó.

Thiết lập các tham số và điều kiện Cấu hình từ xa trong bảng điều khiển Firebase

  1. Trong bảng điều khiển Firebase , hãy mở dự án Firebase của bạn.

  2. Trong khung bên trái, mở rộng phần Engage , sau đó chọn Remote Config .

  3. Nhấp vào Tạo cấu hình (hoặc Thêm tham số nếu bạn đã sử dụng Cấu hình từ xa trước đó).

  4. Trong bảng Tạo tham số , hãy hoàn thành các bước sau:

    1. Trong trường Tên thông số , nhập ad_control_switch .

    2. Từ trình đơn thả xuống Data type , chọn Boolean .

    3. Nhấp vào Tạo mới rồi chọn Tạo điều kiện mới .

  5. Trong hộp thoại Xác định điều kiện mới , hãy hoàn tất các bước sau:

    1. Trong trường Tên , nhập Purchasers Group (hoặc bất kỳ tên nào khác dễ nhận biết cho điều kiện).

    2. Từ menu thả xuống Áp dụng nếu... , chọn Đối tượng người dùng .

    3. Từ menu thả xuống Chọn đối tượng , hãy chọn Người mua .

    4. Bấm vào Lưu điều kiện .

  6. Quay lại bảng Tạo tham số , hoàn thành các bước sau:

    1. Đối với Giá trị của Nhóm người mua , chọn sai .

    2. Đối với giá trị Mặc định , hãy chọn true .

  7. Nhấp vào Lưu và sau đó Xuất bản các 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 (nghĩa là họ là người dùng trả tiền):

  • Nếu người dùng thuộc đối tượng "Người mua" thì Cấu hình từ xa sẽ trả về giá trị false cho thông số ad_control_switch .

  • Nếu người dùng không thuộc đối tượng "Người mua" thì Cấu hình từ xa sẽ trả về giá trị true cho thông số ad_control_switch .

Trong các bước sau, bạn sẽ triển khai Cấu hình từ xa trong ứng dụng của mình để xử lý các giá trị tham số này.

Thêm SDK cấu hình từ xa vào ứng dụng của bạn

Trước khi sử dụng Cấu hình từ xa trong mã ứng dụng của bạn, hãy thêm SDK cấu hình từ xa 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 quảng cáo trên thiết bị di động của Google (AdMob) và SDK Google Analytics cho Firebase từ các bước trước của hướng dẫn này.

Nhanh

Thêm và cài đặt nhóm Cấu hình từ xa trong podfile của bạn:

pod 'Firebase/RemoteConfig'

Android

Thêm phần phụ thuộc thư viện Cấu hình từ xa vào tệp build.gradle của bạn:

implementation 'com.google.firebase:firebase-config:21.6.3'

Chớp cánh

Từ thư mục gốc của dự án Flutter của bạn, hãy chạy lệnh sau để cài đặt plugin Cấu hình từ xa:

flutter pub add firebase_remote_config

Đoàn kết

Tải xuống và cài đặt Firebase Unity SDK mới nhất, sau đó thêm gói Cấu hình từ xa vào dự án của bạn:
FirebaseRemoteConfig.unitypackage

Định cấu hình phiên bản Cấu hình từ xa

Để ứng dụng của bạn có thể sử dụng các giá trị tham số Cấu hình từ xa, hãy định cấu hình phiên bản Cấu hình từ xa để ứng dụng có thể tìm nạp các giá trị mới cho phiên bản ứng dụng khách.

Trong ví dụ này, Cấu hình từ xa được định cấu hình để kiểm tra các giá trị tham số mới mỗi giờ một lần.

Nhanh

remoteConfig = RemoteConfig.remoteConfig()
let settings = RemoteConfigSettings()
settings.minimumFetchInterval = 3600
remoteConfig.configSettings = settings

Kotlin+KTX

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);

Chớp cánh

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');
  });

Đoàn kết

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 Cấu hình từ xa

Tìm nạp và kích hoạt tham số Cấu hình từ xa để nó có thể bắt đầu sử dụng các giá trị tham số mới.

Bạn muốn thực hiện lệnh gọi này sớm nhất có thể trong giai đoạn tải ứ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ị Cấu hình từ xa để ứng dụng của bạn biết có hiển thị quảng cáo hay không.

Nhanh

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+KTX

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();
            }
        });

Chớp cánh

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();

Đoàn kết

remoteConfig.FetchAndActivateAsync().ContinueWithOnMainThread(task => {
  if (task.IsFaulted) {
    Debug.LogWarning("Config params failed to update");
  } else {
    Debug.Log("Config params updated: " + task.Result);
  }
  LoadAdUnit();
});

Ứng dụng của bạn hiện đã được định cấu hình để xử lý tham số Cấu hình từ xa 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ị Cấu hình từ xa đượ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ị thông số ad_control_switch phân giải thành true : hiển thị quảng cáo chuyển tiếp (vì người dùng là người dùng không trả tiền).

  • Giá trị thông số ad_control_switch chuyển thành false : không hiển thị quảng cáo (vì người dùng là người dùng trả tiền).

Nhanh

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+KTX

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.
    }
}

Chớp cánh

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.
  }
}

Đoàn kết

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 của bạn

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 phiên bản ứng dụng mới có chứa logic này.

Nếu bạn làm theo các bước của 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ối trải nghiệm quảng cáo trong ứng dụng được tùy chỉnh cho người dùng của bạn. Bạn có thể theo dõi doanh thu quảng cáo của mình trong cả tài khoản AdMob và trong 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à thế là xong! Bạn đã hoàn thành hướng dẫn tối ưu hóa khả năng kiếm tiền kết hợp bằng AdMob, Google Analytics và Firebase.




Bước 2 : Thiết lập Google Analytics