Пользователи
Страница Пользователи показывает список уникальных пользователей, взаимодействовавших с вашим ботом в выбранном временном диапазоне.
Что показывает страница
Каждая строка таблицы содержит:
| Столбец | Описание |
|---|---|
| ID пользователя | Идентификатор, под которым источник данных записал событие. Для личных переписок это Telegram ID пользователя; для сообщений в группе MTProto-воркер записывает сюда ID чата, а настоящий автор лежит в $tg.from_id, и именно его считают метрики пользователей |
| Имя | Имя и фамилия из профиля Telegram |
| Юзернейм | @username |
| Язык интерфейса | $tg.language_code, например ru |
| Telegram Premium | «Да» или «Нет». Прочерк значит, что Metriox ни разу не получил статус этого пользователя: например, пользователь известен только по событиям, без полного профиля. Прочерк не означает «Нет» |
| Параметр диплинка | $tg.start_raw: параметр /start, по которому пользователь пришёл в бота |
| Первый визит, Последний визит | Первое и последнее взаимодействие за выбранный период |
| Событий за период | Количество событий пользователя за выбранный период |
Столбцы профиля называются так же, как атрибуты группы «Профиль» в условиях типа Пользователь в фильтрах, и читают те же значения: если условие «Параметр диплинка» со значением promo нашло пользователя, в его строке будет promo.
Столбцы показываются всегда, даже если у пользователей на странице нет значений: прочерк в ячейке значит, что значение не записано.
В карточке пользователя, которая открывается по клику на строку, перечислены те же свойства в том же порядке. Под каждым свойством указан путь, где оно хранится, и что там лежит. Например, «Нет» у Telegram Premium прочитано из $tg.is_premium = false, а «не записано» значит, что по этому пути ничего не пришло.
Свойства профиля пользователя ($tg.*)
При подключении через токен Telegram-бота Metriox автоматически сохраняет свойства пользователя из Telegram:
| Свойство | Тип | Описание |
|---|---|---|
$tg.telegram_user_id | number | Идентификатор пользователя в Telegram |
$tg.first_name | string | Имя пользователя |
$tg.last_name | string | Фамилия (если заполнена) |
$tg.username | string | Username в Telegram (если задан) |
$tg.language_code | string | Языковой код (например, "ru", "en") |
$tg.is_premium | boolean | Premium-статус (если установлен Telegram) |
Откуда берётся профиль и почему бывает пусто
У большинства аккаунтов в Telegram нет @username, а имя приходит только в тех обновлениях, где Telegram прислал объект from. Поэтому пользователь может быть в списке с одним лишь идентификатором — он существует и учитывается везде, просто назвать его пока нечем.
Что наполняет профиль:
- Mini App —
initDataсодержит полную личность, профиль заполняется всегда. - Серверный SDK (Bot API) — личность приходит, если передавать в SDK апдейт целиком (см. SDK). Без этого Metriox всё равно восстановит
@usernameиз самих событий, но имя, язык и Premium останутся неизвестными. - Подключение по токену бота (MTProto) — Telegram не отдаёт боту личку, поэтому в личных чатах этот путь профиль не наполняет; в группах и каналах — наполняет.
Историю «до Metriox» получить нельзя: у Telegram нет метода, который вернул бы боту список писавших ему людей. Считается только то, что происходит после подключения.
Периоды в разрезах по свойствам
Разрез по языку, Premium или кампании считает пользователей, активных за выбранный период, и берёт их профиль по состоянию на сейчас. Пользователь, чей профиль записан полгода назад, но который писал вчера, попадает в отчёт за вчера. Тот, кто активен, но пока безымянен, попадает в корзину «не задано».
Параметр /start
Диплинк t.me/YourBot?start=<параметр> передаёт боту значение, когда человек открывает чат по ссылке. Ссылка на мини-приложение с startapp=<параметр> работает так же. Telegram доставляет только латинские буквы, цифры, подчёркивание и дефис, не длиннее 64 символов: ссылка с другими символами (&, =, %26, пробел, кириллица) до бота не дойдёт, и ничего не запишется.
Metriox сохраняет:
| Свойство | Тип | Описание |
|---|---|---|
$tg.start_raw | string | Весь параметр как есть. Записывается всегда |
$tg.start_source | string | Значение ключа source |
$tg.start_medium | string | Значение ключа medium |
$tg.start_campaign | string | Значение ключа campaign |
$tg.start_content | string | Значение ключа content |
$tg.start_term | string | Значение ключа term |
$tg.start_ref | string | Значение ключа ref |
Именованные значения читаются из параметра в одном формате: подчёркивание разделяет пары, дефис разделяет имя и значение. Распознаются только эти шесть имён, регистр имени не важен.
Пример: ссылка t.me/YourBot?start=source-tgads_campaign-june записывает:
$tg.start_raw = "source-tgads_campaign-june"
$tg.start_source = "tgads"
$tg.start_campaign = "june"
Реферальная ссылка t.me/YourBot?start=ref-a1b2c3 записывает $tg.start_ref = "a1b2c3".
- Параметр без известных имён (
promo_june, непрозрачный рекламный токен) записывается только в$tg.start_raw. Из него ничего не выдумывается. - Значение не может содержать подчёркивание: оно разделяет пары. Внутри значения ставьте дефис:
campaign-summer-saleдаётsummer-sale. - Регистр значения важен:
Juneиjuneсчитаются разными значениями. - Разбор можно выключить для отдельного бота: настройки бота, раздел «Интеграции», переключатель «Извлекать метки из ссылок».
$tg.start_rawпри этом записывается как прежде, но у тех, кто придёт, пока разбор выключен, меток не будет, и после включения они не появятся. Там же есть поле, где можно проверить ссылку и увидеть, что запишется. - Разбор не применяется задним числом: у людей, пришедших до его появления, есть только
$tg.start_raw.
Пользователей с нужной ссылкой можно отобрать условием «Параметр диплинка» с оператором «содержит».
Если человек открывал бота по разным ссылкам, в профиле показывается одна из них, как правило последняя. Сразу после нового перехода какое-то время может показываться предыдущая. Какой ссылке засчитать человека в отчётах, выбирает переключатель «Атрибуция» (см. Отчёты).
Раньше на этой странице был описан параметр вида ref=123&campaign=promo, разбираемый в поля $tg.start.<ключ>. Такой параметр Telegram доставить не может, и эти поля не записывались ни для одного бота. Используйте формат выше.
Профиль обновляется, когда Telegram сообщает о пользователе что-то новое. Каждое свойство берётся из записи, где оно есть, поэтому более поздняя неполная запись не стирает уже известные имя или диплинк.
Фильтрация пользователей
К странице Пользователи применяются те же фильтры, что и к виджетам. Используйте условия на события, чтобы найти пользователей, совершивших определённые действия, и условия типа Пользователь, чтобы отобрать их по языку, Premium, имени или параметру диплинка (группа «Профиль») или по тому, сколько они сделали за период (группа «Активность»).
Сохранить фильтр как сегмент
Собранный фильтр можно сохранить как сегмент и затем применять в отчётах и рассылках. Эта страница — лучшее место, чтобы собрать сегмент: таблица показывает, кто в него попадает за выбранный период, ещё до сохранения. Сохранённый сегмент можно применить здесь же, изменить условия и нажать «Обновить». Все сегменты проекта собраны в разделе Сегменты в меню слева: оттуда сегмент можно открыть прямо на этой странице.
Карточка пользователя
Нажмите на строку пользователя, чтобы открыть его карточку. В ней всё, что Metriox знает о человеке:
- Пользователь: ID, число событий за период, первый и последний визит
- Профиль Telegram: все записанные свойства профиля под теми же названиями, что в фильтрах, с ключом свойства под каждым
- Другие свойства: всё остальное, что есть в профиле, в исходном виде
- Кнопка перехода к событиям пользователя и вкладка Переписка
Любое значение копируется кликом.
Что дальше?
- Фильтры — сегментируйте пользователей по событиям и свойствам
- Сегменты — сохраните фильтр и применяйте его в отчётах и рассылках
- Метрики — подробнее о метриках Events, Users, Events per User
- Автоматическое подключение — как включить авто-захват профилей