# 面向开发人员:配置发送和事件参数
文章:自定义事件
标记描述了需要记录什么操作以及在什么时刻记录。开发人员将发送添加到应用或服务器,并根据商定的规则传输参数。
### 如何通过 SDK 发送
开发人员在所选操作发生的代码位置添加 SDK 方法调用。请使用平台说明:
- [Android](https://appmetrica.yandex.ru/docs/zh/sdk/android/analytics/android-operations#report-event)
- [iOS](https://appmetrica.yandex.ru/docs/zh/sdk/ios/analytics/ios-operations#report-event)
- [Flutter](https://appmetrica.yandex.ru/docs/zh/sdk/flutter/analytics/flutter-operations#report-event)
- [React Native](https://appmetrica.yandex.ru/docs/zh/sdk/react-native/analytics/react-native-operations#report-event)
- [Unity](https://appmetrica.yandex.ru/docs/zh/sdk/unity/analytics/unity-operations#report-event)
### 如何从服务器发送
如果操作信息在服务器上可用,请使用[通过 Post API 上传事件](https://appmetrica.yandex.ru/docs/zh/mobile-api/post/post-import-events)。数据通过 HTTP 请求传输,并与之前通过 SDK 传输的配置文件或设备标识符关联。
在设置之前,请检查[上传限制](https://appmetrica.yandex.ru/docs/zh/mobile-api/post/restrictions)。Post API 数据每四小时同步一次——检查时请考虑这一点。
### 事件嵌套级别
要发送具有嵌套参数的事件,请传递 `key:value` 对。在界面中,`key` 和 `value` 被视为嵌套级别。

AppMetrica 允许您在事件中传递可以具有多个级别的嵌套参数。
以 JSON 格式传递参数时,值中的每个新对象都表示一个新的嵌套级别,例如:
```json
{
"param1":"1",
"param2":"abc",
"param3": {
"paramLevel2": "2",
"param2Level2": {
"paramLevel3": "3",
"param2Level3":{
"level": "4"
}
}
}
}
```
AppMetrica Web 界面最多显示事件的五个嵌套级别。如果事件包含六个或更多级别,报告中会显示前五个。
您可以使用[报告 API](https://appmetrica.yandex.ru/docs/zh/mobile-api/stat/intro) 获取最多十个事件嵌套级别。
### 数值和字符串值的解释
在 AppMetrica 界面中,值 `{"count" : 3}` 和 `{"count" : "3"}` 的解释相同。但是,使用报告 API 或 [Logs API](https://appmetrica.yandex.ru/docs/zh/mobile-api/logs/about) 导出数据时,参数会以发送到服务器的形式导出。
如果同一事件多次传递且数值参数值不同,则 Web 界面中不会汇总参数值。每个值都会单独记录和计算。
您可以使用报告 API 导出其他字段:所有数值的总和和平均值。
### 部分匹配的嵌套事件
您可以始终使用同一事件传递不同的参数值。
如果服务器收到具有重复参数的事件,其值会累积,报告中会显示每个传递变体的数量。
如果服务器收到具有重复参数但嵌套深度不同的事件,其值会根据重复参数累积。
例如,第一个事件有两个嵌套级别:
```
{
"param1": "param2"
}
```
第二个有三个嵌套级别:
```
{
"param1": {
"param2": "value"
}
}
```
在 Web 界面中,这些事件会以树状列表显示:

计数按以下算法进行:
1. 记录事件及其两个子级别。每个参数加 1。
2. 事件名称及其三个子级别加 1。