Отправка данных в Статистику от 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), отмечен звёздочкойStringIP пользователя; при server-side интеграции передают IP исходного пользователя
user-agentStringможет содержать название контрагента или отсутствовать
cookieStringзначение cookie

Обязательные базовые параметры

ПараметрФорматЧто передают
event_typeStringтип события, по факту которого идёт запрос; одно из возможных значений (пример: base)
event_nameStringназвание события (пример: page_view)
project_idNumberидентификатор счётчика из Статистики от SberAds (пример: 29811)
event_idNumberуникальность каждого события; лимит 14 символов
session_idStringидентификатор группы событий; в течение визита может объединять несколько request_id, единый для группы страниц, значение уникальное
request_idNumber.Number-Numberидентификатор показа страницы; события с одинаковым значением относятся к одному показу; формат число с дробной частью, дефис, целое
counter_typeStringтип потока данных: server или pixel

Номера и ссылка

ПараметрФорматЧто передают
session_numberNumberпорядковый номер сессии
session_event_numberNumberпорядковый номер события в сессии
urlURLадрес страницы события; если не передан, адрес обязателен в заголовке HTTP referer
splitArray<String>набор пользовательских сплитов
screen_nameStringназвание экрана, класса приложения
versionN.N.Nверсия счётчика; по умолчанию последняя
randomNumberслучайное число
experimentStringданные о технической конфигурации кода, формирующего события

Идентификаторы пользователя

ПараметрФорматЧто передаютЛимит
top100_idStringfirst-party идентификатор: одинаков для одной установки приложения, разный для разных установок100 символов
adtech_uidStringfirst-party идентификатор пользователя36 символов
adtech_uid_scopeStringdomain или bundle_id, граница применимости идентификаторав справке не нашли
auth_uidStringидентификатор авторизованного пользователя, если известен36 символов
publisher_uidStringfirst-party идентификатор пользователя в приложении (одинаков для одной установки)36 символов
publisher_uid_scopeStringdomain или bundle_id, граница применимостив справке не нашли
saStringfirst-party идентификатор Сбербанкав справке не нашли
svStringthird-party идентификатор Сбербанкав справке не нашли
ruidStringthird-party идентификатор пользователяв справке не нашли
rambler_idStringидентификатор авторизованного пользователя в системе Rambler_idв справке не нашли
sber_idStringсквозной идентификатор Сбера для всех партнёровв справке не нашли
sber_id_subStringидентификатор Сбера для одного партнёрав справке не нашли
email_hashStringхэш sha256 от emailв справке не нашли
phone_hashStringхэш sha256 от телефона, формат указан 999-999-99-99в справке не нашли

Устройство и пользователь

ПараметрФорматЧто передают
gaidStringрекламный идентификатор Android
idfaStringрекламный идентификатор iOS
oaidStringрекламный идентификатор Huawei
sberdevice_idStringидентификатор устройства от sberdevice
idfvStringIDFV, идентификатор для группы устройств, iOS
android_idStringописание в справке дублирует IDFV, для Android
modelStringмодель устройства (iPhone 5s, SM-J500M)
deviceStringназвание устройства по классификации производителя (hwm)
osStringоперационная система (пример: iOS)
os_versionStringверсия ОС (пример: 10.34)
profileJsonлюбые данные о пользователе, которые передаёт площадка
fingerprint_ipJsonфингерпринт

Подробности

Как устроен запрос

Данные идут 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 и примеры, но не описывает структуру.