Архитектура
Обработка входящих запросов
Коммуникация сервисов
Руководство пользователя
Получение данных из сервисов
Использование Панели управления
Использование инструментов из комплекта
Работа с 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
Выберите раздел

Автоматически генерируемые события в WebSDK

Старт сессии

Сессионные данные общие на все события, у сессии есть только название. Даже data нет

{
  //...
  "name": "session"
  //...
  "sess": {
    // подробнее в разделе общей структуры данных и разделе про сессии
  }
  //...
}

Загрузка страницы

Просмотры страниц могут дополняться информацией о странице, вроде типа страницы или категории. Дополнительную информацию необходимо передавать самостоятельно.

{
  //...
  "name": "page",
  //...
  "data": {
    "category": "content page",
    "name": "delivery"
  }
  //...
  "perf": {
    // подробнее в разделе с общей структурой данных
  }
  //...
}

Страница загружена

Содержит данные производительности сети и браузера, которые находятся в perf общей структуры данных

{
  //...
  "name": "page_loaded",
  //...
  "perf": {
    // подробнее в разделе с общей структурой данных
  }
  //...
}

Выгрузка страницы

Вызывается при переходе на другую страницу или закрытии браузера/вкладки

{
  //...
  "name": "page_unload",
  //...
  "perf": {
    // подробнее в разделе с общей структурой данных
  }
  //...
}
Эта статья адаптирована от прошлой версии. Если попадётся неточность, сообщите об этом в сообществе.

Клики по ссылкам

{
  //...
  "name": "link_click",
  //...
  "data": {
    "target": {
      "tag": "span",
      "type": "",
      "name": "",
      "ph": "",
      "cls": "phonablet-hide", 
      // класс элемента
      "id": "",
      "href": "",
      "text": "Меню"
    },
    "href": "https://www.example.com/link/#header-menu",
    "text": "Текст ссылки",
    // Ссылка уводит посетителя на другой сайт
    "outbound": true | false
  }
  //...
}

Клики по любым другим элементам

{
  //...
  "name": "element_click",
  //...
  "data": {
    "target": {
      "tag": "input", 
        // наименование наиболее глубокого в иерархии html-тега, на который пришелся клик 
      "type": "text", 
      "name": "",
      "ph": "Введите город прибытия",
        // наименование плейсхолдера элемента
      "cls": "SearchWidget-input -to",
        // наименование класса 
      "id": "",
      "href": "",
      "text": ""
    }
  }
  //...
}
Отслеживание всех кликов отключено по-умолчанию. Для включения см. описание trackClicks [в настройках сниппета](/docs/reference/web-sdk/snippet-and-configuration/)
Активация отслеживания всех кликов не меняет поведение при кликах по ссылкам. При клие по ссылке link_click будет по-прежнему отправляться, element_click - не будет.
Отправка value сейчас не производится

Взаимодействие с полями формы

Три события с одинаковым набором параметров:

  • field_focus - каретка поставлена в поле ввода
  • field_change - в поле поменялись данные
  • field_blur - каретка покинула поле ввода
{
  //...
  "name": "field_change",
  //...
  "data": {
    // Название события DOM.
    "event": "change",
    // element tag: html тэг элемента формы
    "etag": "input",
    // element type: атрибут type элемента формы
    "etype": "text",
    // element name: атрибут name элемента формы
    "ename": "delivery_address", // Название поля формы
    // element placeholder: атрибут placeholder (значение пока ничего не вписано)
    "eph": null,
    // element class: атрибут class элемента формы (css)
    "ecl": "select2-selection form-field",
    // element id: атрибут id элемента формы
    "eid": "",
    // form method: http метод отправки формы
    "fmthd": "post",
    // form action: url, куда будет отправлена форма
    "fact": "/checkout/purchase",
    // form name: атрибут name элемента формы
    "fname": "order-form",
    // form class: атрибут class элемента формы (css)
    "fcls": "",
    // element id: атрибут id элемента формы
    "fid": "order-form",
  }
  //...
}

Если форма отсутствует

{
  //...
  "name": "field_change",
  //...
  "data": {
    // Название события DOM.
    "event": "change",
    // element tag: html тэг элемента формы
    "etag": "input",
    // element type: атрибут type элемента формы
    "etype": "text",
    // element name: атрибут name элемента формы
    "ename": "delivery_address", // Название поля формы
    // element placeholder: атрибут placeholder (значение пока ничего не вписано)
    "eph": "",
    // element class: атрибут class элемента формы (css)
    "ecl": "select2-selection form-field",
    // element id: атрибут id элемента формы
    "eid": "",
    // if form not present
    "ferr": "Form element absent"
  }
  //...
}
Отправка value сейчас не производится

Это одни из самых важных автоматических событий, по ним можно понимать, где произошел затык

Отправка формы

{
  //...
  "name": "form_submit",
  //...
  "data": {
    // DOM событие отправки формы
    "event": "submit",
    // адрес назначения формы
    "fact": "/cart",
    // form class: атрибут class элемента формы (css)
    "fcls": "cart-submit",
    // element id: атрибут id элемента формы
    "fid": "cart-submit",
    // form method: http метрод отправки формы
    "fmthd": "post",
    // form name: атрибут name элемента формы
    "fname": "cart"
  }
  //...
}
Отправка value сейчас не производится

TODO: описать form_invalid

Скролл / прокрутка

Событие прокрутки на определенную позицию страницы. Сами данные скрола находятся в scroll общей структуры данных и добавляются ко всем событиям на основе действий пользователя.

{
  //...
  "name": "scroll"
  //...
  "scroll": {
    // подробнее в разделе общей структуры данных
  }
  //...
}

Активность: события объектной модели документа (DOM)

Внутри Rockstat находится счетчик браузерных событий, который аккумулирует статистику и раз в 5 секунд (значение параметра по умолчанию) отправляет данные на сервер. Дополнительно содержит счетчик, который инкрементируется в конце каждого периода. Если активности нет, на сервер ничего не отправится, но счетчик прибавит единицу.

{
  //...
  "name": "activity",
  //...
  "data": {
    // Номер итерации обработки активности
    "iteration": 65,
    // Номер итерации содержащей действия (другие 61 были без активности пользователя и не отправлялись)
    "active": 4,
    // Интервал отправки данных об активности, секунд
    "interval": 5,
    // Событий движения мыши
    "mousemove": 62,
    // Событий нажатия кнопки мыши
    "mousedown": 2,
    // Событий отпускания кнопки мыши
    "mouseup": 2,
    // Событий кликов
    "click": 2,
    // Событий прокрутки (именно на уровне мыши/трекпада)
    "wheel": 23,
    // Событий скролла станицы
    "scroll": 22
    // и другие
  }
  //...
}

Полный список отслеживаемых событий браузера:

touchmove, touchstart, touchleave, touchenter, touchend, touchcancel, click, mouseup, mousedown, mousemove, mousewheel, mousewheel, wheel, scroll, keypress, keydown, keyup, resize, focus, blur

Суть событий описана на developer.mozilla.org/en-US/docs/Web/Events