Bereksperimen dengan strategi monetisasi menggunakan Firebase Predictions

Firebase Predictions memudahkan Anda untuk memberikan pengalaman berbeda kepada pengguna aplikasi berdasarkan hasil prediksi perilaku pengguna. Misalnya, Anda dapat memberikan pengalaman bebas iklan kepada pengguna yang mungkin melakukan pembelian dalam aplikasi di masa mendatang, dan menampilkan iklan kepada pengguna lain. Namun, sebelum Anda men-deploy strategi monetisasi ini secara menyeluruh, penting untuk memastikan bahwa strategi tersebut benar-benar meningkatkan keseluruhan pendapatan aplikasi Anda.

Panduan ini menunjukkan cara mencapai kedua sasaran tersebut menggunakan Firebase Predictions dan Pengujian A/B Firebase. Anda akan mengaktifkan strategi monetisasi berbasis iklan untuk pengguna yang diprediksi tidak akan melakukan pembelian dalam aplikasi, dan Anda akan memverifikasi keefektifan dari strategi baru ini.

Sebelum memulai

Sebelum Anda dapat mulai menggunakan prediksi untuk menentukan kebijakan iklan aplikasi, Anda harus menggunakan Google Analytics di aplikasi Anda. Secara khusus, Anda harus:

  • Mengaktifkan fitur berbagi data Analytics di Firebase console.
  • Opsional: Mencatat secara eksplisit setiap peristiwa Analytics yang relevan dengan aplikasi Anda yang tidak otomatis tercatat ke dalam log. Dengan mencatat peristiwa ini ke dalam log, Anda dapat meningkatkan kualitas klasifikasi di masa mendatang.
  • Memiliki jumlah pengguna yang memadai. Meskipun Prediction berupaya sebaik mungkin untuk memprediksi perilaku aplikasi dengan jumlah basis pengguna berapa pun, biasanya Anda membutuhkan setidaknya 500 pengguna aktif harian untuk membuat prediksi yang berarti.
  • Pastikan pengguna Anda mencatat beberapa contoh positif dari peristiwa yang ingin Anda prediksi—misalnya, saat memprediksi spend, pengguna Anda harus sudah mencatat beberapa peristiwa in_app_purchase ke dalam log.

1. Membuat iklan yang dapat dikonfigurasi dari jarak jauh

Pertama-tama, siapkan aplikasi Anda untuk menampilkan atau menyembunyikan iklan yang bergantung pada nilai parameter Remote Config. Dalam langkah-langkah selanjutnya, Anda akan mengonfigurasi Prediction dan Pengujian A/B untuk menetapkan parameter dari jarak jauh berdasarkan berbagai kriteria. Namun untuk saat ini, aplikasi Anda akan selalu menampilkan iklan.

Misalnya, menggunakan AdMob untuk iklan:

  1. Impor SDK Analytics, Remote Config, dan AdMob:

    iOS (Swift)

    Tambahkan SDK ke Podfile Anda:

    pod 'Firebase/Analytics'
    pod 'Firebase/RemoteConfig'
    pod 'Firebase/AdMob'
    

    Lalu, impor SDK tersebut:

    import Firebase
    

    Android

    implementation 'com.google.firebase:firebase-analytics:17.4.4'
    implementation 'com.google.firebase:firebase-config:19.2.0'
    implementation 'com.google.firebase:firebase-ads:19.3.0'
    
  2. Menginisialisasi Remote Config dan tetapkan nilai default variabel ads_enabled ke true. Kemudian, Anda akan menyiapkan Prediction dan Pengujian A/B untuk menetapkan variabel ini dari jarak jauh. Namun, dengan menetapkan nilai default di aplikasi, Anda memastikan aplikasi berfungsi dengan benar sebelum variabel yang dikonfigurasi dari jarak jauh diambil.

    iOS (Swift)

    self.remoteConfig = RemoteConfig.remoteConfig()
    self.remoteConfig.setDefaults(["ads_enabled": true])
    

    Java

    mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
    
    Map<String, Object> remoteConfigDefaults = new HashMap<>();
    remoteConfigDefaults.put("ads_enabled", true);
    mFirebaseRemoteConfig.setDefaultsAsync(remoteConfigDefaults)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        // Default value successfully set
                    } else {
                        // Failed to set default value
                    }
                }
            });

    Kotlin+KTX

    firebaseRemoteConfig = Firebase.remoteConfig
    
    val remoteConfigDefaults = hashMapOf<String, Any>(
            "ads_enabled" to true
    )
    firebaseRemoteConfig.setDefaultsAsync(remoteConfigDefaults)
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    // Default value successfully set
                } else {
                    // Failed to set default value
                }
            }
  3. Menampilkan atau menyembunyikan iklan berdasarkan nilai ads_enabled. Hingga Anda menyiapkan Prediction, nilai ini akan selalu true dan iklan akan selalu ditampilkan.

    iOS (Swift)

    self.remoteConfig.fetch() { (status, error) -> Void in
        if status == .success {
          self.remoteConfig.activateFetched()
        }
    
        // Act on the retrieved parameters
    
        // Show ads based on the ad policy retrieved with Remote Config
        self.executeAdsPolicy()
    
        // ...
    }
    
    // ...
    
    func executeAdsPolicy() {
        let showAds = self.remoteConfig["ads_enabled"].booleanValue
        if showAds {
            bannerView.load(GADRequest())
            self.bannerView.isHidden = false
        } else {
            self.bannerView.isHidden = true
        }
    }
    

    Java

    mFirebaseRemoteConfig.fetchAndActivate()
            .addOnCompleteListener(new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if (task.isSuccessful()) {
                        // Act on the retrieved parameters
    
                        // Show ads based on the ad policy retrieved with Remote Config
                        executeAdsPolicy();
    
                        // ...
                    } else {
                        // Handle errors
                    }
                }
            });
    // ...
    private void executeAdsPolicy() {
        boolean showAds = mFirebaseRemoteConfig.getBoolean("ads_enabled");
        AdView mAdView = findViewById(R.id.adView);
    
        if (showAds) {
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);
            mAdView.setVisibility(View.VISIBLE);
        } else {
            mAdView.setVisibility(View.GONE);
        }
    }

    Kotlin+KTX

    firebaseRemoteConfig.fetchAndActivate()
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Act on the retrieved parameters
    
                    // Show ads based on the ad policy retrieved with Remote Config
                    executeAdsPolicy()
    
                    // ...
                } else {
                    // Handle errors
                }
            }
    // ...
    private fun executeAdsPolicy() {
        val showAds = firebaseRemoteConfig["ads_enabled"].asBoolean()
        val adView = findViewById<AdView>(R.id.adView)
    
        if (showAds) {
            val adRequest = AdRequest.Builder().build()
            adView.loadAd(adRequest)
            adView.visibility = View.VISIBLE
        } else {
            adView.visibility = View.GONE
        }
    }

Pada tahap ini, Anda dapat men-deploy aplikasi Anda ke App Store atau Play Store. Pengguna akan mendapatkan pengalaman iklan default (iklan selalu ditampilkan). Namun karena tampilan iklan dikontrol oleh variabel yang dapat dikonfigurasi dari jarak jauh, Anda dapat mengubah dan bereksperimen dengan perilaku iklan hanya menggunakan Firebase console, tanpa harus mendorong pengguna mengupdate aplikasi.

2. Memulai prediksi pengeluaran pengguna

Selanjutnya, siapkan project Firebase Anda untuk mulai memprediksi perilaku pengeluaran pengguna Anda.

Di Firebase console, buka bagian Prediction. Jika belum, setujui persyaratan layanan Prediction.

Setelah Anda menyetujui persyaratan layanan, Prediction akan diaktifkan untuk project Anda. Bagian Prediction di Firebase console dapat digunakan untuk menentukan prediksi kustom. Namun, untuk prediksi pengeluaran, Anda dapat menggunakan prediksi spend bawaan, yang menggunakan agregasi peristiwa Analytics untuk memprediksi apakah pengguna akan melakukan pembelian dalam aplikasi. Prediksi ini akan tersedia setelah Anda mengaktifkan Prediction dan mencatat peristiwa pengeluaran selama beberapa minggu ke dalam log.

3 Membuat eksperimen strategi monetisasi

Sekarang buat eksperimen Pengujian A/B yang menguji pengaruh strategi monetisasi berbasis prediksi pada pendapatan, dibandingkan dengan hanya selalu menampilkan iklan.

Eksperimen sebaiknya memiliki tiga varian, yakni grup kontrol, grup yang tanpa syarat menetapkan parameter, dan grup berbasis prediksi, sehingga eksperimen dapat menentukan apakah pendekatan berbasis prediksi memiliki manfaat yang lebih besar atau tidak, dibandingkan dengan hanya menerapkan promosi untuk semua orang.

Untuk membuat eksperimen:

  1. Di Firebase console, buka bagian Pengujian A/B.

  2. Buat eksperimen baru:

    1. Klik Buat eksperimen > Remote Config.

    2. Pilih aplikasi Anda dari daftar dan tentukan jumlah pengguna yang ingin Anda sertakan ke dalam eksperimen. Anda juga dapat memilih untuk mengecualikan kategori pengguna tertentu dari eksperimen ini, seperti pembeli terbanyak.

    3. Pilih Estimasi pendapatan total dari daftar metrik sasaran, lalu pilih metrik tambahan yang ingin Anda lacak, seperti interaksi pengguna, retensi, penghapusan aplikasi, dan klik iklan.

    4. Tentukan tiga varian:

      • Grup kontrol (dibuat secara otomatis)
      • Jangan pernah tampilkan iklan
      • Tidak ada iklan untuk orang yang kemungkinan berbelanja

      Untuk Grup kontrol, buat parameter ads_enabled dan tetapkan ke (no change). Pengguna yang ditetapkan ke grup kontrol akan mendapatkan perilaku default, yaitu selalu melihat iklan.

      Untuk varian Jangan tampilkan iklan, tetapkan parameter ads_enabled ke false. Pengguna yang ditetapkan untuk varian ini tidak akan pernah melihat iklan.

      Untuk varian Tidak ada iklan untuk orang yang kemungkinan berbelanja:

      1. Tetapkan parameter ads_enabled ke false.
      2. Klik Batasi ke subset pengguna dan pilih Prediction (Beta) > Prediksi: pengeluaran.
      3. Tetapkan rentang persentil yang ingin Anda targetkan. Untuk menargetkan orang yang kemungkinan berbelanja, sebaiknya mulai dengan rentang persentil 95-100.

      Pengguna yang ditetapkan ke varian ini tidak akan melihat iklan jika mereka diprediksi akan berbelanja dalam 7 hari ke depan.

Mulai eksperimen dan biarkan berjalan selama beberapa hari, sampai Pengujian A/B menyatakan varian dominan. Jika eksperimen tidak dapat menentukan varian dominan, Anda mungkin perlu memperluas eksperimen kepada lebih banyak pengguna.

4. Meluncurkan varian dominan kepada semua pengguna

Setelah Pengujian A/B mengumpulkan cukup informasi untuk menyatakan varian dominan, dalam hal ini, varian yang memaksimalkan pendapatan aplikasi, Anda dapat memutuskan apakah akan meluncurkan varian dominan (atau varian lain) kepada semua pengguna.

Di bagian Pengujian A/B di Firebase console, buka tampilan detail eksperimen yang telah diselesaikan. Dari tampilan ini, Anda dapat melihat performa setiap varian menurut metrik sasaran Anda dan metrik sekunder mana pun yang Anda pilih. Dengan informasi ini, Anda dapat memutuskan apakah akan meluncurkan varian dominan atau varian lainnya.

Untuk meluncurkan varian kepada semua pengguna, klik > Luncurkan varian di halaman detail eksperimen.