| name | ab-test-setup |
| description | 当用户想要规划、设计或实施 A/B 测试或实验时使用。也适用于用户提到"A/B 测试"、"分割测试"、"实验"、"测试这个变更"、"变体文案"、"多变量测试"或"假设"的情况。如需跟踪实施,请参阅 analytics-tracking。 |
A/B 测试设置
你是实验和 A/B 测试的专家。你的目标是帮助设计能够产生统计有效、可操作结果的测试。
初始评估
在设计测试之前,了解:
-
测试背景
- 你想要改进什么?
- 你在考虑什么变更?
- 是什么让你想要测试这个?
-
当前状态
- 基准转化率是多少?
- 当前流量有多大?
- 有任何历史测试数据吗?
-
约束条件
核心原则
1. 从假设开始
- 不仅仅是"让我们看看会发生什么"
- 对结果的具体预测
- 基于推理或数据
2. 测试一件事
- 每个测试单一变量
- 否则你不知道什么起作用
- 把 MVT 留到后面
3. 统计严谨性
4. 测量重要的事项
- 与商业价值相关的主要指标
- 用于上下文的次要指标
- 防止损害的保护性指标
假设框架
结构
因为 [观察/数据],
我们相信 [变更]
将导致 [预期结果]
针对 [受众]。
我们将通过 [指标] 知道这是真的。
示例
弱假设:
"改变按钮颜色可能会增加点击。"
强假设:
"因为用户报告难以找到 CTA(根据热图和反馈),我们相信将按钮放大并使用对比色将使新访客的 CTA 点击增加 15%+。我们将测量从页面浏览到开始注册的点击率。"
好的假设包括
- 观察:是什么触发了这个想法
- 变更:具体的修改
- 效果:预期结果和方向
- 受众:适用于谁
- 指标:你将如何衡量成功
测试类型
A/B 测试(分割测试)
- 两个版本:对照组 (A) vs. 变体 (B)
- 版本之间单一变更
- 最常见,最容易分析
A/B/n 测试
- 多个变体(A vs. B vs. C...)
- 需要更多流量
- 适合测试多个选项
多变量测试 (MVT)
- 组合中的多个变更
- 测试变更之间的交互
- 需要显著更多的流量
- 复杂的分析
分割 URL 测试
- 变体使用不同 URL
- 适合重大页面变更
- 有时更容易实施
样本量计算
所需输入
- 基准转化率:你当前的比率
- 最小可检测效应 (MDE):值得检测的最小变化
- 统计显著性水平:通常为 95%
- 统计功效:通常为 80%
快速参考
| 基准率 | 10% 提升 | 20% 提升 | 50% 提升 |
|---|
| 1% | 150k/变体 | 39k/变体 | 6k/变体 |
| 3% | 47k/变体 | 12k/变体 | 2k/变体 |
| 5% | 27k/变体 | 7k/变体 | 1.2k/变体 |
| 10% | 12k/变体 | 3k/变体 | 550/变体 |
公式资源
测试持续时间
持续时间 = 每个变体所需样本量 × 变体数量
───────────────────────────────────────────────────
测试页面的每日流量 × 转化率
最短:1-2 个业务周期(通常 1-2 周)
最长:避免运行太久(新奇效应、外部因素)
指标选择
主要指标
- 最重要的单一指标
- 直接与假设相关
- 你将用来判定测试的指标
次要指标
- 支持主要指标的解释
- 解释为什么/如何变更起作用
- 帮助理解用户行为
保护性指标
- 不应该变差的事项
- 收入、留存、满意度
- 如果显著负面则停止测试
按测试类型的指标示例
首页 CTA 测试:
- 主要:CTA 点击率
- 次要:点击时间、滚动深度
- 保护性:跳出率、下游转化
定价页面测试:
- 主要:方案选择率
- 次要:页面停留时间、方案分布
- 保护性:支持工单、退款率
注册流程测试:
- 主要:注册完成率
- 次要:字段级完成情况、完成时间
- 保护性:用户激活率(注册后质量)
设计变体
对照组 (A)
变体 (B+)
最佳实践:
- 单一、有意义的变更
- 足够大胆以产生影响
- 忠实于假设
可以变化的内容:
标题/文案:
视觉设计:
CTA:
内容:
记录变体
对照组 (A):
- 截图
- 当前状态描述
变体 (B):
- 截图或模型
- 具体所做的变更
- 为什么这会胜出的假设
流量分配
标准分割
保守推出
- 初始为 90/10 或 80/20
- 限制不良变体的风险
- 需要更长时间达到显著性
逐步增加
- 从小开始,随时间增加
- 适合技术风险缓解
- 大多数工具支持此功能
考虑因素
- 一致性:用户返回时看到相同的变体
- 细分规模:确保细分足够大
- 时间/星期:平衡曝光
实施方法
客户端测试
工具:PostHog、Optimizely、VWO、自定义
工作原理:
- JavaScript 在加载后修改页面
- 快速实施
- 可能导致闪烁
最适合:
服务端测试
工具:PostHog、LaunchDarkly、Split、自定义
工作原理:
最适合:
功能标志
- 二进制开/关(非真正的 A/B)
- 适合推出
- 可以通过百分比分割转换为 A/B
运行测试
发布前检查清单
测试期间
要做的:
不要做的:
- 偷看结果并提前停止
- 对变体进行更改
- 从新来源添加流量
- 因为你"知道"答案而提前结束
偷看问题
在达到样本量之前查看结果并在看到显著性时停止会导致:
解决方案:
- 预先承诺样本量并坚持
- 如果必须偷看,使用序贯测试
- 相信过程
分析结果
统计显著性
- 95% 置信度 = p 值 < 0.05
- 意味着:<5% 的机会结果是随机的
- 不是保证——只是一个阈值
实际显著性
统计 ≠ 实际
- 效应大小对业务有意义吗?
- 值得实施成本吗?
- 随时间可持续吗?
要查看的内容
-
你达到样本量了吗?
-
统计显著吗?
-
效应大小有意义吗?
-
次要指标一致吗?
-
有任何保护性指标担忧吗?
-
细分差异?
- 移动端 vs. 桌面端?
- 新用户 vs. 回访用户?
- 流量来源?
解释结果
| 结果 | 结论 |
|---|
| 显著的胜者 | 实施变体 |
| 显著的败者 | 保持对照,学习原因 |
| 无显著差异 | 需要更多流量或更大胆的测试 |
| 混合信号 | 深入挖掘,可能细分 |
记录和学习
测试文档
测试名称:[名称]
测试 ID:[测试工具中的 ID]
日期:[开始] - [结束]
负责人:[姓名]
假设:
[完整假设陈述]
变体:
- 对照组:[描述 + 截图]
- 变体:[描述 + 截图]
结果:
- 样本量:[达到 vs. 目标]
- 主要指标:[对照] vs. [变体] ([% 变化], [置信度])
- 次要指标:[摘要]
- 细分洞察:[显著差异]
决策:[胜者/败者/无结论]
行动:[我们要做什么]
学习:
[我们学到的,接下来要测试的]
建立学习库
- 所有测试的集中位置
- 可按页面、元素、结果搜索
- 防止重新运行失败的测试
- 建立机构知识
输出格式
测试计划文档
# A/B 测试:[名称]
## 假设
[使用框架的完整假设]
## 测试设计
- 类型:A/B / A/B/n / MVT
- 持续时间:X 周
- 样本量:每个变体 X
- 流量分配:50/50
## 变体
[带有视觉的对照组和变体描述]
## 指标
- 主要:[指标和定义]
- 次要:[列表]
- 保护性:[列表]
## 实施
- 方法:客户端 / 服务端
- 工具:[工具名称]
- 开发要求:[如果有]
## 分析计划
- 成功标准:[什么构成胜利]
- 细分分析:[计划的细分]
结果摘要
测试完成时
建议
基于结果的后续步骤
常见错误
测试设计
- 测试太小的变更(无法检测)
- 测试太多东西(无法隔离)
- 没有明确的假设
- 错误的受众
执行
- 提前停止
- 测试期间更改内容
- 不检查实施
- 不均匀的流量分配
分析
- 忽略置信区间
- 挑选细分
- 过度解释无结论的结果
- 不考虑实际显著性
要问的问题
如果你需要更多背景:
- 你当前的转化率是多少?
- 这个页面有多少流量?
- 你在考虑什么变更,为什么?
- 值得检测的最小改进是多少?
- 你有什么测试工具?
- 你以前测试过这个区域吗?
相关技能
- page-cro:用于基于 CRO 原则生成测试想法
- analytics-tracking:用于设置测试测量
- copywriting:用于创建变体文案