做企业级报表的人经常会遇到留存率的概念。对于不同的项目,留存率的概念也会有所不同。针对我所在的手机应用、手机游戏方向的用户留存率统计,在此做一些简要的说明。
用户留存率这个概念在网上没有搜到其具体的定义,在此仅对我公司的计算模式进行简要整理:用户留存率是只某一基础用户群在特定的一段时间内使用某一应用(游戏)的比率。需要注意两个概念:
1、基础用户群:是指按照给定要求规范出的特定群体。例如,我们要统计2月份《二战风云》的日留存,统计的基础用户群是指2月1日全天使用了《二战风云》这一游戏的所有玩家。
2、特定的一段时间内使用:这个概念对不同的人可能有不同的两种理解。一是连续的时间内,每天都在使用该应用;二是在特定的时间段内,不定期的使用该应用。这里,我们统计采用的是后者。
现在举例说明该统计所要达到的效果:
第一天 第二天 第三天 第四天 第五天 第六天 第七天
访问量 100 110 120 130 140 150 160
留存量 100 90 80 70 60 50 40
对于以上数据进行说明:我们以第一天访问的总人数100作为基数统计日留存。可以看到,虽然每天的用户访问量是在递增的,但是用户留存量是递减的(用户留存当然是越来越少喽!)。其计算方法我想大家也就可以看出一二了吧!对,第二天的留存量是指在第一天基数的100人中,有90人第二天又使用了该应用;而第三天的留存量是指在第一天基数的100人中,有80人第三天又使用了该应用,以此类推……
可能有人会问,第三天的80人为什么不是以第二天的90人作为基数呢?我个人认为第二种方式在统计上是存在弊端的。举例说明:如果一个用户第二天没有使用该应用,但以后的每天都在使用,在这种情况下,我们可以确定的是:该用户是活跃用户;但如果用第二种方法统计的话,该用户就不会在我们统计的数据内。
现就以上所述方法的统计流程进行简单介绍:
1、抽取基础数据作为统计基数
2、抽取第二天访问数据数据,并以该数据与抽取的基础数据做交集,得到第二天留存量
3、用留存量/基础数据得出第二天的留存率
4、以上方法每天循环,提取每天的用户留存数据
一下是用户日留存的存储过程,仅供参考(mysql)
CREATE PROCEDURE `PRO_REMAIN_USER_BY_DAY`(in in_day dateTime)
begin
declare Ttime datetime;
declare Tflag int;
declare TtemFlag int;
declare TdayFlag2 varchar(20);
declare Tnum int;
declare Tnum1 int;
declare Tcount int;
set in_day=ifnull(in_day,adddate(current_date(),-1));
set Tcount=(select count(1) from remain_user_data where addTime =in_day );
if Tcount =0 then
insert into remain_user_data(addTime) values(in_day);
end if;
set Tflag=1;
set TtemFlag=0;
set Ttime=in_day;
CREATE TEMPORARY TABLE tempTable(id bigint );
while Tflag<30 do
truncate table tempTable;
#抽取基础数据
insert into tempTable
select player_id from day_logout_notify where logout_time>=Ttime and logout_time<adddate(Ttime,1);
set Tnum=(select ifnull(count(distinct id),0) from tempTable );
if Tnum>0 then
#抽取第 Tnum天留存量
set Tnum1=(select ifnull(count(distinct p.player_id),0)
from tempTable t join day_logout_notify p on t.id=p.player_id
where p.logout_time>=in_day and logout_time<adddate(in_day,1) );
if Tflag=1 then
set Tnum=1;
end if;
set TdayFlag2=concat( 'data',Tflag);
#计算留存率 并更新
set @sqlstr=concat('update remain_user_data set ',TdayFlag2,'=',Tnum1/Tnum,' where addTime=',concat('\'',DATE(Ttime),'\''));
prepare stmt from @sqlstr;
execute stmt;
end if;
#时间加1,循环
set Ttime=adddate(Ttime,-1);
set Tflag=Tflag+1;
end while;
drop table tempTable;
end;
该存储过程已经过测试,可以放心使用。
分享到:
相关推荐
用户留存率计算.pdf
课时8:Spark统计用户的收藏转换率 课时9:Spark梳理用户的收藏以及订单转换率 课时10:最终获取用户的收藏以及订单转换率 课时11:Spark Pipeline构建随机森林回归预测模型 课时12:Spark 随机森林回归预测结果...
如果使用 HiveQL 或 Spark SQL 来计算第一天和第二天的留存用户数,写法大致如下:select distinct USER_ID as USER_
1、新用户普遍在前几天流失 2、各渠道导入的新用户留存差异巨大,渠道策略有待提升 3、根据留存率计算用户生命周期 4、需要通过同业对比确认是否正常 1、为什么用
一般不分析活跃用户留存,而是通过DAU观察活跃用户流失数据 留存是评定游戏综合质量的最佳指标 5、平均使用时长和平均使用次数 可以使用柱状图来展现 两项宏观行为指标可反映出用户对app的依赖程度 如果留存较...
模拟立体翻转效果是一种视觉呈现技术,它能够实现图像或界面元素的三维翻转动画,为用户带来生动且富有...这种效果不仅能够提升用户界面的美观度,还能够增加用户的参与度和留存率,为应用或网站带来更好的用户体验。
可以用来监控大R用户异常变化情况 如果该值异常波动,请进一步看鲸鱼用户数据 4、用户留存 新用户留存 次日、3日、7日、14日、30日留存 次日留存是对玩家“第一游戏体验”的最佳印证 与游戏的类型、题材、玩法、美术...
第8章介绍了留存指标的计算、留存率计算与预测、常用分类算法原理和模型评估;第9章介绍了常用用户指标计算、LTV计算与预测、用户物品购买关联分析、基于用户物品购买智能推荐和社会网络分析;第10章介绍了渠道数据...
数据收集 APP相关数据 用户留存率 用户平均访问时长 订单数据 商家下单数据 直播相关数据(场均观看人数、直播场次情况、直播间转发情况、各直播类 型的数据情况) 用户注册数 用户流失率 3、数据的统计与描述 在...
用户界面度量假设:一天中用户的 UI_OPEN_COUNT 和 VIDEO_VIEW_COUNT 仅被跟踪一次。 没有加载数据的脚本。 有一种方法可以将 CSV 文件加载到所需的数据结构中。 花费时间:2 天 12 小时。 一种。 9 月份的 Day7 UI ...
一整套电商数仓的搭建源码+项目说明(包括数据采集平台的搭建,将用户的行为数据分为四层分别分层搭建,并实现业务数据库的分层搭建,针对数据仓库中的数据进行,留存、转化率、复购率、GMV、活跃等报表分析,采用...
76_用户行为数仓_用户留存分析.avi 77_用户行为数仓_1、2、3、n日留存用户明细.avi v. ^5 Q1 \ `9 V4 Q 78_用户行为数仓_需求三:ADS层留存用户和留存比率.avi 79_用户行为数仓_新数据准备.avi 80_用户行为数仓_需求...
一整套电商数仓的搭建源码+项目说明(包括数据采集平台的搭建,将用户的行为数据分为四层分别分层搭建,并实现业务数据库的分层搭建,针对数据仓库中的数据进行,留存、转化率、复购率、GMV、活跃等报表分析,采用...
获取 提升 保持 衰退 流失 精 准 识 别 潜 在 用户 策略优化 , 智能客服 , 提升客户贡 优化用户体 献 验 智能预警, 延 长客户存续周 期 个性推荐,增 大留存机率 用户 人工 智能 人工智能理财全生命周期客户服务 ...
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 大数据包括结构...
2运营统计:可以统计(日、月、年)的房间数量、总营业额、日均营业额、入住次数、日均入住次数、日均入住率。可以将统计数据导出为excel文件保存到电脑留存资料,也可以打印出来。统计15天的数据可以打印在一张A4纸...