留存和流失指标
2023-03-20 14:50:50 时间
一.背景和意义
关注产品对应用户的黏性,评判APP初期能否留下用户,以及活跃用户规模增长的情况,尤其在在AARRR模型,留存被单独说明为一个用户运营数据指标。
但是在APP中期和后期,更关心产品的用户稳定性,收益转化,所以流失指标更能反应产品的生命周期处于那个阶段。也有助于活跃用户生命周期分析,以及渠道质量变化情况。
二.数据和指标计算
1.数据来源
1.1 数据库表:用户表/登录表(用户注册时间,最近登录时间,登录地点)
1.2 用户埋点数据:考虑到有些产品,尤其是海外产品是非登录状态可用,所以采用埋点上报数据。
2.留存指标
2.1 留存用户,留存率
衍生指标:次日留存率(Day 1Retention Ratio)
定义:指定日期使用(登录)的用户 在 隔天(指定日期+1)后继续使用(登录) 用户的比例。
类似指标:3日留存率,7日留存率。
开发实现:
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, 上月登录/使用产品,但在本月未登录/使用过的用户占上月(使用过/活跃)用户的比例。
流失通常看周流失或者月流失指标。用来
- 活跃用户生命周期分析;
- 渠道用户变化情况;
- 拉动收入的运营手段,版本更新对于用户的流失影响评估;
- 那个时间段流失较高;
- 行业流失比较,产品生命周期也就是中期评估。
相关文章
- 从本体论开始说起——运营商关系图谱的构建及应用
- 如何成为一名数据科学家?
- 从未见过的堂兄杀了人,你的DNA是关键证据
- 20个安全可靠的免费数据源,各领域数据任你挑
- 20个安全可靠的免费数据源,各领域数据任你挑
- 阿里云李飞飞:All in Cloud时代,云原生数据库优势明显
- 基于Hadoop生态系统的一高性能数据存储格式CarbonData(性能篇)
- 大数据告诉你:10年漫威,到底有多少角色
- TigerGraph:实时图数据库助力金融风控升级
- Splunk利用Splunk Connected Experiences和Splunk Business Flow 扩大数据访问
- 大数据开发常见的9种数据分析手段
- 以免在景区看人,我爬了5W条全国景点门票数据...
- 【实战解析】基于HBase的大数据存储在京东的应用场景
- 数据科学家告诉你哪些计算机科学书籍是你应该看的
- Kafka作为大数据的核心技术,你了解多少?
- Spring Boot 整合 Redis 实现缓存操作
- 大数据学习必须掌握的五大核心技术有哪些?
- 基于Antlr在Apache Flink中实现监控规则DSL化的探索实践
- 甲骨文再次被Gartner评为分析型数据管理解决方案魔力象限领导者
- 爬取吴亦凡微博102118条转发数据,扒一扒流量的真假