Перейти к основному содержимому

Метрики

Метрики определяют, что именно измеряется в ваших виджетах. Metriox поддерживает четыре метрики, которые покрывают большинство аналитических сценариев.

Основные метрики​

1. Events (События)​

Подсчитывает общее количество событий.

Формула: COUNT(events)

Когда использовать:

  • Общая активность в боте
  • Частота выполнения действия
  • Объём использования функции

Примеры:

ВопросМетрикаФильтрРезультат
Сколько раз нажали на кнопку «Купить»?EventsEvent Name equals "button_click" AND button_name equals "buy"1,542 события
Сколько сообщений отправлено за день?EventsEvent Name equals "message_sent"12,345 событий

Особенности:

  • Один пользователь может создать много событий
  • Не показывает уникальность пользователей
  • Полезна для измерения интенсивности использования

Виджеты:

  • Series: динамика количества событий
  • Top: самые частые события
  • KPI: общее количество за период
  • Table: детализация по категориям

2. Users (Пользователи)​

Подсчитывает количество уникальных людей, которые сами что-то сделали за период.

Не считаются: получатели сообщений, отправленных ботом (рассылка не делает человека активным), сам бот и записи без определимого автора. В группе считается каждый писавший участник, а не группа целиком. Подробнее — Vitals.

Формула: COUNT(DISTINCT автор события), где автор берётся из $tg.from_id, а при его отсутствии — из platform_user_id

Когда использовать:

  • Количество активных пользователей (DAU, MAU)
  • Охват аудитории
  • Уникальность действия

Примеры:

ВопросМетрикаФильтрВременной диапазонРезультат
Сколько пользователей купили подписку?Users(prop) tg.callback_data (op) equals "purchase_completed"—342 пользователя
DAU (Daily Active Users)Usersлюбые событиявыбранный вами диапазон3,542 пользователя
Активность пользователейEvents per Userлюбые событияпоследние 24 часа12,51 события на пользователя

Особенности:

  • Каждый пользователь считается только один раз
  • Основа для расчёта конверсий
  • Важна для оценки размера аудитории

Виджеты:

  • KPI: активных пользователей
  • Series: динамика DAU/MAU
  • Funnel: конверсия между шагами
  • Top: самые активные пользователи (по user_id)

3. Events per User (События на пользователя)​

Вычисляет среднее количество событий на одного уникального пользователя.

Формула: COUNT(events) / COUNT(DISTINCT platform_user_id)

Когда использовать:

  • Интенсивность использования
  • Вовлечённость (engagement)
  • Сравнение активности сегментов

Примеры:

ВопросМетрикаФильтрРезультат
Сколько в среднем сообщений отправляет пользователь?Events per UserEvent Name equals "message_sent"8.7 события на пользователя

Особенности:

  • Показывает глубину вовлечения
  • Нормализует метрики между сегментами
  • Может быть дробным числом

Виджеты:

  • KPI: средняя активность
  • Series: динамика вовлечения
  • Table: сравнение сегментов
  • Top: группы по активности

4. Sum (Сумма свойства)​

Складывает значения одного числового свойства — например, сумму платежей.

Формула: SUM(значение свойства) по событиям одного источника

В отличие от остальных метрик, Sum требует указать два параметра:

  • Свойство — какое числовое поле складывать, например $tg.total_amount. В выпадающем списке показываются только числовые свойства: сумма по текстовому полю не выдала бы ошибку, она просто вернула бы ноль.
  • Источник — события какого именно источника учитывать (Bot API, MTProto-воркер, Mini App).

Почему источник обязателен. Если бот подключён и через SDK, и через MTProto-воркер, один и тот же платёж записывается дважды — это разные источники, и они не схлопываются в одну запись. Без привязки к одному источнику сумма денег удвоилась бы. Причём на боте с одним источником всё выглядело бы правильно, поэтому ошибку было бы почти невозможно заметить. Из-за этого сервер отклоняет запрос без указанного источника, а не подставляет значение по умолчанию.

Это не противоречит дедупликации счёта

Списывается такое событие один раз — но в хранилище остаются обе строки, именно чтобы отчёт, привязанный к одному источнику, находил свои данные. Дедупликация касается квоты, а не строк, поэтому указывать источник в денежных метриках по-прежнему обязательно.

Значения не преобразуются. Суммы возвращаются ровно в том виде, в каком их присылает Telegram — в минимальных единицах (звёзды, копейки), без конвертации между валютами. Чтобы не смешивать валюты, группируйте по $tg.currency: несколько корректных чисел полезнее одного бессмысленного.

Примеры:

ВопросМетрикаНастройкиРезультат
Сколько звёзд потратили за неделю?Sum$tg.total_amount, источник Bot API48 250
Выручка по валютамSum$tg.total_amount, группировка по $tg.currencyнесколько строк

Виджеты: Series, Top, Table, KPI. В Histogram и Heatmap метрика недоступна — там нечем задать свойство и источник, поэтому такой запрос отклоняется, а не считается молча по всем источникам.


Сравнение метрик​

МетрикаЧто считаетКогда использовать
EventsОбщее количество событийОбъём, частота, интенсивность
UsersУникальные пользователиОхват, DAU/MAU, конверсия
Events per UserСреднее событий на пользователяВовлечённость, engagement
SumСумму числового свойстваДеньги, суммы заказов, любые числовые поля

Пример сравнения​

Событие button_click, период — 7 дней:

МетрикаЗначение
Events10,000 событий
Users2,500 пользователей
Events per User4.0 события на пользователя

Интерпретация:

  • Было 10,000 кликов
  • Кликнули 2,500 уникальных пользователей
  • В среднем каждый пользователь кликнул 4 раза

Применение в виджетах​

Top виджет​

Доступные метрики:

  • Events — топ событий по частоте
  • Users — топ событий по охвату
  • Events per User — топ событий по вовлеченности
  • Sum — топ по сумме числового свойства (например, выручка по валютам)

Пример — топ-5 событий по Users:

СобытиеUsers
bot_started3,542 пользователя
screen_view2,987 пользователей
button_click2,314 пользователей
purchase_viewed1,234 пользователя
message_sent876 пользователей

Funnel виджет​

Доступная метрика:

  • Users (только)

Почему только Users?

  • Воронка отслеживает путь пользователей
  • События могут повторяться
  • Конверсия измеряется в пользователях

Пример:

ШагПользователиКонверсия
1. bot_started10,000—
2. view_pricing3,50035% конверсия
3. purchase_completed8508.5% от начала

Table виджет​

Доступные метрики:

  • Все четыре метрики одновременно

Пример:

СобытиеEventsUsersEvents/User
button_click10,0002,5004.0
screen_view15,0003,0005.0
message_sent8,0001,0008.0

KPI виджет​

Доступные метрики:

  • Любая одна метрика

Примеры:

ПоказательЗначениеИзменениеМетрика
DAU3,542↑ 8% к вчерашнему днюUsers
Средняя активность12.7 событий/польз.↑ 5% к прошлой неделеEvents per User

Histogram виджет​

Доступные метрики:

  • Events
  • Users

Метрика Sum здесь недоступна: у Histogram нет места, где задать свойство и источник.

Пример — распределение активности по часам суток с метрикой Users.

Series виджет​

Доступные метрики:

  • Все четыре метрики (можно несколько линий)

Практические примеры​

DAU, WAU, MAU​

ПоказательМетрикаФильтрВременной диапазон
DAU (Daily Active Users)Usersлюбые событиясутки
WAU (Weekly Active Users)Usersлюбые событиянеделя
MAU (Monthly Active Users)Usersлюбые событиямесяц
Готовые карточки DAU/WAU/MAU считают за завершённые периоды

На странице Vitals эти три показателя считаются за последний завершённый календарный день, неделю и месяц, а не за скользящие 24 часа / 7 / 30 дней. В собственном виджете диапазон задаёте вы.

Конверсия в покупку​

Воронка по метрике Users:

ШагПользователиДоля от начала
1. bot_started10,000100%
2. view_pricing3,50035%
3. purchase_completed8508.5%

Конверсия = 850 / 10,000 = 8.5%

Engagement метрики​

Среднее количество экранов на пользователя:

МетрикаФильтрРезультат
Events per UserEvent Name equals "screen_view"7.2 экрана на пользователя

Сравнение активности premium vs free:

СегментEventsUsersEvents/User
Premium5,00025020.0
Free8,0002,0004.0

Premium-пользователи в 5 раз активнее.

Retention анализ​

Количество возвращающихся пользователей:

МетрикаФильтрВременной диапазон
Usersdays_since_signup > "7"последние 24 часа

Результат:

ПериодПользователи
День 01,000 новых пользователей
День 7350 активных (35% retention)

Лучшие практики​

Выбор метрики​

Events:

  • Сколько раз выполнено действие
  • Общий объём активности
  • Не подходит для подсчёта пользователей

Users:

  • Сколько пользователей выполнило действие
  • DAU, MAU, охват
  • Воронки конверсии
  • Не показывает интенсивность использования

Events per User:

  • Насколько активны пользователи
  • Сравнение вовлечённости сегментов
  • Изменение поведения во времени
  • Может искажаться при малом количестве пользователей

Комбинирование метрик​

Используйте несколько метрик для полной картины:

  • KPI-дашборд
    • DAU (Users)
    • Общая активность (Events)
    • Средняя активность (Events per User)
  • Series-график
    • Линия 1 — Users (масштаб слева)
    • Линия 2 — Events per User (масштаб справа)

Интерпретация результатов​

  • Events растут, Users стабильны — существующие пользователи стали активнее
  • Users растут, Events per User падает — приток новых, менее активных пользователей
  • Events и Users растут пропорционально — здоровый рост продукта

Технические детали​

Вычисление в ClickHouse​

Events:

SELECT COUNT(*) FROM events WHERE ...

Users:

SELECT COUNT(DISTINCT platform_user_id) FROM events WHERE ...

Events per User:

SELECT
COUNT(*) / COUNT(DISTINCT platform_user_id)
FROM events WHERE ...

Производительность​

  • Events: самая быстрая метрика
  • Users: требует дедупликации (медленнее)
  • Events per User: две операции (самая медленная)

Оптимизация:

  • Используйте фильтры для уменьшения объёма данных
  • Ограничивайте временной диапазон
  • Кешируйте часто используемые запросы

Что дальше?​

  • Фильтры — научитесь фильтровать данные для метрик
  • Виджеты — применяйте метрики в разных типах виджетов
  • События — структура данных для метрик