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

Обзор 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), просто не попадают в данные.

Разделы