Документация
Обзор Web-SDK
Web-SDK — браузерная библиотека сбора данных платформы Rockstat. Ставится на сайт одним сниппетом,
загружает lib.js с вашего сервера и дальше работает сама: собирает просмотры страниц, клики, формы,
активность, прокрутку, переключение вкладок, а по запросу — запись сессии. Текущая версия 5.2.
Как устроена#
- Сниппет создаёт глобальную функцию
rstat4и очередь вызовов, затем поconfigureс параметромserverподключаетhttps://<server>/lib.js. Библиотека лежит на вашем домене, поэтому блокировщики рекламы её не трогают. - lib.js инициализируется на
DOMContentLoaded, забирает очередь и включает трекеры из конфигурации. Весь API — одна функция:rstat4('метод', ...аргументы). - Трекеры генерируют события, библиотека оборачивает их в общий конверт с данными страницы, сессии, пользователя и браузера и отправляет на сервер.
Размер lib.js около 100 КБ. rrweb для записи сессии в него не входит и подгружается отдельным
бандлом только при старте записи.
Особенности#
Сессии считаются в браузере#
Номер сессии, её тип и рекламные метки определяются на клиенте и приходят на сервер готовыми
в блоке sess. Сессия начинается с любого события, перезапускается по тайм-ауту или при приходе
с нового значимого источника. Подробнее.
Хранилище: cookie и localStorage#
Идентификатор посетителя, данные сессии, последняя кампания, 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), просто
не попадают в данные.