# 埋点方案

在实际应用中，很多数据不准确、无法计算的问题最后多数定位到是埋点缺失、错误等造成的，因此严格控制数据质量是非常必要和重要的事情。

埋点方案功能正是通过以下三点来保障数据质量：

1. 数据采集需求管理，方案可共享保证需求来源一致，来源可记录，变更可追踪 —— 通过埋点的增删改、记录变更历史功能实现
2. 将埋点方案作为数据处理规则，规避无效数据污染数据源 —— 通过设定计划外（埋点方案外）的数据处理规则实现
3. 通过埋点方案自动化校验，提高验证效率 —— 通过检测埋点状态功能来实现

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQrZN0pxobSyPZC2eX%2Fimage.png?alt=media\&token=bb51d0a9-3b4b-436b-b887-252fd5762586)

## 设计埋点方案

### 设计前准备

**确定数据分析和应用的核心诉求**

* 验证功能设计是否合理？帮助产品迭代？
* 关键流程的转化情况？
* banner广告/推荐位的效果转化？
* 注册/登录的用户情况？
* 自动化运营

**确定核心业务的关键路径**

拆解各环节，设定环节指标（如各环节转化率），根据环节指标，提取动作行为，即事件，该事件就是我们要进行统计的埋点位。

**确定用户属性**

确定描述用户的维度，比如性别、用户等级等后续用于分析的属性。

### 设计埋点方案

经过前期准备，按照方舟当中的数据模型，可以把埋点方案拆分为两部分：

* 事件方案——确定上报哪些用户行为
* 用户方案——确定上报哪些用户属性

一份完整的埋点方案由事件、事件属性和用户属性三部分组成。

**事件**

记录用户在使用网站、APP 或小程序的过程中触发的行为。

用户的行为有一部分会在他们使用的过程中自动被采集上来，常见的如：跟访问有关的“页面浏览”，“停留时长”；另外一部分包含具体业务含义的，则需要通过埋点才能得到，例如：“注册”、“登录”、“支付”等等。

**事件属性**

可以通过属性为事件补充相关的信息，例如：位置，方式和内容。

用户产生行为时就会上报具体的属性值，比如对“购买事件”定义了“支付方式”的属性值，则根据不同的行为可能上报的是微信支付，支付宝支付。

小舟在电商平台上花一万元购买了一台联想电脑。这个动作就会产生一个名为“购买”的事件； 而“购买”事件，同时也可以包含：“品牌”，“价格”这两个属性，而“联想”和“一万元”就是属性的具体值了。

| Event要素 | 要素说明      | 采集的数据                           | 示例                                                                                                           |
| ------- | --------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Who     | 参与事件的用户   | 用户唯一ID                          | H522a3bd525a2af                                                                                              |
| When    | 事件发生的时间   | 自动获取 事件当时时间                     | 11月11日00:02:03                                                                                               |
| Where   | 事件发生的地理位置 | 自动获取 IP、GPS信息                   | 114.242.249.113                                                                                              |
| How     | 事件发生的方式   | 使用的环境                           | <p>设备品牌：Apple </p><p>设备型号：iPhone 6s 操作系统：iOS </p><p>屏幕分辨率：1920\*1680 </p><p>运营商：中国联通 </p><p>网络类型：Wifi ……</p> |
| What    | 事件的内容     | 自定义采集的事件：EventID 事件属性：Key-Value | add\_to\_cart product\_name：耳麦 product\_price：666                                                            |

**用户属性**

在分析过程中，需要引入注册用户的更多维度，比如注册用户ID、姓名、用户等级等等，也需要进行梳理，方法同事件属性。

埋点方案整理成方舟提供的埋点模版整理即可

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQYGaTJ8SkFdUfLt3l%2F-MVQddEiVeVD7g2tcG5A%2Fimage.png?alt=media\&token=736982d1-ae87-4f36-958b-8395e2651991)

整理完埋点方案后点击批量导入，作为后续研发埋点的需求来源和数据处理的规则。以下将以事件方案为例说明在方舟中如何管理埋点方案：

## 管理埋点方案（以事件方案为例）

### 1 管理计划中的事件方案

计划中即表示在数据上报前做好了规划要采集的事件；计划外表示不在埋点方案中，但实际上报了数据的事件和属性。

{% hint style="info" %}
通过可视化埋点部署的埋点自动会被视为计划中的事件
{% endhint %}

#### A 添加方案

按照埋点方案模版的格式整理完成后，即可批量导入；

系统预置部分事件及属性，如有需要可以直接使用，如果不需要也可以清空；后续需要使用时，选择导入预置事件/属性即可。

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQrl18Eez89tdQaDqg%2Fimage.png?alt=media\&token=46e7a1cf-3bc0-4bc7-9b26-89cb05d2c5cc)

当已上传过埋点方案，后续有新的产品功能迭代需要新增少量埋点时，可以选择单条添加

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQs-Hh55MbuLQWfvut%2Fimage.png?alt=media\&token=5f7326ee-9904-4bc5-956e-0292ba315468)

对于所有事件都有的通用属性不必在埋点方案中每个事件中添加，在通用属性中导入一份即可，方舟默认会采集部分属性（预置的通用属性），详见<https://docs.analysys.cn/integration/prepare/default-data>

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQYGaTJ8SkFdUfLt3l%2F-MVQpUpBwo8lLeI5VSGq%2Fimage.png?alt=media\&token=705e720d-b9ed-4a1f-8164-33fb5562c229)

此外若有需要也可以添加自定义通用属性，集成SDK时注册为通用属性即可。

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQYGaTJ8SkFdUfLt3l%2F-MVQqeKiyItHqFht9wpa%2Fimage.png?alt=media\&token=75ef757e-ba4c-4781-b634-fbd9bf547585)

#### B 修改方案

支持修改埋点的平台、事件显示名称、事件说明、事件标签、显示状态、数据类型等；

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQsJWw1s8mblM9AArX%2Fimage.png?alt=media\&token=65db4d04-9978-4a9d-96e8-79b7c197df43)

{% hint style="danger" %}
当属性已回数时，属性的数据类型无法进行修改
{% endhint %}

也可以进行删除、设置是否在分析时显示

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQx_geOPb7o_Fs53RA%2Fimage.png?alt=media\&token=da7d4a74-6e2c-42be-960b-52db3e5fce17)

{% hint style="info" %}
删除操作说明：

当事件**未回数**时，删除即表示从方案中删除，不打算采集，后续完全可以使用相同ID重新定义，当未定义时有相同事件ID的数据上报时，将根据设置的数据处理规则处理；

当事件**已回数**时，删除代表从埋点方案中移除，相应事件和属性会进入到计划外，并不会删除历史数据；也不能定义相同ID的事件和属性，或者添加数据类型不同的属性，若想要再次启用可以从计划外再次添加到计划中
{% endhint %}

{% hint style="info" %}
显示开关说明：

开关打开时，相应事件/属性在分析的事件和属性下拉框中可见；

开关关闭时，相应事件/属性在下拉框中不可见，同时不可见的事件也不会被计入【任意事件的用户数/次数和人均次数】的指标计算中；

部分预置的事件/属性用于热图计算，如果关闭同样在事件/属性下拉框中不可见，但不影响热图分析的结果。
{% endhint %}

对于通用属性同样支持删除、设置是否显示的操作

{% hint style="info" %}
删除操作说明

已回数的属性删除后仅代表该属性不再是通用属性，将会出现在各个已回数的事件下；&#x20;

未回数的属性删除后仅表示各个事件都不需要采集该属性， 如果有个别事件需要该属性，需在计划中埋点该事件下添加。
{% endhint %}

{% hint style="info" %}
显示开关说明：&#x20;

开关打开时，在相应的条件和维度中可以选择到该属性； 若不需要分析，可以选择关闭； 部分预置通用属性不支持作为条件和维度，禁止删除、禁止打开显示开关。
{% endhint %}

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQxm5N-vAjfrcbZq4v%2Fimage.png?alt=media\&token=a1357a43-c9fe-4e08-bcd4-816d485ff4f9)

**对于埋点的改动系统都会记录，谁在什么时间修改了什么，修改前后变化是什么，方便异常追踪。**

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQsTInRexZmRcbWL13%2Fimage.png?alt=media\&token=6b823da3-aa6b-4c60-983e-804589879a2c)

#### C 查看方案

当有多个平台、多种埋点方式时，可以通过分组、过滤条件、搜索等快速找到相应的埋点

**C1 展开/收起全部属性**

点击 **展开全部属性** 可以查看全部事件下的属性，也可以展开部分事件

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQsj7T15E_LV2vNLpv%2Fimage.png?alt=media\&token=26c26879-d056-40a4-bbb3-24e49588d381)

**C2 分组显示**

可以按照平台、是否预置、埋点方式、是否回数、标签等分组查看

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQtOWwjE1Z9i0XqN9N%2Fimage.png?alt=media\&token=48598957-f9b7-4bcb-a20b-0ed04afd61bf)

当按分组查看时，默认收起全部分组，可以展开全部分组，也可以点击分组所在行的空白处可以展开单个分组

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQtXiEpY5q2PgUDQA1%2Fimage.png?alt=media\&token=e8a83888-df6b-498c-be13-351da346ba88)

**C3 过滤条件**

同样支持根据平台、是否预置、埋点方式、是否回数、标签等进行过滤

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQtmgSjc58PwSjSk80%2Fimage.png?alt=media\&token=1fcbd780-7c02-4e69-add3-3e25cbeeb4e8)

**D 埋点列表展示字段**

支持事件、事件属性、平台、平台、是否预置、埋点方式、是否回数、是否显示、创建人、创建时间、首次出现时间、最后出现时间等。

通过埋点最后出现时间、近7日的触发次数等指标可以总和判断埋点是否仍然有效，当达到埋点限额的时候可以做埋点清理。

通过Debug日志、入库日志、错误日志的入口可以直接进入到日志中去查看相应事件的日志数据，帮助做数据校验。

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQYGaTJ8SkFdUfLt3l%2F-MVQgHPug3tkDlxchJYA%2Fimage.png?alt=media\&token=bda15de0-3407-4bca-8a01-98cc554abe35)

### 2 设定数据处理规则

对于不在埋点方案中，但实际上报了数据的情况，可以自定义设置数据处理规则，更改规则后新进入的数据将按照更新后的规则进行处理，通常1分钟内即可生效。系统预置三种处理模式：

* 严格模式：适合对数据质量要求严格的企业
* 半严格模式：适合对数据质量要求较为严格的企业
* 宽松模式：仅适合研发快速回数测试产品功能

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQYGaTJ8SkFdUfLt3l%2F-MVQhKsQOyXOv-d-pBSM%2F%E5%9B%BE%E7%89%87%208.png?alt=media\&token=55c2386b-5c1e-4963-8789-0329cdcc81c2)

{% hint style="warning" %}
埋点方案和数据处理模式设置会做为数据处理的规则。

注意更改规则后仅对新进入的数据生效，根据历史规则处理后的历史数据不会变更。

比如，原来对于计划外的事件，原来选择的是规则 2：数据入库，加入到计划外列表中，默认不启用该事件，手动选择是否加入到埋点方案中。

已有一批数据根据此规则处理，其中有10个计划外的埋点在计划外列表中了，此时将处理规则变更为规则1：数据入库，并将事件加入到埋点方案，默认启用该事件。那么，原来进入计划外列表中的10个事件并不会自动添加到埋点方案中，可以手动选择批量添加到埋点计划中
{% endhint %}

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-LjKLGqFgV7cWop8fjRJ%2F-LjKDnLtSlESyVJYYPtm%2Fimage.png?alt=media\&token=9dff392e-acb0-4e09-a274-400100153fe8)

{% hint style="info" %}
系统默认半严格模式，对于对数据质量要严格要求的用户 ，可以切换到鹅严格模式
{% endhint %}

### 3 验证和更新埋点状态

系统会根据实际回传的数据与埋点方案做自动化校验，在列表中可以根据颜色标识直观判断当前埋点的状态

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQu2NnctfDAqphCpQ9%2Fimage.png?alt=media\&token=4072f852-2874-4f7d-a7e9-e4f38976228e)

**埋点状态 = （事件状态 + 事件属性状态）\* 平台**

{% hint style="success" %}
只有平台icon **全部高亮**、事件和属性标识都是 **绿色** 时，表示定义的事件在各个平台上各个属性都有数据回传，且正确
{% endhint %}

{% hint style="warning" %}
当事件前标识是**黄色**时，表示该事件有部分平台没有上报，或者部分属性没有上传完整；可以根据哪个平台icon 未高亮，哪个属性前面的标识为灰色或者黄色来定位具体问题

当属性前标识是**黄色**时，标识该属性有部分平台没有上报；可以查看哪个平台icon未高亮，则标识哪个平台没有上报
{% endhint %}

{% hint style="danger" %}
当平台icon未高亮、事件和属性前标识都为灰色时，标识全部还没有数据上报，或者全部进入错误队列
{% endhint %}

进入页面时会更新最新的埋点回数状态，停留在当前页面时，可以点击右上角 **更新埋点状态** 强制刷新

{% hint style="info" %}
除了以上场景外，有两种特殊情况需要注意：

**1** 当计划外的事件/属性添加到埋点方案中时，会自动高亮实际回数的平台，相应的事件和属性

**2** 定义了A平台的事件和属性，但实际该事件在B平台也回数了时，将自动高亮出该平台
{% endhint %}

### 4  计划外事件和属性的处理

当有计划中埋点之外的事件上报了数据，且数据处理规则选择的是半**严格模式**时，计划外的数据将入库，埋点会显示计划外列表中，若这些事件或属性在实际分析过程中也有需要，支持添加到计划中；若不需要，且后续不希望数据入库占用资源，也可以选择停止入库

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQuKpxGqd_uKQuHdg9%2Fimage.png?alt=media\&token=0fbc6f39-fe1d-4541-a178-6b1871f209c6)

支持批量加入到计划中

{% hint style="info" %}
若同一个事件即在计划中又在计划外，则表示该事件下有部分属性不在埋点方案中，因为属性不能独立存在，所以事件也会同时显示在计划外列表中。
{% endhint %}

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQYGaTJ8SkFdUfLt3l%2F-MVQn6UVfNINF-PbyClQ%2Fimage.png?alt=media\&token=45945781-a499-4a5f-975c-ab7a99e0a019)

{% hint style="info" %}
入库操作说明：

对于计划外已入库的完整事件，支持停止入库（当一个事件仅有部分属性属于计划外时，不支持关闭入库操作）

入库开关关闭后，后续产生的数据将不再入库（注：Nginx 仍然正常接收，只是不再处理数据入库后参与计算，如果不想让继续上线，需要从代码层面删除埋点）

如果根据实际需要，又需要继续获取此事件上报的数据，可以打开入库开关，但这期间历史未入库的数据不会被恢复
{% endhint %}

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQrCBcHOB67bizLOvm%2F-MVQvK-Vkg7nWLa5Wc8P%2Fimage.png?alt=media\&token=fbd35133-497d-42a1-ac8a-7e0c97363e3d)

## 管理用户方案

切换左上角进入到用户方案，可以管理和校验用户属性的埋点，使用方案类似事件方案，不做赘述。

![](https://2207941107-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LaKVSdcX30MGZ24jKF_%2F-MVQYGaTJ8SkFdUfLt3l%2F-MVQnLj6wRlBMpeL-gJB%2Fimage.png?alt=media\&token=52eca804-c3c2-408e-923b-831b9180b95b)

{% hint style="info" %}
以上内容没有解答我的问题？[点击我来反馈](https://support.qq.com/products/118522/) 🚀
{% endhint %}
