用户反馈与产品迭代
15.5 数据驱动决策
Tip
访谈只能定性,Data (数据) 才能定量。当团队里有人说“我不喜欢红色按钮”时,不要争论。Run a test. (跑个测试试试)。
1. 为什么要学这个?
设计师觉得蓝色按钮好看,转化率会高。 产品经理觉得红色显眼,点击率会高。 两人吵了一下午。最后老板路过说:“用绿色吧。” 这是最糟糕的决策方式 (HiPPO - Highest Paid Person's Opinion)。
2. 核心概念:A/B Testing
把流量切成两半。
- A 组 (50%): 看到蓝色按钮。
- B 组 (50%): 看到红色按钮。 运行一周,看谁的转化率高。数据不会撒谎。
3. 解决方案 (HOW)
3.1 简单的 Feature Flag 实现
不用买昂贵的 A/B 测试服务。自己写个简单的逻辑:
// 简单的随机分流
function Button() {
const [variant, setVariant] = useState('A')
useEffect(() => {
// 根据用户 ID 取模,保证同一个用户永远看到同一种颜色
const group = userId % 2 === 0 ? 'A' : 'B'
setVariant(group)
}, [])
return (
<button className={variant === 'A' ? 'bg-blue-500' : 'bg-red-500'}>
购买
</button>
)
}
3.2 埋点与漏斗 (Funnel)
在 Umami 里看这两个事件的点击数:click_buy_blue vs click_buy_red。
同时关注转化率而非绝对值。
首页 UV -> 详情页 UV -> 点击购买 UV -> 支付成功 UV。
如果 点击 -> 支付 的转化率只有 1%,说明支付流程太繁琐,跟按钮颜色没关系。
3.3 A/B 测试流程图
graph TD
Traffic["全部流量"] --> Split{"随机分流"}
Split -- 50% --> GroupA["组 A: 蓝色按钮"]
Split -- 50% --> GroupB["组 B: 红色按钮"]
GroupA --> ResultA["点击率: 2%"]
GroupB --> ResultB["点击率: 5%"]
ResultB --> Winner["Win!: 全量发布 B"]
style Winner fill:#c8e6c9,stroke:#2e7d32
4. 避坑指南
| ❌ 不要这样做 | ✅ 应该这样做 | 为什么 |
|---|---|---|
| 多变量测试 | 单一变量 | 同时改按钮颜色和文字,如果效果好了,你不知道是因为颜色还是文字。一次只测一个变量。 |
| 样本太小 | 统计显著性 | 一共就 10 个人点,A 组 1 个,B 组 2 个。这说明不了问题。哪怕投硬币也有连出 5 次正面的时候。 |
| 只看整体 | 细分维度 | 辛普森悖论:可能红色按钮总体转化率低,但在 iOS 用户里特别高。要细分维度看数据。 |
5. 真实案例
Story
41 种蓝色的 Google
Google 曾为了确定搜索结果的链接到底用哪种蓝色,测试了 41 种不同的蓝。 视觉设计师如果知道这事可能会气死,通过数据决定的颜色可能不是最好看的。 但这个测试为 Google 每年多赚了 2 亿美元。
Vibe 心法:在规模面前,微小的转化率提升也是巨大的收益。拒绝 HiPPO(高薪者的意见),让 A/B Testing 成为终结会议争吵的裁判。信任数据背后的统计显著性,而不是某人的“直觉”或“品味”。
6. 本章小结
- A/B Test:是终结会议争吵的神器。
- Funnel:漏斗模型能帮你找到哪里漏水了。
- Significance:没有统计显著性的数据只是噪音。