# 留存分析
> 最后更新时间:2022-3-3 17:00:35
留存,是指用户在 APP、网站等应用上使用过,并一段时间后仍有使用。
留存分析模型是一种衡量用户健康度/参与度的方法,超越下载量、DAU 等指标,深入了解用户的留存和流失状况,发现影响产品可持续增长的关键因素,指导市场决策、产品改进、提升用户价值等。
## 留存分析能解决哪些问题?
1. 上个月做了一次产品迭代,如何评估其效果?是否完成了产品经理期望完成的行为?
2. 作为一个社交 APP,在注册后不添加好友和添加 10 个好友的用户后续留存有差异吗?
3. 短期留存低,长期留存一定很差吗?
4. 两个推广渠道带来不同的用户,哪个渠道的用户更有可能是的高价值用户?
5. 近 30 天注册的用户,半个月都没有回访的用户比例是多少?
……

## 1\. 定义指标
上方为指标定义区域,定义留存条件,指标定义、细分维度查看,支持条件过滤,支持多个人群的对比分析,支持对全量数据随机抽样计算。
### 1.1 定义留存
留存是基于某个用户群体的初始行为时间来计算的,描述发生了某个行为的同期群,在一段时间后是否发生了期望的行为。
初始行为和后续行为均可以是任意事件或者某个具体的事件

**通常的三类留存可以这样来构建:**
#### **A. 新增用户留存**
**移动端:** 选择条件【初始行为 = 启动,后续行为 = 启动】,分群=新访问用户,即可分析新访用户的留存情况
**H5/Web/小程序:** 选择条件【初始行为 = 浏览页面,后续行为 = 浏览页面】,分群=新访问用户,即可分析新访用户的留存情况
>[info] 同样也可以根据业务需求,自定义新增用户
#### **B. 活跃用户留存**
**移动端:** 选择条件【初始行为 = 启动,回访行为 = 启动】,分群=所有用户,即可分析活跃的用户后续使用应用的情况
**H5/Web/小程序:** 选择条件【初始行为 = 浏览页面,回访行为 = 浏览页面】,分群=所有用户,即可分析用户活跃的用户在后续访问网站的情况
#### **C. 自定义留存**
相较分析新增/活跃用户的总体留存情况,关注业务的核心事件使用情况,会更有利于发现用户的行为模式和其中可能存在的问题。
> e.g. 对于电商的运营,可以定义【 初始行为 = 支付订单,后续行为 = 支付订单】 了解用户的复购行为,多长时间会产生复购,可以进一步分析这些忠实用户的行为特征;
> 对于问答应用,可以定义【初始行为 = 注册 ,回访行为 = 评论 】,了解用户在注册后有多少用户在多长的频率里会参与进来。
**不同的分析场景中可以设置多个不同的留存条件来分析:**
**初始行为和后续行为设置为相同**,对比不同的功能,重复发生的情况,发现用户对不同功能的使用粘性;
**初始行为相同,设置不同的后续行为**,对比同一个优化,是否对其他功能有不同的影响;
**后续行为相同,设置不同的初始行为**,对比发现不同的运营手段、产品功能对核心业务目标的影响。
>[info] V5.1 及以上版本初始行为和后续行为支持选择多个,比如分析使用A功能或者B功能的用户后续回访的用户,可以通过设定以下条件来查询
> 初始行为:点击A功能 或 点击B功能
> 后续行为:启动

### 1.2 筛选条件
可以增加某个行为的条件约束,查看满足这些条件下的用户行为,
e.g.对于电商运营,可以查看具体某个品类的复购情况,【初始行为 = 支付订单,商品品类 = 3C;后续行为 = 支付订单,商品品类 = 3C】。
### 1.3 指标切换
可查看第 N 日/之后连续 N 日的留存/流失用户
| 指标 | 说明文案 |
| --- | --- |
| 第 N 日 - 留存用户数 和 留存率 | <p>在某一日/周/月发生了初始行为的用户在第 N 日/周/月时发生了后续行为的用户记为留存用户</p><p>留存率是指第 N 日/周/月时发生了后续行为的留存用户在初始行为用户中的占比</p> |
| 第 N 日 - 流失用户数 和 流失率 | <p>在某一日/周/月发生了初始行为的用户在第 N 日/周/月时没有发生后续行为的用户记为流失用户</p><p>流失率是指第 N 日/周/月时流失的用户在初始行为用户中的占比</p> |
| 之后连续 N 日 - 留存用户数 和 留存率 | <p>在某一日/周/月发生了初始行为的用户在之后连续 N 日/周/月发生了后续行为的用户记为留存用户</p><p>留存率是指之后连续 N 日/周/月发生了后续行为的留存用户在初始行为用户中的占比</p> |
| 之后连续 N 日 - 流失用户数 和 流失率 | <p>在某一日/周/月发生了初始行为的用户在之后连续 N 日/周/月没有发生后续行为的用户记为流失用户</p><p>流失率是指之后连续 N 日/周/月没有发生后续行为的流失用户在初始行为用户中的占比</p> |
| 同时分析指标 | 可以同时分析留存用户在每个周期里的指定指标的表现,比如选择【初始行为:支付订单】【后续行为:支付订单】【同时分析指标:支付订单的金额】即可分析回购用户的回购金额 |
### 1.4 细分维度
支持同时查看某个维度不同属性值的留存,比如不同城市的新用户留存,细分发现影响留存的特定因素。
对于不同属性值类型支持不同的分组方式,同《[事件分析 - 1.3 细分维度](event.md#13-xi-fen-wei-du)》
### 1.5 人群选择
默认基于所有用户计算留存,可以选择其他已保存人群,e.g.要分析北京地区用户留存,选择北京地区的用户即可。也可点击对比分群,选择对应的人群进行对比分析。
## 2\. 图表展示
图表展示区,可以选择时间范围、时间粒度、
### 2.1 时间范围
**时间范围限制的是初始行为发生的日期**
e.g 选择了【2018/03/01-2018/03/07】【初始行为 = 注册,后续行为 = 任意事件】则计算的是在2018/03/01-2018/03/07这段时间里,每一天注册的用户,在随后30天里再次回访的留存用户。
### 2.2 时间粒度
可选择的时间粒度,包括:
* **按日**,可分别查看次日、7日、14日及 30日留存
* **按周**,可分别查看次周、8周、12周及 24周留存
* **按月**,可分别查看次月、6月、12月及 24月留存
### 2.3 第 N 日留存/流失
**第 N 日留存用户数**指在某个时间发生了初始行为 X 的用户,在之后的第 N 日/周/月进行了后续行为 Y 的用户( X 可以等于 Y )。
例如:
> 初始行为 = 点击购买
> 后续行为 = 点击购买
> 4月1日发生购买的用户200人,这200人中4月2日再次购买的用户有100人,4月4日再次购买的用户有50人,
> 则第1日留存用户为100,第3日留存用户为50。
**第 N 日流失用户数**指在某个时间发生了初始行为 X 的用户,在之后的第 N 日/周/月没有进行后续行为 Y 的用户( X 可以等于 Y )。
例如:
> 初始行为 = 点击购买
> 后续行为 = 点击购买
> 4月1日发生购买的用户200人,这200人中4月2日没有购买的用户有100人,4月4日仍然没有购买的用户有50人,
> 则第1日流失用户为100,第3日流失用户为50。
**基础计算规则**
假设定义初始行为是 X 事件,回访行为是 Y 事件。
2017/03/01-2017/03/08 小明各天的行为序列为:
| 2017/3/1 | 2017/3/2 | 2017/3/3 | 2017/3/4 | 2017/3/5 | 2017/3/6 | 2017/3/7 | 2017/3/8 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| XYXY | ABC | YCX | DDY | ABC | BYC | ABC | DDY |
那么计算 2017/03/01的7日留存,则需要在3月1日之后加上7日,查找2017/03/01-2017/03/08范围内,是否发生了后续行为 Y 事件,小明会被算作第2日、第3日、第5日、第7日的留存;则第1日、第4日、第6日被算作流失。
但是若细分维度时,会略有差异,分别说明提供的两类细分维度:
**用户属性:** 根据用户属性来分组,e.g. 性别,如果小明是男,则会被算到男性用户的留存当中
**事件属性:** 根据初始行为的事件属性分组。如果用户触发了多次初始行为,并且属性值不相同,会按用户首次初始行为的属性值进行分组,e.g. 设备品牌,如果小明3月1日方开始用 iPhone X 点击了XY,随后更换了华为 Mate8 又点击了 XY 事件,则小明会被算到 iPhone X 的分组中。
可以对比不同人群的留存,探索发现影响留存/流失的原因

### 2.4 之后连续 N 日留存/流失
**之后连续 N 日留存用户数**指在某个时间发生了初始行为 X 的用户,在之后连续 N 日/周/月进行了后续行为 Y 的用户( X 可以等于 Y )。
例如:
> 初始行为 = 点击购买
> 后续行为 = 点击购买
> 4月1日发生购买的用户200人,这200人中4月2日再次购买的用户有100人,4月3日再次购买的用户有50人,4月4日没有人购买,4月5日有50人再次购买
> 则之后连续1日后留存用户为100,2日后留存用户为50,3日、4日都为0。
**之后连续 N 日流失用户数**指在某个时间发生了初始行为X的用户,在之后的连续 N 日/周/月没有进行后续行为 Y 的用户( X 可以等于 Y )。
例如:
> 初始行为 = 点击购买
> 后续行为 = 点击购买
> 4月1日发生购买的用户200人,这200人中4月2日没有购买的用户有100人,4月3日都发生了购买,4月4日没有购买的用户有50人,
> 则之后连续1日流失用户为100,2日、3日都为0。

### 2.5 留存曲线
留存曲线用来表现【目标用户】的回访比例按照天数衰减的趋势。
对于常见的留存曲线,可以将其分为三个部分:第一部分是振荡期,第二部分是选择期,第三部分是平稳期。

对于不同时期,我们应该有不同策略,总的来说,在振荡期和选择期,我们应该关注新用户的留存,进入平稳期以后,着重关注产品功能的留存。

方舟留存曲线展示的是留存表格中的第一行的概括
* 留存用户是已发生日期的累加值
* 留存率是当前列每个数据与初始行为用户数的加权平均数
合计列第N日的留存的计算逻辑为:每一日的第N日留存的留存用户的算术累加和/剔除未发生日期的目标用户数的算术累加和。
例如:当前日期为0923,查询过去7日(0916-0922)的留存。以合计列的第4日留存的计算逻辑举例:已知0920的第4日为0924,从0920开始往后的日期的第4日都是未来时间,未来日期不会有回访行为,因此计算合计列的第3日留存计算公式为:留存率=0.83%=(6+76+65+4)/(6180+5732+5497+800)

###
### 2.4 人群下钻分析
所有图表中的数据节点,都可以下钻查看人群概览以及保存人群。
下钻人群下钻功能与分群一致,可在[分群](../user/)中作进一步了解。
## 3\. FAQ
### **3.1 初始行为和后续行为选择相同事件,当日留存率为什么不是100%**
当日留存的规则是:用户在触发了初始行为的当日触发了后续行为,不考虑初始行为和后续行为的发生顺序。但是用户触发的1次行为,不能同时作为初始行为和后续行为,因此初始行为和后续行为选择相同事件时,当日触发次数必须大于等于2次才会被计为当日留存。
- 产品简介
- 快速上手
- Step 1 安装部署
- Step 2 激活系统创建项目
- Step 3 开启您的分析旅程
- 1. 集成 SDK
- 2. 可视化埋点
- 3. 创建分析模型
- 附:埋点方案设计
- 附:数据分析思路
- 产品更新日志
- V5.5 新增LTV分析功能等
- V5.3 UI 升级、分布分析重构、维度表动态更新、细节优化等
- V5.2 新增归因分析、消息中心、重构埋点方案、优化看数据体验……
- V5.1.0317 体验优化& Bug修复
- V5.1 升级可视化埋点、增强权限控制……
- Part I 产品功能说明
- 名词解释
- 指标说明
- 看板
- 5.3.3 看板 UI 重构
- 分析
- 事件分析
- 渠道分析
- 渠道相关名词解释
- 来源识别规则
- 搜索引擎
- 社交媒体
- 小程序场景值
- Session 分析
- Session 规则
- 实时分析
- 留存分析
- 转化漏斗
- 智能路径
- 归因分析
- 热图分析
- Web/H5 热图
- APP 热图
- 分布分析
- 间隔分析
- 属性分析
- LTV 分析
- 多主体分析
- 自定义查询
- 用户
- 用户分群
- 用户探查
- 用户标签
- 标签体系应用概览
- 标签体系
- 标签生命周期管理
- 标签加工
- 如何自定义SQL创建标签
- 单用户档案
- 运营
- 广告跟踪
- 微信小程序渠道追踪
- 预置广告媒介和渠道
- App 推广监测(Beta)
- 电子邮件
- 短信
- 消息通知
- 项目管理
- 项目概览
- 项目角色管理
- 项目成员管理
- 数据接入管理
- 埋点方案
- 可视化埋点
- 集成SDK接入数据
- 数据验证
- 用户数据导入
- 微信小程序全埋点事件定义
- 元数据管理
- 元事件
- 虚拟事件
- 事件属性
- 用户属性
- Session 管理
- 页面组管理
- 维度表
- 服务集成配置
- 监控告警
- 智能监控
- 自定义监控
- 平台管理
- 企业概览
- 项目管理
- 成员管理
- 安全设置
- 企业设置
- 日志管理
- 帐号设置
- Part II 技术文档
- 技术接入准备工作
- 部署环境检测工具
- 数据模型
- 数据格式
- 预置事件和属性
- App预置事件/属性
- JS 预置事件/属性
- 如何准确识别用户
- 如何设计埋点方案
- 分平台上报数据 vs 跨平台打通
- SDK 指南
- Android SDK
- 快速集成
- 全埋点模块
- 消息推送模块
- Android Hybrid模式
- SDK Gradle集成方式
- 多渠道打包
- 易观小工具
- 合规相关
- iOS SDK
- 快速集成
- 全埋点介绍
- iOS Hybrid模式
- 消息推送模块
- JS SDK
- 快速集成
- JS SDK基础版
- JS SDK插件
- uni-app SDK
- 快速集成
- 打包原生APP
- 开启移动端全埋点
- uni-app SDK标准版
- 微信小程序 SDK
- 快速集成
- 微信小程序标准版
- 微信小程序插件版
- 微信小程序通用框架版
- 支付宝小程序 SDK
- 支付宝小程序标准版
- 支付宝小程序通用框架版
- 字节跳动小程序 SDK
- 字节跳动小程序标准版
- 字节跳动小程序通用框架版
- 百度小程序 SDK
- 百度小程序标准版
- 百度小程序通用框架版
- 钉钉小程序 SDK
- 钉钉小程序标准版
- 钉钉小程序通用框架版
- QQ小程序 SDK
- QQ小程序标准版
- QQ小程序通用框架版
- 快应用 SDK
- 华为WeCode小程序
- WeCode SDK 标准版
- WeCode SDK插件
- PhoneGap SDK
- mPaaS SDK
- ReactNative SDK
- Flutter SDK
- Java SDK
- Python SDK
- PHP SDK
- C++ SDK
- C# SDK
- Node JS SDK
- Lua SDK
- Golang SDK
- SDK FAQ
- identify与alias的区别
- 爬虫数据如何识别?
- 页面停留如何获取时间?
- 如果获取SDK及更新日志
- 代码埋点和无埋点有什么区别
- Web页面中发现丢失某一个事件
- 自研 SDK 注意事项
- 页面时长统计功能
- 飞书小程序 SDK
- 飞书小程序标准版
- 飞书小程序通用框架版
- Unreal Engine SDK
- 数据验证
- 客户端埋点验证
- Debug 数据验证
- 数据入库验证
- 数据导入
- 接口导入
- JAVA工具包
- 标准json文件导入
- csv格式导入
- 数据导入FAQ
- 数据导出
- JAVA工具包
- 事件数据导出
- 用户数据导出
- 直接从Kafka中消费数据
- 使用程序访问数据库
- 脚本工具
- API
- 分析API
- 事件分析
- 留存分析
- 自定义查询
- 转化漏斗
- 属性分析
- Session分析
- 渠道分析
- 分布分析
- 用户API
- 分群查询
- 用户档案
- 分群管理
- 管理API
- 权限管理
- 元数据管理
- 埋点方案管理
- 维度表管理
- 运营API
- 广告跟踪
- APP推广监测
- 平台管理API
- 项目管理
- 成员管理
- 第三方登录
- OAuth2.0登录
- LDAP登录
- GDPR 合规
- Part III 常见问题
- License 许可
- 产品试用及采购
- 参与贡献