前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >留存和流失指标

留存和流失指标

原创
作者头像
平常心
修改2021-11-25 20:55:20
1.1K0
修改2021-11-25 20:55:20
举报
文章被收录于专栏:个人总结系列个人总结系列

一.背景和意义

关注产品对应用户的黏性,评判APP初期能否留下用户,以及活跃用户规模增长的情况,尤其在在AARRR模型,留存被单独说明为一个用户运营数据指标。

但是在APP中期和后期,更关心产品的用户稳定性,收益转化,所以流失指标更能反应产品的生命周期处于那个阶段。也有助于活跃用户生命周期分析,以及渠道质量变化情况。

二.数据和指标计算

1.数据来源

1.1 数据库表:用户表/登录表(用户注册时间,最近登录时间,登录地点)

1.2 用户埋点数据:考虑到有些产品,尤其是海外产品是非登录状态可用,所以采用埋点上报数据。

2.留存指标

2.1 留存用户,留存率

衍生指标:次日留存率(Day 1Retention Ratio)

定义:指定日期使用(登录)的用户 在 隔天(指定日期+1)后继续使用(登录) 用户的比例。

类似指标:3日留存率,7日留存率。

开发实现:

代码语言:javascript
复制
SELECT 
   COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 0 THEN user_id  ELSE null END ) AS day_user_num,   --当日用户数
   COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 1 THEN user_id  ELSE null END ) AS 1day_user_num,  --次日留存用户数
   COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 1 THEN user_id  ELSE null END ) / COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 0 THEN user_id  ELSE null END ) as 1day_ratio, --次日留存率

   COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 2 THEN user_id  ELSE null END ) AS 3day_user_num,  --3日留存用户数
   COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 2 THEN user_id  ELSE null END ) / COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 0 THEN user_id  ELSE null END ) as 3day_ratio,  --3日留存率

   COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 6 THEN user_id  ELSE null END ) AS 7day_user_num, --7日留存用户数
   COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 6 THEN user_id  ELSE null END ) / COUNT(DISTINCT CASE WHEN DATEDIFF($day, event_day) <= 0 THEN user_id  ELSE null END ) as 7day_ratio  --7日留存率
FROM
   user_event 
WHERE
    DATEDIFF($day, event_day) <= 6
AND DATEDIFF($day, event_day) >= 0



---- ok的sql

SELECT 
    t_day,
    count(distinct user_id) as day_user_num,
    count(distinct case when day_interval=1 then user_id else null end) as  1day_user_num,
    count(distinct case when day_interval=1 then user_id else null end)/ count(distinct user_id) as 1day_ratio,
    count(distinct case when day_interval=3 then user_id else null end) as  3day_user_num,
    count(distinct case when day_interval=3 then user_id else null end)/ count(distinct user_id) as 3day_ratio,
    count(distinct case when day_interval=7 then user_id else null end) as  7day_user_num,
    count(distinct case when day_interval=7 then user_id else null end)/ count(distinct user_id) as 7day_ratio
FROM 
(
    SELECT 
        t.day as t_day,
        t.user_id,
        t.n_day_user_id,
        DATEDIFF(TO_DATE(t.n_day,'yyyyMMdd'), TO_DATE(t.day,'yyyyMMdd')) as day_interval
    FROM
    (
        SELECT  a.did AS user_id
                ,b.did AS n_day_user_id
                ,a.day AS day
                ,b.day AS n_day
        FROM    dwd_user_event_di AS a
        LEFT JOIN dwd_user_event_di AS b
        ON      a.did = b.did
        WHERE   
            DATEDIFF(TO_DATE(a.day,'yyyyMMdd'), TO_DATE('20211001','yyyyMMdd'))<=6 
        AND 
            DATEDIFF(TO_DATE(a.day,'yyyyMMdd'), TO_DATE('20211001','yyyyMMdd'))>=0 
    ) t
)
GROUP BY t_day
;

也可以通过行业数据或者平均留存来进行对比,例如:

基于留存率数据随着时间从高到底逐渐下降,当下降趋势平稳的时间段就是用户流失开始时间。如下图,从第5周开始留存率表现平滑,所以可以设定流失周期5周,即35天。

3.流失指标

3.1 流失用户,流失率

指标:日流失率 Day 1 Churn Ratio, 统计日登录/使用产品,随后7天没有登录/使用产品的用户 与统计日用户的占比。

周流失率 Week Chrun Ratio, 上周登录/使用产品,但本周未登录/使用过的用户占上周(使用过/活跃)用户的比例。

月流失率 Month Churn Ratio, 上月登录/使用产品,但在本月未登录/使用过的用户占上月(使用过/活跃)用户的比例。

流失通常看周流失或者月流失指标。用来

  • 活跃用户生命周期分析;
  • 渠道用户变化情况;
  • 拉动收入的运营手段,版本更新对于用户的流失影响评估;
  • 那个时间段流失较高;
  • 行业流失比较,产品生命周期也就是中期评估。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术对外提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、presto、Iceberg、Alluxio 等,以快速构建企业级数据湖、数据仓库。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档