Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Membuat Eksperimen Firebase Remote Config dengan Pengujian A/B

Saat mengupdate aplikasi dan menggunakan Firebase Remote Config untuk menerapkannya ke aplikasi yang memiliki basis pengguna aktif, pastikan prosesnya berjalan dengan baik. Berikut ini penjelasan yang dapat membantu Anda memahami beberapa hal:

  • Cara terbaik menerapkan fitur untuk mengoptimalkan pengalaman pengguna. Sering kali, developer aplikasi tidak mengetahui bahwa pengguna tidak menyukai fitur baru atau perubahan pengalaman pengguna hingga rating aplikasi mereka turun di app store. Pengujian A/B dapat membantu mengukur apakah pengguna menyukai varian fitur yang baru, atau apakah mereka menyukai aplikasi yang ada saat ini. Selain itu, dengan menaruh sebagian besar pengguna Anda dalam grup kontrol, pengujian A/B dapat memastikan bahwa sebagian besar basis pengguna dapat terus menggunakan aplikasi tanpa mengalami perubahan perilaku atau tampilan hingga eksperimen selesai.
  • Cara terbaik untuk mengoptimalkan pengalaman pengguna dengan tujuan bisnis. Terkadang Anda menerapkan perubahan produk untuk memaksimalkan metrik, misalnya pendapatan atau retensi. Dengan pengujian A/B, Anda menetapkan tujuan bisnis Anda dan Firebase melakukan analisis statistik untuk mengetahui apakah performa suatu varian lebih baik dari grup kontrol untuk tujuan yang dipilih.

Untuk melakukan pengujian A/B pada varian fitur dengan grup kontrol, lakukan hal berikut:

  1. Buat eksperimen.
  2. Lakukan validasi eksperimen di perangkat uji.
  3. Kelola eksperimen.

Membuat eksperimen

Eksperimen Remote Config dapat Anda gunakan untuk mengevaluasi beberapa varian pada satu atau beberapa parameter Remote Config.

  1. Login ke Firebase, perbarui Setelan berbagi data dan pastikan fitur berbagi data sudah aktif. Tanpa berbagi data, eksperimen Anda tidak akan memiliki akses ke data analisis.
  2. Di bagian Engage pada menu navigasi Firebase console, klik A/B Testing.
  3. Klik Create experiment, lalu pilih Remote Config saat diminta memasukkan layanan yang ingin Anda gunakan dalam eksperimen.
  4. Masukkan Name dan Description opsional untuk eksperimen Anda, lalu klik Next.
  5. Isi kolom Targeting, yang diawali dengan memilih aplikasi yang menggunakan eksperimen Anda. Anda juga dapat menargetkan subkumpulan pengguna untuk disertakan dalam eksperimen dengan memilih opsi yang menyertakan hal berikut:

    • Versi: Satu atau beberapa versi aplikasi Anda
    • Audience pengguna: Audience Analytics yang digunakan untuk menargetkan pengguna yang mungkin disertakan dalam eksperimen
    • Properti pengguna: Satu atau beberapa properti pengguna Analytics untuk memilih pengguna yang mungkin disertakan dalam eksperimen
    • Prediksi: Grup pengguna yang diprediksi oleh machine learning akan memiliki perilaku tertentu
    • Negara/Region: Satu atau beberapa negara atau wilayah untuk memilih pengguna yang mungkin disertakan dalam eksperimen
    • Bahasa perangkat: Satu atau beberapa bahasa dan lokalitas yang digunakan untuk memilih pengguna yang mungkin disertakan dalam eksperimen
  6. Tetapkan Persentase pengguna target: Masukkan persentase basis pengguna aplikasi Anda, yang cocok dengan kriteria yang ditetapkan dalam Target users. Bagi kriteria ini secara merata antara grup kontrol dan satu atau beberapa varian dalam eksperimen. Rentang persentase ini bisa antara 0,01% dan 100%. Pengguna ditetapkan secara acak untuk setiap eksperimen, termasuk eksperimen duplikat.

  7. Secara opsional, setel peristiwa aktivasi untuk memastikan bahwa hanya pengguna yang pertama kali memicu beberapa peristiwa Analytics yang dihitung di eksperimen. Untuk memastikan validitas eksperimen, pastikan peristiwa yang Anda pilih terjadi setelah aplikasi mengaktifkan nilai konfigurasi yang diambil. Peristiwa seperti first_open atau session_start mungkin terjadi sebelum activateFetched(), sehingga menyebabkan hasil yang tidak terduga.

  8. Untuk Goals pada eksperimen, pilih metrik utama yang akan dilacak dan tambahkan metrik lain yang diinginkan dari daftar dropdown. Hal ini termasuk tujuan bawaan (interaksi, pembelian, pendapatan, retensi, dll.), Peristiwa konversi Analytics, dan peristiwa Analytics lainnya. Setelah selesai, klik Next.

  9. Di bagian Variants, pilih grup kontrol dan setidaknya satu varian untuk eksperimen. Gunakan daftar Choose or create new untuk menambahkan satu atau beberapa parameter yang akan digunakan untuk bereksperimen. Anda dapat membuat parameter yang belum pernah digunakan sebelumnya di Firebase console, tetapi harus ada di aplikasi agar ada dampaknya. Anda dapat mengulangi langkah ini untuk menambahkan beberapa parameter ke eksperimen.

  10. (opsional) Untuk menambahkan lebih dari satu varian ke eksperimen, klik Add another variant.

  11. Ubah satu atau beberapa parameter untuk varian tertentu. Parameter yang tidak diubah sama dengan parameter untuk pengguna yang tidak disertakan dalam eksperimen.

  12. Klik Review untuk menyimpan eksperimen Anda.

Anda dapat melakukan hingga 300 eksperimen per project, yang dapat terdiri dari maksimum 24 eksperimen yang sedang berjalan, dan eksperimen lainnya sebagai draf atau selesai.

Memvalidasi eksperimen di perangkat uji

Untuk setiap penginstalan Firebase, Anda dapat mengambil token autentikasi penginstalan yang terkait dengannya. Anda dapat menggunakan token ini untuk menguji varian eksperimen tertentu di perangkat uji yang menginstal aplikasi Anda. Untuk memvalidasi eksperimen di perangkat uji, lakukan langkah berikut:

  1. Dapatkan token autentikasi penginstalan sebagai berikut:

    Swift

    Installations.installations().authTokenForcingRefresh(true, completion: { (result, error) in
      if let error = error {
        print("Error fetching token: \(error)")
        return
      }
      guard let result = result else { return }
      print("Installation auth token: \(result.authToken)")
    })
    

    Objective-C

    [[FIRInstallations installations] authTokenForcingRefresh:true
                                                   completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
      if (error != nil) {
        NSLog(@"Error fetching Installation token %@", error);
        return;
      }
      NSLog(@"Installation auth token: %@", [result authToken]);
    }];
    

    Java

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
            .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<InstallationTokenResult> task) {
            if (task.isSuccessful() && task.getResult() != null) {
                Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
            } else {
                Log.e("Installations", "Unable to get Installation auth token");
            }
        }
    });

    Kotlin+KTX

    FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                Log.d("Installations", "Installation auth token: " + task.result?.token)
            } else {
                Log.e("Installations", "Unable to get Installation auth token")
            }
        }

    C++

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
    

    Unity

    Firebase.Installations.FirebaseInstallations.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("Installations token {0}", task.Result));
        }
      });
    
  2. Di menu navigasi Firebase console, klik A/B Testing.
  3. Klik Draft (dan/atau Running untuk eksperimen Remote Config), arahkan kursor ke eksperimen Anda, klik menu konteks (), lalu klik Manage test devices.
  4. Masukkan token autentikasi penginstalan Firebase untuk perangkat uji dan pilih varian eksperimen untuk dikirim ke perangkat uji tersebut.
  5. Jalankan aplikasi dan pastikan varian yang dipilih diterima di perangkat uji.

Untuk mempelajari penginstalan Firebase lebih lanjut, baca Mengelola penginstalan Firebase.

Mengelola eksperimen

Baik menggunakan Remote Config, Notifications Composer, maupun Firebase In-App Messaging untuk membuat eksperimen, Anda dapat memvalidasi dan memulai eksperimen, memantau eksperimen saat dijalankan, dan menambah jumlah pengguna yang disertakan dalam eksperimen yang sedang berjalan.

Saat eksperimen selesai, Anda dapat mencatat setelan yang digunakan oleh varian dominan, lalu meluncurkan setelan tersebut ke semua pengguna. Atau, Anda dapat menjalankan eksperimen lain.

Memulai eksperimen

  1. Di bagian Engage pada menu navigasi Firebase console, klik A/B Testing.
  2. Klik Draft, lalu klik judul eksperimen.
  3. Untuk memvalidasi bahwa aplikasi Anda memiliki pengguna yang akan disertakan dalam eksperimen, lihat detail draf dan cari angka yang lebih besar dari 0% di bagian Targeting and distribution (misalnya, 1% of users matching the criteria).
  4. Untuk mengubah eksperimen, klik Edit.
  5. Untuk memulai eksperimen, klik Start Experiment. Anda dapat menjalankan hingga 24 eksperimen per project sekaligus.

Memantau eksperimen

Setelah eksperimen berjalan beberapa lama, Anda dapat memeriksa kemajuannya dan melihat seperti apa hasilnya bagi pengguna yang mengikuti eksperimen Anda sejauh ini.

  1. Di bagian Engage pada menu navigasi Firebase console, klik A/B Testing.
  2. Klik Running, lalu klik judul eksperimen. Di halaman ini, Anda dapat melihat berbagai statistik yang diamati dan sesuai model tentang eksperimen yang sedang berjalan, termasuk yang berikut:

    • % selisih dari dasar pengukuran: Ukuran peningkatan metrik untuk varian tertentu dibandingkan dengan dasar pengukuran (atau grup kontrol). Dihitung dengan membandingkan rentang nilai untuk varian dengan rentang nilai untuk dasar pengukuran.
    • Kemungkinan untuk mengalahkan yang asli: Perkiraan kemungkinan bahwa varian tertentu akan mengalahkan dasar pengukuran untuk metrik yang dipilih.
    • observed_metric per pengguna: Berdasarkan hasil eksperimen, ini adalah perkiraan rentang nilai metrik yang akan dicapai seiring waktu.
    • Total observed_metric: Nilai kumulatif yang diamati untuk varian atau grup kontrol. Nilai ini digunakan untuk mengukur performa setiap varian eksperimen dan untuk menghitung Peningkatan, Rentang nilai, Kemungkinan untuk mengalahkan yang asli, dan Kemungkinan untuk menjadi varian terbaik. Bergantung pada metrik yang diukur, kolom ini dapat diberi label "Duration per user," "Revenue per user," "Retention rate," atau "Conversion rate."
  3. Setelah eksperimen berjalan beberapa saat (setidaknya 7 hari untuk FCM dan In-App Messaging, atau 14 hari untuk Remote Config), data di halaman ini menunjukkan varian "posisi teratas", jika ada. Beberapa hasil pengukuran disertai dengan diagram batang yang menyajikan data dalam format visual.

Meluncurkan eksperimen ke semua pengguna

Setelah eksperimen berjalan cukup lama sehingga muncul varian "posisi teratas", atau varian dominan, untuk metrik sasaran, Anda dapat meluncurkan eksperimen ke 100% pengguna. Dengan demikian, Anda dapat memilih varian yang akan dipublikasikan ke semua pengguna ke depannya. Meskipun jika eksperimen Anda belum menghasilkan varian dominan, Anda tetap dapat memilih untuk meluncurkan satu varian ke semua pengguna.

  1. Di bagian Engage pada menu navigasi Firebase console, klik A/B Testing.
  2. Klik Completed atau Running, klik eksperimen yang ingin diluncurkan ke semua pengguna, klik menu konteks (), lalu klik Roll out variant.
  3. Luncurkan eksperimen Anda ke semua pengguna dengan melakukan salah satu hal berikut:

    • Untuk eksperimen yang menggunakan Notifications Composer, gunakan dialog Roll out message untuk mengirim pesan ke pengguna target lain yang bukan merupakan bagian eksperimen.
    • Untuk eksperimen Remote Config, pilih varian untuk menentukan parameter value Remote Config yang akan diubah. Kriteria penargetan yang ditentukan saat membuat eksperimen akan ditambahkan sebagai kondisi baru dalam template Anda, untuk memastikan peluncuran hanya memengaruhi pengguna yang ditargetkan oleh eksperimen tersebut. Setelah mengklik Review in Remote Config untuk meninjau perubahan, klik Publish changes untuk menyelesaikan peluncuran.
    • Untuk eksperimen In-App Messaging, gunakan dialog untuk menentukan varian mana yang perlu diluncurkan sebagai kampanye In-App Messaging mandiri. Setelah varian dipilih, Anda akan dialihkan ke layar penulisan FIAM untuk melakukan perubahan apa pun (jika diperlukan) sebelum memublikasikan.

Memperluas cakupan eksperimen

Jika eksperimen Anda tidak mendapatkan cukup pengguna agar Pengujian A/B bisa mendeklarasikan posisi teratas, Anda dapat memperluas distribusi eksperimen agar menjangkau persentase basis pengguna aplikasi yang lebih besar.

  1. Di bagian Engage pada menu navigasi Firebase console, klik A/B Testing.
  2. Pilih eksperimen yang sedang berjalan yang ingin Anda edit.
  3. Di bagian Experiment overview, klik menu konteks (), lalu klik Edit running experiment.
  4. Dialog Targeting menampilkan opsi untuk meningkatkan persentase pengguna yang saat ini disertakan dalam eksperimen yang sedang berjalan. Pilih angka yang lebih besar daripada persentase saat ini, lalu klik Publish. Eksperimen akan dikirim ke jumlah pengguna yang sesuai dengan persentase yang Anda tentukan.

Menduplikasi atau menghentikan eksperimen

  1. Di bagian Engage pada menu navigasi Firebase console, klik A/B Testing.
  2. Klik Completed atau Running, arahkan kursor ke eksperimen, klik menu konteks (), lalu klik Duplicate experiment atau Stop experiment.

Penargetan pengguna

Anda dapat menargetkan pengguna untuk disertakan dalam eksperimen menggunakan kriteria penargetan pengguna berikut.

Kriteria penargetan Operator    Nilai Catatan
Versi berisi,
tidak berisi,
sama persis,
berisi ekspresi reguler
Masukkan nilai untuk satu atau beberapa versi aplikasi yang ingin Anda sertakan dalam eksperimen.

Jika menggunakan operator berisi, tidak berisi, atau sama persis, Anda dapat memasukkan beberapa nilai yang dipisahkan dengan koma.

Jika menggunakan operator berisi ekspresi reguler, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler dapat cocok dengan semua atau sebagian string versi target. Anda juga dapat menggunakan anchor ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.

Audience pengguna mencakup semua dari,
mencakup setidaknya salah satu dari,
tidak mencakup semua dari,
tidak mencakup setidaknya salah satu dari
Pilih satu atau beberapa audience Analytics untuk menargetkan pengguna yang mungkin disertakan dalam eksperimen Anda.  
Properti pengguna Untuk teks:
berisi,
tidak berisi,
sama persis,
berisi ekspresi reguler

Untuk angka:
<, ≤, =, ≥, >
Properti pengguna Analytics digunakan untuk memilih pengguna yang mungkin disertakan dalam eksperimen, dengan serangkaian opsi untuk memilih nilai properti pengguna.

Di klien yang digunakan, Anda dapat menetapkan hanya nilai string untuk properti pengguna. Untuk kondisi yang menggunakan operator numerik, layanan Remote Config akan mengonversi nilai properti pengguna yang sesuai menjadi bilangan bulat/float.
Jika menggunakan operator berisi ekspresi reguler, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler dapat cocok dengan semua atau sebagian string versi target. Anda juga dapat menggunakan anchor ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.
Prediksi T/A Menargetkan grup pengguna yang ditetapkan oleh Firebase Predictions. Misalnya, pengguna yang mungkin akan berhenti menggunakan aplikasi Anda, atau pengguna yang mungkin akan melakukan pembelian dalam aplikasi. Pilih salah satu nilai yang ditentukan oleh alat Firebase Predictions. Jika tidak ada opsi yang tersedia, Anda mungkin perlu memilih ikut serta pada Firebase Predictions dengan membuka bagian Predictions pada Firebase console.  
Negara perangkat T/A Satu atau beberapa negara atau wilayah yang digunakan untuk memilih pengguna yang mungkin disertakan dalam eksperimen.  
Bahasa perangkat T/A Satu atau beberapa bahasa dan lokalitas yang digunakan untuk memilih pengguna yang mungkin disertakan dalam eksperimen. Kriteria penargetan ini hanya tersedia untuk Remote Config.
Pertama dibuka lebih dari
kurang dari
antara
Menargetkan pengguna berdasarkan waktu pertama kali mereka membuka aplikasi Anda, dalam hari. Kriteria penargetan ini hanya tersedia untuk Firebase In-App Messaging.
Interaksi terakhir dengan aplikasi lebih dari
kurang dari
antara
Menargetkan pengguna berdasarkan waktu terakhir kali mereka berinteraksi dengan aplikasi Anda, dalam hari. Kriteria penargetan ini hanya tersedia untuk Firebase In-App Messaging.

Metrik Pengujian A/B

Saat membuat eksperimen, Anda memilih metrik yang digunakan untuk membandingkan varian eksperimen. Anda juga dapat memilih metrik pelacakan lain untuk membantu Anda lebih memahami setiap varian eksperimen dan mendeteksi efek samping yang signifikan (seperti aplikasi mengalami error). Tabel berikut memberikan detail tentang cara perhitungan metrik sasaran dan metrik lainnya.

Metrik sasaran

Metrik Deskripsi
Retensi (1 hari) Jumlah pengguna yang kembali ke aplikasi Anda setiap hari.
Retensi (2-3 hari) Jumlah pengguna yang kembali ke aplikasi Anda dalam 2-3 hari.
Retensi (4-7 hari) Jumlah pengguna yang kembali ke aplikasi Anda dalam 4-7 hari.
Retensi (8-14 hari) Jumlah pengguna yang kembali ke aplikasi Anda dalam 8-14 hari.
Retensi (15+ hari) Jumlah pengguna yang kembali ke aplikasi Anda dalam 15 hari atau lebih sejak terakhir menggunakannya.
Notifikasi terbuka Melacak apakah pengguna membuka notifikasi yang dikirim Notifications Composer.
Pendapatan pembelian Nilai gabungan untuk semua peristiwa ecommerce_purchase dan in_app_purchase.
Estimasi pendapatan AdMob Estimasi penghasilan dari AdMob.
Estimasi pendapatan total Nilai gabungan untuk pembelian dan estimasi pendapatan AdMob.
first_open Peristiwa Analytics yang terpicu saat pengguna pertama kali membuka aplikasi setelah menginstal atau menginstal ulang. Digunakan sebagai bagian dari funnel konversi.
notification_open Peristiwa Analytics yang terpicu saat pengguna membuka notifikasi yang dikirim Notifications Composer. Digunakan sebagai bagian dari funnel konversi.

Metrik lainnya

Metrik Deskripsi
Pengguna bebas error Persentase pengguna yang tidak mengalami error di aplikasi Anda yang terdeteksi Firebase Crashlytics SDK selama eksperimen berlangsung.
notification_dismiss Peristiwa Analytics yang terpicu saat notifikasi yang dikirim Notifications Composer ditutup (khusus Android).
notification_receive Peristiwa Analytics yang terpicu saat notifikasi yang dikirim Notifications Composer diterima saat aplikasi berada di latar belakang (khusus Android).
os_update Peristiwa Analytics yang melacak kapan sistem operasi perangkat diupdate ke versi baru. Untuk mempelajari lebih lanjut, lihat Peristiwa yang dikumpulkan secara otomatis.
screen_view Peristiwa Analytics yang melacak layar yang dilihat dalam aplikasi Anda. Untuk mempelajari lebih lanjut, lihat Melacak Tampilan Layar.
session_start Peristiwa Analytics yang menghitung sesi pengguna di aplikasi Anda. Untuk mempelajari lebih lanjut, lihat Peristiwa yang dikumpulkan secara otomatis.
user_engagement Peristiwa Analytics yang terpicu secara berkala saat aplikasi Anda ada di latar depan. Untuk mempelajari lebih lanjut, lihat Peristiwa yang dikumpulkan secara otomatis.

Ekspor data BigQuery

Anda dapat mengakses semua data analisis yang terkait dengan pengujian A/B Anda di BigQuery. Dengan BigQuery, Anda dapat menganalisis data menggunakan BigQuery SQL, mengekspornya ke penyedia cloud lain, atau menggunakan data tersebut untuk model ML kustom Anda. Baca artikel Menautkan BigQuery ke Firebase untuk mengetahui informasi selengkapnya.

Untuk mendapatkan manfaat penuh ekspor data BigQuery, project Firebase harus menggunakan paket harga "Blaze", bayar sesuai penggunaan. BigQuery mengenakan biaya untuk penyimpanan data, streaming insert, dan pembuatan kueri data. Memuat dan mengekspor data tidak dikenai biaya. Lihat Harga BigQuery, atau sandbox BigQuery untuk mengetahui informasi selengkapnya.

Untuk memulai, pastikan project Firebase Anda sudah ditautkan ke BigQuery. Pilih Settings > Project Settings dari menu navigasi sebelah kiri, lalu pilih Integrations > BigQuery > Link. Halaman ini menampilkan opsi untuk melakukan ekspor data analisis BigQuery untuk semua aplikasi dalam project tersebut.

Untuk membuat kueri data analisis eksperimen:

  1. Dari daftar eksperimen aktif, pilih eksperimen yang diinginkan untuk membuka halaman hasil eksperimen.
  2. Dari menu konteks di panel Experiment overview, pilih Query experiment data (opsi ini tidak tersedia untuk project pada paket gratis).

    Langkah ini akan membuka komposer kueri konsol BigQuery dengan contoh kueri data eksperimen yang otomatis dibuat dan yang dimuat sebelumnya sehingga dapat Anda pelajari. Dalam kueri ini, eksperimen Anda dienkode sebagai properti pengguna dengan nama eksperimen dalam kunci dan varian eksperimen dalam nilai.

  3. Di komposer kueri, pilih Run query. Hasil akan ditampilkan di panel bagian bawah.

Perlu diperhatikan bahwa karena data Firebase di BigQuery hanya diperbarui sekali sehari, data yang tersedia di halaman eksperimen mungkin lebih baru daripada data yang tersedia di konsol BigQuery.