Membuat Eksperimen Firebase Remote Config dengan A/B Testing

Ketika Anda menggunakan Firebase Remote Config untuk men-deploy setelan bagi aplikasi yang memiliki basis pengguna aktif, pastikan Anda melakukannya dengan benar. Anda dapat menggunakan eksperimen A/B Testing untuk menentukan hal berikut:

  • 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. A/B Testing 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 dasar pengukuran, 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 A/B Testing, Anda menetapkan tujuan bisnis Anda dan Firebase melakukan analisis statistik untuk mengetahui apakah performa suatu varian lebih baik dari dasar pengukuran untuk tujuan yang dipilih.

Untuk melakukan pengujian A/B pada varian fitur dengan dasar pengukuran, 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 console dan pastikan bahwa Google Analytics diaktifkan di project Anda sehingga eksperimen memiliki akses ke data Analytics.

    Jika tidak mengaktifkan Google Analytics saat membuat project, Anda dapat mengaktifkannya di tab Integrations, yang dapat diakses menggunakan > Project settings di Firebase console.

  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 digunakan untuk bereksperimen.

  4. Masukkan Name dan Description opsional untuk eksperimen Anda dan 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 mengklik and, kemudian memilih opsi dari daftar berikut:

    • Version: Satu atau beberapa versi aplikasi Anda
    • Build number: Kode versi aplikasi
    • Languages: Satu atau beberapa bahasa dan lokalitas yang digunakan untuk memilih pengguna yang mungkin disertakan dalam eksperimen
    • Country/Region: Satu atau beberapa negara atau wilayah untuk memilih pengguna yang seharusnya disertakan dalam eksperimen
    • User audience: Audience Analytics yang digunakan untuk menargetkan pengguna yang mungkin disertakan dalam eksperimen
    • User property: Satu atau beberapa properti pengguna Analytics untuk memilih pengguna yang mungkin disertakan dalam eksperimen
    • First open: Menargetkan pengguna berdasarkan waktu pertama kali mereka membuka aplikasi Anda

      Penargetan pengguna menurut waktu buka pertama kali tersedia setelah Anda memilih aplikasi Android atau iOS. Saat ini, perintah ini didukung oleh versi Remote Config SDK berikut: SDK platform Apple v9.0.0 dan Android SDK v21.1.1+ (Firebase BoM v30.3.0+).

      Analytics juga harus diaktifkan di sisi klien selama peristiwa pertama kali aplikasi dibuka.

  6. Tetapkan Percentage of target users: Masukkan persentase basis pengguna aplikasi Anda yang cocok dengan kriteria yang ditetapkan dalam Target users, agar terbagi secara merata antara dasar pengukuran 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, tetapkan peristiwa aktivasi untuk memastikan bahwa hanya data dari pengguna yang terlebih dulu memicu beberapa peristiwa Analytics yang dihitung di eksperimen. Perhatikan bahwa semua pengguna yang cocok dengan parameter penargetan Anda akan menerima nilai eksperimental Remote Config, tetapi hanya pengguna yang memicu peristiwa aktivasi yang akan disertakan dalam hasil eksperimen.

    Untuk memastikan eksperimen yang valid, pastikan peristiwa yang Anda pilih terjadi setelah aplikasi mengaktifkan nilai konfigurasi yang diambil. Selain itu, peristiwa berikut tidak dapat digunakan karena selalu terjadi sebelum nilai yang diambil diaktifkan:

    • app_install
    • app_remove
    • app_update
    • dynamic_link_first_open
  8. Untuk Target pada eksperimen, pilih metrik utama yang akan dilacak, lalu tambahkan metrik lain yang ingin Anda lacak dari daftar. Hal ini termasuk tujuan bawaan (pembelian, pendapatan, retensi, pengguna bebas error, dll.), Peristiwa konversi Analytics, dan peristiwa Analytics lainnya. Setelah selesai, klik Next.

  9. Di bagian Variants, pilih dasar pengukuran 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 parameter itu 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. Perluas Variant Weights untuk melihat atau mengubah bobot varian untuk eksperimen. Secara default, setiap varian mendapatkan bobot yang seimbang. Perhatikan bahwa bobot yang tidak merata dapat memperlama waktu pengumpulan data dan bobot tidak dapat diubah setelah eksperimen dimulai.

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

    do {
      let result = try await Installations.installations()
        .authTokenForcingRefresh(true)
      print("Installation auth token: \(result.authToken)")
    } catch {
      print("Error fetching token: \(error)")
    }
    

    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

    val forceRefresh = true
    FirebaseInstallations.getInstance().getToken(forceRefresh)
        .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(forceRefresh: true).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 melihat 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 Draf, lalu klik judul eksperimen.
  3. Untuk memvalidasi bahwa aplikasi Anda memiliki pengguna yang akan disertakan dalam eksperimen, perluas 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 atau telusuri judul eksperimen Anda. Di halaman ini, Anda dapat melihat berbagai statistik yang diamati dan dimodelkan tentang eksperimen yang sedang berjalan, termasuk yang berikut:

    • % difference from baseline: Ukuran peningkatan metrik untuk varian tertentu dibandingkan dengan dasar pengukuran. Dihitung dengan membandingkan rentang nilai untuk varian dengan rentang nilai untuk dasar pengukuran.
    • Probability to beat baseline: 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 dasar pengukuran atau varian. Nilai ini digunakan untuk mengukur performa setiap varian eksperimen dan untuk menghitung Improvement, Value range, Probability to beat baseline, dan Probability to be the best variant. 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 untuk ke depannya. Meskipun 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 dirilis ke semua pengguna, klik menu konteks () Luncurkan varian.
  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 kepada pengguna target lain yang bukan merupakan bagian dari 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 A/B Testing 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
Version contains,
does not contain,
matches exactly,
contains regex
Masukkan nilai untuk satu atau beberapa versi aplikasi yang ingin Anda sertakan dalam eksperimen.

Jika menggunakan operator contains, does not contain, atau matches exactly, Anda dapat memasukkan beberapa nilai yang dipisahkan dengan koma.

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

User audience(s) includes all of,
includes at least one of,
does not include all of,
does not include at least one of
Pilih satu atau beberapa audience Analytics untuk menargetkan pengguna yang mungkin disertakan dalam eksperimen Anda. Beberapa eksperimen yang menargetkan audience Google Analytics mungkin memerlukan waktu beberapa hari untuk mengakumulasi data karena data tersebut bergantung pada latensi pemrosesan data Analytics. Kemungkinan besar Anda mengalami penundaan ini dengan pengguna baru, yang biasanya terdaftar menjadi audience yang memenuhi syarat dalam waktu 24-48 jam setelah pembuatan, atau untuk audience yang baru dibuat.

Untuk Remote Config, hal ini berarti meskipun pengguna secara teknis memenuhi syarat untuk menjadi audience, jika Analytics belum menambahkan pengguna tersebut ke audience saat `fetchAndActivate()` dijalankan, pengguna tidak akan disertakan dalam eksperimen tersebut.

User property Untuk teks:
contains,
does not contain,
exactly matches,
contains regex

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 contains regex, Anda dapat membuat ekspresi reguler dalam format RE2. Ekspresi reguler dapat cocok dengan keseluruhan atau sebagian dari string versi target. Anda juga dapat menggunakan anchor ^ dan $ untuk mencocokkan bagian awal, akhir, atau keseluruhan string target.
Country/Region T/A Satu atau beberapa negara atau wilayah yang digunakan untuk memilih pengguna yang mungkin disertakan dalam eksperimen.  
Languages T/A Satu atau beberapa bahasa dan lokalitas yang digunakan untuk memilih pengguna yang mungkin disertakan dalam eksperimen.  
First open Before
After

Menargetkan pengguna berdasarkan waktu pertama kali mereka membuka aplikasi Anda:

  • Pilih New users untuk menargetkan pengguna yang pertama kali membuka aplikasi Anda setelah tanggal dan waktu yang ditentukan di masa mendatang.
  • Pilih Time range untuk menargetkan pengguna yang pertama kali membuka aplikasi Anda dalam rentang sebelum atau setelah tanggal dan waktu yang ditentukan. Gabungkan kondisi Before dan After untuk menargetkan pengguna dalam rentang waktu tertentu.

Penargetan pengguna menurut waktu buka pertama tersedia setelah Anda memilih aplikasi Android atau iOS. Saat ini, perintah ini didukung oleh versi Remote Config SDK berikut: SDK platform Apple v9.0.0 dan Android SDK v21.1.1+ (Firebase BoM v30.3.0+).

Analytics juga harus diaktifkan di sisi klien selama peristiwa pertama kali aplikasi dibuka.

Metrik A/B Testing

Saat membuat eksperimen, Anda memilih metrik utama atau sasaran, yang digunakan untuk menentukan varian unggul. Anda juga harus melacak metrik lain untuk membantu lebih memahami performa setiap varian eksperimen dan melacak tren penting yang mungkin berbeda untuk setiap varian, seperti retensi pengguna, stabilitas aplikasi, dan pendapatan pembelian dalam aplikasi. Anda dapat melacak hingga lima metrik non-sasaran dalam eksperimen.

Misalnya, Anda menggunakan Remote Config untuk meluncurkan dua alur game yang berbeda di aplikasi dan ingin mengoptimalkan pembelian dalam aplikasi dan pendapatan iklan. Namun, Anda juga ingin melacak stabilitas dan retensi pengguna dari setiap varian. Dalam hal ini, Anda dapat mempertimbangkan untuk memilih Estimated total revenue sebagai metrik sasaran karena metrik ini mencakup pendapatan pembelian dalam aplikasi dan pendapatan iklan. Selanjutnya, untuk opsi Other metrics to track, Anda dapat menambahkan hal berikut:

  • Untuk melacak retensi pengguna harian dan mingguan, tambahkan Retention (2-3 days) dan Retention (4-7 days).
  • Untuk membandingkan stabilitas antara dua alur game, tambahkan Crash-free users.
  • Untuk melihat tampilan yang lebih mendetail dari setiap jenis pendapatan, tambahkan Purchase revenue dan Estimated ad revenue.

Tabel berikut memberikan detail tentang cara perhitungan metrik sasaran dan metrik lainnya.

Metrik sasaran

Metrik Deskripsi
Crash-free users Persentase pengguna yang tidak mengalami error di aplikasi Anda yang terdeteksi Firebase Crashlytics SDK selama eksperimen berlangsung.
Estimated ad revenue Estimasi penghasilan iklan.
Estimated total revenue Nilai gabungan untuk pembelian dan estimasi pendapatan iklan.
Purchase revenue Nilai gabungan untuk semua peristiwa purchase dan in_app_purchase.
Retention (1 day) Jumlah pengguna yang kembali ke aplikasi Anda setiap hari.
Retention (2-3 days) Jumlah pengguna yang kembali ke aplikasi Anda dalam 2-3 hari.
Retention (4-7 days) Jumlah pengguna yang kembali ke aplikasi Anda dalam 4-7 hari.
Retention (8-14 days) Jumlah pengguna yang kembali ke aplikasi Anda dalam 8-14 hari.
Retention (15+ days) Jumlah pengguna yang kembali ke aplikasi Anda dalam 15 hari atau lebih sejak terakhir menggunakannya.
first_open Peristiwa Analytics yang terpicu saat pengguna pertama kali membuka aplikasi setelah menginstal atau menginstal ulang. Digunakan sebagai bagian dari funnel konversi.

Metrik lainnya

Metrik Deskripsi
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, baca artikel 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.

Ekspor data BigQuery

Selain melihat data eksperimen A/B Testing di Firebase console, Anda dapat memeriksa dan menganalisis data eksperimen di BigQuery. Meskipun A/B Testing tidak memiliki tabel BigQuery yang terpisah, keanggotaan eksperimen dan varian disimpan di setiap peristiwa Google Analytics dalam tabel peristiwa Analytics.

Properti pengguna yang berisi informasi eksperimen adalah bentuk userProperty.key like "firebase_exp_%" atau userProperty.key = "firebase_exp_01" dengan 01 sebagai ID eksperimen, dan userProperty.value.string_value berisi indeks (berbasis nol) dari varian eksperimen.

Anda dapat menggunakan properti pengguna eksperimen ini untuk mengekstrak data eksperimen. Hal ini memberi Anda kemampuan untuk menyesuaikan hasil eksperimen dengan berbagai cara dan memverifikasi hasil A/B Testing secara independen.

Untuk memulai, selesaikan hal-hal berikut seperti yang dijelaskan dalam panduan ini:

  1. Mengaktifkan BigQuery Export untuk Google Analytics di Firebase console
  2. Mengakses data A/B Testing menggunakan BigQuery
  3. Mempelajari contoh kueri

Mengaktifkan BigQuery Export untuk Google Analytics di Firebase console

Jika Anda menggunakan paket Spark, Anda dapat menggunakan sandbox BigQuery untuk mengakses BigQuery tanpa biaya, dengan tunduk pada batas Sandbox. Lihat Harga dan sandbox BigQuery untuk mengetahui informasi selengkapnya.

Pertama, pastikan Anda mengekspor data Analytics ke BigQuery:

  1. Buka tab Integrations, yang dapat diakses menggunakan > Project settings di Firebase console.
  2. Jika Anda sudah menggunakan BigQuery dengan layanan Firebase lainnya, klik Manage. Jika sudah pernah menyetelnya, klik Link.
  3. Tinjau About Linking Firebase to BigQuery, lalu klik Next.
  4. Di bagian Configure integration, aktifkan tombol Google Analytics.
  5. Pilih wilayah dan pilih setelan ekspor.

  6. Klik Link to BigQuery.

Bergantung pada cara Anda memilih untuk mengekspor data, mungkin perlu waktu hingga satu hari sampai tabel tersedia. Untuk mengetahui informasi lebih lanjut tentang cara mengekspor data project ke BigQuery, baca Mengekspor data project ke BigQuery.

Mengakses data A/B Testing di BigQuery

Sebelum membuat kueri data untuk eksperimen tertentu, Anda harus mendapatkan beberapa atau semua hal berikut untuk digunakan dalam kueri:

  • Experiment ID: Anda bisa mendapatkannya dari URL halaman Experiment overview. Misalnya, jika URL Anda terlihat seperti https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, ID eksperimen adalah 25.
  • Google Analytics property ID: Ini adalah ID properti Google Analytics 9 digit Anda. Anda dapat menemukannya di Google Analytics; ID tersebut juga muncul di BigQuery saat Anda meluaskan nama project untuk menampilkan nama tabel peristiwa Google Analytics (project_name.analytics_000000000.events).
  • Experiment date: Untuk membuat kueri yang lebih cepat dan efisien, sebaiknya batasi kueri Anda ke partisi tabel peristiwa harian Google Analytics yang berisi data eksperimen, yaitu tabel yang diidentifikasi dengan akhiran YYYYMMDD. Jadi, jika eksperimen Anda berjalan dari 2 Februari 2024 hingga 2 Mei 2024, tentukan _TABLE_SUFFIX between '20240202' AND '20240502'. Untuk contohnya, lihat Memilih nilai eksperimen tertentu.
  • Event names: Biasanya, ini sesuai dengan metrik sasaran yang Anda konfigurasi di eksperimen. Misalnya, peristiwa in_app_purchase, peristiwa ad_impression, atau user_retention.

Setelah Anda mengumpulkan informasi yang diperlukan untuk menghasilkan kueri:

  1. Buka BigQuery di Konsol Google Cloud.
  2. Pilih project Anda, lalu pilih Create SQL query.
  3. Tambahkan kueri Anda. Untuk contoh kueri yang akan dijalankan, lihat Mempelajari contoh kueri.
  4. Klik Run.

Membuat kueri data eksperimen menggunakan kueri Firebase console yang dibuat secara otomatis

Jika Anda menggunakan paket Blaze, halaman Experiment overview menyediakan contoh kueri yang menampilkan nama eksperimen, varian, nama peristiwa, dan jumlah peristiwa untuk eksperimen yang sedang Anda lihat.

Untuk mendapatkan dan menjalankan kueri yang dibuat secara otomatis:

  1. Dari Firebase console, buka A/B Testing dan pilih eksperimen A/B Testing yang ingin Anda buat kuerinya untuk membuka Experiment overview.
  2. Dari menu Opsi, di bawah BigQuery integration, pilih Query experiment data. Langkah ini akan membuka project Anda di BigQuery dalam konsol Konsol Google Cloud dan memberikan kueri dasar yang dapat digunakan untuk membuat kueri data eksperimen.

Contoh berikut menunjukkan kueri yang dihasilkan untuk eksperimen dengan tiga varian (termasuk dasar pengukuran) yang bernama "Eksperimen sambutan musim dingin". Kueri ini menampilkan nama eksperimen aktif, nama varian, peristiwa unik, dan jumlah peristiwa untuk setiap peristiwa. Perhatikan bahwa builder kueri tidak menentukan nama project Anda di nama tabel, karena kueri akan langsung terbuka di dalam project Anda.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

Untuk contoh kueri tambahan, lanjutkan ke Mempelajari contoh kueri.

Mempelajari contoh kueri

Bagian berikut memberikan contoh kueri yang dapat Anda gunakan untuk mengekstrak data eksperimen A/B Testing dari tabel peristiwa Google Analytics.

Mengekstrak nilai deviasi standar pembelian dan eksperimen dari semua eksperimen

Anda dapat menggunakan data hasil eksperimen untuk memverifikasi hasil Firebase A/B Testing secara independen. Pernyataan SQL BigQuery berikut mengekstrak varian eksperimen, jumlah pengguna unik di setiap varian, dan menjumlahkan total pendapatan dari peristiwa in_app_purchase dan ecommerce_purchase, serta deviasi standar untuk semua eksperimen dalam rentang waktu yang ditentukan sebagai tanggal mulai dan akhir _TABLE_SUFFIX. Anda dapat menggunakan data yang diperoleh dari kueri ini dengan generator data signifikansi statistik untuk uji t satu arah guna memverifikasi bahwa hasil yang diberikan Firebase sesuai dengan analisis Anda.

Untuk informasi selengkapnya tentang cara A/B Testing menghitung inferensi, lihat Menafsirkan hasil pengujian.

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

Memilih nilai eksperimen tertentu

Contoh kueri berikut menggambarkan cara mendapatkan data untuk eksperimen tertentu di BigQuery. Kueri contoh ini menampilkan nama eksperimen, nama varian (termasuk Dasar pengukuran), nama peristiwa, dan jumlah peristiwa.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName