Tutorial: Mengoptimalkan monetisasi hybrid menggunakan AdMob, Google Analytics, dan Firebases

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


Pendahuluan: Mengoptimalkan monetisasi campuran menggunakan AdMob, Google Analytics, dan Firebase
Langkah 1: Gunakan AdMob untuk membuat unit iklan baru untuk ditampilkan
Langkah 2: Siapkan Google Analytics

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


Di akhir langkah terakhir, Anda mempelajari tentang audiens Google Analytics. Pada langkah ini, Anda akan membuat parameter yang dikontrol boolean Remote Config (disebut ad_control_switch ) yang memanfaatkan audiens "Pembeli". Anda kemudian akan menambahkan logika ke kode aplikasi Anda tentang apa yang harus ditampilkan aplikasi Anda berdasarkan nilai parameter tersebut.

Siapkan parameter dan ketentuan Remote Config di Firebase console

  1. Di Firebase console , buka proyek Firebase Anda.

  2. Di panel sebelah kiri, perluas bagian Engage , lalu pilih Remote Config .

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

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

    1. Di bidang Nama parameter , masukkan ad_control_switch .

    2. Dari menu tarik-turun 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 bidang Nama , masukkan Purchasers Group (atau nama lain yang mudah diidentifikasi untuk kondisi tersebut).

    2. Dari menu tarik-turun Berlaku jika... , pilih Audiens pengguna .

    3. Dari menu tarik-turun Pilih pemirsa , pilih Pembeli .

    4. Klik Simpan kondisi .

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

    1. Untuk Nilai Grup Pembeli , pilih false .

    2. Untuk nilai Default , pilih true .

  7. Klik Simpan , lalu Publikasikan perubahan .

Konfigurasi ini akan memeriksa apakah pengguna termasuk dalam audiens "Pembeli" (yaitu, mereka adalah pengguna yang membayar):

  • Jika pengguna termasuk dalam audiens "Pembeli", Remote Config akan mengembalikan nilai false untuk parameter ad_control_switch .

  • Jika pengguna tidak termasuk dalam audiens "Pembeli", Remote Config akan mengembalikan nilai true untuk parameter ad_control_switch .

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

Tambahkan Remote Config SDK ke aplikasi Anda

Sebelum menggunakan Remote Config dalam kode aplikasi Anda, tambahkan Remote Config SDK ke basis kode aplikasi Anda. Perhatikan bahwa aplikasi Anda seharusnya sudah memiliki SDK Iklan Seluler Google (AdMob) dan SDK Google Analytics for Firebase dari langkah sebelumnya dalam tutorial ini.

Cepat

Tambahkan dan instal pod Remote Config di podfile Anda:

pod 'Firebase/RemoteConfig'

Android

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

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

Berdebar

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

flutter pub add firebase_remote_config

Persatuan

Unduh dan instal Firebase Unity SDK terbaru, lalu tambahkan paket Remote Config ke proyek Anda:
FirebaseRemoteConfig.unitypackage

Konfigurasikan instance Remote Config

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

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

Cepat

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

Berdebar

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

Persatuan

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 dapat mulai menggunakan nilai parameter baru.

Anda ingin melakukan panggilan ini sedini mungkin dalam fase pemuatan aplikasi karena panggilan ini bersifat asinkron dan Anda memerlukan nilai Remote Config yang sudah diambil sebelumnya agar aplikasi Anda mengetahui apakah akan menampilkan iklan.

Cepat

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

Berdebar

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

Persatuan

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 sebelumnya pada langkah ini.

Gunakan nilai parameter Remote Config

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

  • Nilai parameter ad_control_switch ditetapkan menjadi true : menampilkan iklan interstisial (karena pengguna adalah pengguna yang tidak membayar).

  • Nilai parameter ad_control_switch ditetapkan menjadi false : jangan tampilkan iklan (karena pengguna adalah pengguna berbayar).

Cepat

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

Berdebar

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

Persatuan

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

Lepaskan aplikasi Anda

Karena logika untuk menampilkan iklan atau tidak ada dalam basis kode Anda, Anda perlu merilis versi baru aplikasi Anda yang berisi logika ini.

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


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




Langkah 2 : Siapkan Google Analytics