Skip to content

Real-Time Analytics

Real-Time Analytics — встроенный счётчик веб-аналитики, который собирает данные о посетителях ваших сайтов в реальном времени и отображает их в личном кабинете.

Что отслеживается

КатегорияДанные
СтраницыURL, путь, заголовок, реферер
ПосетительIP, страна, город, регион, часовой пояс, язык
УстройствоТип (desktop/mobile/tablet), ОС, версия, браузер, разрешение экрана, пиксельная плотность, тач-поинты
СоединениеТип (wifi/cellular/…), скорость
UTMsource, medium, campaign, content, term
ПоведениеГлубина скролла (25/50/75/100%), время на странице, сессия
ПроизводительностьWeb Vitals: FCP, LCP, CLS, TTFB
ОшибкиJS-ошибки, unhandled promise rejection
ДругоеЦветовая схема (light/dark), rage-click, отправка форм, видимость вкладки

Установка

  1. Откройте раздел Реальное время в личном кабинете.
  2. Нажмите Добавить сайт, введите название и (опционально) домен.
  3. Скопируйте однострочный скрипт и вставьте его перед закрывающим тегом </head> на вашем сайте:
html
<script src="https://back.tgio.app/rt/tracker.js?t=ВАШ_ТОКЕН" async></script>

Сразу после установки данные начнут поступать в дашборд.

Дашборд

Дашборд обновляется в реальном времени через SSE-поток и автополинг каждые 15 секунд.

ВиджетОписание
Online сейчасПосетители за последние 5 минут
Событий за 30 минВсе типы событий
Просмотры страницPageview-события
СессииУникальные сессии
Новые посетителиПервое посещение за 30 мин
ОшибкиJS-ошибки
Средний скролл% прокрутки страницы
Среднее времяСекунды на странице
Web VitalsFCP, LCP, CLS, TTFB (средние)
Live-лентаПоток событий в реальном времени
Топ страницСамые посещаемые URL
ИсточникиРеферреры
Устройства / Браузеры / ОСРазбивка по платформам
СтраныГеографическое распределение
UTMРазбивка по utm_source
ЯзыкиЯзыки браузера
Цветовая схемаlight vs dark
Тип соединенияwifi / cellular / …

API Endpoints

Публичные (без авторизации)

МетодПутьОписание
POST/rt/eventПриём события от трекера (throttle 200 rps)
GET/rt/tracker.js?t=TOKENОтдача JS-трекера с вшитым токеном

Авторизованные (требуют Bearer-токен)

МетодПутьОписание
GET/rt/sitesСписок сайтов пользователя
POST/rt/sitesСоздать сайт
DELETE/rt/sites/:idУдалить сайт
POST/rt/sites/:id/regenerate-tokenПересоздать токен трекера
GET/rt/liveАгрегированная статистика всех сайтов (30 мин)
GET/rt/live/:siteIdСтатистика одного сайта
GET/rt/streamSSE-поток событий (auth через query param ?auth=Bearer%20...)

Формат события (POST /rt/event)

json
{
  "token": "abc123...",
  "type": "pageview",
  "url": "https://example.com/page",
  "path": "/page",
  "referrer": "https://google.com",
  "title": "Page Title",
  "sessionId": "sess-uuid",
  "visitorId": "vid-uuid",
  "language": "ru",
  "colorScheme": "dark",
  "screenWidth": 1920,
  "screenHeight": 1080,
  "viewportWidth": 1440,
  "viewportHeight": 900,
  "pixelRatio": 2,
  "touchPoints": 0,
  "connectionType": "wifi",
  "utmSource": "google",
  "payload": { "fcp": 850 }
}

Хранение данных

  • События хранятся 7 дней.
  • Очистка старых событий — автоматически каждый час (cron).
  • Онлайн-метрика считается за последние 5 минут.
  • Все агрегаты дашборда — за последние 30 минут.

Ограничения по тарифам

Функция доступна на всех тарифах. Лимит количества сайтов определяется планом пользователя (см. plan-limits.ts).

Безопасность

  • Токен трекера используется только для записи событий — он не даёт доступа к данным.
  • При компрометации токена его можно пересоздать через кнопку Regenerate Token или API POST /rt/sites/:id/regenerate-token.
  • SSE-поток требует авторизации через query-параметр auth (Bearer-токен личного кабинета).

Локальное тестирование

bash
# Отправить тестовое событие
curl -X POST http://localhost:3000/rt/event \
  -H "Content-Type: application/json" \
  -d '{"token":"ВАШ_ТОКЕН","type":"pageview","url":"http://localhost","path":"/","sessionId":"test-1","visitorId":"vis-1"}'

# Получить статистику (с авторизацией)
curl http://localhost:3000/rt/live \
  -H "Authorization: Bearer ВАШ_JWT"

Telegram-аналитика для тех, кто понимает