Vibe Tutorial
用户反馈与产品迭代

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. 本章小结

  1. A/B Test:是终结会议争吵的神器。
  2. Funnel:漏斗模型能帮你找到哪里漏水了。
  3. Significance:没有统计显著性的数据只是噪音。