前言
网上有关留存的文章很多,这篇不敢说是最全的,但最起码是较全的。由于上班加带娃,又要坚持原创,又要精细的准备每一篇干货,所以大概一周一更。如有做的不足的地方,请于后台留言,督促我改进,以分享更有价值的干货。
在这个用户为大的互联网世界中,我们一起发现更多有意思的点......
目录
- 互联网企业面临的留存问题
- 什么是留存分析
- 留存分析常用口径
- 留存分析的适用场景
- 留存分析参考代码
- 留存下降的可能性原因
- 留存分析方法
- 案例实攻
1
互联网企业面临的留存问题
- 流量红利见顶、拉新成本高
在极易同质化的今天,流量竞争着实激烈,提高用户留存的重要性不言而喻,且存量用户的获客成本远远低于拉新成本。
- 新用户较易流失
企业大规模投广告、做活动,高额支出锁不住新用户,长期可持续发展有些无力,只顾眼前利益治标不治本。
2
什么是留存分析
留存率:某日用户数在第N日仍启动该App的用户比例,留存分析即分析用户随时间变化的活跃情况。获取用户只是第一步,留住用户才是所有产品最终目标。
可以理解为:由初期的摇摆用户转化为忠诚&稳定用户的过程。留存率越高,说明用户对产品越有强烈的依赖感。
可分为三个阶段:
- 初期:新用户刚注册,用户留存下降较快,需快速让用户感受到产品核心价值。
- 中期:新用户沉淀下来,形成活跃用户。此时需分析活跃留存,加强核心功能,培养用户对产品的使用习惯。
- 后期:思考产品核心价值,做好产品迭代与优化。
从时间维度划分:
常见的的有:次日留存、3日留存、7日留存、30日留存、周留存、月留存
从用户维度划分:
常见的的有:新用户留存、活跃留存
图解如下:
3
留存分析常用口径
以新用户留存为例
次日留存率=(某日新增的用户中,在注册的第2天还进行登录的用户数)/ 该日新增用户数
3日留存率=(某日新增用户中,在注册的第3天还进行登录的用户数)/ 该日新增用户数
7日留存率=(某日新增的用户中,在注册的第7天还进行登录的用户数)/ 该日新增用户数
30日留存率=(某日新增的用户中,在注册的第30天还进行登录的用户数)/ 该日新增用户数
1周后留存率=(某周新增的用户中,在注册的第2周还进行登录的用户数)/ 该周新增用户数
2周后留存率=(某周新增的用户中,在注册的第3周还进行登录的用户数)/ 该周新增用户数
1月后留存率=(某月新增的用户中,在注册的第2月还进行登录的用户数)/ 该月新增用户数
2月后留存率=(某月新增的用户中,在注册的第3月还进行登录的用户数)/ 该月新增用户数
以活跃留存为例
次日留存率=(某日登录的用户中,在第2天还进行登录的用户数)/ 该日登录用户数
3日留存率=(某日登录用户中,在第3天还进行登录的用户数)/ 该日登录用户数
7日留存率=(某日登录的用户中,在第7天还进行登录的用户数)/ 该日登录用户数
30日留存率=(某日登录的用户中,在第30天还进行登录的用户数)/ 该日登录用户数
1周后留存率=(某周登录的用户中,在第2周还进行登录的用户数)/ 该周登录用户数
2周后留存率=(某周登录的用户中,在第3周还进行登录的用户数)/ 该周登录用户数
1月后留存率=(某月登录的用户中,在第2月还进行登录的用户数)/ 该月登录用户数
2月后留存率=(某月登录的用户中,在第3月还进行登录的用户数)/ 该月登录用户数
4
留存分析的适用场景
日留存率
- 快速判断产品是否迎合市场需求,比如新手对产品的UI设计、功能设置、新手引导等的体验是否满意,是否需做调整。
- 快速判断用户粘性,比如用户是否更易受促销活动的影响等等。
周留存率
- 判断用户忠诚度,用户此时对产品基本已有完整的体验。一整套流程体验下来,继续访问的用户可判断为潜在忠诚用户。
- 分析用户再次访问的原因,找出产品最能巩固用户的点,且参考此点以一贯之,拓展应用到更多的用户身上,促使更多的用户留下来。
月留存率
- 评估迭代与优化的效果。砍掉留存率低的产品功能,进行迭代优化。
5
留存分析参考代码
有些互联网公司面试会出留存SQL题型,该代码仅供参考。
代码运行结果
语法环境:SparkSql或Impala,其他环境也可以,只是个别函数会略有差别,替换个别函数即可,无需更改代码结构。
参考代码如下:
代码语言:javascript复制--以a表日期作为主体
select
t.date_a
,t.date_b
,t.diff_ab
,count(distinct t.user) as user_num
from
(
--a、b两段代码一模一样,join之后取二者日期差值
select
a.login_date as date_a
,b.login_date as date_b
,a.user
,datediff(b.login_date,a.login_date) as diff_ab
from
(
--a段代码
SELECT
login_date
,user
from dwd.user_login
where login_date>='2021-08-01'and login_date<=date_sub(to_date(now()),1)
)a
inner join
(
--b段代码
SELECT
login_date
,user
from dwd.user_login
where login_date>='2021-08-01'and login_date<=date_sub(to_date(now()),1)
)b on a.user=b.user
)t
group by 1,2,3
having t.diff_ab>=0
6
留存分析下降的可能性原因
新用户留存下降
- 新用户并未快速的感受到产品的核心价值。
- 新手引导模块体验交差
- 新用户羊毛党居多
- 界面UI设计影响使用感
- 产品功能体验较差
- ......
老用户留存下降
- 产品迭代功能致使用户体验变差
- 产品迭代周期较长,用户丧失新鲜感
- 受竞品影响
- 未促使用户对产品形成习惯
- 连续打卡签到送红包模块优惠力度较小,无坚持意义
- 广告推送较多
- 客服服务响应较慢、服务较差
- 无关推送
- 产品bug较多
- 受促销活动影响较大
- ......
7
留存分析方法
其中产品功能分析:
目的:找出对留存最有价值的功能&最没价值的功能,便于后期迭代优化。
- 卓越功能:建议侧重优化用户体验。
- 大众功能:重中之重,建议反思该功能的长期价值与实用性
- 小众功能:建议保留该功能,但无需过多投入精力
- 弱势功能:建议考虑是否砍掉
8
案例实攻
案例一
该图是我在ppt上加工出来的,选取了两日来对比。
解析:
2021年5月1日注册的新用户在注册的第7日留存率趋向于平稳,此时留存率60%;2021年5月2日注册的新用户在注册的第7日留存率趋向于平稳,此时留存率20%;2日注册的用户稳定留存率较1日差。
改进思路:
应使得趋向于平稳时的留存率尽可能提高,即平稳的这段线尽量往上提。
案例二
数据纯属个人虚构,实际分析时建议多扩展日期,该图重在解析分析方法。
该表留存率:(某新增的用户中,在第N天还进行登录的用户数)/ 该日新增用户数
以8月1日的新增用户留存为例
- 新手探索期:单纯靠大额优惠吸引的用户会之间流失,产品价值未达到用户预期。
- 习惯养成期:产品功能&实用性未促使用户养成使用习惯。
- 活跃用户期:真正留下来的忠实用户。
解析:
- 新用户次留骤减60%:没有使得用户迅速发现产品价值
- 整体留存率于第10日趋向于平稳,留存率稳定于11%左右:说明8月1日的新增用户中只有11%左右发展成了忠实用户。
- 3留&7留出现留存率增长现象(注意:留存率并不会呈现持续下降情况),进一步定位原因,在8月3日与8月7日是否进行了促销活动?
案例三
解析:
- 表格中以8月6日注册用户的次留(71%)为起始点,8月1日注册用户的7留(34%)为结束点,二者形成对角线,纵向对比数据,颜色颜色部分留存率都比较高。首先需要确认8月7日这天运营是否做了动作?比如:该日做了促销活动、或者其他特殊活动?因为8月7日正好对应的是8月6日的次留,8月5日的3留......8月1日的7留。
- 表格中8月9日的次留是20%,远低于其他日次留,且后续留存也较其他日偏低,警惕羊毛党。