# Аналитика групп и каналов (/ru/docs/group-analytics)

Этот рецепт нужен, когда вы хотите понять канал в Telegram: свой, канал конкурента или канал, где думаете купить
рекламу. Агент читает публичные посты канала инструментом командной строки tg и пишет отчёт: сколько подписчиков видят
пост, какие посты читатели пересылают, какие темы и форматы работают и что попробовать дальше. Нужен аккаунт
Telegram, который может открыть канал. Быть админом не нужно.

## Что вы получите [#что-вы-получите]

Посмотрите [пример отчёта по @AI_DeepLearning](/llms.mdx/docs/ru/group-analytics-example/content.md) — англоязычному каналу на 17
тысяч подписчиков с обзорами статей по компьютерному зрению. В отчёте 1 582 поста с 2017 года по октябрь 2026-го и
комментарии за год. В нём есть:

* **Охват:** доля подписчиков, которые видят обычный пост, и как менялись просмотры по месяцам и годам.
* **Лифт:** просмотры поста по сравнению с соседними постами, чтобы честно сравнивать старые и новые посты. Пост с
  лифтом 1,5 и выше «выстрелил».
* **Что читатели пересылают:** пересылки и реакции на 1 000 просмотров — по формату, длине, теме и первой строке.
* **Ритм:** дни и часы публикаций и разница между днями с одним постом и днями с тремя.
* **Опросы и комментарии:** доля проголосовавших, самые большие опросы, сколько человек комментируют и как часто
  отвечает автор.
* **Выводы:** что работает, что можно улучшить и какие эксперименты провести — каждый пункт с цифрой.

Например, в примере видно, что посты с уже опубликованным кодом читатели пересылают чаще (5,3 раза на 1 000
просмотров против 4,0 по каналу), а просмотры после трёхмесячного перерыва в публикациях упали примерно на 40% и не
вернулись.

Пример сделан нашим внутренним скриптом. Скрипт не опубликован. Шаги ниже используют только публичные команды tg,
поэтому ваш агент может сделать такой же отчёт.

## Что нужно заранее [#что-нужно-заранее]

* tg установлен, и в нём выполнен вход в ваш аккаунт Telegram. См. [Установку](/llms.mdx/docs/ru/installation/content.md).
* Ваш аккаунт может открыть канал. Достаточно, что канал публичный; вступать в него не нужно.
* ИИ-агент, который может запускать команды на вашем компьютере. См. [Подключение агента](/llms.mdx/docs/ru/agents/content.md).
* Для анализа скриптом — Python 3.11 или новее. Агент может разобрать данные и без скрипта.

## Попросите агента [#попросите-агента]

> ```text prompt
> Используй tg CLI. Сделай аналитический отчёт по каналу Telegram @example_channel. Прочитай все его посты, опросы и комментарии под постами за последние 90 дней. Сохрани исходные данные в локальную папку. Затем посчитай охват, лифт, пересылки и реакции на 1 000 просмотров, темы, ритм публикаций, опросы и комментарии и напиши одностраничный HTML-отчёт с графиками и своими выводами. Комментаторов считай, но никогда не называй. Только чтение: не вступай в канал, не ставь реакции, не голосуй и не комментируй.
> ```

Замените `@example_channel` на нужный канал. Если канал о другом, назовите агенту его темы — см.
[Настройте темы](#adapt-the-themes).

## Что происходит [#что-происходит]

1. **Агент открывает канал.** Он получает у Telegram название, описание и число подписчиков.
2. **Читает все посты, по 100 за раз.** У каждого поста есть просмотры, пересылки, реакции и число комментариев.
3. **Читает опросы и комментарии.** Комментарии он открывает только под недавними постами, где они есть.
4. **Сохраняет исходные данные на вашем компьютере.** Никуда больше ничего не отправляется.
5. **Анализирует данные и пишет отчёт.** На этом шаге Telegram не нужен.

Все шаги только читают. Агент не вступает в канал, не ставит реакции, не голосует и не комментирует.

## Сколько это занимает [#сколько-это-занимает]

Посты читаются примерно за 1 минуту на 1 000 постов. Комментарии — примерно 1 минута на 15 постов с комментариями.
Для примера посты заняли около минуты, а комментарии за год (71 пост) — около 3 минут. Анализ и текст отчёта
занимают у агента ещё несколько минут.

Для большого канала берите короткий период комментариев. Каждый пост с комментариями — это ещё один запрос к
Telegram, и при слишком частых запросах Telegram может попросить аккаунт подождать.

## Какие команды запускает агент [#какие-команды-запускает-агент]

Здесь профиль называется `personal`. Подставьте имя своего профиля.

```sh
tg personal --json chats show @example_channel
tg personal --json messages list @example_channel --limit 100
tg personal --json messages list @example_channel 'id<1201' --limit 100
tg personal --json messages comments @example_channel 1250 --limit 100
tg personal --json polls show @example_channel 1189
```

* `chats show` даёт название, описание и число подписчиков (`participants_count`).
* `messages list` даёт 100 самых новых постов. Чтобы читать дальше в прошлое, добавьте `id<N`, где N — самый старый
  id на предыдущей странице. Повторяйте, пока страница не придёт пустой.
* Альбом (несколько фото или видео, отправленных вместе) приходит несколькими сообщениями с одинаковым `groupedId` в
  `provider_metadata`. Считайте его одним постом.
* У каждого поста `views`, `forwards` и `comments` лежат в `provider_metadata`, реакции — в `reactions`. Опрос несёт
  вопрос и общее число голосов в `provider_metadata.poll`.
* `messages comments` даёт комментарии под одним постом. В каждом комментарии есть имя автора, поэтому эти файлы не
  публикуйте.
* `polls show` даёт ответы одного опроса с числом голосов, если Telegram показывает их вашему аккаунту.

## Проверьте результат [#проверьте-результат]

В полном отчёте сказано, сколько постов прочитано и с какой даты. Сравните это число с id самого нового поста. Разница
— это удалённые посты, лишние части альбомов и служебные сообщения, например «канал создан» или закреп. У служебных
сообщений нет просмотров, и это не посты. В примере самый новый id был 1758, а в отчёте 1 582 поста.

Отчёт должен отделять измеренное от догадок. «Просмотры упали после перерыва» — это измерение. «Часть читателей
выключила уведомления» — догадка: Telegram этого не показывает.

## Чего не видно [#чего-не-видно]

* **История подписчиков.** Telegram даёт число подписчиков только на сегодня. Рост, источники подписчиков и просмотры
  по часам есть в официальной статистике канала, а она доступна только админам.
* **Удалённые посты.** Их больше нет в истории.
* **Ответы некоторых опросов.** Для опроса, в котором ваш аккаунт не голосовал, Telegram может дать только общий итог.
* **Старые просмотры.** У самых ранних постов некоторых каналов нет числа просмотров.

## Настройте темы [#настройте-темы]

Темы и первые строки отчёт находит по ключевым словам. Список для одного канала не подходит другому. Назовите агенту
темы в запросе, например:

> ```text prompt
> Темы этого канала: 3D-реконструкция (3D, NeRF, mesh, depth), поза и движение человека (pose, motion, avatar), генерация картинок и видео (diffusion, GAN, text-to-video), LLM (LLM, VLM, GPT). Ещё посчитай посты, где сказано, что код опубликован, и посты, где его только анонсировали.
> ```

Сначала прочитайте посты, потом выбирайте слова. Проверьте несколько постов в каждой теме. Ключевые слова грубые:
«motion» находит и движение робота.

## Для группы [#для-группы]

Те же команды читают сообщения группы, но у сообщений в группе нет просмотров и пересылок. Для своей группы смотрите
активность, активных участников и вопросы без ответа — см. [Администраторам групп](/llms.mdx/docs/ru/group-admins/content.md).

## Приватность [#приватность]

* **Храните исходные данные у себя.** В комментариях есть имена авторов и их имена пользователей.
* **Не публикуйте имена читателей.** Считайте комментаторов, но не перечисляйте их. Прежде чем делиться отчётом,
  проверьте, нет ли в нём имён пользователей, ссылок на профили людей, номеров телефонов и адресов почты. В примере
  читатели только посчитаны.
* **Посты публичны, люди — нет.** Цитировать посты самого канала можно. Цитата из комментария может выдать частного
  человека: уберите её или спросите его.

Дальше сравните два канала: запустите тот же запрос для второго канала с теми же темами и попросите агента поставить
два отчёта рядом.
