Web-SDK автоматически собирает поведение посетителей на сайте: просмотры страниц, клики,
взаимодействие с формами и полями, активность, прокрутку, переключение вкладок и, по желанию,
запись сессии (rrweb). Данные уходят на ваш сервер Rockstat через sendBeacon или fetch.
События объединяются в сессии прямо в браузере и классифицируются по источнику: реклама, органика, соцсети, партнёрские переходы, реферальные, внутренние и прямые. Подробнее о сессиях. К автоматическим событиям можно добавлять свои с любым набором параметров. Работает на десктопе и в мобильных браузерах.
Сниппет ставится на все страницы сайта, как можно выше в <head>. Сайтов может быть несколько,
каждый отличается по projectId. Актуальная версия сниппета лежит в
репозитории web-sdk.
<script>
!function (w, d, st, cn, hs, lj, rst, se, he) {
if(w.rstat4) return; rst = w.rstat4 = function () {
var a = Array.prototype.slice.call(arguments);
a.length && a[0] === cn && rst._a(Object(a[1]));
return rst.doCall ? rst.doCall.call(rst, a) : rst._q.push(a) && 0; };
rst.push = rst; rst._sv = '5.2.1'; rst._q = [];
rst._jsl = function (src) {
se = d.createElement(st); se.async = !0; se.src = src;
he = d.getElementsByTagName(st)[0]; he.parentNode.insertBefore(se, he); };
rst._a = function(conf){
rst._host = conf.server; rst._prefix = conf.pathPrefix || '';
rst._host && rst._jsl(hs+rst._host+rst._prefix+lj); }
}(window, document, 'script', 'configure', 'https://', '/lib.js');
// --- configuration ---
rstat4('configure', {
server: 'YOUR_SUBDOMAIN.DOMAIN' // <<< replace
});
rstat4('page'); // <<< remove if needed
</script>
Сниппет создаёт глобальную функцию rstat4, ставит в очередь все вызовы до загрузки библиотеки,
а при вызове configure с параметром server подключает https://<server>/lib.js.
После загрузки библиотека инициализируется на DOMContentLoaded и выполняет накопленную очередь.
Весь API — одна функция: первый аргумент — имя метода, остальные — его параметры.
Библиотека работает только на https. Для локальной разработки на http добавьте в конфигурацию
allowHTTP: true.
Обязателен только server. Остальное имеет разумные значения по умолчанию: клики по ссылкам,
формы, активность и прокрутка включены, запись сессии выключена.
rstat4('configure', {
server: 'stat.example.com',
projectId: 1, // необязательно, иначе считается из домена
trackClicks: { allClicks: true }, // клики по любым элементам, не только по ссылкам
trackForms: { encryptionKey: '...' } // шифровать значения полей форм в браузере
});
rstat4('page');
Полный список параметров и настройки каждого трекера описаны в разделе Сниппет и конфигурация.
Событие page библиотека сама не отправляет: вызывайте rstat4('page') после configure,
а в одностраничных приложениях — при каждой смене маршрута. В page можно передать данные о
странице: тип, категорию, идентификатор товара.
// React Router, Vue Router и т.п.: на каждую смену маршрута
router.afterEach(() => {
rstat4('page', { type: 'category', name: 'Товары для дома' });
});
Включите подробный лог в консоли и подпишитесь на исходящие сообщения:
rstat4('enableLogger');
rstat4('onMessage', function (msg) {
console.log('rockstat →', msg.name, msg);
});
В консоли появятся строки RST/Tracker: Initializing..., затем события session, page,
page_loaded. Во вкладке Network должны быть POST-запросы на https://<server>/band/t4k.json
с ответом 200. Лог можно включить и до загрузки библиотеки: window._rst4_logger = true.
Идентификатор посетителя доступен после инициализации:
rstat4('onReady', function () {
console.log('uid:', rstat4('getUid'));
});
Загрузчик можно ставить через Google Tag Manager, но рекомендуется вставлять его прямо в код сайта:
В GTM создайте тег «Пользовательский HTML»:
<script>
var name = ({{category}} || '') + '-' + ({{action}} || '');
var data = {};
if ({{category}}) data.category = {{category}};
if ({{action}}) data.action = {{action}};
if ({{label}}) data.label = {{label}};
if ({{value}}) data.value = {{value}};
rstat4('event', name, data);
</script>
Вместо category, action, label, value подставьте ваши пользовательские переменные.
projectId указывать необязательно: без него он вычисляется из домена страницы.
www и m;aaa.bbb.ru), снимается один уровень (bbb.ru);Посмотреть результат для любого домена можно в консоли:
rstat4('buildProjectId', 'www.shop.example.com')
// → ['example.com', 1617632140]
Если у вас несколько сайтов на поддоменах одного домена и их данные нужно разделять,
задавайте projectId явно: автоматический расчёт для них совпадёт.