# 事件分析
> 最后更新时间:2023-3-21 17:33:12
事件,是指用户在 APP、网站等应用上发生的行为,即何人,何时,何地,通过何种方式,做了什么事。
事件分析模型主要用于分析用户在应用上的行为,比如打开 APP、注册、登录、支付订单等。通过用户数、事件次数等基础指标度量用户行为,同时也支持指标的运算,构建复杂的指标衡量业务过程。
## 事件分析能解决哪些问题?
1. 监测产品每天的用户数 和 用户使用情况;趋势是否发生了变化?引起变化的因素有哪些?
2. 北京地区的用户和上海地区的用户,购买家电品类的金额分布差异在哪里?
3. 今天在产品中发起了一个话题,各个时段用户的参与情况如何?
4. 最近半年付费用户数和 ARPU 值是多少?

## 1\. 定义指标区
左侧为指标定义区域,选择要分析的指标,支持细分维度与条件过滤,同时支持通过分析用户群进行人群对比

### 1.1 选择指标
从下拉框中选择指标,指标有**事件相关指标**和**自定义指标**两大类型:
#### **1.1.1 事件相关指标**
**有两种组成结构**
A. 事件 - 事件支持的指标,例如:提交订单的触发用户数,表示有多少人点击了提交订单;
B. 事件 - 事件的属性 - 属性值支持的指标,例如 提交订单的优惠券金额的总和,表示提交订单时总共使用了多少优惠券。

**对所有事件都支持计算的指标:**
* 用户数:触发选定事件的去重用户数,例如加入购物车的触发用户数
* 次数:触发选定事件的总次数,例如加入购物车的触发次数
* 人均次数: 平均每个用户触发选定事件的次数,例如加入购物车的人均触发次数
**属性值以下五种类型,不同类型支持计算的指标有差异:**
* 字符串
* 数值型
* 布尔值
* 日期时间
* 字符串集合
> 注意:在集成 SDK 时,不同类型的属性值需要满足不同的数据格式,才能在分析时正确使用,详见《[SDK指南》](../../integration/prepare/data-type.md#shu-xing-zhi-de-shu-ju-lei-xing)。
**对所有属性值类型的属性都支持计算的指标:**
* 去重数:在选定时间范围内,该属性出现的独立去重个数,例如加入购物车商品的数量
**对数值型属性值的属性支持计算的指标:**
* 总和:选定属性的属性值求和,例如加入购物车的商品金额之和
* 均值:选定属性的属性值算数平均数,例如加入购物车的商品金额均值
* 最大值:选定属性的属性值最大值,例如加入购物车的商品最大金额
* 最小值:选定属性的属性值最小值,例如加入购物车的商品最小金额
* 人均值:选定属性的属性值人均值,例如人均加入购物车的商品金额
### **1.2 自定义指标**
除了事件相关指标外,方舟支持自定义指标公式,构建无法通过选择事件得出的指标,比如 ARPU、ROI 等。
支持两种方式创建:
#### **A. 点击独立的“自定义指标公式”入口开始创建**

* 输入公式,支持选择的指标、常数之间的加、减、乘、除四则运算
* 选择指标结果值的数值类型:整数、两位小数和百分数
* 添加指标单位
* 命名指标
* 保存
当选择 \*\*保存并开始计算 \*\*时,会自动计算结果并展示;当选择仅保存时,会保存在下拉框中,后续分析时可选择。
定义完成后,下次就可以从下拉框中已保存的指标中快速选择;如果需要修改指标定义的话,可以选择下拉框中右上角的管理功能进行编辑。
#### **B. 选择了某个单独的指标分析过程中选择自定义指标图标开始创建**

>[info] 如何在创建自定义指标时选择某个事件中的一部分应该怎么做呢?
> 例如,我有一个事件是支付成功,支付方式包括微信、支付宝及银联,现在只想让创建的自定义指标中包含微信支付,有两种方式可实现
> 1. 在选择事件后添加条件 支付方式=微信支付
> 2. 创建虚拟事件,选择支付成功,支付方式=微信支付,保存为虚拟事件,创建自定义指标时,选择虚拟事件即可。
### 1.3 细分维度
**维度**指分析事物的角度。例如,分析活跃用户,可以从时间的维度,也可以从地域的维度去看,也可以时间、地域两个维度组合去分析。
有层次关系的维度,就可以根据分析需求改变维的层次,变换分析的粒度钻取,比如从地域这个维度类型上,可以细分到省份、城市、县、乡镇的用户,也可以向上汇总。
维度也可以分为定性维度和定量维度(根据数据类型划分)。
数据类型为字符型即定性维度,如城市、性别等;
数据类型为数值型数据的即定量维度,如收入、年龄、消费金额等,定量维度一般需要数值分组处理,例如年龄划分为 20 岁以下,20~29 岁,30~39 岁等,更多类型如下:
| 数据类型 | 维度处理方式 | 举例属性 | 查询用户数,按举例维度细分 |
| --- | --- | --- | --- |
| 字符串 | 按离散值 | <p>商品类别<br>上报的属性值:<br>3C电器、服装、化妆品……</p> | <p>3C电器:12人<br>服装:12人<br>化妆品:18人</p> |
| 数值型 | <p>按离散值<br>自定义区间分组</p> | <p>商品价格<br>上报的属性:<br>12、20、90、300……</p> | <p>按离散值:<br>12:2人<br>20:3人<br>90:13人<br>300:1人<br>按用户自定义区间的话可能是:<br>(-∞,50):5人<br>\[50,200):13人<br>\[200,+∞\]:1人</p> |
| 布尔值 | 按离散值 | <p>是否使用优惠券<br>上报的属性值:<br>true、false</p> | <p>使用了优惠券的:12人<br>没有使用优惠券的:18人</p> |
| 日期时间 | <p>按分钟、小时、日、周、月、季、年<br>按时段汇总:按分钟、小时、日、周,月</p> | <p>下单时间<br>上报的属性值:<br>2017-03-12 12:12:32、<br>2018-03-15 12:12:32、<br>2018-04-12 12:12:32……</p> | <p>不按时段汇总,按月:<br>2017年3月:23人<br>2018年3月:27人<br>2018年4月:12人<br>按时段汇总,按月:<br>每年3月:50人<br>每年4月:12人</p> |
| 集合 | 按单个字符串的离散值 | <p>用户爱好<br>上报的属性值:<br>\[网球,摄影\]、\[户外,摄影\]、\[户外、壁球\]……</p> | <p>\[网球,摄影\]:34人<br>\[户外,摄影\]:53人<br>\[户外、壁球\]:23人</p> |
**单个指标时**,支持细分的维度,包括事件自定义属性、事件通用属性、用户属性。
**多个指标时**,支持细分的维度,包括公共的属性、事件通用属性、用户属性。
维度选择下拉框中,**数值型**和 **日期时间型**的维度有特殊标识,点击可以进行设置:
#### **A. 数值型维度分组方法**

#### **B.日期型维度分组方法**

### 1.4 增加过滤条件
对于单个事件可以添加条件限制,也可以添加公共过滤条件,约束多个指标

条件按照 **属性 - 运算符 - 属性值** 的结构构成,属性包括**事件自定义属性**、**通用属性**、**用户属性**三种类型。
不同的属性值的数据类型支持不同的操作符:
#### **A. 字符串**
| 操作符 | 使用场景 | e.g. |
| --- | --- | --- |
| \=(等于) | 当输入一个值时,表示等于某个具体确定的属性值;当输入多个时,表示满足其中的一项或多项 | 设备品牌 = 苹果;设备品牌 满足 苹果、小米中的任意一个 |
| ≠(不等于) | 完全排除输入的某个或多个属性值 | 设备品牌 ≠ 苹果;设备品牌 不满足 苹果、小米中的任何一个 |
| like(包含) | 查找属性值中包含某些字符的值 | 设备品牌 中 包含 苹果 这个词的 |
| notlike(不包含) | 排除属性值中包含某些字符的值 | 设备品牌中 不包含 苹果 这个词的 |
| 有值 | 查找有属性值的数据 | 有设备品牌名称的 |
| 无值 | 查找无属性值的数据 | 无设备品牌名称的 |
{% hint style="info" %}
对于包含字典属性,目前不支持 like(模糊匹配)和 notlike(不匹配)。
{% endhint %}
#### **B. 数值型**
| 操作符 | 使用场景 | 例如 |
| --- | --- | --- |
| \=(等于) | 等于某个具体数字 | 商品金额 = 100 |
| ≠(不等于) | 不等于某个数字 | 商品金额 ≠ 100 |
| <(小于) | 小于某个数字 | 商品金额 < 100 |
| ≤(小于等于) | 小于等于某个数字 | 商品金额 ≤ 100 |
| \>(大于) | 大于某个数字 | 商品金额 > 100 |
| ≥(大于等于) | 大于等于某个数字 | 商品金额 ≥ 100 |
| 介于区间 | 在某个数据区间内的数值 | 100<商品金额 ≤ 500 |
| 有值 | 所有数字 | 任意商品金额 |
| 无值 | 所有空白项 | 无商品金额 |
#### **C. 布尔值**
| 操作符 | 使用场景 | e.g. |
| --- | --- | --- |
| 为真 | 某个判断为真 | 是否成功 = 是 |
| 为假 | 某个判断为假 | 是否成功 = 否 |
| 有值 | 查找有属性值的数据 | 有值 |
| 无值 | 查找无属性值的数据 | 无值 |
#### **D. 日期时间**
| 操作符 | 使用场景 | e.g. |
| --- | --- | --- |
| 绝对时间 | 在某个具体的时间范围 | 在 2018/12/14- 2018/12/17 |
| 相对当前时间点 | 在相对当前的某段时间里 | 在近 30 天内 |
| 相对事件发生时间 | 在相对事件发生的某段时间里 | 登录之前的 5 分钟里 |
| 有值 | 查找有属性值的数据 | 有日期 |
| 无值 | 查找无属性值的数据 | 无日期 |
>[info] 近 n 日包括查询当日
> 过去 n 日不包括当时
#### **E. 字符串集合**
| 操作符 | 使用场景 | 例如 |
| --- | --- | --- |
| like(包含) | 集合中包含某个字符的值 | 用户标签 包含 摄影 字段 |
| notlike(不包含) | 集合中不包含某个字符的值 | 用户标签 不包含 摄影 字段 |
| 有值 | 查找有属性值的数据 | 有用户标签 |
| 无值 | 查找无属性值的数据 | 无用户标签 |
### 1.5 选择对比分群
方舟支持在某个细分分群下查看指标,也支持多个分群对比(最多4个)

## 2\. 图表展示区
图表展示区,可以选择时间范围,时间粒度,图表样式、
### 2.1 时间范围

可以选择近30日、今日、上周等常用范围,也可以在右侧自定义开始时间和结束时间。
当选择的是相对时间保存图表后,以后查询时会展示动态的时间范围。
例如今天是3月16日,选择查询近7日,查询结果是3月9日至3月15日的数据;在3月21日打开保存的该图表时,查看到的数据将是3月14日至3月20日。
当选择对比日期时,可以对比上一时段、去年同期、自定义对比指标表现
>[info] **对比上一时段**:从选择时间范围向后移动相同天数的时间范围,比如当前选择的是1月9日-1月15日,选择了对比上一时间,则对比的是1月2日-1月8日,即可以分别对比1月9日与1月2日,1月10日与1月3日……的指标差异
> **对比去年同期**:对比当前时间段与去年同期的时间段,比如当前选择的是2019年1月9日-1月15日,选择了对比上一时间,则对比的是2018年1月9日-1月15日,即可以分别对比2019年1月9日与2018年1月9日,2019年1月10日与2018年1月10日……的指标差异
> **自定义对比**:自定义时间范围,比如当前选择的是1月9日-1月15日,自定义对比1月8日-1月14日,即可分别对比1月9日与1月8日,1月10日与1月9日……的指标差异
### 2.2 时间粒度
可选择的时间粒度,包括
| 时间粒度 | 说明 |
| --- | --- |
| 按合计 | 可以查看选定时间范围内的汇总 |
| 按分钟 | 按分钟聚合,实时计算 |
| 按小时 | 按小时聚合,实时计算 |
| 按日 | 默认按照从 00:00:00 到 23:59:59 的完整日聚合,当时间范围中包含今日时,最多延迟几分钟 |
| 按周 | 默认周一到周日的自然周聚合,当时间范围不足自然周时,计算的是选择范围内所在周若干天的聚合 |
| 按月 | 当时间范围不足自然月时,计算的是选择范围内所在月若干天的聚合 |
### 2.3 图表样式
展示不同的指标、条件、人群、维度组合查询结果,展示样式包括线形图、柱状图、堆积图和数据表格,
根据选择模型条件不同(是否有多个指标、是否添加了细分维度、是否添加了对比人群等),可以选用的图表样式不同,这是由于结果数据本身的结构以及图表自身的适用条件决定的。
当图表样式不可用时,图表icon置灰,鼠标hover相应图标时,会有文案提示(如下图)。

| 图表样式 | 样例 | 适用场景 |
| --- | --- | --- |
| 折线 |  | 想分析和表达随着时间变化,指标的变化趋势 |
| 面积图 |  | 想分析和表达随着时间变化,指标的变化趋势;区别于折线图,面积图通常更侧重于表达数据的累积效应。 |
| 时间柱状图 |  | 在柱状图的基础上,添加了时间的维度,同样可用于分析和表达随着时间变化,指标的变化趋势 |
| 柱状图 |  | 表现单组或者多数数据的规模 |
| 条形图 |  | 柱状图正向旋转90°后就可以得到一张条形图,相较于柱状图,条形图更适用于表现排名情况。另外,当柱形图横坐标上文本过多的情况时,可以将柱状图切换为条形图 |
| 饼图 |  | \*\*只有添加了细分维度时,才可以使用饼图,\*\*否则不可用。\*\*饼图用于表现 不同分组数据的占比情况,通常在分组数小于等于5时,才会选择使用饼图,\*\*当分组数过多时不宜使用饼图。 |
| 数字图 |  | \*\*只有不添加细分维度时,可使用数字图。\*\*特殊效果:(1)勾选 对比时段时,可以同时展示变化幅度(2)当仅有一个指标且选择了多天数据时,可以同时展示趋势图 |
| 地图 |  | 仅当添加了 **国家 或者 省份 或者 城市** 时 |
| 表格 |  | \*\*不限场景。\*\*支持 A、 B两种表格样式,A 表格为多维表格,会做类似合并单元格式的样式处理;B表格 为一维表格,(说明:B 表格 由 A 表格直接转换得到,由于在A 表格中对无数据的单元格做了补0处理,B 表格中也会出现 0 的记录,此时下载数据后请根据情况进行二次加工) |
### 2.3 更多图表功能
| 功能 | 样例 | 适用场景 |
| --- | --- | --- |
| 占比计算 |  | 仅当添加了细分维度时,可以选择快速计算各组占比(占比计算逻辑:分母为对应指标项各分组数据的总和,分子为该分组在该指标项上的自身数值。) |
| 均值线 |  | 仅当选择折线图时,可设置显示/隐藏均值线 |
| 双轴图 |  | 仅设置的指标数大于等于2,且可以使用折线图时,可设置双轴图,用来创建折线图和柱状图的组合。在设置时,可指定具体哪个指标绘制为折线图或者柱图。 |
| 汇总指标:合计/平均值(算术平均数)/中位数/最大值/最小值 |  | 当选择表格样式时,在“合计”列表头,可以下拉切换不同的汇总指标(**注意**:选择合计时,合计的逻辑跟随指标本身的合计逻辑,比如用户数为排重用户数;选择平均值时,计算的是算数平均数。) |
## 3\. 其他功能
其他保存、下载共享、抽样计算、强制刷新等等所有分析模型通用功能,详见[《分析》](./)。
## 常见问题
### 1 在事件分析中查询得到的注册成功用户数为什么与用户数据库中查询到的结果不一致?
客户端数据上报会因为**网络环境等特殊原因**导致数据不能100%发送到方舟。方舟采取了很多手段来减少这种误差。但对于关键业务数据,我们依然建议您可以进行服务端上报。采用与您自身数据库所处网络类似的网络环境可以极大避免重要数据差异。
下面是我们建议通过服务端上报的数据:
* 注册成功时的用户信息
* 购买成功时的订单信息
* 支付成功信息
- 产品简介
- 快速上手
- Step 1 安装部署
- Step 2 激活系统创建项目
- Step 3 开启您的分析旅程
- 1. 集成 SDK
- 2. 可视化埋点
- 3. 创建分析模型
- 附:埋点方案设计
- 附:数据分析思路
- 产品更新日志
- V5.5 新增LTV分析功能等
- V5.3 UI 升级、分布分析重构、维度表动态更新、细节优化等
- V5.2 新增归因分析、消息中心、重构埋点方案、优化看数据体验……
- V5.1.0317 体验优化& Bug修复
- V5.1 升级可视化埋点、增强权限控制……
- Part I 产品功能说明
- 名词解释
- 指标说明
- 看板
- 5.3.3 看板 UI 重构
- 分析
- 事件分析
- 渠道分析
- 渠道相关名词解释
- 来源识别规则
- 搜索引擎
- 社交媒体
- 小程序场景值
- Session 分析
- Session 规则
- 实时分析
- 留存分析
- 转化漏斗
- 智能路径
- 归因分析
- 热图分析
- Web/H5 热图
- APP 热图
- 分布分析
- 间隔分析
- 属性分析
- LTV 分析
- 多主体分析
- 自定义查询
- 用户
- 用户分群
- 用户探查
- 用户标签
- 标签体系应用概览
- 标签体系
- 标签生命周期管理
- 标签加工
- 如何自定义SQL创建标签
- 单用户档案
- 运营
- 广告跟踪
- 微信小程序渠道追踪
- 预置广告媒介和渠道
- App 推广监测(Beta)
- 电子邮件
- 短信
- 消息通知
- 项目管理
- 项目概览
- 项目角色管理
- 项目成员管理
- 数据接入管理
- 埋点方案
- 可视化埋点
- 集成SDK接入数据
- 数据验证
- 用户数据导入
- 微信小程序全埋点事件定义
- 元数据管理
- 元事件
- 虚拟事件
- 事件属性
- 用户属性
- Session 管理
- 页面组管理
- 维度表
- 服务集成配置
- 监控告警
- 智能监控
- 自定义监控
- 平台管理
- 企业概览
- 项目管理
- 成员管理
- 安全设置
- 企业设置
- 日志管理
- 帐号设置
- Part II 技术文档
- 技术接入准备工作
- 部署环境检测工具
- 数据模型
- 数据格式
- 预置事件和属性
- App预置事件/属性
- JS 预置事件/属性
- 如何准确识别用户
- 如何设计埋点方案
- 分平台上报数据 vs 跨平台打通
- SDK 指南
- Android SDK
- 快速集成
- 全埋点模块
- 消息推送模块
- Android Hybrid模式
- SDK Gradle集成方式
- 多渠道打包
- 易观小工具
- 合规相关
- iOS SDK
- 快速集成
- 全埋点介绍
- iOS Hybrid模式
- 消息推送模块
- JS SDK
- 快速集成
- JS SDK基础版
- JS SDK插件
- uni-app SDK
- 快速集成
- 打包原生APP
- 开启移动端全埋点
- uni-app SDK标准版
- 微信小程序 SDK
- 快速集成
- 微信小程序标准版
- 微信小程序插件版
- 微信小程序通用框架版
- 支付宝小程序 SDK
- 支付宝小程序标准版
- 支付宝小程序通用框架版
- 字节跳动小程序 SDK
- 字节跳动小程序标准版
- 字节跳动小程序通用框架版
- 百度小程序 SDK
- 百度小程序标准版
- 百度小程序通用框架版
- 钉钉小程序 SDK
- 钉钉小程序标准版
- 钉钉小程序通用框架版
- QQ小程序 SDK
- QQ小程序标准版
- QQ小程序通用框架版
- 快应用 SDK
- 华为WeCode小程序
- WeCode SDK 标准版
- WeCode SDK插件
- PhoneGap SDK
- mPaaS SDK
- ReactNative SDK
- Flutter SDK
- Java SDK
- Python SDK
- PHP SDK
- C++ SDK
- C# SDK
- Node JS SDK
- Lua SDK
- Golang SDK
- SDK FAQ
- identify与alias的区别
- 爬虫数据如何识别?
- 页面停留如何获取时间?
- 如果获取SDK及更新日志
- 代码埋点和无埋点有什么区别
- Web页面中发现丢失某一个事件
- 自研 SDK 注意事项
- 页面时长统计功能
- 飞书小程序 SDK
- 飞书小程序标准版
- 飞书小程序通用框架版
- Unreal Engine SDK
- 数据验证
- 客户端埋点验证
- Debug 数据验证
- 数据入库验证
- 数据导入
- 接口导入
- JAVA工具包
- 标准json文件导入
- csv格式导入
- 数据导入FAQ
- 数据导出
- JAVA工具包
- 事件数据导出
- 用户数据导出
- 直接从Kafka中消费数据
- 使用程序访问数据库
- 脚本工具
- API
- 分析API
- 事件分析
- 留存分析
- 自定义查询
- 转化漏斗
- 属性分析
- Session分析
- 渠道分析
- 分布分析
- 用户API
- 分群查询
- 用户档案
- 分群管理
- 管理API
- 权限管理
- 元数据管理
- 埋点方案管理
- 维度表管理
- 运营API
- 广告跟踪
- APP推广监测
- 平台管理API
- 项目管理
- 成员管理
- 第三方登录
- OAuth2.0登录
- LDAP登录
- GDPR 合规
- Part III 常见问题
- License 许可
- 产品试用及采购
- 参与贡献