Документация

Документация

Обзор Web-SDK

Web-SDK — браузерная библиотека сбора данных платформы Rockstat. Ставится на сайт одним сниппетом, загружает lib.js с вашего сервера и дальше работает сама: собирает просмотры страниц, клики, формы, активность, прокрутку, переключение вкладок, а по запросу — запись сессии. Текущая версия 5.2.

Как устроена#

  1. Сниппет создаёт глобальную функцию rstat4 и очередь вызовов, затем по configure с параметром server подключает https://<server>/lib.js. Библиотека лежит на вашем домене, поэтому блокировщики рекламы её не трогают.
  2. lib.js инициализируется на DOMContentLoaded, забирает очередь и включает трекеры из конфигурации. Весь API — одна функция: rstat4('метод', ...аргументы).
  3. Трекеры генерируют события, библиотека оборачивает их в общий конверт с данными страницы, сессии, пользователя и браузера и отправляет на сервер.

Размер lib.js около 100 КБ. rrweb для записи сессии в него не входит и подгружается отдельным бандлом только при старте записи.

Особенности#

Сессии считаются в браузере#

Номер сессии, её тип и рекламные метки определяются на клиенте и приходят на сервер готовыми в блоке sess. Сессия начинается с любого события, перезапускается по тайм-ауту или при приходе с нового значимого источника. Подробнее.

Идентификатор посетителя, данные сессии, последняя кампания, userId и трейты хранятся в localStorage с префиксом rst4: и дублируются в cookie с префиксом rst4-. Cookie ставятся на домен сайта, поэтому идентификатор общий для всех поддоменов.

Только HTTPS#

По умолчанию библиотека не стартует на http-страницах. Для локальной разработки есть параметр allowHTTP: true. Шифрование значений полей форм требует secure context в любом случае.

Транспорт#

События уходят через navigator.sendBeacon, а если он отказал — через fetch с keepalive и повторами. Запросы с ответом идут только через fetch. Ошибки библиотеки отправляются пикселем в сервис log. Подробнее.

Шифрование значений полей#

Значения полей форм по умолчанию не собираются. Их можно включить открытым текстом или зашифровать в браузере публичным RSA-ключом, тогда расшифровать сможет только сервер с приватным ключом. Подробнее.

Запись сессии#

Запись через rrweb с маскированием всех полей ввода по умолчанию и CSS-классами для исключения участков страницы. Буфер упаковывается fflate и уходит батчами, укладывающимися в лимит beacon. Подробнее.

Синхронизация с GA4 и Метрикой#

Client id Google Analytics 4 и Яндекс Метрики подхватываются автоматически и добавляются к каждому сообщению, что позволяет сводить данные между системами. Подробнее.

Канал сервер → браузер через WebSocket и перехват пикселей зарезервированы и в версии 5.x не активны.

Поддержка браузеров#

Сборка нацелена на актуальные браузеры (browserslist: > 0.25%, not dead), но бандл не использует синтаксис новее ES2019 и проверен на реальных устройствах с Android 11–17 и iOS 15–18. Возможности, которых нет в браузере (Battery API, Client Hints, storage.estimate), просто не попадают в данные.

Разделы#