用户行为指标浅析

Posted 数据猿的一亩三分地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户行为指标浅析相关的知识,希望对你有一定的参考价值。

前言

指标名称 解释说明
新增用户 首次联网使用应用的用户,如果一个用户首次打开某APP,那这个用户定义为新增用户:卸载再安装的设备,不会被算作一次新增,新增用户包括日新增用户,周新增用户,月新增用户。
活跃用户 打开应用的用户即为活跃用户,不考虑用户的使用情况,每天一台设备打开多次会话被记为一个活跃用户
周(月)活跃用户 用户以设备作为判断标准,在移动统计中,每个独立设备认为是一个独立用户。安卓系统根据imei号,ios系统根据openUDUID来标识一个独立用户,每部手机一个用户。
沉默用户 用户仅在安装当天(次日)启动一次,后续时间无再启动的行为。该指标可以反应新增用户质量和用户与app的匹配程度
版本分布 不同版本的周内新增用户数,活跃用户数和启动次数。利于判断app各个版本之间的优劣和用户行为习惯。
本周回流用户 上周未启动过的应用,本周启动了应用的用户
连续n周活跃用户 连续n周,每周至少启动一次。
忠诚用户 连续活跃5周以上的用户
连续活跃用户 连续两周及以上活跃的用户
近期流失用户 连续n(2<=n <=4)周没有启动应用的用户。(第n+1周没有启动过)
留存用户 某段时间内的新增用户,经过一段时间后,仍然使用应用的被认作是留存用户:这部分用户占当时新增用户的比例即是留存率
用户新鲜度 每天启动应用的新老用户比例,即新增用户数占活跃用户数的比例
单次使用时长 每次启动使用的时间长度
日使用时长 累计一天内使用时间长度

用户活跃

描述

业务指标场景举例

分析思路

活跃用户按天明细表 dws_uv_detail_day。

create  table dws_uv_detail_day
(
    `mid_id` string COMMENT 设备唯一标识,
    `user_id` string COMMENT 用户标识, 
    `app_time` string COMMENT 客户端日志产生时的时间,
    . . . . . . (省略其他字段)
)
partitioned by(dt string)
. . . . . .

活跃用户按周明细表 dws_uv_detail_wk。

create table dws_uv_detail_wk( 
    `mid_id` string COMMENT 设备唯一标识,
    `user_id` string COMMENT 用户标识, 
    `app_time` string COMMENT 客户端日志产生时的时间,
    `monday_date` string COMMENT 周一日期,
    `sunday_date` string COMMENT  周日日期 ,
    . . . . . . (省略其他字段)
) 
PARTITIONED BY (`wk_dt` string)
. . . . . .

案例

最近七天内连续三天活跃用户数思路。

(1)查询出最近7天的活跃用户,并对用户活跃日期进行排名。

(2)计算用户活跃日期及排名之间的差值。

(3)对同用户及差值分组,统计差值个数。

(4)将差值相同个数大于等于3的数据取出,然后去重,即为连续3天及以上活跃的用户数。

select
    2022-01-04,
    concat(date_add(2022-01-04,-6),_,2022-01-04),
    count(*)
from
(
    select uid_id
    from
    (
        select uid_id      
        from
        (
            select 
                uid_id,
                date_sub(dt,rank) date_diff
            from
            (
                select 
                    uid_id,
                    dt,
                    rank() over(partition by uid_id order by dt) rank
                from dws_uv_detail_day
                where dt>=date_add(2022-01-04,-6) and dt<=2022-01-04
            )t1
        )t2 
        group by uid_id,date_diff
        having count(*)>=3
    )t3 
    group by uid_id
)t4;

用户(设备)新增

描述

业务指标场景举例

分析思路

案例

每日新增用户(设备)

select  
    ud.mid_id,
    ud.user_id
from dws_uv_detail_day ud left join dws_new_mid_day nm on ud.mid_id=nm.mid_id
where ud.dt=2022-01-04 and nm.mid_id is null;

用户留存

描述

业务指标场景举例

分析思路

(1) 01-03日新增设备

01-04日活跃表 left join 每日新增表,新增表id为null的为新增设备。

(2)01-03日新增设备 且 01-04日活跃的

01-03日新增 join 01-04的活跃。

(3)代入上面公式

案例

select  
    nm.mid_id mid_id,
    nm.user_id user_id,
    ud.dt dt,
    1 retention_day // 留存天数
from dws_uv_detail_day ud join dws_new_mid_day nm 
        on ud.mid_id =nm.mid_id 
where ud.dt=2022-01-04 and nm.create_date=date_add(2022-01-04,-1)

沉默用户

描述

分析思路

(1)按照设备id对日活表分组

(2)过滤只是在启动当天用过的

(3)时间在某个时间前的

案例

7日沉默用户(设备)数。

select 
    2022-01-04 dt,
    count(*) silent_count
from 
(
    select mid_id
    from dws_uv_detail_day
    where dt<=2022-01-04
    group by mid_id
    having count(*)=1 and min(dt)<=date_add(2022-01-04,-6)
) t1;

回流用户

描述

业务指标场景举例

分析思路

案例

本周回流

select 
   2022-01-04 dt,
   concat(date_add(next_day(2022-01-04,MO),-7),_,date_add(next_day(2022-01-04,MO),-1)) wk_dt,
   count(*)
from 
(
    select t1.mid_id
    from 
    (
        select mid_id
        from dws_uv_detail_wk
        where wk_dt=concat(date_add(next_day(2022-01-04,MO),-7),_,date_add(next_day(2022-01-04,MO),-1))
    )t1
    left join
    (
        select mid_id
        from dws_new_mid_day
        where create_date<=date_add(next_day(2022-01-04,MO),-1) and create_date>=date_add(next_day(2022-01-04,MO),-7)
    )t2
    on t1.mid_id=t2.mid_id
    left join
    (
        select mid_id
        from dws_uv_detail_wk
        where wk_dt=concat(date_add(next_day(2022-01-04,MO),-7*2),_,date_add(next_day(2022-01-04,MO),-7-1))
    )t3
    on t1.mid_id=t3.mid_id
    where t2.mid_id is null and t3.mid_id is null
)t4;

流失用户

描述

案例

select
     2022-01-04,
     count(*)
from 
(
    select mid_id
from dws_uv_detail_day
    group by mid_id
    having max(dt)<=date_add(2022-01-04,-7)
)t1;

浏览数与访客数

用户行为漏斗分析

描述

举例说明订单转化率

select 
    2022-01-04,
    uv.day_count 日活跃人数,
    ua.order_count 下单数,
    cast(ua.order_count/uv.day_count as  decimal(10,2)) 访问到下单转化率,
    ua.payment_count 支付人数,
    cast(ua.payment_count/ua.order_count as  decimal(10,2)) 下单到支付转化率
from  
(
select 
        sum(if(order_count>0,1,0)) order_count,
        sum(if(payment_count>0,1,0)) payment_count
    from dws_user_action
where dt=2022-01-04
group by dt
)ua 
join 
(select 
 dt ,
 count(*)  day_count 
 from dws_uv_detail_day 
 where dt=2022-01-04 group by dt
 )
 uv on uv.dt=ua.dt

以上是关于用户行为指标浅析的主要内容,如果未能解决你的问题,请参考以下文章

原创案例分享用户行为分析--见证scala的强大

应用概况story文档初稿

数据分析常见指标

浅析深度学习--回归实战(新冠人数预测)

基于网站的用户行为分析

基于网站的用户行为分析