Giới thiệu về thử nghiệm A/B trong Firebase

Để giúp bạn tối đa hoá mức độ liên quan và tính hữu ích của kết quả kiểm thử, trang này cung cấp thông tin chi tiết về cách Firebase A/B Testing hoạt động.

Cỡ mẫu

Suy luận Firebase A/B Testing không yêu cầu xác định cỡ mẫu tối thiểu trước khi bắt đầu thử nghiệm. Nhìn chung, bạn nên chọn mức độ hiển thị thử nghiệm lớn nhất mà bạn cảm thấy thoải mái. Cỡ mẫu lớn hơn sẽ làm tăng khả năng tìm thấy kết quả có ý nghĩa thống kê, đặc biệt là khi có sự khác biệt nhỏ về hiệu suất giữa các biến thể. Bạn cũng có thể tham khảo một công cụ tính toán quy mô mẫu trực tuyến để tìm quy mô mẫu được đề xuất dựa trên các đặc điểm của thử nghiệm.

Chỉnh sửa thử nghiệm

Bạn có thể chỉnh sửa các thông số đã chọn của thử nghiệm đang chạy, bao gồm:

  • Tên thử nghiệm
  • Mô tả
  • Các điều kiện của chế độ nhắm mục tiêu
  • Giá trị biến thể

Cách chỉnh sửa thử nghiệm:

  1. Mở trang kết quả của thử nghiệm mà bạn muốn sửa đổi.
  2. Trong trình đơn Tuỳ chọn khác , hãy chọn Chỉnh sửa thử nghiệm đang chạy.
  3. Thực hiện các thay đổi rồi nhấp vào Xuất bản.

Xin lưu ý rằng việc thay đổi hành vi của ứng dụng trong quá trình thử nghiệm đang chạy có thể ảnh hưởng đến kết quả.

Logic chỉ định biến thể Cấu hình từ xa

Những người dùng đáp ứng tất cả các điều kiện nhắm mục tiêu của thử nghiệm (bao gồm cả điều kiện tỷ lệ hiển thị) sẽ được chỉ định cho các biến thể thử nghiệm theo trọng số biến thể và một hàm băm của mã nhận dạng thử nghiệm và mã nhận dạng lượt cài đặt Firebase của người dùng.

Google Analytics Đối tượng có thể bị trễ và không có sẵn ngay khi người dùng đáp ứng tiêu chí về đối tượng lần đầu tiên:

  • Khi bạn tạo một đối tượng mới, có thể mất 24 đến 48 giờ để đối tượng đó tích luỹ người dùng mới.
  • Người dùng mới thường được đăng ký vào đối tượng đủ điều kiện sau 24 đến 48 giờ kể từ khi họ đủ điều kiện.

Đối với tiêu chí nhắm mục tiêu theo thời gian, hãy cân nhắc sử dụng các thuộc tính người dùng Google Analytics hoặc các lựa chọn nhắm mục tiêu tích hợp như quốc gia hoặc khu vực, ngôn ngữ và phiên bản ứng dụng.

Sau khi tham gia một thử nghiệm, người dùng sẽ được chỉ định liên tục vào biến thể thử nghiệm của họ và nhận các giá trị tham số từ thử nghiệm miễn là thử nghiệm vẫn đang hoạt động, ngay cả khi thuộc tính người dùng của họ thay đổi và họ không còn đáp ứng tiêu chí nhắm mục tiêu của thử nghiệm nữa.

Sự kiện kích hoạt

Giới hạn sự kiện kích hoạt thử nghiệm đối với những người dùng ứng dụng kích hoạt sự kiện kích hoạt. Sự kiện kích hoạt thử nghiệm không ảnh hưởng đến các thông số thử nghiệm mà ứng dụng tìm nạp; tất cả người dùng đáp ứng tiêu chí nhắm mục tiêu của thử nghiệm sẽ nhận được các thông số thử nghiệm. Do đó, bạn cần chọn một sự kiện kích hoạt xảy ra sau khi các thông số thử nghiệm được tìm nạp và kích hoạt, nhưng trước khi các thông số thử nghiệm được dùng để sửa đổi hành vi của ứng dụng.

Trọng lượng biến thể

Trong quá trình tạo thử nghiệm, bạn có thể thay đổi trọng số mặc định của biến thể để đưa một tỷ lệ phần trăm lớn hơn số người dùng thử nghiệm vào một biến thể.

Diễn giải kết quả kiểm thử

Firebase A/B Testing sử dụng suy luận theo tần suất để giúp bạn hiểu được khả năng kết quả thử nghiệm của bạn chỉ xảy ra do yếu tố ngẫu nhiên. Xác suất này được biểu thị bằng một giá trị xác suất hoặc giá trị p. Giá trị p là xác suất mà sự khác biệt lớn hoặc lớn hơn về hiệu suất giữa hai biến thể có thể xảy ra do yếu tố ngẫu nhiên nếu thực sự không có hiệu ứng, được đo bằng một giá trị từ 0 đến 1. A/B Testing sử dụng mức ý nghĩa là 0,05 để:

  • Giá trị p nhỏ hơn 0,05 cho biết rằng nếu chênh lệch thực là 0, thì có ít hơn 5% khả năng chênh lệch quan sát được ở mức cực đoan này có thể xảy ra ngẫu nhiên. Vì 0,05 là ngưỡng nên mọi giá trị p nhỏ hơn 0,05 đều cho thấy sự khác biệt có ý nghĩa thống kê giữa các biến thể.
  • Giá trị p lớn hơn 0,05 cho biết sự khác biệt giữa các biến thể không có ý nghĩa thống kê.

Dữ liệu thử nghiệm được làm mới mỗi ngày một lần và thời gian cập nhật gần đây nhất sẽ xuất hiện ở đầu trang kết quả thử nghiệm.

Biểu đồ kết quả thử nghiệm cho thấy các giá trị trung bình tích luỹ của chỉ số đã chọn. Ví dụ: nếu bạn đang theo dõi Doanh thu từ quảng cáo trên mỗi người dùng dưới dạng một chỉ số, thì chỉ số này sẽ hiển thị doanh thu quan sát được trên mỗi người dùng. Nếu bạn đang theo dõi Số người dùng không gặp sự cố, thì chỉ số này sẽ theo dõi tỷ lệ phần trăm người dùng không gặp sự cố. Dữ liệu này được tích luỹ từ khi bắt đầu thử nghiệm.

Kết quả được chia thành Dữ liệu được ghi nhậnDữ liệu suy luận. Dữ liệu quan sát được tính toán trực tiếp từ dữ liệu Google Analytics, còn dữ liệu suy luận cung cấp giá trị p và khoảng tin cậy để giúp bạn đánh giá ý nghĩa thống kê của dữ liệu quan sát được.

Đối với mỗi chỉ số, các số liệu thống kê sau đây sẽ xuất hiện:

Dữ liệu quan sát được

  • Tổng giá trị cho chỉ số được theo dõi (số người dùng được giữ lại, số người dùng gặp sự cố, tổng doanh thu)
  • Tỷ lệ theo chỉ số cụ thể (tỷ lệ giữ chân, tỷ lệ chuyển đổi, doanh thu trên mỗi người dùng)
  • Phần trăm chênh lệch (mức tăng) giữa biến thể và đường cơ sở

Dữ liệu suy luận

  • Khoảng tin cậy 95% (Chênh lệch trung bình) cho biết một khoảng chứa giá trị "thực" của chỉ số được theo dõi với độ tin cậy 95%. Ví dụ: nếu kết quả thử nghiệm của bạn cho ra CI 95% cho tổng doanh thu ước tính nằm trong khoảng từ 5 đến 10 đô la, thì có 95% khả năng mức chênh lệch thực tế về giá trị trung bình nằm trong khoảng từ 5 đến 10 đô la. Nếu khoảng CI bao gồm 0, thì không phát hiện thấy sự khác biệt có ý nghĩa thống kê giữa biến thể và mức cơ sở.

    Giá trị khoảng tin cậy xuất hiện ở định dạng khớp với chỉ số được theo dõi. Ví dụ: Thời gian (tính bằng HH:MM:SS) cho tỷ lệ giữ chân người dùng, USD cho doanh thu từ quảng cáo trên mỗi người dùng và tỷ lệ phần trăm cho tỷ lệ chuyển đổi.

  • Giá trị p, thể hiện xác suất quan sát dữ liệu cực đoan như kết quả thu được trong thử nghiệm, giả sử không có sự khác biệt thực sự giữa biến thể và đường cơ sở. Giá trị p càng thấp thì độ tin cậy càng cao rằng hiệu suất quan sát được vẫn đúng nếu chúng ta lặp lại thử nghiệm. Giá trị từ 0,05 trở xuống cho thấy có sự khác biệt đáng kể và khả năng thấp là kết quả do ngẫu nhiên. Giá trị p dựa trên phép kiểm định một phía, trong đó giá trị Biến thể lớn hơn giá trị Cơ sở. Firebase sử dụng phép kiểm định t có phương sai không bằng nhau cho các biến liên tục (giá trị bằng số, chẳng hạn như doanh thu) và phép kiểm định z về tỷ lệ cho dữ liệu lượt chuyển đổi (giá trị nhị phân, chẳng hạn như tỷ lệ giữ chân người dùng, số người dùng không gặp sự cố, số người dùng kích hoạt sự kiện Google Analytics).

Kết quả thử nghiệm cung cấp thông tin chi tiết quan trọng cho từng biến thể thử nghiệm, bao gồm:

  • Mức tăng hoặc giảm của từng chỉ số trong thử nghiệm so với đường cơ sở, được đo lường trực tiếp (tức là dữ liệu thực tế quan sát được)
  • Khả năng xảy ra sự chênh lệch quan sát được giữa biến thể và đường cơ sở do ngẫu nhiên (giá trị p)
  • Một phạm vi có khả năng chứa sự khác biệt về hiệu suất "thực" giữa biến thể và đường cơ sở cho từng chỉ số thử nghiệm – một cách để hiểu các trường hợp hiệu suất "tốt nhất" và "xấu nhất"

Diễn giải kết quả của các thử nghiệm do Google Optimize cung cấp

Kết quả Firebase A/B Testing cho các thử nghiệm bắt đầu trước ngày 23 tháng 10 năm 2023 được cung cấp bởi Google Optimize. Google Optimize sử dụng suy luận Bayes để tạo số liệu thống kê chi tiết từ dữ liệu thử nghiệm của bạn.

Kết quả được chia thành "dữ liệu đã ghi nhận được" và "dữ liệu được mô hình hoá". Dữ liệu đã ghi nhận được tính toán trực tiếp từ dữ liệu Analytics và dữ liệu được mô hình hoá đến từ việc áp dụng mô hình Bayesian cho dữ liệu đã ghi nhận.

Đối với mỗi chỉ số, các số liệu thống kê sau đây sẽ xuất hiện:

Dữ liệu đã quan sát

  • Tổng giá trị (tổng chỉ số cho tất cả người dùng trong biến thể)
  • Giá trị trung bình (giá trị trung bình của chỉ số cho người dùng trong biến thể)
  • % chênh lệch so với đường cơ sở

Dữ liệu được mô hình hoá

  • Xác suất vượt qua đường cơ sở: khả năng chỉ số này cao hơn đối với biến thể này so với đường cơ sở
  • Mức chênh lệch phần trăm so với đường cơ sở: dựa trên các số liệu ước tính trung bình của mô hình về chỉ số cho biến thể và đường cơ sở
  • Phạm vi chỉ số: phạm vi mà giá trị của chỉ số có khả năng xuất hiện cao nhất, với độ chắc chắn là 50% và 95%

Nhìn chung, kết quả thử nghiệm cung cấp cho chúng tôi 3 thông tin chi tiết quan trọng cho từng biến thể trong thử nghiệm:

  1. Mức tăng hoặc giảm của mỗi chỉ số trong thử nghiệm so với đường cơ sở, được đo lường trực tiếp (tức là dữ liệu thực tế quan sát được)
  2. Khả năng mỗi chỉ số thử nghiệm cao hơn chỉ số cơ sở / tổng thể tốt nhất, dựa trên suy luận Bayes (xác suất lần lượt là tốt hơn / tốt nhất)
  3. Các phạm vi hợp lý cho từng chỉ số thử nghiệm dựa trên suy luận Bayes – các trường hợp "tốt nhất" và "xấu nhất" (khoảng tin cậy)

Xác định người lãnh đạo

Đối với các thử nghiệm sử dụng suy luận theo trường phái tần suất, Firebase sẽ công bố biến thể dẫn đầu nếu có sự chênh lệch có ý nghĩa thống kê về hiệu suất giữa biến thể và mức cơ sở của chỉ số mục tiêu. Nếu nhiều biến thể cùng đáp ứng tiêu chí này, thì biến thể có giá trị p thấp nhất sẽ được chọn.

Đối với những thử nghiệm sử dụng Google Optimize, Firebase tuyên bố rằng một biến thể là "biến thể dẫn đầu rõ ràng" nếu có hơn 95% khả năng biến thể đó hiệu quả hơn biến thể cơ sở về chỉ số chính. Nếu nhiều biến thể đáp ứng tiêu chí "người dẫn đầu rõ ràng", thì chỉ biến thể hoạt động hiệu quả nhất nói chung mới được gắn nhãn là "người dẫn đầu rõ ràng".

Do việc xác định biến thể dẫn đầu chỉ dựa trên mục tiêu chính, nên bạn cần cân nhắc tất cả các yếu tố liên quan và xem xét kết quả của các chỉ số phụ trước khi quyết định có triển khai biến thể dẫn đầu hay không. Bạn nên cân nhắc lợi ích dự kiến của việc thực hiện thay đổi, rủi ro (chẳng hạn như giới hạn dưới của khoảng tin cậy để cải thiện) và tác động đến các chỉ số khác ngoài mục tiêu chính.

Ví dụ: nếu chỉ số chính của bạn là Số người dùng không gặp sự cố và Biến thể A vượt trội hơn hẳn so với đường cơ sở, nhưng các chỉ số về tỷ lệ giữ chân người dùng của Biến thể A lại thấp hơn so với tỷ lệ giữ chân người dùng của đường cơ sở, thì bạn nên điều tra thêm trước khi triển khai Biến thể A trên diện rộng hơn.

Bạn có thể triển khai bất kỳ biến thể nào, không chỉ biến thể dẫn đầu, dựa trên đánh giá tổng thể về hiệu suất trên cả chỉ số chính và chỉ số phụ.

Thời lượng thử nghiệm

Firebase đề xuất bạn tiếp tục chạy thử nghiệm cho đến khi đáp ứng các điều kiện sau:

  1. Thử nghiệm đã thu thập đủ dữ liệu để đưa ra kết quả hữu ích. Dữ liệu về thử nghiệm và kết quả được cập nhật mỗi ngày một lần. Bạn nên tham khảo công cụ tính kích thước mẫu trực tuyến để đánh giá kích thước mẫu được đề xuất cho thử nghiệm của mình.
  2. Thử nghiệm đã chạy đủ lâu để đảm bảo có một mẫu đại diện cho người dùng của bạn và đo lường hiệu suất dài hạn. Hai tuần là thời gian chạy tối thiểu được đề xuất cho một thử nghiệm Cấu hình từ xa thông thường.

Dữ liệu thử nghiệm được xử lý trong tối đa 90 ngày sau khi thử nghiệm bắt đầu. Sau 90 ngày, thử nghiệm sẽ tự động dừng. Kết quả thử nghiệm không còn được cập nhật trong bảng điều khiển Firebase và thử nghiệm ngừng gửi các giá trị tham số dành riêng cho thử nghiệm. Tại thời điểm này, các ứng dụng bắt đầu tìm nạp giá trị tham số dựa trên các điều kiện được đặt trong mẫu Remote Config. Dữ liệu thử nghiệm trong quá khứ sẽ được giữ lại cho đến khi bạn xoá thử nghiệm.

Giản đồ BigQuery

Ngoài việc xem dữ liệu thử nghiệm A/B Testing 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ù A/B Testing không có bảng BigQuery riêng biệt, nhưng thành viên của 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.

Các thuộc tính người dùng chứa thông tin về thử nghiệm có dạng userProperty.key like "firebase_exp_%" hoặc userProperty.key = "firebase_exp_01", trong đó 01 là mã 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 giúp bạn có thể phân tích kết quả thử nghiệm theo nhiều cách khác nhau và xác minh độc lập kết quả của A/B Testing.

Để bắt đầu, hãy hoàn tất các bước sau như 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 vào dữ liệu A/B Testing 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 dùng gói Spark, bạn có thể sử dụng BigQueryhộp cát để truy cập BigQuery mà không mất phí, tuỳ thuộc vào hạn mức Hộp cát. Hãy xem phần Định giá 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 sang BigQuery:

  1. Mở thẻ Tích hợp. Bạn có thể truy cập vào thẻ này 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ụ khác của Firebase, 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 phần Giới thiệu về việc liên kết Firebase với BigQuery, rồi nhấp vào Tiếp theo.
  4. Trong mục Định cấu hình chế độ tích hợp, hãy bật nút Google Analytics.
  5. Chọn một khu vực và chọn chế độ cài đặt xuất dữ liệu.

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

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

Truy cập vào dữ liệu A/B Testing trong BigQuery

Trước khi truy vấn dữ liệu cho một thử nghiệm cụ thể, bạn nên lấy một số hoặc tất cả các thông tin sau để sử dụng trong truy vấn:

  • Mã 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 có dạng https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25, thì mã thử nghiệm là 25.
  • Mã nhận dạng Google Analytics: Đây là mã nhận dạng Google Analytics gồm 9 chữ số. Bạn có thể tìm thấy thông tin này trong Google Analytics; thông tin này cũng xuất hiện trong BigQuery khi bạn mở rộng tên dự án để cho thấy tên của bảng sự kiện Google Analytics (project_name.analytics_000000000.events).
  • Ngày thử nghiệm: Để tạo một truy vấn nhanh chóng và hiệu quả hơn, bạn nên giới hạn các truy vấn của mình trong các phân vùng bảng sự kiện hằng ngày 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'. Để xem ví dụ, hãy xem phần Chọn các giá trị của một 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 chỉ số mục tiêu mà bạn đã định cấu hình trong thử nghiệm. Ví dụ: in_app_purchase sự kiện, ad_impression hoặc user_retention sự kiện.

Sau khi bạn thu thập thông tin cần thiết để tạo truy vấn:

  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 cụm từ tìm kiếm của bạn. Để biết các truy vấn mẫu cần chạy, hãy xem phần 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 mà bạn đang xem.

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

  1. Trên bảng điều khiển Firebase, hãy mở A/B Testing rồi chọn thử nghiệm A/B Testing mà bạn muốn truy vấn để mở Tổng quan về thử nghiệm.
  2. Trong trình đơn Options (Tuỳ chọn), bên dưới mục BigQuery integration (Tích hợp BigQuery), hãy chọn Query experiment data (Truy vấn dữ liệu thử nghiệm). Thao tác này sẽ mở dự án của bạn trong BigQuery bên trong bảng điều khiển Google Cloud và cung cấp một truy vấn cơ bản mà bạn có thể dùng để truy vấn dữ liệu thử nghiệm.

Ví dụ sau đây minh hoạ một truy vấn được tạo cho một thử nghiệm có 3 biến thể (bao gồm cả đường cơ sở) có tên là "Thử nghiệm chào đón mùa đông". Thao tác này trả về tên thử nghiệm đang hoạt động, tên biến thể, sự kiện riêng biệt và số sự kiện cho mỗi sự kiện. Xin 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ì trình tạo này sẽ 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

Để xem thêm ví dụ về truy vấn, hãy chuyển đến phần Khám phá các truy vấn mẫu.

Khám phá các cụm từ tìm kiếm mẫu

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

Trích xuất các giá trị độ lệch chuẩn của giao dịch 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ả Firebase A/B Testing. Câu lệnh SQL BigQuery sau đây sẽ trích xuất các biến thể thử nghiệm, số lượng người dùng riêng biệ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ả các thử nghiệm trong phạm vi thời gian được chỉ định là ngày bắt đầu và ngày kết thúc _TABLE_SUFFIX. Bạn có thể sử dụng dữ liệu thu được từ truy vấn này với một trình tạo mức ý nghĩa thống kê cho kiểm định t một phía để xác minh rằng kết quả mà Firebase cung cấp khớp với kết quả phân tích của riêng bạn.

Để biết thêm thông tin về cách A/B Testing tính toán suy luận, hãy xem phần Diễn giải kết quả kiểm thử.

  /*
    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 các giá trị của một thử nghiệm cụ thể

Truy vấn ví dụ sau đây minh hoạ 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ả 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

Giới hạn

A/B Testing bị giới hạn ở tổng cộng 300 thử nghiệm, 24 thử nghiệm đang chạy và 24 thử nghiệm nháp. Những giới hạn này được chia sẻ với các đợt triển khai Remote Config. Ví dụ: nếu có 2 quy trình phát hành đang diễn ra và 3 thử nghiệm đang diễn ra, bạn có thể có thêm tối đa 19 quy trình phát hành hoặc thử nghiệm.

  • Nếu đạt đến giới hạn tổng số 300 thử nghiệm hoặc giới hạn 24 thử nghiệm nháp, bạn phải xoá một thử nghiệm hiện có trước khi tạo thử nghiệm mới.

  • Nếu đạt đến giới hạn 24 thử nghiệm và bản phát hành đang chạy, bạn phải dừng một thử nghiệm hoặc bản phát hành đang chạy trước khi bắt đầu một thử nghiệm hoặc bản phát hành mới.

Một thử nghiệm có thể có tối đa 8 biến thể (bao gồm cả đường cơ sở) và tối đa 25 thông số cho mỗi biến thể. Một thử nghiệm có thể có kích thước lên đến khoảng 200 KiB. Trong đó có tên biến thể, tham số biến thể và siêu dữ liệu cấu hình khác.