# 数据模型

> 来源：https://help.gravity-engine.com/docs/getting-started/data-model
> 解释用户、行为事件、事件属性和用户属性之间的关系，并说明如何据此设计数据采集方案。



在您开始接入之前，需要对您的项目进行理解和分析，了解您需要监控的指标和需要分析的事件，从而决定要上报什么样的数据；在开始之前，我们会先为您介绍 `Event & User` 模型。

## 1. Event & User 模型的介绍 [#1-event--user-模型的介绍]

`Event` 代表了用户的某个或一系列有意义的行为，比如用户将一个商品加入了购物车、浏览了一个视频等等，一条 `Event` 主要包含两部分信息:

* 一部分用以描述该行为如何发生，主要有行为的名字（`What`）、产生行为的用户（`Who`）以及在何时产生的（`When`）；
* 另一部分是该行为的属性，比如浏览视频的视频名称，或者付费事件当中的支付金额，这些属性是分析的主要对象，也是需要仔细斟酌的内容，我们将会在[用户属性与事件属性](/docs/getting-started/event-and-user-properties)中给出属性设置的建议。

`User` 则用以描述每名用户的最新状态与固定属性，比如用户的 `ID`、注册时间或者累计付费金额等等。通过 `User` 的属性，您可以在用户行为分析时快速筛选出您要分析的用户，比如您想分析付费用户的活跃情况，则只需要分析“累计付费金额”这一用户属性的值大于 0 的用户即可。

## 2. 整理需求 [#2-整理需求]

在理解好 `Event & User` 模型之后，您可以开始着手整理分析需求，如果您对于该流程不太熟悉的话，可以遵循下列步骤来完成需求整理：

### 2.1 明确基础的分析指标 [#21-明确基础的分析指标]

我们建议您在一开始的时候先从基础的分析指标开始着手，比如注册、登录、付费等等，如果您对这些行为没有特殊的分析需求，推荐使用我们 SDK 内提供的预置接口上传数据，如果您有特殊的分析需求，我们也推荐优先确定这些指标的取法。

### 2.2 确定追踪的事件 [#22-确定追踪的事件]

在确定好基础的分析指标之后，建议您将应用中考量每个系统、功能的重要事件转化为 `Event` 的形式。

如果您对于如何将分析需求转化为 `Event` 的形式存有疑惑，可以参考我们给出的下列建议：

* 重要的行为，推荐一个行为设定为一个 `Event`，再根据您的分析点进行属性的设置。
* 不重要的行为，比如只需要分析参与次数、参与人数的行为，您可以将多个这样的行为设置成一个 `Event`，再通过属性的方式标识具体的行为，比如设置一个 `Event` 叫次要事件，再通过一个属性事件类型来说明追踪的是哪个行为。
* 如果特别关注某些关键行为，比如付费购买行为中的一键购买，可以单独将这一行为作为一个 `Event` 进行追踪。

我们强烈建议您通过文档的形式对所有 `Event` 进行整理（比如 Excel 表格），文档当中需要包含所有 `Event` 的名称、描述，这份文档能够帮助您在设置属性以及埋点时与技术人员进行沟通，您可以参考我们为您准备的埋点模版来批量添加事件和属性：

* [批量添加事件模版](https://resource.helplook.net/docker_production/p4xbdk/article/4yhSMSsE/attachments/引力引擎_批量添加事件模板.xlsx "引力引擎_批量添加事件模板.xlsx")
* [批量添加公共属性模板](https://resource.helplook.net/docker_production/p4xbdk/article/4yhSMSsE/attachments/引力引擎_批量添加公共属性模板.xlsx "引力引擎_批量添加公共属性模板.xlsx")
