Tentang Firebase A/B Testing

Untuk membantu Anda memaksimalkan relevansi dan kegunaan hasil pengujian, halaman ini memberikan informasi mendetail tentang cara kerja Firebase A/B Testing.

Ukuran sampel

Inferensi Firebase A/B Testing tidak memerlukan identifikasi ukuran sampel minimum sebelum memulai eksperimen. Secara umum, Anda harus memilih tingkat eksposur eksperimen terbesar yang paling nyaman bagi Anda. Ukuran sampel yang lebih besar dapat meningkatkan peluang menemukan hasil yang signifikan secara statistik, terutama jika perbedaan performa antarvarian kecil. Anda juga mungkin perlu memanfaatkan kalkulator ukuran sampel online untuk menemukan ukuran sampel yang direkomendasikan berdasarkan karakteristik eksperimen Anda.

Mengedit eksperimen

Anda dapat mengedit parameter yang dipilih dari eksperimen yang sedang berjalan, termasuk:

  • Nama eksperimen
  • Deskripsi
  • Kondisi penargetan
  • Nilai varian

Untuk mengedit eksperimen:

  1. Buka halaman hasil untuk eksperimen yang ingin Anda ubah.
  2. Dari menu More , pilih Edit running experiment.
  3. Lakukan perubahan, lalu klik Publish.

Perhatikan bahwa mengubah perilaku aplikasi selama eksperimen sedang berjalan dapat memengaruhi hasil.

Logika penetapan varian Remote Config

Pengguna yang cocok dengan semua kondisi penargetan eksperimen (termasuk kondisi eksposur persentase) ditetapkan ke varian eksperimen sesuai dengan bobot varian dan hash ID eksperimen dan ID penginstalan Firebase pengguna.

Audience Google Analytics bergantung pada latensi dan tidak langsung tersedia saat pengguna memenuhi kriteria audience di awal.

  • Jika Anda membuat audiens baru, mungkin perlu waktu 24–48 jam untuk mengakumulasikan pengguna baru.
  • Pengguna baru biasanya terdaftar menjadi audience yang memenuhi syarat dalam waktu 24-48 jam setelah mereka memenuhi syarat.

Untuk penargetan yang sensitif terhadap waktu, sebaiknya gunakan properti pengguna Google Analytics atau opsi penargetan bawaan seperti negara atau wilayah, bahasa, dan versi aplikasi.

Setelah memasuki eksperimen, pengguna akan terus ditetapkan ke varian eksperimennya dan menerima parameter value dari eksperimen tersebut selama eksperimen tetap aktif, meskipun properti penggunanya berubah dan tidak lagi memenuhi kriteria penargetan eksperimen.

Peristiwa aktivasi

Peristiwa aktivasi eksperimen membatasi pengukuran eksperimen pada pengguna aplikasi yang memicu peristiwa aktivasi. Peristiwa aktivasi eksperimen tidak berpengaruh terhadap parameter eksperimen yang diambil oleh aplikasi; semua pengguna yang memenuhi kriteria penargetan eksperimen akan menerima parameter eksperimen. Oleh sebab itu, sebaiknya pilih peristiwa aktivasi yang terjadi setelah parameter eksperimen diambil dan diaktifkan, tetapi sebelum parameter eksperimen digunakan untuk mengubah perilaku aplikasi.

Bobot varian

Selama pembuatan eksperimen, Anda dapat mengubah bobot varian default untuk menempatkan persentase pengguna eksperimen yang lebih besar ke dalam varian.

Menafsirkan hasil pengujian

Firebase A/B Testing menggunakan inferensi frequentist untuk membantu Anda memahami kemungkinan bahwa hasil eksperimen Anda dapat terjadi hanya karena kebetulan secara acak. Kemungkinan ini diwakili oleh nilai probabilitas, atau nilai-p. Nilai p adalah probabilitas bahwa perbedaan performa sebesar ini, atau lebih besar, antara dua varian dapat terjadi karena kebetulan secara acak meskipun sebenarnya tidak ada efek, yang diukur dengan nilai antara 0 dan 1. A/B Testing menggunakan tingkat signifikansi sebesar 0,05 sehingga:

  • Nilai p yang kurang dari 0,05 menunjukkan bahwa jika perbedaan sebenarnya adalah nol, kemungkinan perbedaan ekstrem yang diamati ini terjadi secara acak kurang dari 5%. Karena 0,05 adalah nilai minimum, nilai p yang kurang dari 0,05 menunjukkan perbedaan signifikansi statistik antarvarian.
  • Nilai p yang lebih besar dari 0,05 menunjukkan bahwa perbedaan antaravarian tidak signifikan secara statistik.

Data eksperimen diperbarui sekali sehari, dan waktu pembaruan terakhir muncul di bagian atas halaman hasil eksperimen.

Grafik hasil eksperimen menampilkan nilai rata-rata kumulatif dari metrik yang dipilih. Misalnya, jika Anda melacak pendapatan Iklan per pengguna sebagai metrik, metrik ini akan menampilkan pendapatan yang diamati per pengguna dan, jika Anda melacak pengguna Bebas error, metrik akan melacak persentase pengguna yang tidak mengalami error. Data ini bersifat kumulatif dari awal eksperimen.

Hasilnya dibagi menjadi Data yang diamati dan Data inferensi. Data yang diamati dihitung langsung dari data Google Analytics, dan data inferensi memberikan nilai p dan interval keyakinan untuk membantu Anda dalam mengevaluasi signifikansi statistik dari data yang diamati.

Untuk setiap metrik, statistik berikut ditampilkan:

Data yang diamati

  • Nilai total untuk metrik yang dilacak (jumlah pengguna yang dipertahankan, jumlah pengguna yang mengalami error, total pendapatan)
  • Rasio spesifik per metrik (rasio retensi, rasio konversi, pendapatan per pengguna)
  • Perbedaan persentase (peningkatan) antara varian dan dasar pengukuran

Data inferensi

  • 95% CI (perbedaan dalam rata-rata) menampilkan interval yang berisi nilai "sebenarnya" dari metrik yang dilacak dengan keyakinan 95%. Misalnya, jika eksperimen Anda menghasilkan CI sebesar 95% untuk estimasi total pendapatan antara $5 dan $10, ada kemungkinan 95% bahwa perbedaan rata-rata yang sebenarnya adalah antara $5 dan $10. Jika rentang CI termasuk 0, perbedaan signifikansi statistik antara varian dan dasar pengukuran tidak dideteksi.

    Nilai interval keyakinan muncul dalam format yang cocok dengan metrik yang dilacak. Misalnya, Time (dalam HH:MM:SS) untuk retensi pengguna, USD untuk pendapatan iklan per pengguna, dan persentase untuk rasio konversi.

  • Nilai p, yang merepresentasikan probabilitas pengamatan data yang ekstrem seperti hasil yang diperoleh dalam eksperimen, dengan mempertimbangkan bahwa tidak ada perbedaan sebenarnya antara varian dan dasar pengukuran. Makin rendah nilai p, makin tinggi keyakinan bahwa performa yang diamati tetap yang sebenarnya jika kita mengulangi eksperimen. Nilai 0,05 atau lebih rendah menunjukkan perbedaan yang signifikan dan kemungkinan rendah bahwa hasil disebabkan karena kebetulan. Nilai P didasarkan pada pengujian satu arah, dengan nilai Varian lebih besar dari nilai Dasar pengukuran. Firebase menggunakan t-test varians yang tidak sama untuk variabel berkelanjutan (nilai numerik, seperti pendapatan) dan z-test proporsi untuk data konversi (nilai biner, seperti retensi pengguna, pengguna bebas error, pengguna yang memicu peristiwa Google Analytics).

Hasil eksperimen memberikan insight penting untuk setiap varian eksperimen, termasuk:

  • Seberapa tinggi atau seberapa rendah setiap metrik eksperimen dibandingkan dengan dasar pengukuran, yang diukur secara langsung (yaitu, data yang diamati sebenarnya)
  • Kemungkinan bahwa perbedaan yang diamati antara varian dan dasar pengukuran dapat terjadi karena peluang secara acak (nilai p)
  • Rentang yang mungkin berisi perbedaan performa "sebenarnya" antara varian dan dasar pengukuran untuk setiap metrik eksperimen---cara untuk memahami skenario performa "kasus terbaik" dan "kasus terburuk"

Menafsirkan hasil untuk eksperimen yang didukung oleh Google Optimize

Hasil Firebase A/B Testing untuk eksperimen yang dimulai sebelum 23 Oktober 2023 didukung oleh Google Optimize. Google Optimize menggunakan inferensi Bayesian untuk membuat statistik yang bermakna dari data eksperimen Anda.

Hasil dibagi menjadi "data yang diamati" dan "data sesuai model". Data yang diamati dihitung langsung dari data analisis, dan data sesuai model berasal dari penerapan model Bayesian kami ke data yang diamati.

Untuk setiap metrik, statistik berikut ditampilkan:

Data yang Diamati

  • Nilai total (jumlah metrik untuk semua pengguna dalam varian)
  • Nilai rata-rata (nilai rata-rata metrik untuk pengguna dalam varian)
  • % perbedaan dari dasar pengukuran

Data Sesuai Model

  • Kemungkinan untuk mengalahkan yang asli: seberapa besar kemungkinan metrik lebih tinggi untuk varian ini dibandingkan dengan dasar pengukuran
  • Perbedaan persentase dari dasar pengukuran: berdasarkan estimasi model median dari metrik untuk varian dan dasar pengukuran
  • Rentang metrik: rentang yang di dalamnya paling mungkin ditemukan nilai metrik, dengan kepastian 50% dan 95%

Secara keseluruhan, hasil eksperimen memberi kita tiga data penting untuk setiap varian dalam eksperimen:

  1. Seberapa tinggi atau seberapa rendah setiap metrik eksperimen dibandingkan dengan dasar pengukuran, yang diukur secara langsung (yaitu, data yang diamati sebenarnya)
  2. Seberapa besar kemungkinan setiap metrik eksperimen lebih tinggi dari dasar pengukuran/terbaik secara keseluruhan, berdasarkan inferensi Bayesian (kemungkinan setiap metrik eksperimen menjadi lebih baik/yang terbaik)
  3. Rentang yang masuk akal untuk setiap metrik eksperimen berdasarkan inferensi Bayesian, yaitu skenario "kasus terbaik" dan "kasus terburuk" (interval kredibel)

Penentuan posisi teratas

Untuk eksperimen yang menggunakan Inferensi frequentist, Firebase menyatakan bahwa suatu varian menempati posisi teratas jika ada perbedaan performa yang signifikan secara statistik antara varian dan dasar pengukuran pada metrik sasaran. Jika beberapa varian memenuhi kriteria ini, varian dengan nilai p terendah akan dipilih.

Untuk eksperimen yang menggunakan Google Optimize, Firebase mendeklarasikan bahwa suatu varian adalah "posisi teratas yang pasti" jika memiliki peluang lebih besar dari 95% untuk menjadi lebih baik daripada varian dasar metrik utama. Jika beberapa varian memenuhi kriteria "posisi teratas yang pasti", hanya varian berperforma terbaik secara keseluruhan yang akan diberi label "posisi teratas yang pasti".

Karena penentuan posisi teratas hanya didasarkan pada sasaran utama, Anda harus mempertimbangkan semua faktor yang relevan dan meninjau hasil metrik sekunder sebelum memutuskan apakah akan meluncurkan varian utama atau tidak. Anda mungkin ingin mempertimbangkan sisi positif yang diharapkan dari melakukan perubahan, risiko kerugian (seperti ujung bawah interval keyakinan untuk peningkatan), dan dampak terhadap metrik selain sasaran utama.

Misalnya, jika metrik utama Anda adalah pengguna Bebas error, dan Varian A adalah posisi teratas yang pasti dari dasar pengukuran, tetapi metrik retensi pengguna Varian A melacak retensi pengguna dasar pengukuran, Anda dapat menyelidikinya lebih lanjut sebelum meluncurkannya Varian A secara lebih luas.

Anda dapat meluncurkan varian apa pun, tidak hanya varian posisi teratas, berdasarkan evaluasi performa secara keseluruhan pada metrik utama dan sekunder.

Durasi eksperimen

Firebase merekomendasikan agar eksperimen terus berjalan hingga kondisi berikut terpenuhi:

  1. Eksperimen telah mengumpulkan cukup data untuk memberikan hasil yang bermanfaat. Eksperimen dan data hasil diperbarui sekali sehari. Anda dapat menggunakan kalkulator ukuran sampel online untuk mengevaluasi ukuran sampel eksperimen yang direkomendasikan.
  2. Eksperimen ini telah berjalan cukup lama untuk memastikan sampel perwakilan dari pengguna Anda dan mengukur performa jangka panjang. Dua minggu adalah runtime minimum yang direkomendasikan untuk eksperimen Remote Config biasa.

Data eksperimen diproses selama maksimum 90 hari setelah eksperimen dimulai. Setelah 90 hari, eksperimen akan otomatis dihentikan. Hasil eksperimen tidak lagi diperbarui di Firebase console dan eksperimen berhenti mengirimkan parameter value khusus eksperimen. Pada titik ini, klien mulai mengambil parameter value berdasarkan kondisi yang ditetapkan dalam template Remote Config. Data eksperimen historis dipertahankan hingga Anda menghapus eksperimen.

Skema 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 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 ekspor BigQuery untuk Google Analytics di Firebase console
  2. Mengakses data A/B Testing menggunakan BigQuery
  3. Mempelajari contoh kueri

Mengaktifkan ekspor BigQuery 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 belum, klik Link.
  3. Tinjau About Linking Firebase to BigQuery, lalu klik Next.
  4. Di bagian Configure integration, aktifkan tombol Google Analytics.
  5. Pilih region dan pilih setelan ekspor.

  6. Klik Tautkan ke BigQuery.

Bergantung pada cara Anda memilih untuk mengekspor data, mungkin perlu waktu hingga satu hari sampai tabel tersedia. Untuk mengetahui informasi selengkapnya 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.
  • ID properti Google Analytics: 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 Anda 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 Google Cloud console.
  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 BigQueryintegration, pilih Query experiment data. Tindakan ini akan membuka project Anda di BigQuery dalam Google Cloud console 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 "Winter welcome experiment". 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 mengetahui 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

Batas

A/B Testing dibatasi hingga total 300 eksperimen, 24 eksperimen yang sedang berjalan, dan 24 eksperimen draf. Batas ini digunakan bersama dengan peluncuran Remote Config. Misalnya, jika Anda memiliki dua peluncuran yang berjalan dan tiga eksperimen yang berjalan, Anda dapat memiliki hingga 19 peluncuran atau eksperimen tambahan.

  • Jika mencapai batas total 300 eksperimen atau batas 24 draf eksperimen, Anda harus menghapus eksperimen yang ada sebelum membuat eksperimen baru.

  • Jika mencapai batas 24 eksperimen dan peluncuran yang sedang berjalan, Anda harus menghentikan eksperimen atau peluncuran yang sedang berjalan sebelum memulai yang baru.

Eksperimen dapat memiliki maksimum 8 varian (termasuk dasar pengukuran) dan maksimal 25 parameter untuk setiap varian. Eksperimen dapat memiliki ukuran hingga 200 KiB. Eksperimen ini mencakup nama varian, parameter varian, dan metadata konfigurasi lainnya.