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

События, генерируемые SDK, имеют следующий вид

{
  "service": "track",
  "name": "page",
  "projectId": 1617632140,
  "uid": "6410748586712844288",
  "data": {},
  "user": {
    "gaId": "2039255293.1537236640",
    "ymId": "1537242943246737376",
    "hybridPid": "59943dc57bc79f20d8fa53c5",
    "ts": 1537243840171,
    "tz": "Moscow Standard Time",
    "tzo": 180000
  },
  "page": {
    "title": "Rockstat platform",
    "ref": "",
    "url": "https://rock.st/docs/reference/web-sdk/auto-track"
  },
  "sess": {
    "pageNum": 14,
    "eventNum": 90,
    "type": "direct",
    "marks": {},
    "hasMarks": false,
    "num": 2,
    "start": 1537242940499
  },
  "char": {
    "ls": true,
    "ae": true,
    "pr": true,
    "sb": true,
    "ab": true,
    "wp": true
  },
  "browser": {
    "if1": 0,
    "if2": 0,
    "w": 1440,
    "h": 415,
    "tw": 1440,
    "th": 900,
    "aw": 1440,
    "ah": 836,
    "sopr": 2000,
    "soa": -1,
    "sot": "landscape-primary",
    "plt": "MacIntel",
    "prd": "Gecko"
  },
  "lib": {
    "id": "rst-sdk-web",
    "v": "3.14.4",
    "sv": "3.14.0"
  },
  "perf": {
    "cs": 0,
    "ce": 0,
    "scs": -1,
    "rqs": 211,
    "rss": 1549,
    "rse": 1560,
    "dl": 1581,
    "di": 1812,
    "dc": -1
  },
  "scroll": {
    "dh": 1148,
    "ch": 326,
    "to": 479,
    "cs": 100,
    "ms": 100
  }
}

Полная схема событий

Точками в ключах помечен переход на следующий уровень вложености page.title: abc означают {..., page { title: abc, ..... Тип данных {[string]:string} означает обычный JavaScript объект, ключами и значениями которого являются строки. Обратите внимание, что у некоторых значений указан список событий, в которых они присутствуют.

PropertyJavaScriptDescription
idstringunique event id
uidstringrockstat user id
projectIdnumberrockstat project id (receives from with event)
namestringevent name
servicestringevent dependend service
page.urlstringpage full url
page.refstringpage referrer
page.titlestringpage title
page.query{[string]:string}query params
page.query.utm_sourcestringmarketing marks source
page.query.utm_campaignstringmarketing marks campaign
page.query.utm_mediumstringmarketing marks channel
page.query.utm_contentstringmarketing marks ad content
page.query.utm_termstringmarketing marks ad show criteria
page.query.gclidstringmarketing marks has google click id
page.query.yclidstringmarketing marks has yandex click id
sess.typestringsession type: campaign/organic/referral/direct/internal/social
sess.enginestringengine: yandex/google/fb/vk/etc
sess.numnumberuser session number
sess.hasMarksbooleanmarks flag
sess.pageNumnumberpage number in current session
sess.eventNumnumberevent number in current session
sess.marks{[string]:string}session marks
sess.marks.utm_sourcestringmarketing marks source
sess.marks.utm_campaignstringmarketing marks campaign
sess.marks.utm_mediumstringmarketing marks channel
sess.marks.utm_contentstringmarketing marks ad content
sess.marks.utm_termstringmarketing marks ad show criteria
sess.marks.has_gclidstringmarketing marks has google click id
sess.marks.has_yclidstringmarketing marks has yandex click id
sess.startnumbersession start timestamp
sess.refhoststringreferrer hostname (without www)
lib.idstringlibrary indentificator
lib.vstringlibrary version
lib.svstringlibrary snippet version
scroll{[string]:string}Browser visible zone position. On all events, except "session", "page", "page_loaded", "user_params", "identify"
scroll.dhnumberDocument height
scroll.chnumberClient (browser) height
scroll.tonumberTop offset, pixels
scroll.csnumberCurrent scroll, persents
scroll.msnumberMax scroll on current page, persents
browser.if1booleaniframe detect #1
browser.if2booleaniframe detect #2
browser.wnumberbrowser width
browser.hnumberbrowser height
browser.twnumberbrowser total width
browser.thnumberbrowser total height
browser.awnumberbrowser available width
browser.ahnumberbrowser available height
browser.soprnumberscreen.orientation.devicePixelRatio
browser.soanumberscreen.orientation.angle
browser.sotstringscreen.orientation.type
browser.pltnumbernavigator.platform
browser.prdnumbernavigator.product
user{[string]:string}custom user traits
user.tzstringtimezone name
user.tsnumbertimestamp
user.tzonumbertimezone offset * 1000
user.idstringuser id assigned by your website
user.gaIdstringgoogle analytics client id
user.ymIdstringyandex metrika client id
data{[string]:string}extra data fields
char.lsbooleanBrowser LocalStorage support
char.aebooleanBrowser document.addEventListener support
char.prbooleanBrowser Promise support
char.sbbooleanBrowser sendBeacon support
char.abbooleanBrowser atob support
char.wpbooleanBrowser web-push support
perf{[string]:string}Browser performance timings. Available only on "page" and "page_loaded" events. More info at https://goo.gl/c9Dbnr
perf.csnumbertiming.connectStart (reference point, always 0)
perf.scsnumbertiming.secureConnectionStart (num / -1)
perf.dlnumbertiming.domLoading
perf.dcnumbertiming.domComplete (num / -1)
perf.dinumbertiming.domInteractive
perf.rqsnumbertiming.requestStart
perf.rssnumbertiming.responseStart
perf.rsenumbertiming.responseEnd
perf.cenumbertiming.connectEnd