# Для разработчика: настройка отправки и параметры событий
Статья: Кастомные события
Разметка описывает, какое действие и в какой момент нужно зафиксировать. Разработчик добавляет отправку в приложение или на сервер и передает параметры по согласованным правилам.
### Как отправлять через SDK
Разработчик добавляет вызов метода SDK в то место кода, где происходит выбранное действие. Используйте инструкцию для платформы:
- [Android](https://appmetrica.yandex.ru/docs/ru/sdk/android/analytics/android-operations#report-event)
- [iOS](https://appmetrica.yandex.ru/docs/ru/sdk/ios/analytics/ios-operations#report-event)
- [Flutter](https://appmetrica.yandex.ru/docs/ru/sdk/flutter/analytics/flutter-operations#report-event)
- [React Native](https://appmetrica.yandex.ru/docs/ru/sdk/react-native/analytics/react-native-operations#report-event)
- [Unity](https://appmetrica.yandex.ru/docs/ru/sdk/unity/analytics/unity-operations#report-event)
### Как отправлять с сервера
Если сведения о действии доступны на сервере, используйте [загрузку событий через Post API](https://appmetrica.yandex.ru/docs/ru/mobile-api/post/post-import-events). Данные передаются HTTP-запросом и связываются с идентификатором профиля или устройства, ранее переданным через SDK.
До настройки проверьте [ограничения загрузки](https://appmetrica.yandex.ru/docs/ru/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 отображает до пяти уровней вложенности события. Если событие содержит шесть уровней и более, в отчете отобразятся пять верхних.
С помощью [API отчетов](https://appmetrica.yandex.ru/docs/ru/mobile-api/stat/intro) можно выгрузить до десяти уровней вложенности события.
### Трактовка числовых и строковых значений
В интерфейсе AppMetrica значения `{"count" : 3}` и `{"count" : "3"}` трактуются одинаково. Но при выгрузке с помощью API отчетов или [Logs API](https://appmetrica.yandex.ru/docs/ru/mobile-api/logs/about) параметр будет выгружен в том виде, в котором он был отправлен на сервер.
Если одно и то же событие передается несколько раз с разным числовым значением параметра, в веб-интерфейсе значения параметра не суммируются. Каждое из значений записывается и считается отдельно.
С помощью API отчетов можно выгрузить дополнительные поля: сумму и среднее всех числовых значений.
### Частично совпадающие вложенные события
В одном событии можно передавать все время разные значения параметров.
Если сервер получает события с повторяющимися параметрами, их значения аккумулируются, а в отчете отображается количество по каждому из переданных вариантов.
Если сервер получает события с повторяющимися параметрами, но с разной глубиной вложенности, их значения аккумулируются по повторяющимся параметрам.
Например, первое событие имеет два уровня вложенности:
```
{
"param1": "param2"
}
```
Второе — три уровня вложенности:
```
{
"param1": {
"param2": "value"
}
}
```
В веб-интерфейсе эти события отобразятся в древовидном списке:

Подсчет производится по следующему алгоритму:
1. Записывается событие и два его подуровня. Добавляется 1 к каждому параметру.
2. Добавляется 1 к названию события и трем его подуровням.