HeatMapXHeatMapX
价格登录

我们如何将A/B测试的分配设计与行业标准对齐 —— 分离“投放比例”与“A/B分配”

HeatMapX Engineering Team3 min read
  • engineering
  • ab-testing
  • product-design

本文要点

  • A/B测试的比例设置中,“投放比例”与“A/B分配”这两个不同的关注点很容易被混为一谈
  • 我们将两者拆分为两个独立的参数
  • 通过分离,可以分别清晰地处理“风险管理”和“公平比较”

在为 HeatMapX 实现A/B测试功能的过程中,有一个看似不起眼却十分重要的设计判断:如何为“比例”建模。最终结论是,我们将“纳入实验的比例(投放比例)”与“A/B之间的分配”拆分为两个独立的参数。本文将分享这样做的原因。

容易被混淆的两个关注点

A/B测试中的“比例”,实际上包含了性质不同的两个关注点。

  • 让多少访客参与实验(即风险管理)
  • 在参与实验的访客中,如何分配A和B(即比较的公平性)

在早期的朴素设计中,这两者往往会被合并到同一个滑块中。但这样一来,“想安全地小规模试验”和“想公平地比较A和B”这两个不同的目的就会纠缠在一起,无论对用户还是对实现来说都会变得难以理解。

分离后的模型

因此,我们将两者独立开来。

  • traffic_allocation(纳入实验的比例):在全部访客中,纳入实验对象的比例。范围为0~100%。
  • A/B分配:在实验对象中,Control 与 Variant B 各自的权重。

用伪代码描述,分配判定的流程如下:

  1. 首先根据投放比例判断访客“是否属于实验对象”。
  2. 仅对属于实验对象的访客,按照A/B分配比例将其分流到 Control 或 Variant B。

不属于实验对象的访客,将照常看到普通页面(无任何变化)。

分离带来的好处

  • 可以分阶段扩大风险范围:投放比例可以按 10% → 30% → 100% 的节奏调整,同时保持比较的公平性(50:50)不变,只单独调节风险大小。
  • 设置的含义更清晰:“纳入多少人”和“如何展示”成为两个独立的界面,减少误解。
  • 与行业标准保持一致:主流的A/B测试工具同样将流量分配与实验内的分配分开处理。

也体现在界面设计中

这一设计判断同样体现在了界面上。在实验设置界面中,“纳入实验的比例”与“A/B分配”可以分别独立指定;在实验详情页中,两者也会以摘要形式一并呈现。

总结

“比例”这个看似简单的设置项,其实潜藏着风险管理与比较公平性这两个不同的关注点。通过将它们分离建模,我们得到了一个对用户来说更易理解、也更便于运营的A/B测试功能。这虽然只是一个很小的设计判断,但正是这样的积累决定了产品的易用性。

从 Claude Code 运行的热力图,免费开始。

粘贴一行追踪标签,从 CLI 获取分析和改进建议。