Введение
Архитектура
Обработка входящих запросов
Коммуникация сервисов
Руководство пользователя
Получение данных из сервисов
Использование Панели управления
Туториалы
Получение данных из других сервисов
Построение истории отдельного пользователя
Классические модели атрибуции
Вероятностное прохождение воронки
Атрибуция по индексу активности
Воронки
X
Выберите раздел

Транспорт Web-SDK

Адрес

Каждое событие — POST-запрос с JSON-телом на

https://<server><pathPrefix>/<urlMark>/t4k.json?dig=<хеш>&td_trans=<b|f>

server, pathPrefix (по умолчанию пусто) и urlMark (по умолчанию band) берутся из конфигурации. Имя сервиса track на пути заменяется на t4k; для других сервисов, к которым обращаются request и notify, путь имеет вид /<urlMark>/<service>.json.

Параметры строки запроса:

ПараметрОписание
digХеш тела запроса (cyrb53). Позволяет серверу отбрасывать дубликаты при повторах
td_transИспользованный транспорт: b — sendBeacon, f — fetch

Выбор транспорта

События (page, event, автоматические, notify):

  1. navigator.sendBeacon, если он поддерживается и allowSendBeacon: true. Beacon не блокирует страницу и гарантированно доставляет данные при выгрузке страницы, поэтому page_unload успевает уйти.
  2. Если beacon отказал (очередь переполнена или тело больше 64 КБ) — fetch с keepalive: true и повторами через 1 и 5 секунд.

Запросы с ответом (request, опция request: true): всегда fetch, тайм-аут ответа 10 секунд, ответ разбирается как JSON. Повторов нет, чтобы не дублировать побочные эффекты на сервере.

Лог ошибок библиотеки: уходит в сервис log пикселем-изображением /<urlMark>/log.gif, данные в строке запроса. Этот же пиксель используется при опции transport_img: true.

Параметр конфигурацииПо умолчаниюОписание
allowSendBeacontrueИспользовать sendBeacon для событий
allowXHRtrueРазрешить fetch
activateWs, wsServer, wsPathfalseWebSocket. Зарезервировано, не используется

Протокол и HTTPS

Запросы идут по https. Единственное исключение — страница открыта по http и в конфигурации стоит allowHTTP: true: тогда и события уходят по http, что рассчитано на локальную разработку с сервером на том же хосте.

Сервер должен отвечать на CORS: события уходят с Origin сайта. Beacon и fetch с телом text/plain не требуют preflight-запроса OPTIONS.

Ограничения размера

Лимит sendBeacon — 64 КБ на запрос. Обычные события укладываются в несколько килобайт. Батчи записи сессии режутся по trackRecord.maxBatchBytes (по умолчанию 40 000 символов), чтобы вместе с конвертом сообщения не превышать лимит.

Проверить доставку проще всего во вкладке Network инструментов разработчика: фильтр по t4k.json, у каждого запроса должен быть ответ 200. Для просмотра тел сообщений подпишитесь на rstat4('onMessage', cb).

События unload и beforeunload ненадёжны в мобильных браузерах, поэтому page_unload может не доходить. Для оценки времени на странице используйте page_visibility и activity.