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

Метрики

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

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

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

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

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

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

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

Примеры:

ВопросМетрикаФильтрРезультат
Сколько раз нажали на кнопку «Купить»?EventsEvent equals "button_click" AND props.button_name equals "buy"1,542 события
Сколько сообщений отправлено за день?EventsEvent 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 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 equals "screen_view"7.2 экрана на пользователя

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

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

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

Retention анализ

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

МетрикаФильтрВременной диапазон
Usersprops.days_since_signup greater than 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: две операции (самая медленная)

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

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

Что дальше?

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