当前位置: 首页 > news >正文

数仓:用户行为类指标一网打尽

前言

用户行为分析是对用户在产品或触点上产生的行为及行为背后的数据进行分析,通过构建用户行为数据分析体系或者用户画像,来改变产品、营销、运营决策,实现精细化运营,指导业务增长。总之,很重要。

先来看下用户类行为指标说明,然后下面详解常写的指标。仅供参考,实际开发逻辑还是按业务需求为标准。

指标名称

解释说明

新增用户

首次联网使用应用的用户,如果一个用户首次打开某APP,那这个用户定义为新增用户:卸载再安装的设备,不会被算作一次新增,新增用户包括日新增用户,周新增用户,月新增用户。

活跃用户

打开应用的用户即为活跃用户,不考虑用户的使用情况,每天一台设备打开多次会话被记为一个活跃用户

周(月)活跃用户

用户以设备作为判断标准,在移动统计中,每个独立设备认为是一个独立用户。安卓系统根据imei号,IOS系统根据openUDUID来标识一个独立用户,每部手机一个用户。

沉默用户

用户仅在安装当天(次日)启动一次,后续时间无再启动的行为。该指标可以反应新增用户质量和用户与app的匹配程度

版本分布

不同版本的周内新增用户数,活跃用户数和启动次数。利于判断app各个版本之间的优劣和用户行为习惯。

本周回流用户

上周未启动过的应用,本周启动了应用的用户

连续n周活跃用户

连续n周,每周至少启动一次。

忠诚用户

连续活跃5周以上的用户

连续活跃用户

连续两周及以上活跃的用户

近期流失用户

连续n(2<=n <=4)周没有启动应用的用户。(第n+1周没有启动过)

留存用户

某段时间内的新增用户,经过一段时间后,仍然使用应用的被认作是留存用户:这部分用户占当时新增用户的比例即是留存率

用户新鲜度

每天启动应用的新老用户比例,即新增用户数占活跃用户数的比例

单次使用时长

每次启动使用的时间长度

日使用时长

累计一天内使用时间长度

用户活跃

描述

判断业务健康程度和发展趋势的一个重要指标。

业务指标场景举例

最近一个周/月内,有过连续活跃n天的人数。

最近一周/月内,每个用户的平均活跃天数。

最近一周/月内,最大沉默天数超n天的用户数。

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

分析思路

以日明细,获取周,月用户明细。

活跃用户按天明细表 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;

用户(设备)新增

描述

用户第一次打开应用,那这个用户定义为新增用户。

业务指标场景举例

日新增用户。

周新增用户。

月新增用户。

分析思路

每日活跃设备 left join 每日新增产生的结果,每日新增的设备id为null,则为新增。

案例

每日新增用户(设备)

dws_uv_detail_day:每日活跃用户表

dws_new_mid_day:每日新增设备表

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;

用户留存

描述

「用户留存」:某段时间内的新增活跃用户,经过一段时间后,有继续访问或者使用应用被称为留存用户。

留存可以看成是一个用户在今天出现,在明天也出现,那就是次日留存。

一个用户在今天出现,在后天出现,那就是2日留存。

「留存率」:留存用户占新增活用户的比例。

业务指标场景举例

次日留存率

3日留存率

7日留存率

分析思路

统计2022-01-04日,以统计2022-01-03日留存率为业务需求分析:

「2022-01-03设备留存率= 01-03日新增设备 且 01-04日活跃的 占  01-03日新增设备。」

(1) 01-03日新增设备

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

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

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

(3)代入上面公式

案例

计算前1天新用户访问留存明细

dws_uv_detail_day:每日活跃用户表

dws_user_retention_day:每日留存用户明细表

dws_new_mid_day:每日新增设备表

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日沉默用户(设备)数。

dws_uv_detail_day:每日活跃用户表

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;

回流用户

描述

相当于回头客的意思,以前用过某物,过一段时间再次使用某物,这样的用户就是回流用户。用户已经记录n日以及n日以上未有登录(即先认定这部分用户已经流失),而在今天有登录,那在今天这部分用户称之为回流用户。

业务指标场景举例

(时间周期)回流=(时间周期活跃-(时间周期新增-(上个时间周期)活跃

如:本周回流=本周活跃-本周新增-上周活跃。

分析思路

本周活跃 left join 本周新增 left join 上周活跃。

条件是:本周新增id为null,上周活跃id为null。

案例

本周回流

dws_uv_detail_wk:每周活跃用户表

dws_new_mid_day:每日新增设备表

mid_id:设备id

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;

流失用户

描述

最近n天(自己定义)未登录我们称之为流失用户。

案例

流失用户数:最近7天未登录用户。

dws_uv_detail_day:每日活跃用户表

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;

浏览数与访客数

浏览量(PV):网站各页面被查看的次数。用户多次打开或刷新同一个页面,该指标值累加。

访客数(UV):网站各页面的访问人数。所选时间段内,同一访客多次访问会进行去重。

这两个指标没啥说的,count取值或者去重count即可。

用户行为漏斗分析

描述

举例说明订单转化率

访问到下单转化率 = 下单人数 / 日活跃人数

下单到支付转化率 = 支付人数 / 下单人数

SQL

dws_uv_detail_day:每日活跃用户表

dws_user_action:用户行为表


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

相关文章:

数仓:用户行为类指标一网打尽

前言 用户行为分析是对用户在产品或触点上产生的行为及行为背后的数据进行分析&#xff0c;通过构建用户行为数据分析体系或者用户画像&#xff0c;来改变产品、营销、运营决策&#xff0c;实现精细化运营&#xff0c;指导业务增长。总之&#xff0c;很重要。 先来看下用户类…...

mysql数据库的主从复制

一、实现主从复制的方式。 异步复制&#xff1a;它是mysql默认的同步方式&#xff0c;从库通过io线程去拉取 bin log时&#xff0c;主库不需要关注这个时候是否有从库在同步数据&#xff0c;他只做自己的事情就可以了&#xff0c; 整个复制过程都是异步完成的 ; 半同步复制&…...

【极海APM32替代笔记】低功耗模式、WFI命令等进入不了休眠的可能原因(系统定时器SysTick一直产生中断)

【极海APM32替代笔记】低功耗模式、WFI命令等进入不了休眠的可能原因&#xff08;系统定时器SysTick一直产生中断&#xff09; 【STM32笔记】低功耗模式配置及避坑汇总 前文&#xff1a; blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模…...

一文搞懂秒杀系统,欢迎参与开源,提交PR,提高竞争力。早日上岸,升职加薪。

前言 秒杀和高并发是面试的高频考点&#xff0c;也是我们做电商项目必知必会的场景。欢迎大家参与我们的开源项目&#xff0c;提交PR&#xff0c;提高竞争力。早日上岸&#xff0c;升职加薪。 知识点详解 秒杀系统架构图 秒杀流程图 秒杀系统设计 这篇文章一万多字&#xff0c;…...

华为OD机试真题 用 C++ 实现 - 子序列长度 | 多看题,提高通过率

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

华为OD机试题 - 符合条件的子串长度(JavaScript)| 包含代码编写思路

最近更新的博客 华为OD机试题 - 字符串加密(JavaScript) 华为OD机试题 - 字母消消乐(JavaScript) 华为OD机试题 - 字母计数(JavaScript) 华为OD机试题 - 整数分解(JavaScript) 华为OD机试题 - 单词反转(JavaScript) 华为OD机试题 最近更新的博客使用说明符合条件的子…...

快速读懂网络拓扑图

快速读懂网络拓扑图几重常见的网络拓扑总线型拓扑简介优点缺点环型拓扑简介优点缺点星型拓扑简介优点缺点网络层级机构节点结点链路通路不同的连接线代表什么意思&#xff1f;不同颜色、粗细的直线代表什么意思&#xff1f;闪电线-串行链路几重常见的网络拓扑 总线型拓扑 简介…...

《上海市创新型企业总部认定和奖励管理办法》

各区人民政府、有关单位&#xff1a; 为加快推动上海创新型经济发展&#xff0c;支持各类高成长性企业和研发机构升级打造创新型企业总部&#xff0c;培育壮大更多高能级创新主体&#xff0c;为建设具有全球影响力的科技创新中心提供支撑&#xff0c;现将《上海市创新型企业总…...

LeetCode 160. 相交链表 -- 消除长度差

相交链表 简单 2K 相关企业 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意…...

《分布式技术原理与算法解析》学习笔记Day19

分布式通信&#xff1a;消息队列 什么是消息队列&#xff1f; 队列是一种具有先进先出特点的数据结构&#xff0c;消息队列是基于队列实现的、存储具有特定格式的消息数据。消息以特定格式放入这个队列的尾部后直接返回&#xff0c;不需要系统马上处理&#xff0c;之后有其他…...

云、安全、网络三位一体,Akamai 推出大规模分布式边缘和云平台 Akamai Connected Cloud

出品 | CSDN 云计算 云服务市场规模在持续增长。 基于网络技术积累与优势&#xff0c;与布局边缘计算之后&#xff0c;巨头 Akamai 在继续推进它的技术与产品进程。近日&#xff0c;Akamai 正式推出大规模分布式边缘和云平台 Akamai Connected Cloud&#xff0c;包含云计算、安…...

生产者消费者模型(多线程工作)

目录 1.模型前提 2.阻塞队列&#xff08;消费场所&#xff09; 3. 实验 4.有关效率 1.模型前提 以单生产者对单消费者为例子&#xff1a; 前提一&#xff1a;有一个缓冲区作为消费场所。 前提二&#xff1a;有两种功能不同的线程分别具有消费与生产的能力。 前提三&…...

InnoDB锁

1、共享排他锁 Shared and Exclusive Locks--共享锁&#xff08;SLock&#xff09;&#xff0c;允许持有该锁的事务读取一行数据--排它锁&#xff08;XLock&#xff09;&#xff0c;允许持有该锁的事务删除或者更新一行数据特性&#xff1a;--行级锁--如果一个事务持有当前行的…...

Java Stream、File、IO 超详细整理,适合新手入门

目录 Java Stream Java File Java IO Java Stream Java Stream 是 Java 8 中引入的一种新的抽象数据类型&#xff0c;它允许开发人员使用函数式编程的方式来处理集合数据。 使用 Java Stream 可以方便地进行过滤、映射、排序和聚合等操作。下面是一个简单的示例&#xff1a;…...

华为OD机试真题Python实现【寻找密码】真题+解题思路+代码(20222023)

寻找密码 题目 小王在进行游戏大闯关,有一个关卡需要输入一个密码才能通过,密码获得的条件如下: 在一个密码本中,每一页都有一个由 26 个小写字母组成的若干位密码, 从它的末尾开始依次去掉一位得到的新密码也在密码本中存在。 请输出符合要求的密码,如果由多个符合要求…...

springboot和springframework版本依赖关系

springboot和springframework版本依赖关系 springboot版本springframework版本发布时间1.0.x1.0.0.RELEASE4.0.3.RELEASE2014.041.0.1.RELEASE4.0.3.RELEASE2014.041.0.2.RELEASE4.0.3.RELEASE2014.041.1.x1.1.0.RELEASE4.0.5.RELEASE2014.061.1.1.RELEASE4.0.5.RELEASE2014.0…...

Java-多线程-增强篇-锁 强化 第一篇

今天我们来学一下锁 会持续保持更新 欢迎追更哈 Java - 多线程 - 锁和提升 第1篇 首先强调一点&#xff1a;Java多线程的锁都是基于对象的&#xff0c;Java中的每一个对象都可以作为一个锁。同时&#xff0c;类锁也是对象锁&#xff0c;类是Class对象 Java8锁 核心思想 关键…...

Java static+private实现单例模式

1. 单例模式介绍 在Java中单例设计模式准确来说是&#xff0c;类的单例设计模式&#xff0c;就是采取一定的方法保证在整个的软件系统中&#xff0c;对某个类只能存在一个对象实例&#xff0c;并且该类只提供一个取得其对象实例的方法。 2. 实现思路 如果我们要让类在一个虚…...

华为OD机试 - 查找充电设备组合(Python)【2023-Q1 新题】

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 查找充电设备组合…...

Authing 入选德勤“中国明日之星”企业榜单

近日&#xff0c;德勤发布“德勤中国明日之星”榜单&#xff0c;该项目致力于发掘和表彰蓬勃成长、持续创新、积极承担社会责任的卓越企业。该榜单1995 年创立至今&#xff0c;被业界誉为“全球高成长企业的标杆”。Authing 凭借在 IDaaS&#xff08;身份云&#xff09; 领域突…...

单片机嵌入式操作系统内核

1、前后台系统&#xff0c;协作式内核系统&#xff0c;与占先式内核系统&#xff0c;有什么不同呢&#xff1f; 记得在 21IC 上看过这样的比喻, 你(小工)在用厕所&#xff0c;经理在外面排第一&#xff0c;老板在外面排第二。 如果是前后台&#xff0c;不管是谁&#xff0c;都…...

C语言——柔性数组

目录0. 前言1. 思维导图2. 柔性数组的特点3. 柔性数组的使用4. 柔性数组的优势5. 结语0. 前言 柔性数组是在C99标准时引入&#xff1a; 结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫柔性数组成员。 代码示例&#xff1a; typedef struct flexible_arr {int a…...

web人脸登录

1&#xff0c;需要腾讯人脸第三方 腾讯人脸第三方申请步骤 2&#xff0c;相关表结构设计 create database faceDB;use faceDB; -- 人脸表 create table face( fid int primary key auto_increment COMMENT 主键, face_base longtext COMMENT 图片数据 base_64编码, create_tim…...

C++数字

目录 一、什么是数字 二、定义数字 三、数学运算 四、随机数 一、什么是数字 通常&#xff0c;当我们需要用到数字时&#xff0c;我们会使用原始的数据类型&#xff0c;如 int、short、long、float 和 double 等等。这些用于数字的数据类型&#xff0c;其可能的值和数值范围…...

【python】用plotly绘制正二十面体

文章目录顶点棱实现正二十面体plotly 的 Python 软件包是一个开源的代码库&#xff0c;它基于 plot.js&#xff0c;而后者基于 d3.js。我们实际使用的则是一个对 plotly 进行封装的库&#xff0c;名叫 cufflinks&#xff0c;能让你更方便地使用 plotly 和 Pandas 数据表协同工作…...

[Datawhale][CS224W]图机器学习(五)

这里写目录标题一、Deepwalk1.1 预备知识1.2 Deepwalk介绍1.3 Embedding1.4 word2Vec 词向量&#xff0c;词嵌入1.5 random Walk随机游走1.6 DeepWalk 核心代码Random WalkWord2vecDeepWalk应用1.7 DeepWalk优缺点二、Node2Vec2.1 图嵌入2.2 Node2Vec优化目标顶点序列采样策略2…...

Windows部署Jar包的三种方式

文章目录1、cmd命令启动2、bat脚本启动2.1 启动jar包2.2 关闭服务3、使用WinSW3.1 重命名3.2 xml配置3.3 安装服务3.4 卸载服务3.5 启动和停止服务1、cmd命令启动 这种方式比较简单&#xff0c;但是窗口关闭后服务也就被杀死了&#xff0c;命令如下 java -jar xxx.jar2、bat脚…...

【图像分类】卷积神经网络之AlexNet网络模型结构详解

写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 1. 前言 LeNet5网络模型提出之后,卷积神经网络在很长一段时间都没有长足的发展,主要有以下两个原因: 1.1 训…...

学习动漫插画的网络班排行榜

很多小伙伴不知道动漫插画培训机构哪个好&#xff0c;找不到靠谱的插画班&#xff0c;今天给大家整理了国内动漫插画培训机构排名&#xff01; 一&#xff1a;动漫插画培训机构排名 1、轻微课&#xff08;五颗星&#xff09; 主打课程有日系插画、游戏原画、古风插画、动漫漫画…...

SpringCloud第五讲 Nacos注册中心-服务注册到Nacos

1.引入依赖&#xff1a; 在父工程中添加spring-cloud-alibaba的管理依赖 <!-- Nacos的管理依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version…...