Kiểm tra dữ liệu Thử nghiệm A/B bằng BigQuery

Ngoài việc xem dữ liệu thử nghiệm Thử nghiệm A/B trong bảng điều khiển Firebase, bạn có thể kiểm tra và phân tích dữ liệu thử nghiệm trong BigQuery. Mặc dù Thử nghiệm A/B không có bảng BigQuery riêng nhưng tư cách thành viên thử nghiệm và biến thể được lưu trữ trên mọi sự kiện Google Analytics trong bảng sự kiện Analytics.

Thuộc tính người dùng chứa thông tin thử nghiệm có dạng userProperty.key like "firebase_exp_%" hoặc userProperty.key = "firebase_exp_01" trong đó 01 là ID thử nghiệm và userProperty.value.string_value chứa chỉ mục (dựa trên 0) của biến thể thí nghiệm.

Bạn có thể sử dụng các thuộc tính người dùng thử nghiệm này để trích xuất dữ liệu thử nghiệm. Điều này mang lại cho bạn khả năng phân chia kết quả thử nghiệm của mình theo nhiều cách khác nhau và xác minh độc lập kết quả Thử nghiệm A/B.

Để bắt đầu, hãy hoàn thành các bước sau như được mô tả trong hướng dẫn này:

  1. Bật tính năng xuất BigQuery cho Google Analytics trong bảng điều khiển Firebase
  2. Truy cập dữ liệu Thử nghiệm A/B bằng BigQuery
  3. Khám phá các truy vấn mẫu

Bật tính năng xuất BigQuery cho Google Analytics trong bảng điều khiển Firebase

Nếu đang sử dụng gói Spark, bạn có thể sử dụng hộp cát BigQuery để truy cập BigQuery miễn phí, tuân theo các giới hạn của Hộp cát . Xem Giá cả và hộp cát BigQuery để biết thêm thông tin.

Trước tiên, hãy đảm bảo rằng bạn đang xuất dữ liệu Analytics của mình sang BigQuery:

  1. Mở tab Tích hợp mà bạn có thể truy cập bằng cách sử dụng > Cài đặt dự án trong bảng điều khiển Firebase .
  2. Nếu bạn đang sử dụng BigQuery với các dịch vụ Firebase khác, hãy nhấp vào Quản lý . Nếu không, hãy nhấp vào Liên kết .
  3. Xem lại Giới thiệu về việc liên kết Firebase với BigQuery , sau đó nhấp vào Tiếp theo .
  4. Trong phần Định cấu hình tích hợp , hãy bật nút chuyển đổi Google Analytics .
  5. Chọn một khu vực và chọn cài đặt xuất.

  6. Nhấp vào Liên kết tới BigQuery .

Tùy thuộc vào cách bạn chọn xuất dữ liệu, có thể mất tới một ngày để các bảng có sẵn. Để biết thêm thông tin về cách xuất dữ liệu dự án sang BigQuery, hãy xem Xuất dữ liệu dự án sang BigQuery .

Truy cập dữ liệu Thử nghiệm A/B trong BigQuery

Trước khi truy vấn dữ liệu cho một thử nghiệm cụ thể, bạn sẽ muốn có được một số hoặc tất cả thông tin sau để sử dụng trong truy vấn của mình:

  • ID thử nghiệm: Bạn có thể lấy mã này từ URL của trang tổng quan về thử nghiệm . Ví dụ: nếu URL của bạn trông giống như https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25 thì ID thử nghiệm là 25 .
  • ID thuộc tính Google Analytics : Đây là ID thuộc tính Google Analytics gồm 9 chữ số của bạn. Bạn có thể tìm thấy điều này trong Google Analytics; nó cũng xuất hiện trong BigQuery khi bạn mở rộng tên dự án để hiển thị tên của bảng sự kiện Google Analytics ( project_name.analytics_000000000.events ).
  • Ngày thử nghiệm: Để soạn truy vấn nhanh hơn và hiệu quả hơn, bạn nên giới hạn truy vấn của mình trong các phân vùng bảng sự kiện hàng ngày của Google Analytics có chứa dữ liệu thử nghiệm của bạn—các bảng được xác định bằng hậu tố YYYYMMDD . Vì vậy, nếu thử nghiệm của bạn chạy từ ngày 2 tháng 2 năm 2024 đến ngày 2 tháng 5 năm 2024, bạn sẽ chỉ định _TABLE_SUFFIX between '20240202' AND '20240502' . Để biết ví dụ, hãy xem Chọn giá trị của thử nghiệm cụ thể .
  • Tên sự kiện: Thông thường, những tên này tương ứng với số liệu mục tiêu mà bạn đã định cấu hình trong thử nghiệm. Ví dụ: sự kiện in_app_purchase , sự kiện ad_impression hoặc user_retention .

Sau khi bạn thu thập thông tin bạn cần để tạo truy vấn của mình:

  1. Mở BigQuery trong bảng điều khiển Google Cloud.
  2. Chọn dự án của bạn, sau đó chọn Tạo truy vấn SQL .
  3. Thêm truy vấn của bạn. Ví dụ về các truy vấn mẫu để chạy, hãy xem Khám phá các truy vấn mẫu .
  4. Nhấp vào Chạy .

Truy vấn dữ liệu thử nghiệm bằng truy vấn được tạo tự động của bảng điều khiển Firebase

Nếu bạn đang sử dụng gói Blaze, trang tổng quan về Thử nghiệm sẽ cung cấp một truy vấn mẫu trả về tên thử nghiệm, các biến thể, tên sự kiện và số lượng sự kiện cho thử nghiệm bạn đang xem.

Để lấy và chạy truy vấn được tạo tự động:

  1. Từ bảng điều khiển Firebase, hãy mở Thử nghiệm A/B và chọn thử nghiệm Thử nghiệm A/B mà bạn muốn truy vấn để mở Tổng quan về thử nghiệm .
  2. Từ menu Tùy chọn, bên dưới Tích hợp BigQuery , hãy chọn Truy vấn dữ liệu thử nghiệm . Thao tác này sẽ mở dự án của bạn trong BigQuery trong bảng điều khiển bảng điều khiển Google Cloud và cung cấp truy vấn cơ bản mà bạn có thể sử dụng để truy vấn dữ liệu thử nghiệm của mình.

Ví dụ sau đây cho thấy truy vấn được tạo cho một thử nghiệm có ba biến thể (bao gồm cả đường cơ sở) có tên là "Thử nghiệm chào đón mùa đông". Nó trả về tên thử nghiệm đang hoạt động, tên biến thể, sự kiện duy nhất và số lượng sự kiện cho mỗi sự kiện. Lưu ý rằng trình tạo truy vấn không chỉ định tên dự án của bạn trong tên bảng vì nó mở trực tiếp trong dự án của bạn.

  /*
    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

Để biết thêm các ví dụ truy vấn, hãy tiếp tục khám phá các truy vấn mẫu .

Khám phá các truy vấn mẫu

Các phần sau đây cung cấp ví dụ về các truy vấn mà bạn có thể sử dụng để trích xuất dữ liệu thử nghiệm Thử nghiệm A/B từ các bảng sự kiện của Google Analytics.

Trích xuất các giá trị độ lệch chuẩn mua và thử nghiệm từ tất cả các thử nghiệm

Bạn có thể sử dụng dữ liệu kết quả thử nghiệm để xác minh độc lập kết quả Thử nghiệm A/B của Firebase. Câu lệnh SQL BigQuery sau đây trích xuất các biến thể thử nghiệm, số lượng người dùng duy nhất trong mỗi biến thể và tổng doanh thu từ các sự kiện in_app_purchaseecommerce_purchase cũng như độ lệch chuẩn cho tất cả thử nghiệm trong phạm vi thời gian được chỉ định làm ngày bắt đầu và kết thúc _TABLE_SUFFIX . Bạn có thể sử dụng dữ liệu thu được từ truy vấn này bằng trình tạo ý nghĩa thống kê cho các thử nghiệm t một phía để xác minh rằng kết quả mà Firebase cung cấp khớp với phân tích của riêng bạn.

Để biết thêm thông tin về cách Thử nghiệm A/B tính toán suy luận, hãy xem Giải thích kết quả thử nghiệm .

  /*
    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;

Chọn giá trị của thử nghiệm cụ thể

Truy vấn mẫu sau đây minh họa cách lấy dữ liệu cho một thử nghiệm cụ thể trong BigQuery. Truy vấn mẫu này trả về tên thử nghiệm, tên biến thể (bao gồm cả Đường cơ sở), tên sự kiện và số lượng sự kiện.

  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