3、留存分析基础:经典留存曲线解读
留存曲线,说白了就是用户留下来比例的「心电图」。我刚开始做增长那会儿,总觉得看日活就够了。后来发现,日活涨了,可能只是拉新砸钱多,老用户其实在悄悄流失。留存曲线才是那个能提前预警的指标。
今天咱们就聊聊两种最经典的留存曲线形态——衰减曲线和微笑曲线。看懂它们,你就能判断产品到底有没有「黏性」。
3.1 衰减曲线:大多数产品的常态
你随便拉一个产品出来,画它的留存曲线,大概率长这样:
- 第1天留存最高(比如60%-80%)
- 第7天降到30%-40%
- 第30天可能只剩10%-20%
- 之后缓慢下降,趋于平稳
这就是典型的衰减曲线。它反映了一个残酷的现实:用户来得快,走得也快。
核心规律:衰减曲线遵循「幂律分布」。简单说就是,留存率下降的速度会越来越慢。前7天是流失高峰期,熬过去的老用户,后面反而比较稳定。
我记得有一次分析一个社交App的数据。第1天留存有75%,看着不错。但第7天直接掉到28%。团队慌了,问我是不是产品出问题了。我说别急,咱们看看第30天——18%。嗯,虽然掉得猛,但曲线形态是标准的幂律衰减,说明产品本身没问题,只是新用户筛选机制需要优化。
3.2 微笑曲线:少数产品的「逆袭」
还有一种曲线,长得像微笑的嘴巴:
- 初期留存下降(和衰减曲线一样)
- 中期触底反弹
- 后期留存反而回升
这就是微笑曲线。说实话,能画出这种曲线的产品不多。我见过的主要是两类:
- 强网络效应产品:比如社交平台、协作工具。用户用得越久,关系链越深,离开成本越高。
- 习惯养成型产品:比如健身打卡、记账软件。用户坚持一段时间后,行为变成了习惯。
我的经验:如果你发现产品留存曲线开始出现微笑形态,恭喜你,产品可能找到了「aha moment」。这时候应该加大投入,把让用户留下来的那个功能放大。
我曾经参与过一个在线教育项目。前3个月留存曲线一直是标准的衰减形态。后来我们优化了「学习计划」功能,让用户能自定义每日任务。3个月后,第30天留存从12%涨到了25%,曲线底部开始翘起来了。嗯,这就是微笑曲线的雏形。
3.3 两种曲线的对比
咱们用表格直观对比一下:
| 维度 | 衰减曲线 | 微笑曲线 |
|---|---|---|
| 形态 | 持续下降,斜率渐缓 | 先降后升,底部有拐点 |
| 常见产品 | 工具类、内容消费类 | 社交类、习惯养成类 |
| 用户行为 | 新鲜感驱动,用完即走 | 关系链/习惯驱动,越用越深 |
| 优化方向 | 缩短「首次价值体验」路径 | 强化网络效应或习惯回路 |
| 健康度判断 | 看衰减速度是否快于行业基准 | 看拐点出现的时间是否提前 |
你想想看,如果你的产品是衰减曲线,别灰心。大多数产品都这样。关键是找到那个「平稳期」的留存率,然后想办法把它往上提一点。
3.4 如何解读你的留存曲线
光知道两种曲线还不够,你得会「读」它。我一般按三步走:
- 看形状:是衰减还是微笑?如果是衰减,看衰减速度是否正常。
- 找拐点:曲线从陡降变平缓的那个点在哪?那就是用户「决定去留」的关键时刻。
- 对比分段:不同渠道、不同用户群的曲线一样吗?我见过很多次,某个渠道的留存曲线是微笑的,另一个渠道却是直线下跌。
避坑指南:我曾经犯过一个错误——只看整体留存曲线。结果发现整体数据还行,但细分一看,iOS用户留存远高于Android。原来Android版有个Bug,新用户注册后收不到验证码。整体曲线掩盖了这个问题。所以,一定要做分组对比。
3.5 知识体系总览
下面这张图帮你梳理本章的核心逻辑:
3.6 实操:用数据画一条留存曲线
光说不练假把式。我习惯用SQL先算每日留存,再画曲线。给你一个简单的计算逻辑:
-- 计算第N天留存率
WITH user_first AS (
SELECT
user_id,
MIN(DATE(event_time)) AS first_date
FROM user_events
GROUP BY user_id
),
user_retention AS (
SELECT
uf.first_date,
COUNT(DISTINCT ue.user_id) AS retained_users
FROM user_first uf
LEFT JOIN user_events ue
ON uf.user_id = ue.user_id
AND DATE(ue.event_time) = DATE(uf.first_date, '+7 days')
GROUP BY uf.first_date
)
SELECT
first_date,
retained_users * 1.0 /
(SELECT COUNT(DISTINCT user_id) FROM user_first WHERE first_date = ur.first_date)
AS retention_rate_7day
FROM user_retention ur;
这段代码算的是第7天留存。你改一下日期偏移就能算第1天、第14天、第30天。把结果连成线,就是留存曲线。
小技巧:我一般会同时算「周留存」和「月留存」。周留存看短期波动,月留存看长期趋势。两条曲线对比着看,更容易发现问题。