# 如何设计埋点方案

用户行为是由用户一系列的事件组成，包含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/%E6%98%93%E8%A7%82%E6%96%B9%E8%88%9F-%E4%BA%8B%E4%BB%B6%E5%9F%8B%E7%82%B9%E6%96%B9%E6%A1%88%E6%A8%A1%E6%9D%BF_20190520.xlsx)

[用户埋点方案模版.xlsx](https://imguserradar.analysys.cn/files/ark/doc/%E6%98%93%E8%A7%82%E6%96%B9%E8%88%9F-%E7%94%A8%E6%88%B7%E5%9F%8B%E7%82%B9%E6%96%B9%E6%A1%88%E6%A8%A1%E6%9D%BF_20190520.xlsx)
{% endhint %}

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

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

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

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

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

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

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

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

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

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