Web-SDK — браузерная библиотека сбора данных платформы Rockstat. Ставится на сайт одним сниппетом,
загружает lib.js с вашего сервера и дальше работает сама: собирает просмотры страниц, клики, формы,
активность, прокрутку, переключение вкладок, а по запросу — запись сессии. Текущая версия 5.2.
rstat4 и очередь вызовов, затем по configure с
параметром server подключает https://<server>/lib.js. Библиотека лежит на вашем домене,
поэтому блокировщики рекламы её не трогают.DOMContentLoaded, забирает очередь и включает трекеры из
конфигурации. Весь API — одна функция: rstat4('метод', ...аргументы).Размер lib.js около 100 КБ. rrweb для записи сессии в него не входит и подгружается отдельным
бандлом только при старте записи.
Номер сессии, её тип и рекламные метки определяются на клиенте и приходят на сервер готовыми
в блоке sess. Сессия начинается с любого события, перезапускается по тайм-ауту или при приходе
с нового значимого источника. Подробнее.
Идентификатор посетителя, данные сессии, последняя кампания, userId и трейты хранятся в
localStorage с префиксом rst4: и дублируются в cookie с префиксом rst4-. Cookie ставятся на
домен сайта, поэтому идентификатор общий для всех поддоменов.
По умолчанию библиотека не стартует на http-страницах. Для локальной разработки есть параметр
allowHTTP: true. Шифрование значений полей форм требует secure context в любом случае.
События уходят через navigator.sendBeacon, а если он отказал — через fetch с keepalive
и повторами. Запросы с ответом идут только через fetch. Ошибки библиотеки отправляются
пикселем в сервис log. Подробнее.
Значения полей форм по умолчанию не собираются. Их можно включить открытым текстом или зашифровать в браузере публичным RSA-ключом, тогда расшифровать сможет только сервер с приватным ключом. Подробнее.
Запись через rrweb с маскированием всех полей ввода по умолчанию и CSS-классами для исключения участков страницы. Буфер упаковывается fflate и уходит батчами, укладывающимися в лимит beacon. Подробнее.
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), просто
не попадают в данные.