Memeriksa data A/B Testing dengan 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