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

Базовая структура событий Web-SDK

Каждое событие уходит на сервер POST-запросом на https://<server><pathPrefix>/<urlMark>/t4k.json с телом в JSON. Блоки page, sess, user, char, browser, lib одинаковы для всех событий, data зависит от события, perf и scroll добавляются не ко всем.

{
  "service": "track",
  "name": "page",
  "data": { "type": "content", "name": "Контакты" },
  "projectId": 1617632140,
  "uid": "6410748586712844288",
  "user": {
    "td": 0,
    "id": "42",
    "plan": "pro",
    "ga4ClientId": "2039255293.1537236640",
    "ymId": "1537242943246737376",
    "ts": 1757960000000,
    "tz": "Europe/Moscow",
    "tzo": 10800000
  },
  "page": {
    "title": "Rockstat",
    "path": "/contacts",
    "ref": "https://www.google.com/",
    "url": "https://example.com/contacts?utm_source=g",
    "query": { "utm_source": "g" },
    "domain": "example.com",
    "scheme": "https"
  },
  "sess": {
    "pageNum": 3,
    "eventNum": 17,
    "num": 2,
    "type": "campaign",
    "engine": "google",
    "refhost": "google.com",
    "marks": { "utm_source": "g" },
    "hasMarks": true,
    "marksHash": 123456,
    "start": 1757960000000
  },
  "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": 0, "sot": "landscape-primary",
    "plt": "MacIntel", "prd": "Gecko",
    "uad": { "platform": "macOS", "platformVersion": "14.5.0", "mobile": false },
    "nc": { "effectiveType": "4g", "rtt": 50 },
    "ne": { "hc": 8, "dm": 8, "sq": 296630877388, "su": 12345 },
    "nb": { "a": 1, "ch": 1, "l": 100, "ct": 0, "dt": -1 }
  },
  "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 },
  "lib": { "id": "web-sdk", "v": 5002001, "sv": 5002001, "st": 1757960000000 }
}

В строке запроса передаются dig — хеш тела (cyrb53) и td_trans — использованный транспорт (b — beacon, f — fetch). Подробнее в разделе Транспорт.

Блоки сообщения

БлокСодержимое
name, dataИмя события и его данные. Список автоматических событий и их data — в разделе Автоматические события
projectIdИдентификатор проекта из конфигурации или хеш домена
uidИдентификатор посетителя. Хранится в cookie и localStorage
userid и трейты из identify; ga4ClientId и ymId из автоматических синхронизаций с GA4 и Яндекс Метрикой; ts, tz, tzo — время и часовой пояс клиента; td — расхождение часов с сервером
pageurl, path, query (разобранная строка запроса, включая UTM, gclid, yclid), ref, title, domain, scheme
sessСессия: номер, старт, счётчики, тип источника, метки. Подробнее в разделе Сессии
charВозможности браузера: ls localStorage, ae addEventListener, pr Promise, sb sendBeacon, ab atob, wp web push
browserw/h — область просмотра, tw/th — экран, aw/ah — доступная область, sopr — devicePixelRatio × 1000, soa/sot — ориентация, if1/if2 — признаки iframe, plt/prd — платформа и движок, uad — Client Hints, nc — сеть, ne — ядра, память и квота хранилища, nb — батарея
perfNavigation Timing: cs connectStart, ce connectEnd, scs secureConnectionStart, rqs requestStart, rss/rse responseStart/End, dl domLoading, di domInteractive, dc domComplete. Только у page и page_loaded
scrolldh — высота документа, ch — высота области просмотра, to — смещение сверху, cs — текущая прокрутка в процентах, ms — максимальная прокрутка на странице. У всех событий, кроме session, page, page_loaded, user_params, rec_start, rec_batch
libid, v — версия библиотеки числом major × 1e6 + minor × 1e3 + patch, sv — версия сниппета, st — время старта библиотеки

Значения в browser.uad, browser.nc, browser.ne.sq/su и browser.nb собираются асинхронно и могут отсутствовать в первых сообщениях страницы. Отсутствующие оценки батареи передаются как -1.

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

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

PropertyJavaScriptDescription
uidstringrockstat visitor id, stored in cookie and localStorage
projectIdnumberrockstat project id (received with event)
namestringevent name
servicestringtarget service, always "track" for events
data{[string]:any}event payload, depends on event
page.urlstringpage full url
page.pathstringpage path (pathname)
page.refstringpage referrer
page.titlestringpage title
page.domainstringdomain/hostname of browsed page
page.schemestringhttp/https
page.query{[string]:string}parsed query params, including utm_*, gclid, yclid
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.gclidstringgoogle click id
page.query.yclidstringyandex click id
sess.typestringsession type: campaign/organic/social/partner/referral/internal/direct/webview
sess.enginestringsearch engine or social network: google/yandex/fb/vk/tiktok/telegram/etc
sess.numnumbervisitor session number
sess.startnumbersession start timestamp
sess.hasMarksbooleanmarks flag
sess.pageNumnumberpage number in current session
sess.eventNumnumberevent number in current session
sess.refhoststringreferrer hostname (without www)
sess.keywordstringsearch keyword when the engine passes it in the referrer
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_gclidnumbergoogle click id present
sess.marks.has_yclidnumberyandex click id present
sess.marks.has_fbclidnumberfacebook click id present (does not force campaign type)
sess.marks.pid, cid, sub1…sub5stringpartner marks, force the "partner" session type
sess.marksHashnumberhash of campaign or partner marks set, used to detect a new campaign
user{[string]:string}user id, traits and synced ids
user.idstringuser id assigned by your website via identify
user.tdnumberclock skew between client and server, ms
user.tsnumberclient timestamp
user.tzstringtimezone name
user.tzonumbertimezone offset, ms
user.ga4ClientIdstringgoogle analytics 4 client id (synced automatically)
user.ymIdstringyandex metrika client id (synced automatically)
char.lsbooleanbrowser localStorage support
char.aebooleanbrowser addEventListener support
char.prbooleanbrowser Promise support
char.sbbooleanbrowser sendBeacon support
char.abbooleanbrowser atob/btoa support
char.wpbooleanbrowser web push support
browser.if1numberiframe detect #1 (window !== top)
browser.if2numberiframe detect #2 (parent has frames)
browser.wnumberviewport width
browser.hnumberviewport height
browser.twnumberscreen width
browser.thnumberscreen height
browser.awnumberscreen available width
browser.ahnumberscreen available height
browser.soprnumberdevicePixelRatio * 1000
browser.soanumberscreen.orientation.angle
browser.sotstringscreen.orientation.type
browser.pltstringnavigator.platform
browser.prdstringnavigator.product
browser.uad{[string]:string}User-Agent Client Hints: architecture, bitness, mobile, model, platform, platformVersion, uaFullVersion
browser.nc{[string]:string}network: type, effectiveType, downlinkMax, rtt (navigator.connection)
browser.ne.hcnumberCPU cores (hardwareConcurrency)
browser.ne.dmnumberRAM in GB (deviceMemory)
browser.ne.sqnumberorigin storage quota, bytes (navigator.storage.estimate)
browser.ne.sunumberorigin storage usage, bytes
browser.nb.anumberbattery API available
browser.nb.chnumberbattery charging (0/1)
browser.nb.lnumberbattery level, percent
browser.nb.ctnumberseconds until fully charged, -1 when unknown
browser.nb.dtnumberseconds until fully discharged, -1 when unknown
perf{[string]:number}Navigation Timing, only on "page" and "page_loaded"
perf.csnumbertiming.connectStart (reference point, always 0)
perf.cenumbertiming.connectEnd
perf.scsnumbertiming.secureConnectionStart (num / -1)
perf.rqsnumbertiming.requestStart
perf.rssnumbertiming.responseStart
perf.rsenumbertiming.responseEnd
perf.dlnumbertiming.domLoading
perf.dinumbertiming.domInteractive
perf.dcnumbertiming.domComplete (num / -1)
scroll{[string]:number}Viewport position. On all events except "session", "page", "page_loaded", "user_params", "rec_start", "rec_batch"
scroll.dhnumberdocument height
scroll.chnumberviewport height
scroll.tonumbertop offset, pixels
scroll.csnumbercurrent scroll, percent
scroll.msnumbermax scroll on current page, percent
lib.idstringlibrary identifier: "web-sdk"
lib.vnumberlibrary version packed as number: major*1e6 + minor*1e3 + patch (5.2.1 → 5002001)
lib.svnumbersnippet version, packed the same way
lib.stnumberlibrary start timestamp