`

用户留存率计算

 
阅读更多
    做企业级报表的人经常会遇到留存率的概念。对于不同的项目,留存率的概念也会有所不同。针对我所在的手机应用、手机游戏方向的用户留存率统计,在此做一些简要的说明。

    用户留存率这个概念在网上没有搜到其具体的定义,在此仅对我公司的计算模式进行简要整理:用户留存率是只某一基础用户群在特定的一段时间内使用某一应用(游戏)的比率。需要注意两个概念:

    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;
 


  该存储过程已经过测试,可以放心使用。 
分享到:
评论
3 楼 owen19891030 2013-12-17  
你好想问下你这个里面remain_user_data 表是需要数据库来构建吗?
2 楼 cpjsjxy 2013-06-28  
sunwt 写道
            第一天   第二天   第三天  第四天   第五天  第六天  第七天

    访问量   100      110      120     130      140     150     160

    留存量   100       90       80      70       60      50      40

按照文中留存量的解释,是不是也会出现以下的留存量数据呢,而不是简答的越来越少

            第一天   第二天   第三天  第四天   第五天  第六天  第七天

    访问量   100      110      120     130      140     150     160

    留存量   100       10       30      40       50      60      70

第二天只有第一天100人中的10人访问
第三天只有第一天100人中的30人访问
以此类推

理论上是有可能的,但实际上不会
1 楼 sunwt 2013-05-22  
            第一天   第二天   第三天  第四天   第五天  第六天  第七天

    访问量   100      110      120     130      140     150     160

    留存量   100       90       80      70       60      50      40

按照文中留存量的解释,是不是也会出现以下的留存量数据呢,而不是简答的越来越少

            第一天   第二天   第三天  第四天   第五天  第六天  第七天

    访问量   100      110      120     130      140     150     160

    留存量   100       10       30      40       50      60      70

第二天只有第一天100人中的10人访问
第三天只有第一天100人中的30人访问
以此类推

相关推荐

    用户留存率计算.pdf

    在提供的文件内容中,我们看到了一个通过MySQL数据库存储过程实现用户留存率计算的示例。首先,我们将通过分析存储过程中的各个部分来理解用户留存率的计算原理。 存储过程开始部分声明了一些变量,它们用于在存储...

    某公司的产品数据分析师面试题

    1. 用户留存率计算与日活跃用户(DAU)预测: 新增用户的次日留存、7日留存、30日留存分别表示的是用户在注册后的第二天、第七天和第三十天仍然活跃的比例。对于每天新增6万用户的情况,我们需要计算每天的留存用户...

    05-求N日留存率的公式(二) 无答案

    4. **计算留存率**:将次日和次7日留存用户数分别除以2020-04-01日的活跃用户数。 假设我们已经有一个名为`tb_baidu`的表,包含用户的唯一标识`cuid`、访问日期`event_day`等字段,可以使用以下HQL语句进行计算: ...

    Python 统计会员N日(内)留存率【数据及源码】

    在数据分析领域,尤其是在电子商务行业中,了解用户留存率是至关重要的。留存率可以帮助企业评估产品或服务对用户的吸引力,以及用户是否愿意持续使用。本话题将深入探讨如何使用Python进行N日(内)留存率的计算,...

    互联网产品运营分享.ppt

    用户生命周期可以通过用户留存率计算,如月留存率为70%,则平均用户生命周期约为3.3个月。对于留存率低的行业,如旅游,可能需要更长的时间维度来准确评估。 7. **用户分析与运营策略**: - 分析用户生命周期最短...

    如何分析留存率,正态分布表.zip

    在互联网产品中,例如游戏、社交媒体平台或电子商务网站,用户留存率可以反映出产品对用户的吸引力和满意度。常见的留存率计算方式有日留存、周留存和月留存,通过跟踪用户在特定时间段后的活跃状态来计算。分析留存...

    基于hadoop生态的电影网站.zip

    对于电影网站来说,这些工具可以用来进行用户行为分析,比如热门影片统计、用户留存率计算等。 最后,Zookeeper在Hadoop生态中扮演着协调和管理的角色,它确保集群中的各个节点保持同步,对配置变更和命名服务提供...

    用户留存分析白皮书1

    - 不同渠道导入的新用户留存率差异大,反映出渠道质量的高低。低效或作弊渠道应减少投入,优化营销资源分配。 4. **用户生命周期计算**: - 用户生命周期可通过最后活跃日期减去首次访问日期,除以当日新增用户数...

    Spark机器学习视频第10课.最终获取用户的收藏以及订单转换率

    课时8:Spark统计用户的收藏转换率 课时9:Spark梳理用户的收藏以及订单转换率 课时10:最终获取用户的收藏以及订单转换率 课时11:Spark Pipeline构建随机森林回归预测模型 课时12:Spark 随机森林回归预测结果...

    ZGG2016#knowledgesystem#使用 kylin 计算留存率1

    如果使用 HiveQL 或 Spark SQL 来计算第一天和第二天的留存用户数,写法大致如下:select distinct USER_ID as USER_

    基于PHP的stat网站决策支持分析系统v1.0UTF-8简体中文版源码.zip

    4. 分析算法:包含各种统计和分析方法,例如用户留存率计算、转化漏斗分析、热门页面识别等。 5. 可视化界面:提供友好的用户界面,用图表展示分析结果,如柱状图、饼图、线图等,便于用户理解和解读数据。 6. 报告...

    用户留存这么重要,6大法则助你提升 .doc

    用户留存是衡量产品价值的关键指标,它反映了用户对产品的满意度和忠诚度。为了提升用户留存,我们需要理解并避免一些常见的误区。首先,不能期待通过单一的行动或改变就能让所有用户都留下来,因为用户是否会留下...

    从理论到方法论,通过真实案例教你如何提升用户留存 .doc

    【留存分析】是互联网行业中衡量...通过深入理解留存概念、使用留存分析工具、识别用户留存的三个阶段以及关注关键时间点,企业可以制定有效的策略,改善用户体验,从而提高用户留存率,实现商业上的持续增长和盈利。

    【私域运营SOP】第5章 用户留存:增长的坚实根基-模板.pdf

    首先,我们来看如何绘制留存曲线,这是一个评估用户留存率的重要方法。步骤如下: 1. **列出关键行为**:确定用户在你的产品或服务中最重要的行为,这可能是购买、订阅、分享或者任何反映用户价值的动作。 2. **...

    同期群分析:用户留存和用户行为的法宝 .doc

    同期群分析是互联网数据分析中的一种重要工具,尤其对于理解用户留存和行为模式有着显著的作用。其核心在于将具有相似特征(如同一时期加入)的用户群体进行分组,然后跟踪他们在特定时间范围内的行为变化,以此揭示...

    互联网广告的用户行为分析和数据挖掘

    通过跟踪广告曝光后的用户行为变化,比如点击率、转化率、停留时间和跳出率,可以评估广告的吸引力和效果。同时,通过A/B测试,比较不同广告版本对用户行为的影响,可以持续优化广告设计和投放策略。 此外,数据...

    2-9+bitmap在连续留存分析中的使用.pdf

    标题提及的“2-9+bitmap在连续留存...通过位图的存储优化和特定的容器类型,实现了对用户留存率的快速计算和报表生成,为业务决策提供了有力的数据支持。未来,这一技术有望进一步普及和优化,以适应更广泛的业务场景。

    专栏中用到的数据,专栏中用到的数据

    本篇将围绕"留存"这一主题,结合提供的两个数据文件`t_log_login_202302271645.csv`和`t_player_view_202302271615.csv`,深入探讨留存率计算方法、数据处理和实际应用。 首先,我们需要理解什么是留存率。留存率...

    从活跃用户到营收情况:如何评估和优化互动社区.docx

    【用户留存率】是评估用户对社区忠诚度和满意度的重要指标,它显示了用户在一定时间后仍继续使用社区的比例。留存率计算是通过比较不同时间段的活跃用户数与注册用户数。例如,一周留存率是第二周仍然活跃的用户数...

    网络游戏-一种地理社交网络下的用户相似性计算方法.zip

    6. **推荐系统**:利用用户相似性,可以构建推荐系统,向用户推荐与其相似的玩家作为潜在的朋友、队友,或者推荐他们可能感兴趣的游戏内容,提高用户满意度和留存率。 7. **个性化服务**:通过对用户相似性的理解,...

Global site tag (gtag.js) - Google Analytics