Архитектура
Обработка входящих запросов
Коммуникация сервисов
Руководство пользователя
Получение данных из сервисов
Использование Панели управления
Использование инструментов из комплекта
Работа с Theia
Мониторинг Netdata
Работа с Jupyter
Работа с ClickHouse
Основные принципы
Модификация схемы
Подключение к VPN
Справочная информация
HTTP Redirect
Каналы получения данных
WebSocket
Загрузка больших файлов
JSON-RPC 2.0 RST
API сервисов
Director API
Front API
RockMe Framework (TypeScript)
Переменные окружения
Маппинг путей
Сетевая инфраструктура
Схема хранилища ClickHouse
Создание сервисов
Python + Band Framework
Организация сервиса
Коммуникация с другими сервисами
Работа с ClickHouse
Другие возможности
TypeScript + Rockme Framework
Организация сервиса
Туториалы
Получение данных из других сервисов
Сбор сырых данных Google Analytics
Создание динамического Calltracking
Построение истории отдельного пользователя
Классические модели атрибуции
Вероятностное прохождение воронки
Атрибуция по индексу активности
Воронки
Реализация Cookie-Sync
Сегментация пользователей
X
Выберите раздел

Установка и настройка Web-SDK

Web-SDK осуществляет автоматический сбор информации о поведении пользователей на сайте: просмотры страниц, клики, взаимодействия с формами и полями, активность, перемещение видимой зоны и др.

Объединяет события в сессии, классифицирует на рекламные, органические (поиск), социальные, прямые, внутренние и реферальные. Подробнее о сессиях. Можно добавить сколько угодно произвольных событий с произвольным набором параметров. Работает на персональных компьютерах и в мобильных браузерах.

Вставка кода

Сниппет устанавливается на все страницы сайта. Сайтов может быть несколько. Актуальную версию сниппета можно взять в репозитории web-sdk.

<script type="text/javascript">
  !function (w, d, st, cn, hs, lj, rst, se, he) {
    if(w.rstat) return; rst = w.rstat = 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 = 1.3; 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');
  // Конфигурация, подробности ниже
  rstat('configure', {
    server: 'DOMAIN' //<<< Укажите ваш домен трекера, например "stat.digitalgod.be"
  });
  // Добавляем в очередь событие загрузки страницы. Как только трекер загрузится, оно будет отправлено.
  rstat('page');
</script>

Параметры Web-SDK

ПараметрТип данныхЗначение по умолчанию
serverstring-Обязательный. Домен, на котором расположен сервер. Без https:// и прочего, не относящегося к домену. Пример: yandex.ru
projectIdNumber1Произвольный ID сайта/проекта/чего-то еще. Придумывается самостоятельно. Если ничего не указывать, он сформируется автоматически на основе доменного имени. Нужен, чтобы можно было легко отличать данные одного сайта от другого.
sessionTimeoutNumber1800Тайм-аут сессии: сколько времени с последнего события должно пройти.
lastCampaignExpiresNumber7776000Период, на который запоминаются последние рекламные метки. Указывается в секундах.
cookieDomainStringautoДомен, на который будет установлена основная кука отслеживания. Auto означает, что будет использоваться ваш домен, из которого будут убраны лишние поддомены.
cookiePathString/Путь на сайте, для которого ставится cookie, которые будут доступны ему и его потомкам.
cookiePrefixStringrst-Префикс, добавляемый ко всем проставляемым кукам
loctorPrefixStringrst:Префикс, добавляемый ко всем ключам записей в LocalStorage
trackActivityBoolean,ObjecttrueОтслеживание активности на сайте. Допустимые значения: true/false/объект. Конфигурация: {zeroEvents: false, flushInterval:5,scrollEvents: true,domEvents: true}
trackClicksBoolean,ObjecttrueАвтоматическое отслеживание кликов. Обрабатывает все клики и автоматически классифицирует их на внутренние и внешние. Допустимые значения: true/false/объект. Конфигурация: {allClicks: false}
trackFormsBooleantrueАвтоматическое отслеживание взаимодействий с формами. Генерирует события field*, form*
pixelSyncBoolean,Object{}Draft! Параметры перехвата пикселей. Устанавливаются пользовательскими параметрами. Подробнее в разделе "Перехват пикселей".
allowHTTPBooleanfalseПо умолчанию работает только на https. Этим параметром можете разрешить работу с http (если у на сайте нет SSL)
allowSendBeaconBooleantrueИспользовать ли, для передачи данных на сервер транспорт sendBeacon (при доступности)
allowXHRBooleantrueИспользовать ли, для передачи данных на сервер транспорт XHR (при доступности)
activateWsBooleanfalseИспользовать ли, для передачи данных на сервер транспорт WebSocket (при доступности)

Установка через GTM

Загрузчик можно устанавливать через GTM, но рекомендуется, устанавливать напрямую в код сайта, по нескольким причинам:

  1. Загрузится первым, что позволит перехватить синхронизации кук с другими сервисами и сохранить у себя себя соответствия для дальнейшего использования.
  2. Поймается больше "отказников"
  3. Не сработает adblock, ведь платформа расположена на вашем домене, и он не будет блокироваться, в отличии от GTM

Получение событий из Data Layer

В GTM создаем новый тег типа "Пользовательский HTML" со следующим содержимым:

<script type="text/javascript">
  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}};
  rstat('event', name, data)
</script>

вместо category, action, label, value подставьте пользовательские переменные, используемые у вас для передачи этих данных в GA.

Формирование ProjectId

В параметрах не обязательно указывать projectId, в этом случае он будет сгенерирован автоматически на основе доменного имени. За основу берется домен, к которому применяются правила:

  • отрезаются поддомены www и 'm'
  • если в домене осталось 3 и более уровней (aaa.bbb.ru), снимается один уровень (bbb.ru).

projectId

rstat('buildProjectId')

Вы можете поэкспериментировать с генерацией projectId, открыв инструменты разработчика.

Материалы по теме