Отправка данных в Статистику от SberAds по S2S: заголовки и базовые параметры запроса
S2S позволяет отправлять события приложения с сервера прямо в Статистику от SberAds HTTPS-запросом на https://kraken.rambler.ru/cnt/v2/ со строкой параметров. Обязательны 7 базовых параметров: event_type, event_name, project_id, event_id, session_id, request_id, counter_type. Значения кодируют через encodeURIComponent, параметры без данных опускают. IP пользователя передают в заголовке X-Forwarded-For.
Цифры
Заголовки запроса
| Заголовок | Формат | Что передают |
|---|---|---|
| ip (в заголовке X-Forwarded-For), отмечен звёздочкой | String | IP пользователя; при server-side интеграции передают IP исходного пользователя |
| user-agent | String | может содержать название контрагента или отсутствовать |
| cookie | String | значение cookie |
Обязательные базовые параметры
| Параметр | Формат | Что передают |
|---|---|---|
| event_type | String | тип события, по факту которого идёт запрос; одно из возможных значений (пример: base) |
| event_name | String | название события (пример: page_view) |
| project_id | Number | идентификатор счётчика из Статистики от SberAds (пример: 29811) |
| event_id | Number | уникальность каждого события; лимит 14 символов |
| session_id | String | идентификатор группы событий; в течение визита может объединять несколько request_id, единый для группы страниц, значение уникальное |
| request_id | Number.Number-Number | идентификатор показа страницы; события с одинаковым значением относятся к одному показу; формат число с дробной частью, дефис, целое |
| counter_type | String | тип потока данных: server или pixel |
Номера и ссылка
| Параметр | Формат | Что передают |
|---|---|---|
| session_number | Number | порядковый номер сессии |
| session_event_number | Number | порядковый номер события в сессии |
| url | URL | адрес страницы события; если не передан, адрес обязателен в заголовке HTTP referer |
| split | Array<String> | набор пользовательских сплитов |
| screen_name | String | название экрана, класса приложения |
| version | N.N.N | версия счётчика; по умолчанию последняя |
| random | Number | случайное число |
| experiment | String | данные о технической конфигурации кода, формирующего события |
Идентификаторы пользователя
| Параметр | Формат | Что передают | Лимит |
|---|---|---|---|
| top100_id | String | first-party идентификатор: одинаков для одной установки приложения, разный для разных установок | 100 символов |
| adtech_uid | String | first-party идентификатор пользователя | 36 символов |
| adtech_uid_scope | String | domain или bundle_id, граница применимости идентификатора | в справке не нашли |
| auth_uid | String | идентификатор авторизованного пользователя, если известен | 36 символов |
| publisher_uid | String | first-party идентификатор пользователя в приложении (одинаков для одной установки) | 36 символов |
| publisher_uid_scope | String | domain или bundle_id, граница применимости | в справке не нашли |
| sa | String | first-party идентификатор Сбербанка | в справке не нашли |
| sv | String | third-party идентификатор Сбербанка | в справке не нашли |
| ruid | String | third-party идентификатор пользователя | в справке не нашли |
| rambler_id | String | идентификатор авторизованного пользователя в системе Rambler_id | в справке не нашли |
| sber_id | String | сквозной идентификатор Сбера для всех партнёров | в справке не нашли |
| sber_id_sub | String | идентификатор Сбера для одного партнёра | в справке не нашли |
| email_hash | String | хэш sha256 от email | в справке не нашли |
| phone_hash | String | хэш sha256 от телефона, формат указан 999-999-99-99 | в справке не нашли |
Устройство и пользователь
| Параметр | Формат | Что передают |
|---|---|---|
| gaid | String | рекламный идентификатор Android |
| idfa | String | рекламный идентификатор iOS |
| oaid | String | рекламный идентификатор Huawei |
| sberdevice_id | String | идентификатор устройства от sberdevice |
| idfv | String | IDFV, идентификатор для группы устройств, iOS |
| android_id | String | описание в справке дублирует IDFV, для Android |
| model | String | модель устройства (iPhone 5s, SM-J500M) |
| device | String | название устройства по классификации производителя (hwm) |
| os | String | операционная система (пример: iOS) |
| os_version | String | версия ОС (пример: 10.34) |
| profile | Json | любые данные о пользователе, которые передаёт площадка |
| fingerprint_ip | Json | фингерпринт |
Подробности
Как устроен запрос
Данные идут HTTPS-запросом на адрес вида «https://kraken.rambler.ru/cnt/v2/?» плюс строка параметров. Каждый параметр записывается как имя=значение, значение предварительно кодируют через encodeURIComponent, затем все параметры склеивают знаком &. Параметры делятся на базовые, которые идут в каждом запросе, и специфичные для типа события. Если по какому-то параметру нет данных, его в запросе не указывают.
Разделы справки про S2S: заголовки запроса, базовые параметры, параметры событий.
Параметры событий
Страница «Параметры событий» в справке состоит только из перечня разделов: типы событий, базовые события, пользовательские события, событие показа медиа контента, события аналитики блоков, E-Commerce события, технические события, события о крашах для SDK. Сами параметры по каждому типу описаны на отдельных страницах, их разбор — в статье про типы событий счётчика.
Идентификатор request_id
Идентификатор нужен для группировки событий одного показа страницы и корректного учёта аудиторных показателей. Его формируют один раз при загрузке страницы по шаблону «число с дробной частью (время в секундах с миллисекундами), дефис, случайное целое». Справка допускает собственный алгоритм, если значение подходит под шаблон.
События системы рекомендаций
Страница про события системы рекомендаций описывает не S2S-запрос, а метод React Native SDK trackRecSysEvent. Параметры метода: название события, метаданные (опционально) и URL, связанный с событием (опционально). В примере метаданные содержат идентификатор позиции, категорию, положение и название алгоритма.
Важно знать
- Пример запроса в справке не совпадает с таблицей базовых параметров: в нём event_type=page_view (в таблице пример event_type — base, а page_view — пример event_name), нет обязательных event_name, event_id, session_id и counter_type, зато есть параметры, которых нет в таблице: en, sr, cd, la, timezone, eid, pt. Что из этого устарело, справка не говорит: сверять с актуальной таблицей.
- Допустимые значения event_type на странице базовых параметров не перечислены («одно из возможных значений»).
- Звёздочка у заголовка ip на странице заголовков не расшифрована; на странице параметров звёздочка означает «обязательный к передаче». Обязательность ip явно не сказана.
- rambler_id описан в таблице дважды: «идентификатор авторизованного пользователя в системе Rambler_id» и «идентификатор пользователя в Рамблере». Это одно поле или два, справка не поясняет.
- Описание android_id повторяет описание IDFV («уникальный идентификатор для группы устройств»), только для Android.
- Формат телефона для phone_hash указан как 999-999-99-99; неясно, считается ли хэш от строки в таком виде. В примерах SDK телефон показан как 79109101090 (SDK хеширует сам).
- Страница про рекомендации относится к React Native SDK, а не к S2S. Как отправить такие события по S2S, справка в этих страницах не описывает.
- Для параметров profile и fingerprint_ip справка даёт формат Json и примеры, но не описывает структуру.