Tutorial: Mengoptimalkan monetisasi campuran menggunakan AdMob, Google Analytics, dan Firebase

Langkah 3: Siapkan Firebase Remote Config untuk menampilkan pengalaman iklan tertentu


{i>Introduction<i} (Pendahuluan): Optimalkan sistem campuran monetisasi menggunakan AdMob, Google Analytics, dan Firebase
Langkah 1: Gunakan AdMob guna membuat unit iklan baru untuk Display
Langkah 2: Siapkan Google Analytics

Langkah 3: Siapkan Firebase Remote Config untuk menampilkan pengalaman iklan tertentu


Di akhir langkah terakhir, Anda telah mempelajari audiens Google Analytics. Di beberapa di langkah ini, Anda akan membuat parameter yang dikontrol boolean Remote Config (disebut ad_control_switch) yang memanfaatkan "Pembeli" audiens Anda. Anda akan lalu tambahkan logika ke kode aplikasi Anda untuk menampilkan aplikasi berdasarkan nilai parameter tersebut.

Siapkan parameter dan kondisi Remote Config di konsol Firebase

  1. Di konsol Firebase, buka project Firebase Anda.

  2. Di panel sebelah kiri, luaskan bagian Engage, lalu pilih Konfigurasi Jarak Jauh.

  3. Klik Buat konfigurasi (atau Tambahkan parameter jika telah menggunakan Remote Config sebelumnya).

  4. Di panel Buat parameter, selesaikan langkah-langkah berikut:

    1. Di kolom Nama parameter, masukkan ad_control_switch.

    2. Dari menu dropdown Data type, pilih Boolean.

    3. Klik Buat baru, lalu pilih Buat kondisi baru.

  5. Dalam dialog Tentukan kondisi baru, selesaikan langkah-langkah berikut:

    1. Di kolom Name, masukkan Purchasers Group (atau input lainnya dengan mudah nama yang dapat diidentifikasi untuk kondisi tersebut).

    2. Dari menu drop-down Berlaku jika..., pilih Audiens pengguna.

    3. Dari menu dropdown Pilih audiens, pilih Pembeli.

    4. Klik Simpan kondisi.

  6. Kembali ke panel Create parameter, selesaikan langkah-langkah berikut:

    1. Untuk Nilai Grup Pembeli, pilih salah.

    2. Untuk Nilai default, pilih true.

  7. Klik Save, kemudian Publish changes.

Konfigurasi ini akan memeriksa apakah pengguna ada di bagian "Pembeli" audiens (yaitu, mereka adalah pengguna berbayar):

  • Jika pengguna berada di bagian "Pembeli" audiens, maka Remote Config akan tampilkan nilai false untuk parameter ad_control_switch.

  • Jika pengguna tidak berada di bagian "Pembeli" audiens, lalu Remote Config akan menampilkan nilai true untuk parameter ad_control_switch.

Pada langkah berikut, Anda akan menerapkan Remote Config di aplikasi Anda untuk menangani nilai parameter ini.

Menambahkan Remote Config SDK ke aplikasi Anda

Sebelum menggunakan Remote Config dalam kode aplikasi Anda, tambahkan metode Remote Config SDK ke codebase aplikasi Anda. Perhatikan bahwa aplikasi Anda seharusnya sudah memiliki Google Mobile Ads (AdMob) SDK dan Google Analytics for Firebase SDK dari langkah sebelumnya di tutorial ini.

Swift

Tambahkan dan instal pod Remote Config di podfile Anda:

pod 'Firebase/RemoteConfig'

Android

Tambahkan dependensi library Remote Config ke file build.gradle Anda:

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

Flutter

Dari root project Flutter Anda, jalankan perintah berikut untuk menginstal plugin Remote Config:

flutter pub add firebase_remote_config

Unity

Download dan instal aplikasi Firebase Unity SDK, lalu tambahkan paket Remote Config ke project Anda:
FirebaseRemoteConfig.unitypackage

Mengonfigurasi instance Remote Config

Agar aplikasi Anda dapat menggunakan nilai parameter Remote Config, konfigurasikan Remote Config agar dapat mengambil nilai baru untuk aplikasi klien di instance Compute Engine.

Dalam contoh ini, Remote Config dikonfigurasi untuk memeriksa parameter baru nilai sekali setiap jam.

Swift

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

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

Ambil dan aktifkan Remote Config

Ambil dan aktifkan parameter Remote Config agar parameter tersebut dapat mulai digunakan nilai parameter baru.

Anda perlu melakukan panggilan ini sedini mungkin pada fase pemuatan aplikasi karena panggilan ini asinkron dan Anda memerlukan nilai Remote Config diambil sebelumnya sehingga aplikasi Anda tahu apakah akan menampilkan iklan atau tidak.

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

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

Aplikasi Anda sekarang dikonfigurasi untuk menangani parameter Remote Config yang Anda buat pada langkah sebelumnya.

Gunakan parameter value Remote Config

Gunakan nilai Remote Config yang diambil sebelumnya dalam fungsi loadAdUnit() untuk menentukan apakah instance aplikasi harus melakukan salah satu hal berikut:

  • Nilai parameter ad_control_switch di-resolve menjadi true: tampilkan iklan interstisial (karena pengguna adalah pengguna yang tidak membayar).

  • Nilai parameter ad_control_switch di-resolve menjadi false: jangan tampilkan iklan Anda (karena pengguna adalah pengguna yang membayar).

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

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

Merilis aplikasi Anda

Karena logika untuk menampilkan iklan atau tidak ada dalam codebase, Anda harus merilis versi baru aplikasi Anda yang berisi logika ini.

Jika Anda mengikuti langkah-langkah tutorial ini, aplikasi Anda akan segera dimulai untuk menayangkan iklan dalam aplikasi yang disesuaikan kepada pengguna. Anda dapat memantau pendapatan iklan di akun AdMob dan di Google Analytics dasbor (baik di konsol Firebase atau UI Google Analytics).


Dan selesai! Anda telah menyelesaikan tutorial untuk mengoptimalkan monetisasi campuran menggunakan AdMob, Google Analytics, dan Firebase.




Langkah 2: Siapkan Google Analytics