# 如何设计埋点方案

用户行为是由用户一系列的事件组成，包含5个基本要素：何人，何时，何地，通过何种方式，发生了何种行为。

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

## 事件

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

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

## 事件属性

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

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

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

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

其中，用户、时间、地理位置、事件发生的环境等可以自动采集，但采集哪些事件、事件更丰富的属性就需要用户自己来上报了。

## 用户属性

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

**方舟提供的事件模板和用户属性模板来帮助梳理**

| 事件ID           | 事件名称  | 事件说明      | 属性ID          | 属性名称 | 属性说明 | 属性值类型 |
| -------------- | ----- | --------- | ------------- | ---- | ---- | ----- |
| PayOrder       | 支付订单  | 点击支付按钮时触发 | paymentMethod | 支付方式 |      | 字符型   |
| ViewDetailPage | 浏览页详情 | 点击详情页时触发  | PageID        | 页面ID |      | 字符型   |

| 用户属性ID    | 用户属性名称 | 属性说明      | 属性值类型 |
| --------- | ------ | --------- | ----- |
| UserLevel | 用户等级   | 上传用户的等级信息 | 字符型   |

{% hint style="info" %}
**下载地址：**

[事件埋点方案模版.xlsx](https://imguserradar.analysys.cn/files/ark/doc/易观方舟-事件埋点方案模板_20190520.xlsx)

[用户埋点方案模版.xlsx](https://imguserradar.analysys.cn/files/ark/doc/易观方舟-用户埋点方案模板_20190520.xlsx)
{% endhint %}

#### **模板说明：**

**事件ID：** 仅支持数字、字母和下划线，用于SDK埋点标识事件

**事件名称：** 工程师无需写在代码中，仅用分析模型中显示方便查看，可修改

**事件说明：** 说明埋点位置

**属性值类型：** 选择属性值的类型，不同类型的属性值会有不同的运算，例如 “商品价格” 这个属性值的类型应该是数值型，分析时可以对商品价格求和、最大值、最小值、均值等。属性值的类型参考[《数据格式》](/integration/prepare/data-type.md)-属性值得数据类型。

**属性ID：** 仅支持数字、字母和下划线，用于SDK埋点标识事件的属性

**属性名称：** 工程师无需写在代码中，仅用分析模型种显示方便查看，可修改

**属性说明：** 说明属性的注意事项

> ⚠️ 特别说明：
>
> 建议您在设计埋点和上报数据时，用户属性ID 和 事件属性ID 使用小写英文字母和下划线组合 命名，例如 pagename 、page\_name；
>
> 不建议使用含大写字母的属性ID，例如 pageName 、pageTitle。
>
> 因为易观方舟会将 事件属性ID 和 用户属性ID 中的大写字母强制转换为小写字母。

{% hint style="info" %}
以上内容没有解答我的问题？[点击我进入方舟论坛去反馈](https://www.analysysdata.com/forum/index) 🚀
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://arkdocs.analysys.cn/integration/prepare/tracking-plan.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
