Для того, чтобы иметь возможность собирать статистику и оптимизировать кампании, необходимо передавать в Gravity Field информацию о действиях пользователя на сайте или в приложении.

---

## events: передача событий

!!!contrast API reference
[:icon-terminal: /ssapi/event](https://openapi-v1.gravityfield.ai/ssapievent-19695683e0)
!!!

=== Пример запроса:
```jsx
curl --request POST 
--url 'https://evs-01.gravityfield.ai/ssapi/event'
--header 'content-type: application/json' 
--header 'Authorization: Bearer your-api-key' 
--data '
{
	"user": { 
		"id": "yaexono4ohphania" 
	},
	"session": { 
		"custom": "iquahngaishe2koh" 
	},
	"context": { 
		"device": {
			"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36",
			"ip": "54.100.200.255" 
		}
	},
	"events": [
	{
		"name": "Add to Cart",
		"properties": {
			"eventType": "add-to-cart-v1",
			"value": 118.26,
			"currency": "RUB",
			"productId": "item-34454",
			"quantity": 2,
			"cart": [
			{
        "productId": "sku-4324-bg",
        "quantity": 1,
        "itemPrice": 12.34
      },
      {
        "productId": "item-34454",
        "quantity": 2,
        "itemPrice": 59.13
      }
	    ]
		}
	}
	]
}
``` 
===

## Пример события логина с единым CUID

Для унификации профилей пользователя между Web, мобильными SDK и офлайн-данными рекомендуется в событии `Login` использовать **один и тот же идентификатор** — SHA-256 хеш нормализованного мобильного телефона:

- Номер очищается от всех символов, кроме цифр.
- Для РФ/КЗ используется формат `7XXXXXXXXXX` (без `+`, пробелов, скобок и дефисов).
- Для других стран — международный формат без `+` и разделителей.
- Хеш считается по строке в UTF-8, результат — lowercase hex.

```json
POST /ssapi/event
{
  "user": {
    "slid": "..."         // Опционально, если известна текущая сессия
  },
  "events": [
    {
      "name": "Login",
      "properties": {
        "eventType": "login-v1",
        "cuid": "HASHED_PHONE_STRING",   // SHA-256 хеш нормализованного номера телефона
        "cuidType": "phone_hash"        // Стандартный тип идентификатора
      }
    }
  ]
}
```

Тот же хеш и значение `cuidType = "phone_hash"` должны использоваться:

- в JavaScript-интеграции (событие `Login` через `GF.API("event", ...)`),
- в мобильных SDK (`LoginEvent`),
- в импорте офлайн-данных (`cuid` / `cuidType`),
- в выгрузках из CDP / DWH, если исторические или офлайн-покупки попадают в Gravity Field через CSV.

Важно, чтобы **одна и та же функция нормализации и хеширования** применялась:

- на фронтенде (Web и мобильные приложения),
- на сервере (Server-Side API),
- в ETL‑процессах CDP при формировании файлов импорта.

Если в CDP или DWH уже настроен расчёт `cuid` на основе телефона по этому алгоритму, во всех типах интеграции (Web, мобильные SDK, Server-Side API, импорт офлайн‑данных) следует передавать **именно тот хеш**, который используется в CDP, чтобы сохранить единый идентификатор пользователя.

📖 Подробнее о формате `cuid` и `cuidType` при импорте транзакций: [Импорт транзакций](../../../data_import/import_offline_data.md#структура-данных)
