Trektik
Документация

Стандартные события

Какие данные Trektik собирает автоматически и что можно отправлять вручную

При включённом autocapture: true (по умолчанию) SDK автоматически собирает pageview, клики, отправки форм и глубину скролла. Никакого дополнительного кода не нужно.

Автозахват (Autocapture)

Собираются автоматически при autocapture: true

$pageviewauto

Просмотр страницы. Отправляется при загрузке, переходах через History API, popstate и изменении хэша. В SPA-приложениях (React, Vue) трекается каждый переход.

Свойства
titlestring
Заголовок страницы (document.title)
page_urlstring
Полный URL страницы
page_pathstring
Путь без домена (/pricing)
referrerstring
Предыдущая страница
$clickauto

Клик по любому элементу на странице. Автоматически исключает password-инпуты и элементы с атрибутом data-trektik-no-capture или классом trektik-no-capture.

Свойства
tagstring
HTML-тег элемента (a, button, div...)
textstring
Текст элемента (до 255 символов)
classesstring
CSS-классы элемента
element_idstring
Атрибут id элемента
hrefstring
Ссылка (для тегов a)
$form_submitauto

Отправка HTML-формы. Значения полей НЕ собираются — только метаданные формы. Это сделано для приватности пользователей.

Свойства
form_idstring
Атрибут id формы
form_namestring
Атрибут name формы
form_actionstring
URL action формы
$scroll_depthauto

Глубина скролла страницы. Отправляется при достижении порогов 25%, 50%, 75% и 100%. Каждый порог отправляется только один раз за pageview.

Свойства
depthnumber
Процент скролла: 25, 50, 75 или 100
Чтобы исключить элемент из автозахвата кликов, добавьте атрибут data-trektik-no-capture или класс trektik-no-capture.

Выручка

Специальное событие для финансовой аналитики

$revenue

Событие для трекинга платежей. Используется в Revenue Analytics для расчёта LTV, MRR, ARPU. Отправляется вручную из кода при успешной оплате.

Свойства
amountnumber
Сумма платежа (обязательно)
currencystring
Валюта: RUB, USD, EUR и т.д.
product_idstring
Идентификатор продукта или тарифа
revenue_typestring
Тип: one_time, subscription или refund
Пример: отправка выручки
trektik.revenue({
  amount: 4990,
  currency: "RUB",
  product_id: "pro_monthly",
  revenue_type: "subscription",
});

Фрустрация

Автоматическое обнаружение проблем UX

$frustrationauto

Трекается автоматически при включённом модуле фрустрации. Обнаруживает четыре паттерна пользовательского раздражения.

Свойства
frustration_typestring
Тип: rage_click, dead_click, error_click, thrashed_cursor
selectorstring
CSS-селектор элемента
click_countnumber
Количество кликов (для rage_click)
Типы фрустрации
rage_click3+ кликов по одному элементу за 1 секунду
dead_clickКлик, после которого DOM не изменился в течение 500 мс
error_clickКлик, за которым последовала JS-ошибка в течение 2 секунд
thrashed_cursorХаотичное движение курсора с резкими сменами направления

Heatmaps

Визуализация взаимодействия с интерфейсом

При включённом модуле Heatmaps SDK собирает три типа данных для построения тепловых карт. Данные отправляются батчами на отдельный эндпоинт /v1/heatmap/events.

Типы данных Heatmaps
clickКоординаты клика (x, y), CSS-селектор, размер viewport
scrollГлубина скролла в процентах, размер viewport
attentionВремя в миллисекундах, которое пользователь провёл на видимой области страницы
Включение Heatmaps
trektik.init("tk_proj_abc123", {
  endpoint: "https://collect.trektik.ru",
  heatmap: true,  // включить сбор данных для тепловых карт
});

Session Replay

Запись и воспроизведение пользовательских сессий

Session Replay записывает DOM-мутации через библиотеку rrweb и отправляет их на сервер в виде сжатых чанков. Это не видео — это воспроизведение реальных действий пользователя.

Настройки приватности
maskTextInputМаскировать содержимое текстовых полей (по умолчанию: true)
maskAllTextМаскировать весь текст на странице
blockSelectorCSS-селектор элементов, которые нужно полностью скрыть из записи
Включение Session Replay
trektik.init("tk_proj_abc123", {
  endpoint: "https://collect.trektik.ru",
  replay: {
    enabled: true,
    sampleRate: 0.5,       // записывать 50% сессий
    maskTextInput: true,   // маскировать инпуты
    blockSelector: ".private-data",  // скрыть элементы
  },
});

In-App Surveys

Опросы пользователей внутри продукта

SDK автоматически показывает опросы, настроенные в дашборде Trektik, и отправляет ответы на сервер. Поддерживаемые форматы:

NPS

Оценка от 0 до 10 — насколько вероятно, что пользователь порекомендует продукт

CSAT

Оценка удовлетворённости по шкале (звёзды, смайлы)

Open-ended

Свободный текстовый ответ на открытый вопрос

Multiple choice

Выбор одного или нескольких вариантов из списка

Product Guides

Онбординг-туры, тултипы и баннеры

SDK периодически запрашивает у сервера активные гайды для текущего пользователя и показывает их. Для каждого гайда автоматически трекаются события:

guide_viewedГайд показан пользователю
guide_clickedПользователь нажал на CTA в гайде
guide_dismissedПользователь закрыл гайд

Поддерживаемые форматы: tooltip, banner, modal, slideout. Настраиваются в разделе Guides дашборда.

Общие поля каждого события

Автоматически добавляются SDK ко всем событиям

Независимо от типа события, SDK автоматически добавляет следующие поля. Их не нужно передавать вручную.

Идентификация
user_idID пользователя (после identify)
device_idУникальный UUID устройства (генерируется автоматически)
session_idID текущей сессии
group_idID группы/компании (если задан)
Страница
page_urlПолный URL
page_pathПуть без домена
referrerПредыдущая страница
UTM-метки
utm_sourceИсточник трафика
utm_mediumКанал
utm_campaignКампания
Устройство
osОперационная система
browserБраузер и версия
device_typedesktop, mobile или tablet
screen_width / screen_heightРазрешение экрана
Гео
country_codeКод страны (определяется по IP на сервере)
cityГород
Мета
timestampВремя события (ISO 8601)
insert_idУникальный ID для дедупликации
sdk_versionВерсия SDK
platformweb, node, mobile и т.д.

Кастомные события

Отправляйте любые события из кода

Помимо стандартных событий, вы можете отправлять любые свои события с произвольными свойствами. Используйте метод trektik.track().

Примеры кастомных событий
// Покупка
trektik.track("purchase_completed", {
  plan: "pro",
  amount: 4990,
  payment_method: "card",
});

// Действие в приложении
trektik.track("report_exported", {
  format: "csv",
  rows: 15000,
  date_range: "30d",
});

// Онбординг
trektik.track("onboarding_step", {
  step: 3,
  step_name: "connect_sdk",
  completed: true,
});
Не отправляйте персональные данные (email, телефон, ФИО) в свойствах событий, если это не требуется для аналитики. Для идентификации пользователей используйте trektik.identify().
Все события доступны для анализа в дашборде сразу после отправки. Задержка обычно составляет менее 5 секунд.