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:
- Mengaktifkan ekspor BigQuery untuk Google Analytics di Firebase console
- Mengakses data A/B Testing menggunakan BigQuery
- 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:
- Buka tab Integrations, yang dapat diakses menggunakan > > di Firebase console.
- Jika Anda sudah menggunakan BigQuery dengan layanan Firebase lainnya, klik Manage. Jika belum, klik Link.
- Tinjau About Linking Firebase to BigQuery, lalu klik Next.
- Di bagian Configure integration, aktifkan tombol Google Analytics.
Pilih region dan pilih setelan ekspor.
Klik Link to 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
, peristiwaad_impression
, atauuser_retention
.
Setelah Anda mengumpulkan informasi yang diperlukan untuk menghasilkan kueri:
- Buka BigQuery di Google Cloud console.
- Pilih project Anda, lalu pilih Create SQL query.
- Tambahkan kueri Anda. Untuk contoh kueri yang akan dijalankan, lihat Mempelajari contoh kueri.
- 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:
- Dari Firebase console, buka A/B Testing dan pilih eksperimen A/B Testing yang ingin Anda buat kuerinya untuk membuka Experiment overview.
- 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 BigQuery SQL 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