手机App指标分析

1. 新增用户

1.1 指标定义

当某个具体的用户,在之前的历记录中,没有出现,这个人就是一个新用户

星期一:新增 10W
星期二:新增 20W
星期三:新增 30W
星期四:新增 10W
星期五:新增 100W
星期六:新增 20W
星期日:新增 50W

1.2 指标意义

新增用户算出来的意义是什么 ?(这个指标有什么作用,为什么需要算这个指标)

  1. 对于很多的app,在前期主要需要融资,怎么忽悠别人的钱,新增用户的数量就是最重要的一个参考指标之一,有些app为了圈投资人的钱,做数据,地推,扫码送礼品,地推成本40-50块钱一个用户
  2. 推广是需要成本的,更愿意花钱在一些正常的推广渠道,应用商店(应用宝,豌豆荚…),新增用户是一个推广的结算依据,哪个渠道带来了多少个新用户,就该给哪个渠道多少钱,尽量算的比较精确一点
  3. 新增用户能够反映出未来一个发展趋势

1.3 实现思路

数据来源 : 清洗后的数据

数据字段:

day,用户id userid ,应用 app_token,版本 version,渠道 channel,城市 city

1.3.1 所有维度的新增用户

清洗的数据里面,当天数据(新 + 老用户),找到新用户

第一步:得到的数据是这段时间内最早的一条数据

目前我们已经有了每天每个用户最早的一条数据(新用户 + 老用户)

每日的去重用户表:day_users_logs_dis

第二步:得到新增用户

需要有个表,这个表是存放之前的数据,历史表:his_user 存放所有老用户

创建一个新增用户表:day_new_user_info

day_users_logs_dis左连接his_user,如果能够join上,说明这是用户是一个老用户,如果join不上,说明是一个新用户

his_user表,回填新用户即可

每天计算的新增用户结果,插入(insert / overwite)到新增用户表:day_new_user_info

1.3.2 多维度分析

计算的是汇总数据,才能给相关的人员看,才有意义

多维度计算:

版本 : 2个;1.0、2.0
渠道 : 2个;腾讯、百度
城市 : 3个;北京、上海、深圳

2 * 2 * 3 = 12

汇总数据需要是多个维度的,版本(5个),渠道(10个),城市(200个)

5 * 10 * 200 = 1万

这一步的聚合必须要在大数据里面做,很多细化的聚合结果,保存一份在hdfs ,把这个结果导出到mysql,这一步的数据量并不是很多,
可以根据数据量,决定在mysql聚合,还可以把尽量多的技术留着大数据分析系统里面,已经算出总计的新增用户!!!!

现在需要对新用户的表day_new_user_info,根据多个维度做聚合操作:
例如:
版本 (具体 + 所有) 2
渠道 (具体 + 所有) 2
城市 (具体 + 所有) 2

2 * 2 * 2 = 8

后续 n 个维度 ,每个维度对应的情况如下 {a, b, c, d … n} a

n表示的是每一个维度所对应的情况

a * b * c * d …n

汇总表day_new_user_count,用来接收数据

字段:day, userid, app_token, version, channel, city

  1. 某一天、某款应用、某个版本、某个渠道、某个城市有多少个新增用户

    insert into table day_new_user_count
    select day,app_token,version,channel,city,count(1) as newusercount;
    from day_new_user_info group by day,app_token,version,channel,city;
    
  2. 某一天、某款应用、某个版本、某个渠道、所有城市有多少个新增用户

    select day,app_token,version,channel,count(1) as newusercount;
    from day_new_user_info group by day,app_token,version,channel;
    
  3. 某一天、某款应用、某个版本、所有渠道、某个城市有多少个新增用户

    select day,app_token,version,city,count(1) as newusercount;
    from day_new_user_info group by day,app_token,version,city;
    
  4. 某一天、某款应用、某个版本、所有渠道、所有城市有多少个新增用户

  5. 某一天、某款应用、所有版本、某个渠道、某个城市有多少个新增用户

  6. 某一天、某款应用、所有版本、某个渠道、所有城市有多少个新增用户

  7. 某一天、某款应用、所有版本、所有渠道、某个城市有多少个新增用户

  8. 某一天、某款应用、所有版本、所有渠道、所有城市有多少个新增用户

2. 活跃用户

2.1 什么是活跃用户

打开过这款app一次就算一次活跃,都有时间的维度

日活(DAU):过去一天只要使用了一次,就算一次活跃

周活(WAU):过去一周只要使用了一次,就算一次活跃

月活(MAU) …

周一:10万
周二:9万
周三:11万
周四:10万
周五:15万
周六:18万
周日:20万

假设这个数据是新增用户,过去一周多少新增用户? 10 + 9 + 11 + …

假设这个数据是活跃用户,过去一周多少活跃用户? 不能相加,因为一个人可以在很多天都活跃,这样算的话就有交集

如果需要算过去一周的活跃用户,需要把过去一周所有的数据全部拿到,算一遍即可…

尽量的运行的快速一点(业务场景和数据量有关)

尽量的开发起来简单一点,代码少一点

2.2 指标的作用

  1. 这个可以看到这款app的运营状况,哪个版本,哪个地区活跃用户多少,可以直观看出这个app对应维度的受欢迎程度
  2. 活跃用户多少直接反映出商业价值(赚钱),卖货很大的局限的,广告收入会非常的可观,投资价值越高,投资人用户分析这一块最主要看的指标(新增,活跃,留存)

2.3 实现思路

过去一天只要使用一次就算一个活跃 ,清洗后的数据只要出现过的用户都是活跃用户

出现重复数据,每个人的数据只拿一条

字段:day, userid, app_token, version, city

指标分析:

  1. 某一天、某个用户、某个应用、所有版本、所有城市

  2. 某一天、某个用户、某个应用、所有版本、具体城市

    select day,app_token,city,count(1)
    from table 
    group by day,app_token,city;
    
  3. 某一天、某个用户、某个应用、具体版本、所有城市

  4. 某一天、某个用户、某个应用、具体版本、具体城市

  5. 某一周、某个用户、某个应用、具体版本、具体城市

    select app_token,version,city,count(1)
    from table where day > "20190912"-7 and day < "20190912"  
    group by app_token,version,city;
    

3. 升级用户

3.1 什么是升级用户

定义:用户的版本发生了改变,这个版本是之前没有出现过的,这就是一个版本的升级用户

版本升级之后,做两事情:

  1. 增加新功能,去掉老功能
  2. 改bug

3.2 升级用户算出来作用

作用: 知道各个版本的使用情况,哪个版本更受欢迎,知道用户喜欢哪些功能,为后续的产品研发提供一些参考的依据

3.3 实现思路

字段:day, userid, app_token, commitTime, version, channel, city

知道哪些人是升级用户?数据从哪里来?

清洗过后的数据

  • 先把数据按照 commitTime(提交时间)排序

    排序的数据做遍历 ,拿到每个版本,当前的这个版本和上一个版本做对比,如果是一样的就不考虑,如果不一样才考虑

  • 考虑三种情况

    具体版本的升级用户,版本发生改变,而且之前的版本没有出现

    所有版本(忽略)升级用户,有多少个用户发生过升级的行为;当天有人升级了两次,但是只能算一次 ,用户有过一次升级行为即可,后续不能再算了

    只要是这个人的版本发生过改变,这个人至少会升级一次
    2.0 --> 3.0 升级

    3.0 --> 2.0 不算升级 ,因为2.0之前出现过

    2.0 --> 3.0 这个过程肯定有过升级

  • 版本轨迹变化,2.0 --> 3.0 , 3.0 --> 2.0,2.0 --> 1.9,版本发生改变就行

多维度汇总 (version,channel,city)

  • 组内排序:开窗函数

    A, 20081010, 1.0
    A, 20081110, 1.0
    A, 20081210, 1.1
    A, 20081215, 1.1
    A, 20090110, 1.2
    A, 20090210, 1.5
    A, 20090310, 2.0
    A, 20090810, 2.0
    A, 20090910, 2.2
    

4. 累计用户

4.1 什么是累计用户

从产品上线以来,截止到当前所有的用户称为累计用户

4.2 累计用户算出来作用

  1. 累计人数10万,用来吹牛逼的

  2. 北京市的累计用户3000万 --> 2500万,上海2000万人,这些的潜力已经挖掘完毕了

    山东德州,200万 --> 10万,如果是投入同样的资源,德州带来新增用户更多…

4.3 实现思路

前一天的累计用户 + 今天的新增用户

day01:

小明 360 北京 
小王 360 上海
小张 360 北京 
小李 360 上海 

累计用户:4(小明,小王,小张,小李)

day02 

小明 360 北京 
小王 360 上海
小张01 360 北京 
小李01 360 上海 
小刘 360 武汉

累计用户:7(小明,小王,小张,小李,小张01,小李01,小刘)
新增用户:3(小张01,小李01,小刘)

day03 

小明02 360 北京 
小王 360 上海
小张 360 北京 
小李02 360 上海 

累计用户:9 = 7 + 2
新增用户:2(小李02,小明02)

通过以上的例发现 :

截止到前一天所有版本的累计用户 + 当天的新增用户所有版本的新增汇总 = 截止到当天所有版本当天的累计用户

注意:在做加法的时候,要相同的维度和相同的维度相加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值