3500字的留存分析干货文章(附实现代码)

俊红的数据分析之路

共 3545字,需浏览 8分钟

 · 2021-08-19

前言


网上有关留存的文章很多,这篇不敢说是最全的,但最起码是较全的。由于上班加带娃,又要坚持原创,又要精细的准备每一篇干货,所以大概一周一更。如有做的不足的地方,请于后台留言,督促我改进,以分享更有价值的干货。


在这个用户为大的互联网世界中,我们一起发现更多有意思的点......


目录

  1. 互联网企业面临的留存问题

  2. 什么是留存分析

  3. 留存分析常用口径

  4. 留存分析的适用场景

  5. 留存分析参考代码

  6. 留存下降的可能性原因

  7. 留存分析方法

  8. 案例实攻



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,其他环境也可以,只是个别函数会略有差别,替换个别函数即可,无需更改代码结构。


参考代码如下:

--以a表日期作为主体select t.date_a,t.date_b,t.diff_ab,count(distinct t.user) as user_numfrom(     --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)tgroup by 1,2,3having t.diff_ab>=0



6
留存分析下降的可能性原因



新用户留存下降

  • 新用户并未快速的感受到产品的核心价值。

  • 新手引导模块体验交差

  • 新用户羊毛党居多

  • 界面UI设计影响使用感

  • 产品功能体验较差

  • ......


老用户留存下降

  • 产品迭代功能致使用户体验变差

  • 产品迭代周期较长,用户丧失新鲜感

  • 受竞品影响

  • 未促使用户对产品形成习惯

  • 连续打卡签到送红包模块优惠力度较小,无坚持意义

  • 广告推送较多

  • 客服服务响应较慢、服务较差

  • 无关推送

  • 产品bug较多

  • 受促销活动影响较大

  • ......



7
留存分析方法




其中产品功能分析:

目的:找出对留存最有价值的功能&最没价值的功能,便于后期迭代优化。


  1. 卓越功能:建议侧重优化用户体验。

  2. 大众功能:重中之重,建议反思该功能的长期价值与实用性

  3. 小众功能:建议保留该功能,但无需过多投入精力

  4. 弱势功能:建议考虑是否砍掉




8
案例实攻



案例一

该图是我在ppt上加工出来的,选取了两日来对比。



解析:

2021年5月1日注册的新用户在注册的第7日留存率趋向于平稳,此时留存率60%;2021年5月2日注册的新用户在注册的第7日留存率趋向于平稳,此时留存率20%;2日注册的用户稳定留存率1日差。


改进思路:

应使得趋向于平稳时的留存率尽可能提高,即平稳的这段线尽量往上提。


案例二

数据纯属个人虚构,实际分析时建议多扩展日期,该图重在解析分析方法。


该表留存率:(某新增的用户中,在第N天还进行登录的用户数)/ 该日新增用户数


以8月1日的新增用户留存为例

  • 新手探索期:单纯靠大额优惠吸引的用户会之间流失,产品价值未达到用户预期。

  • 习惯养成期:产品功能&实用性未促使用户养成使用习惯。

  • 活跃用户期:真正留下来的忠实用户。


解析:

  1. 新用户次留骤减60%:没有使得用户迅速发现产品价值

  2. 整体留存率于第10日趋向于平稳,留存率稳定于11%左右:说明8月1日的新增用户中只有11%左右发展成了忠实用户。

  3. 3留&7留出现留存率增长现象(注意:留存率并不会呈现持续下降情况),进一步定位原因,在8月3日与8月7日是否进行了促销活动?



案例三

解析:

  1. 表格中以8月6日注册用户的次留(71%)为起始点,8月1日注册用户的7留(34%)为结束点,二者形成对角线,纵向对比数据,颜色颜色部分留存率都比较高。首先需要确认8月7日这天运营是否做了动作?比如:该日做了促销活动、或者其他特殊活动?因为8月7日正好对应的是8月6日的次留,8月5日的3留......8月1日的7留。

  2. 表格中8月9日的次留是20%,远低于其他日次留,且后续留存也较其他日偏低,警惕羊毛党。

点分享
点收藏
点点赞
点在看
浏览 33
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报