Пользователь

/user используется в рекламной платформе, когда нужно получить или обновить uid и ses до запроса рекламного плейсмента.

В API V2 пользователь и сессия передаются в одном объекте user. Если переходите с V1 retail media API, перенесите значение сессии из session.ses в user.ses.

В запросе также можно передать актуальный ctx страницы или экрана. Подробнее о формате контекста: Контекст.


user: получение или обновление пользователя

Когда вызывать /user

Используйте /user, если:

  • нужно заранее создать uid и ses перед первым запросом /choose;
  • backend рендерит рекламный плейсмент до отправки pageview или бизнес-события;
  • нужно обновить пользовательские атрибуты для таргетинга рекламы;
  • нужно проверить, что API-ключ и sec настроены корректно.

Если вы сразу вызываете /choose, /visit или /event, отдельный /user может быть не нужен: V2 endpoint-ы также могут вернуть актуальные user.uid и user.ses в ответе.

Что передавать в user

Ситуация Пример
Новый пользователь "user": {}
Есть сохранённый пользователь, но новая сессия "user": { "uid": "USER_UID" }
Продолжается текущая сессия "user": { "uid": "USER_UID", "ses": "SESSION_ID" }
Используется внешний ID клиента "user": { "custom": "CUSTOM_USER_ID", "ses": "SESSION_ID" }

Если вам нужны динамические условия для рекламного плейсмента, передавайте их в ctx.attributes в запросе /choose. Подробнее: Контекст.

curl --request POST
--url 'https://evs-01.gravityfield.ai/v2/user'
--header 'content-type: application/json'
--header 'Authorization: Bearer your-api-key'
--data '
{
  "sec": "YOUR_SECTION_ID",
  "user": {},
  "ctx": {
    "type": "HOMEPAGE",
    "data": [],
    "location": "https://shop.ru/",
    "attributes": {
      "source": "web",
      "region": "Moscow"
    }
  },
  "device": {
    "ua": "Mozilla/5.0",
    "ip": "54.100.200.255",
    "userTime": "2026-06-03T15:00:00+03:00"
  },
  "options": {
    "isReturnUserInfo": true
  }
}'
{
  "user": {
    "uid": "665f0a000000000000000001",
    "ses": "7356efc2-6ffd-4553-bade-b9ab5d9ce141"
  }
}

Сохраните user.uid между сессиями пользователя, а user.ses - для текущей сессии приложения или сайта. Если ответ не содержит новых uid или ses, оставьте локальные значения без изменений.