D1 留存 12%,D7 留存 4%。
这两个数字,是日均上线两周后 App Store Connect 给我的现实。100 个人下载了 App,一周后只有 4 个人还在用。
这篇文章记录我怎么诊断问题、做出决策、以及为什么"砍功能"有时候比"加功能"更重要。
数据现实
先看时间线:
| 日期 | 累计下载 | 活跃设备 | 备注 |
|---|---|---|---|
| ~04-04 | 8 | — | v1.2.2 发布前 |
| 04-05 | 44 | — | 单日 +36,小红书内容开始驱动 |
| 04-13 | 211 | 峰值 18 | D1 留存 12%,D7 留存 4% |
211 次下载,峰值活跃 18 个设备。这意味着绝大多数用户下载后很快就流失了。
诊断:新用户的前 30 秒
留存问题的根源通常在新用户的首次体验。我回头审视了 v1.2 的 Tab 结构:
v1.2 Tab 结构:
我的物品(列表)| 冷静 | 洞察 | 设置
算一算被隐藏在二级入口
问题出在哪?
新用户打开 App,看到的是一个空列表。没有物品、没有数据、没有即时价值。要体验核心功能"算一算",需要找到入口、输入数据、等待结果。
新用户在获得价值之前就离开了。
关键决策:恢复算一算为首 Tab
v1.3.1 的核心改动只有一个:把算一算恢复为第一个 Tab。
v1.3.1 Tab 结构:
算一算(默认)| 我的物品 | 冷静 | 洞察
这个决策的逻辑:
- 即时价值 — 新用户打开 App,立刻看到一个计算器。输入价格和使用频率,10 秒内得到结果。
- 零门槛 — 不需要先添加物品,不需要理解"追踪"概念。
- 转化漏斗 — 算完之后自然引导到"开始追踪"或"加入冷静清单"。
同时修复的 Bug
诊断过程中还发现了一个严重 bug:冷静清单到期通知从未触发。
原因:scheduleCalmExpiry 函数写好了,但从未被调用。用户添加了冷静物品,设了 7 天冷静期,但 7 天后什么都没发生。
这意味着冷静清单的核心价值——"到期提醒你做决定"——完全失效了。
修复清单:
- 修复
scheduleCalmExpiry调用时机 - 修复通知权限请求时机(添加冷静物品时请求,而非只在记录使用时)
- 算一算新增物品名输入框,预填到追踪/冷静清单
为什么不加更多功能
面对 4% 的留存,直觉反应是"加功能"——加社交、加成就系统、加每日签到。
但我选择了相反的方向:不加功能,调整结构。
理由:
- 用户不是因为功能不够而离开,是因为没感受到核心价值就离开了
- 加功能 = 加复杂度 = 新用户更难理解产品
- 一个人的开发资源有限,每加一个功能就是一个维护负担
付费功能的克制
v1.3.1 还做了一个决定:隐藏 Pro 升级入口。
已经写好了 StoreKit 2 的付费逻辑、PaywallView、产品配置。但数据告诉我:
- 活跃用户十几个
- D7 留存 4%
- 瓶颈是留存,不是变现
在这个阶段上付费,不仅赚不到钱,还会让新用户觉得"又一个想收费的 App"。
付费上线的前提条件我定得很明确:
- D7 留存 > 25%
- 周活跃用户 > 500
- 用户平均追踪物品数 > 3
三个条件缺一不可。在此之前,所有功能免费。
验证指标
v1.3.1 发版后需要观察一周的指标:
- D1 留存是否从 12% 提升到 20%+ — 算一算作为首 Tab 是否让新用户更快获得价值
- Sessions/用户是否提升 — 用户是否更频繁地打开 App
- 算一算 → 开始追踪的转化率 — 计算完之后有多少人真的开始追踪
独立开发者的留存思维
几个从这次经历中学到的东西:
1. 新用户的前 30 秒决定一切
不是你的功能不好,是用户没机会体验到。首屏必须提供即时价值。
2. 空状态是杀手
新用户看到空列表 = 看到一个没用的 App。要么预填示例数据,要么把不需要数据的功能放在前面。
3. 留存问题先看结构,再看功能
Tab 顺序、默认页面、首次引导——这些"结构性"改动的效果往往比新功能大得多。
4. 数据小的时候,定性比定量重要
18 个活跃用户的留存率统计意义有限。但"新用户打开看到空列表"这个问题,不需要统计就能判断。
5. 克制是一种能力
不上付费、不加功能、不做社交——在 4% 留存面前,这些决定比"做什么"更难。
留存的故事还在继续。下一篇聊获客——小红书内容是怎么驱动 App Store 下载的,211 次下载背后的完整漏斗。