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

Пользователи

Страница Пользователи показывает список уникальных пользователей, взаимодействовавших с вашим ботом в выбранном временном диапазоне.

Что показывает страница​

Каждая строка таблицы содержит:

СтолбецОписание
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_idnumberИдентификатор пользователя в Telegram
$tg.first_namestringИмя пользователя
$tg.last_namestringФамилия (если заполнена)
$tg.usernamestringUsername в Telegram (если задан)
$tg.language_codestringЯзыковой код (например, "ru", "en")
$tg.is_premiumbooleanPremium-статус (если установлен 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_rawstringВесь параметр как есть. Записывается всегда
$tg.start_sourcestringЗначение ключа source
$tg.start_mediumstringЗначение ключа medium
$tg.start_campaignstringЗначение ключа campaign
$tg.start_contentstringЗначение ключа content
$tg.start_termstringЗначение ключа term
$tg.start_refstringЗначение ключа 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: все записанные свойства профиля под теми же названиями, что в фильтрах, с ключом свойства под каждым
  • Другие свойства: всё остальное, что есть в профиле, в исходном виде
  • Кнопка перехода к событиям пользователя и вкладка Переписка

Любое значение копируется кликом.


Что дальше?​