Giới thiệu về tính năng thử nghiệm A/B trong Firebase

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

Kích thước mẫu

Khả năng dự đoán của Thử nghiệm A/B trong Firebase không yêu cầu bạn phải xác định kích thướ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 độ phơi sáng thử nghiệm lớn nhất mà bạn cảm thấy phù hợp. Kích thước mẫu lớn hơn giúp tăng cơ hội tìm thấy kết quả có ý nghĩa thống kê, đặc biệt là khi sự khác biệt về hiệu suất giữa các biến thể là nhỏ. Bạn cũng có thể thấy hữu ích khi tham khảo công cụ tính kích thước mẫu trực tuyến để tìm kích thước 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 nhắm mục tiêu
  • Giá trị biến thể

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

  1. Mở trang kết quả cho thử nghiệm mà bạn muốn sửa đổi.
  2. Trên trình đơn Thêm , hãy chọn Chỉnh sửa thử nghiệm đang chạy.
  3. Thực hiện 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 phù hợp với tất cả các điều kiện nhắm mục tiêu thử nghiệm (bao gồm cả điều kiện phơi sáng theo tỷ lệ phần trăm) sẽ được chỉ định cho các biến thể thử nghiệm theo trọng số biến thể và giá trị băm của mã thử nghiệm cũng như mã cài đặt Firebase của người dùng.

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

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

Đối với tính năng nhắm mục tiêu có giới hạn về thời gian, hãy cân nhắc sử dụng 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, chẳng hạn như quốc gia hoặc khu vực, ngôn ngữ và phiên bản ứng dụng.

Sau khi người dùng tham gia vào một thử nghiệm, họ sẽ được liên tục chỉ định cho biến thể thử nghiệm và nhận các giá trị thông số từ thử nghiệm, miễn là thử nghiệm đó vẫn 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

Sự kiện kích hoạt thử nghiệm sẽ giới hạn hoạt động đo lường thử nghiệm ở 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 thử nghiệm đều sẽ nhận được các thông số thử nghiệm. Do đó, bạn phải 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 số biến thể

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

Diễn giải kết quả thử nghiệm

Tính năng Thử nghiệm A/B trong Firebase sử dụng tính năng suy luận thường xuyên để giúp bạn biết khả năng kết quả thử nghiệm có thể xảy ra chỉ do tình cờ ngẫu nhiên. Khả năng này được biểu thị bằng giá trị xác suất hoặc giá trị p. Giá trị p là xác suất sự chênh lệch về hiệu suất giữa 2 biến thể có thể xảy ra do tình cờ ngẫu nhiên, được đo bằng một giá trị nằm trong khoảng từ 0 đến 1. Thử nghiệm A/B sử dụng mức ý nghĩa là 0,05 để:

  • Giá trị p nhỏ hơn 0,05 cho thấy sự khác biệt có ý nghĩa thống kê giữa các biến thể, tức là vấn đề này ít có khả năng xảy ra do tình cờ ngẫu nhiên.
  • Giá trị p lớn hơn 0,05 cho biết rằng 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 hiển thị 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 chỉ số, thì chỉ số này sẽ cho biết doanh thu quan sát được trên mỗi người dùng và nếu bạn đang theo dõi người dùng không gặp sự cố, thì công cụ này sẽ theo dõi tỷ lệ phần trăm người dùng chưa gặp sự cố. Dữ liệu này được tích luỹ từ đầu thử nghiệm.

Kết quả được chia thành Dữ liệu quan sát đượcDữ liệu suy luận. Dữ liệu đã quan sát được tính trực tiếp từ dữ liệu Google Analytics, và dữ liệu suy luận cung cấp các 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.

Đối với mỗi chỉ số, các số liệu thống kê sau đây được trình bày:

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ữ chân, số người dùng đã gặp sự cố, tổng doanh thu)
  • Tỷ lệ theo từng chỉ số (tỷ lệ giữ chân, tỷ lệ chuyển đổi, doanh thu trên mỗi người dùng)
  • Tỷ lệ phần trăm chênh lệch (mức tăng) giữa biến thể và giá trị cơ sở

Dữ liệu dự đoán

  • 95% CI (Chênh lệch về giá trị trung bình) hiển thị một khoảng thời gian có chứa giá trị "true" của chỉ số được theo dõi với độ tin cậy 95%. Ví dụ: nếu thử nghiệm mang lại CI là 95% cho tổng doanh thu ước tính trong khoảng từ 5 USD đến 10 USD, thì có 95% khả năng là mức chênh lệch thực tế về giá trị trung bình sẽ nằm trong khoảng từ 5 USD đến 10 USD. Nếu phạm vi CI bằng 0, thì không phát hiện được sự khác biệt có ý nghĩa thống kê giữa biến thể và giá trị 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 (theo HH:MM:SS) để 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ệ chuyển đổi.

  • P-value, biểu thị xác suất không có chênh lệch thực sự giữa biến thể và giá trị cơ sở; nói cách khác, mọi chênh lệch quan sát được đều có khả năng là do tình cờ ngẫu nhiên. Giá trị p càng thấp thì độ tin cậy rằng hiệu suất quan sát được sẽ càng đúng trong tương lai. Giá trị từ 0,05 trở xuống cho thấy sự khác biệt đáng kể và khả năng thấp xảy ra các kết quả là do tình cờ. Giá trị P dựa trên thử nghiệm một bên, trong đó giá trị Biến thể lớn hơn Giá trị cơ sở. Firebase sử dụng phương sai t-test không bằng nhau cho các biến liên tục (giá trị số, như doanh thu) và phép kiểm thử z của tỷ lệ cho dữ liệu lượt chuyển đổi (giá trị nhị phân, như tỷ lệ giữ chân người dùng, người dùng không gặp lỗi, 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 độ cao hơn hoặc thấp hơn của mỗi chỉ số thử nghiệm so với đường cơ sở, khi được đo trực tiếp (tức là dữ liệu thực tế đã quan sát được)
  • Khả năng sự chênh lệch quan sát được giữa biến thể và giá trị cơ sở có thể xảy ra do tình huống ngẫu nhiên (giá trị p)
  • Một phạm vi có thể chứa sự chênh lệch hiệu suất "đúng" 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 tình huống hiệu suất "trường hợp tốt nhất" và "trường hợp xấu nhất"

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

Kết quả Thử nghiệm A/B trong Firebase cho các thử nghiệm bắt đầu trước ngày 23 tháng 10 năm 2023 do Google Optimize cung cấp. 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 đã quan sát được" và "dữ liệu được mô hình hoá". Dữ liệu quan sát được được tính trực tiếp từ dữ liệu phân tích và dữ liệu được mô hình hoá được lấy từ việc áp dụng mô hình Bayes vào dữ liệu đã quan sát.

Đối với mỗi chỉ số, các số liệu thống kê sau đây được trình bày:

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 giá trị 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 của biến thể này cao hơn so với đường cơ sở
  • Phần trăm chênh lệch so với đường cơ sở: dựa trên số liệu ước tính mô hình trung vị của 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ó nhiều khả năng xuất hiện nhất, với độ chắc chắn là 50% và 95%

Nhìn chung, các 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 mỗi biến thể trong thử nghiệm:

  1. Mức độ cao hơn hoặc thấp hơn của mỗi chỉ số thử nghiệm so với đường cơ sở, khi được đo trực tiếp (tức là dữ liệu thực tế đã ghi nhận được)
  2. Dựa trên suy luận của Bayes (xác suất tốt hơn / tốt nhất tương ứng), mỗi chỉ số thử nghiệm có khả năng cao hơn giá trị cơ sở / tốt nhất ở mức nào
  3. Phạm vi hợp lý cho mỗi chỉ số thử nghiệm dựa trên suy luận Bayes--trường hợp tốt nhất" và "trường hợp xấu nhất" (khoảng thời gian đáng tin cậy)

Quyết định của người lãnh đạo

Đối với các thử nghiệm sử dụng Suy luận thường xuyên, Firebase khai báo rằng một biến thể đang dẫn trước nếu có sự khác biệt về hiệu suất có ý nghĩa thống kê giữa biến thể đó và giá trị cơ sở trong chỉ số mục tiêu. Nếu nhiều biến thể đá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 các 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 biến thể đó có khả năng hoạt động tốt hơn 95% so với biến thể cơ sở ở chỉ số chính. Nếu nhiều biến thể đáp ứng tiêu chí "biến thể dẫn đầu rõ ràng", thì chỉ biến thể hoạt động tốt nhất xét tổng thể mới được gắn nhãn "biến thể dẫn đầu rõ ràng".

Vì việc xác định biến thể dẫn đầu chỉ dựa trên mục tiêu chính, bạn nên xem xét tất cả các yếu tố có 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ể hàng đầu hay không. Bạn nên xem xét lợi ích dự kiến của việc thực hiện thay đổi, rủi ro bất lợi (chẳng hạn như mức dưới của khoảng tin cậy để cải thiện) và tác động đến các chỉ số ngoài mục tiêu chính.

Ví dụ: nếu chỉ số chính của bạn là người dùng không gặp sự cố và Biến thể A là biến thể dẫn đầu rõ ràng hơn so với 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 đo lường tỷ lệ giữ chân người dùng cơ sở, thì bạn có thể muốn điều tra thêm trước khi triển khai rộng rãi hơn Biến thể A.

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 kết quả đánh giá tổng thể về hiệu suất ở cả chỉ số chính và phụ.

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

Firebase khuyên bạn nê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 đã tích luỹ đủ dữ liệu để cung cấp một kết quả hữu ích. Các thử nghiệm và dữ liệu 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á quy mô mẫu được đề xuất cho thử nghiệm của mình.
  2. Thử nghiệm này đã chạy đủ lâu để đảm bảo 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. 2 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 điển hình.

Dữ liệu thử nghiệm được xử lý trong tối đa 90 ngày sau khi bắt đầu thử nghiệm. 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 của Firebase và thử nghiệm sẽ ngừng gửi các giá trị thông số theo thử nghiệm cụ thể. Tại thời điểm này, ứng dụng bắt đầu tìm nạp giá trị thông số dựa trên các điều kiện được đặt trong mẫu Cấu hình từ xa. Dữ liệu thử nghiệm trước đây 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 Thử nghiệm A/B trong bảng điều khiển của 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 thử nghiệm và thành viên của biến thể sẽ đượ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à 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 những 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 cung cấp cho bạn khả năng chia nhỏ kết quả thử nghiệm theo nhiều cách khác nhau và xác minh kết quả của Thử nghiệm A/B một cách độc lập.

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

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

Bật tính năng BigQuery Export cho Google Analytics trong bảng điều khiển của Firebase

Nếu đang dùng gói Spark, bạn có thể dùng hộp cát BigQuery để truy cập vào BigQuery mà không mất phí, tuân theo hạn mức của Hộp cát. Xem bài viết 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 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 của 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 bài viết Giới thiệu về cách 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 bật/tắt Google Analytics.
  5. Chọn một khu vực và chọn chế độ cài đặt xuất.

  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ó thể mất tới một ngày thì các bảng mới 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 bài viết Xuất dữ liệu dự án sang BigQuery.

Truy cập vào 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 cần thu thập một số hoặc tất cả những 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, mã thử nghiệm sẽ là 25.
  • Mã tài sản Google Analytics: Đây là mã tài sản Google Analytics gồm 9 chữ số. Bạn có thể tìm thấy chuỗi 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: Để tạo một truy vấn nhanh hơn và hiệu quả hơn, bạn nên giới hạn truy vấn ở những 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ác bảng được xác định với 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, thì bạn phải chỉ định _TABLE_SUFFIX between '20240202' AND '20240502'. Để biết 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, các tên này tương ứng với các chỉ số 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 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, rồi chọn Tạo truy vấn SQL.
  3. Thêm truy vấn 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 Run (Chạy).

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

Nếu bạn đang sử dụng Kế hoạch linh hoạt, thì 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, biến thể, tên sự kiện và số sự kiện của thử nghiệm mà bạn đang xem.

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

  1. Trong bảng điều khiển của Firebase, hãy mở Thử nghiệm A/B rồi chọn thử nghiệm Thử nghiệm A/B bạn muốn truy vấn để mở Tổng quan về thử nghiệm.
  2. Trên trình đơn Tuỳ chọn, bên dưới mục 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 Google Cloud Console và cung cấp một truy vấn cơ bản mà bạn có thể sử dụng để truy vấn dữ liệu thử nghiệm.

Ví dụ sau đây cho thấy một truy vấn được tạo cho một thử nghiệm có 3 biến thể (bao gồm cả biến thể cơ sở) có tên là "Thử nghiệm chào mừng mùa đông". Phương thức này 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. Xin lưu ý rằng trình tạo truy vấn không chỉ định tên dự á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á truy vấn mẫu.

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

Các mục 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ừ 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ả 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 trong Firebase. Câu lệnh BigQuery SQL sau đây 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ính 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 dưới dạng 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 trình tạo ý nghĩa thống kê cho phép kiểm thử t một bên để 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 Thử nghiệm A/B tính toán suy luận, hãy xem phần Diễn giải 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 các giá trị của một thử nghiệm cụ thể

Truy vấn mẫu sau 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

Các giới hạn

Tính năng Thử nghiệm A/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 phát hành Cấu hình từ xa. Ví dụ: nếu có 2 đợt phát hành đang chạy và 3 thử nghiệm đang chạy, thì bạn có thể có thêm tối đa 19 bản phát hành hoặc thử nghiệm bổ sung.

  • Nếu đạt đến tổng giới hạn 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 tại trước khi tạo thử nghiệm mới.

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

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