当前位置: 首页 > 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; 领域突…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...

CSS | transition 和 transform的用处和区别

省流总结&#xff1a; transform用于变换/变形&#xff0c;transition是动画控制器 transform 用来对元素进行变形&#xff0c;常见的操作如下&#xff0c;它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

Spring Security 认证流程——补充

一、认证流程概述 Spring Security 的认证流程基于 过滤器链&#xff08;Filter Chain&#xff09;&#xff0c;核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤&#xff1a; 用户提交登录请求拦…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...