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

2021-08-20 17:05:21 浏览数 (1)

前言

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

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

目录

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

参考代码如下:

代码语言: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

留存分析方法

其中产品功能分析:

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

  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%,远低于其他日次留,且后续留存也较其他日偏低,警惕羊毛党。

0 人点赞