Câu chuyện điều chỉnh thiết kế phân phối A/B testing theo chuẩn ngành — tách riêng "tỷ lệ tham gia" và "tỷ lệ phân bổ A/B"
- engineering
- ab-testing
- product-design
Tóm tắt bài viết
- Việc thiết lập tỷ lệ trong A/B testing rất dễ bị trộn lẫn hai mối quan tâm khác nhau: "tỷ lệ tham gia" và "tỷ lệ phân bổ A/B"
- Chúng tôi đã tách hai yếu tố này thành các tham số độc lập
- Nhờ việc tách riêng, "quản lý rủi ro" và "so sánh công bằng" đều có thể được xử lý một cách rõ ràng, tự nhiên
Khi triển khai tính năng A/B testing cho HeatMapX, chúng tôi đã gặp một quyết định thiết kế tuy nhỏ nhưng quan trọng: làm thế nào để mô hình hóa "tỷ lệ". Kết luận là chúng tôi đã tách "tỷ lệ khách truy cập tham gia thử nghiệm (tỷ lệ tham gia)" và "tỷ lệ phân bổ A/B" thành hai tham số độc lập. Bài viết này sẽ chia sẻ lý do cho quyết định đó.
Hai mối quan tâm dễ bị trộn lẫn
"Tỷ lệ" trong A/B testing thực chất bao gồm hai mối quan tâm có bản chất khác nhau.
- Nên đưa bao nhiêu khách truy cập vào thử nghiệm (= quản lý rủi ro)
- Trong số khách truy cập đã được đưa vào, phân bổ giữa A và B như thế nào (= tính công bằng của việc so sánh)
Ở những thiết kế ban đầu còn đơn giản, người ta thường gộp cả hai yếu tố này vào một thanh trượt duy nhất. Nhưng làm như vậy sẽ khiến hai mục tiêu riêng biệt — "muốn thử nghiệm an toàn với quy mô nhỏ" và "muốn so sánh A và B một cách công bằng" — bị đan xen vào nhau, gây khó hiểu cả cho người dùng lẫn cho việc triển khai.
Mô hình sau khi tách riêng
Vì vậy, chúng tôi đã tách hai yếu tố này ra độc lập với nhau.
traffic_allocation(tỷ lệ tham gia thử nghiệm): tỷ lệ khách truy cập được đưa vào thử nghiệm trên tổng số khách truy cập. Từ 0% đến 100%.- Tỷ lệ phân bổ A/B: trọng số giữa Control và Variant B trong số các khách truy cập đã tham gia thử nghiệm.
Viết dưới dạng giả mã, quá trình phân bổ diễn ra như sau:
- Đầu tiên, xác định xem khách truy cập có "thuộc diện tham gia thử nghiệm hay không" dựa trên tỷ lệ tham gia.
- Chỉ những khách truy cập thuộc diện tham gia mới được phân vào Control / Variant B theo tỷ lệ phân bổ A/B.
Những khách truy cập không thuộc diện tham gia sẽ tiếp tục xem trang thông thường (không thay đổi).
Lợi ích của việc tách riêng
- Có thể mở rộng rủi ro theo từng giai đoạn: có thể tăng tỷ lệ tham gia từ 10% → 30% → 100% mà vẫn giữ nguyên tính công bằng của so sánh (50:50), chỉ điều chỉnh riêng mức độ rủi ro.
- Ý nghĩa của thiết lập trở nên rõ ràng: "mức độ tham gia" và "cách hiển thị" trở thành hai giao diện riêng biệt, giảm khả năng hiểu nhầm.
- Phù hợp với chuẩn ngành: các công cụ A/B testing hàng đầu cũng xử lý tương tự, tách riêng việc phân bổ lưu lượng truy cập và việc phân bổ trong nội bộ thử nghiệm.
Được phản ánh vào giao diện
Quyết định thiết kế này cũng được phản ánh trực tiếp vào giao diện. Trên màn hình thiết lập thử nghiệm, người dùng có thể chỉ định riêng biệt "tỷ lệ tham gia thử nghiệm" và "tỷ lệ phân bổ A/B", còn ở trang chi tiết thử nghiệm, cả hai đều có thể được xem dưới dạng tóm tắt.
Kết luận
Ngay cả một yếu tố tưởng chừng đơn giản như "tỷ lệ" cũng ẩn chứa hai mối quan tâm riêng biệt: quản lý rủi ro và tính công bằng của việc so sánh. Bằng cách tách riêng và mô hình hóa hai yếu tố này, chúng tôi đã tạo ra một tính năng A/B testing dễ hiểu và dễ vận hành hơn cho người dùng. Đây chỉ là một quyết định thiết kế nhỏ, nhưng chính những tích lũy như vậy sẽ quyết định trải nghiệm sử dụng.