A/B 实验
按生产环境标准搭建的一次实验
商品页正在运行一项实验:购买按钮上显示价格,会不会改变加购率?分组、展示、埋点和决策规则都是真实的。这家店没有流量,所以没有胜出结果可以报告。
实验方案
- 假设
- 按钮上直接显示价格能减少一个犹豫的理由,看到按钮的访客会有更多人加购。
- 对照组
- “加入购物车”
- 实验组
- “加入购物车 · $119.00”,作用于所有商品页的主按钮。
- 主要指标
- 加购的访客数 ÷ 看到按钮的访客数。
- 护栏指标
- 每位曝光访客的发起结账数不能下降。
- 受众
- 美国市场,50/50 分流。德国市场不参与:分组要存储标识符,必须先取得同意。
查看两个版本
这些链接会设置你的分组,并把浏览器标记为预览,你的访问不会进入数据。
当前浏览器分组: 未分组(不在实验市场)
实现方式
- 01
在边缘完成分组
首次页面请求时,代理层随机分组并写入第一方 Cookie,访客跨页面、跨访问都留在同一组。
- 02
不闪烁,也不破坏缓存
两个版本都在静态 HTML 里。一行脚本在首屏绘制前把 Cookie 写到页面上,再由 CSS 显示对应版本,页面不会在访客眼前变化,也仍然可以缓存。
- 03
真正看到才计曝光
只有按钮确实出现在屏幕上且可购买时才上报曝光,没看到按钮的访客不会稀释结果。
- 04
能关联到订单
使用按钮时,分组会作为私有属性写入购物车,随订单带走;在 GA4 里,它是用户属性,后续事件都能按组拆分。
开始前就定好的规则
- 跑到计划样本量,并且至少 14 天,覆盖两个完整的周周期。
- 不因某天数据好看就提前结束,反复查看会抬高假阳性。
- 如果分流比例偏离 50/50 超出随机范围(样本比例失衡,p < 0.01),数据作废并排查原因。
- 只有主要指标在 p < 0.05 下胜出、且护栏指标没有恶化,才全量上线。
需要跑多久?
双侧 α = 0.05,统计功效 80%,最少 14 天。
- 每组所需访客
- 53,211
- 运行时长
- 54 天
如何读结果
这里预填的是示例数字,不是这家店的结果。
- 观测提升
- +15.0%
- p 值
- 0.072
不显著。这不代表两个版本一样,只说明这次实验区分不出来。
这一页能证明什么
这里证明的是实现和方法,无法证明转化提升,因为概念店没有真实顾客。配置衡量 ID 后事件会发送到 GA4,在此之前可以在“How it's built”面板的事件日志里看到。