Анализ русскоязычных Telegram-каналов.

Анализ русскоязычных Telegram-каналов.

"Бизнес и социальные сети"

Мало кто сегодня готов взяться за масштабное исследование мессенджера TG. Однако, я хочу поделиться ценной информацией, которую узнал от Никиты Толстого - независимого аналитика публичного контента в Telegram.

Процесс поиска в TG остаётся далеким от совершенства. Без единого источника данных и нормального аналитического инструментария сложно не просто найти, но даже понять:

  • насколько каналы распространены в России?
  • насколько каналы пользуются популярностью и что такое «популярность» в числах?

На такие вопросы нужно отвечать цифрами, но в интернете только разрозненные данные. 

Никита проделал работу от от сбора обобщенного (не обязательно полного) списка русскоязычных каналов до кроулинга их содержимого и построения метрик. Анализировались только те каналы, которые продвигаются в большом интернете, указывая ссылки на себя. Такое поведение – индикатор каналов, создаваемых для большой аудитории.

В начале была создана единая база данных методами партизанской аналитики. В качестве источников данных были выбраны два онлайн-каталога, в которые пользователи заносят свои каналы вручную: tlgrm.ru и tchannels.me, и два самопополняющихся каталога: tsear.ch и inten.to, один переиндексируется вручную, другой – в реальном времени.

На всех сайтах искались каналы, указанные как русскоязычные.

Что позволяет быть уверенными, что найденные каналы именно на русском?

  • tlgrm.ru по умолчанию создан для каналов на русском языке;
  • tchannels.me состоит из каналов, добавленных вручную и явно указанных как русские (два языка для канала там указать нельзя by design);
  • tsear.ch определяет язык канала на основе анализа его содержимого с помощью API Яндекс.Переводчика;
  • inten.to создан авторами, специализирующимися на unified API для переводческих сервисов, который как раз используется для автоматического определения языка каналов.

Инструменты, использованные в работе: Chrome Developer Tools, cURL to Python конвертер, сам Python, общая эрудиция.

Найдены более 10 000 каналов.

Главный вывод: базы данных различных каталогов совпадают лишь на 3%.

Как была получена информация:

  • tlgrm.ru -  целевой раздел: /channels/. Для получения полного списка нужно обойти все релевантные категории и «списать» ID каналов, они будут прямо в теле страницы.
  • tchannels.me. Можно выбрать русский в настройках каталога и проскроллить 27 категорий одну за другой. А можно использовать API сервиса в своих интересах, немного изменив параметры. 
  • tsear.ch - целевой раздел: /list/ru/. Раз за разом кликая на кнопку Next можно записать каналы с каждой страницы и составить общий список.
  • inten.to - целевой раздел: /telegram/channels/russian/. Канал можно найти либо по полному совпадению запроса c ID канала, либо по частичному совпадению с текстом его описания, при этом поиск выдаёт не более 100 первых совпадений, и то не сразу всю сотню, а по 10 штук.

Анализировать вручную более 10 000 каналов нет времени. К тому же, каталоги постоянно обновляются – необходим инструмент для регулярного использования. Никита решил данный вопрос путем автоматизации веб-клиента Telegram с помощью расширения к браузеру.

Аргументы в защиту этого способа:

  • достаточность для решения задачи: расширение позволяют делать javascript инъекции и даёт удобный доступ к коду страницы с помощью JQuery
  • наглядность работы: скрипт, который в реальном времени сам кликает и вбивает текст, понятно как докручивать
  • принципиальная масштабируемость: установив кроулер-агент на пять виртуальных машин и развернув где-то сервер, раздающий агентам «задания» на кроулинг, можно получить ботнет (в расширениях есть возможность отправлять реквесты наружу, раздачу можно сделать через webhook)
  • простая и быстрая установка: кроулер устанавливается на любой компьютер с браузером и не требует предварительной настройки для работы. Код может быть модифицирован для дальнейшей работы
  • кросс-платформенность: Google Chrome есть под все распространенные операционные системы
  • лёгкий и бесплатный доступ к VPN: благодаря распространенности соответствующих расширений к браузеру (Hola, frigate, и т.д.)

Такой подход по сути превращает кроулинг в извращенное (без Selenium’а) написание GUI автотестов. 

Чтобы попасть в Telegram нужно пройти авторизацию по SMS. В наше время это, казалось бы, уже не требует человека: можно купить виртуальные номера на twilio и использовать SMS API, но это не сработало. Поэтому было использовано прямое решение: Никита приобрел 15 настоящих сим-карт и приступил к сбору данных.

Основные закономерности Никита поведал на примере выборки каналов с сайта tlgrm.ru. Его аргументы в пользу данного источника:

  • всего 13% уникальных каналов, то есть большинство из них содержатся ещё где-то – владельцы каналов озабочены раскруткой и заняты делом;
  • наличие категорий в каталоге – получается более интересная и точная аналитика;
  • русский домен + популярность в рунете = каналы будут русские в 99% случаев, можно не перепроверять.

Для исследования были выбраны почти все категории каналов, кроме каналов с контентом 18+ и каналов на узбекском.

Далее, разбивая список всех каналов на кванты по ~500 штук (после 500 Telegram банит за слишком частый вызов метода search) и запуская кроулеры (тем самым реализовывая high performance computing), Никита собрал статистику за период от последнего поста на канале вглубь, в среднем, на неделю.

Если на канале не было постов уже семь дней – канал считался «мёртвым». Если посты идут чаще, чем раз в три часа – это флуд.

Выводы.

  • На протяжении трех замеров базы tlgrm.ru исследуемая выборка составляла 1 889 каналов.
  • Новые каналы при этом создаются постоянно, ежедневно от 3-4 каналов.
  • Более 70% каналов «выросли» за последние 2 месяца, суммарный прирост в подписках – почти 900 000 (Никита отфильтровал от этой цифры подозрительно быстро растущие каналы), при этом всего 60 000 пользователей «отписались» от каналов, на которых однажды побывали.
  • 65% каналов регулярно обновляются и не похоже, чтобы они сильно флудили. С другой стороны, каждый третий произвольно взятый канал либо давно не обновлялся, либо с флудом.

Как следует из графика выше, успех - это когда канал растёт со скоростью 160 человек в день или больше. Даже лучшие каналы не смогли показать среднюю скорость выше, чем это значение. Никита советует обратить внимание на музыкальные каналы: их сравнительно мало, но у них много подписчиков.

При этом особой популярностью пользуются каналы с гифками и смешными видосами: если верить статистике, то за два месяца они выросли больше любого другого канала минимум в четыре раза.

  • Каналов на русском языке более десяти тысяч – это очень много, за жизнь не перечитать.
  • Каждый из каталогов ведёт свой маленький список и не обменивается им с «соседями», что для пользователя означает необходимость искать сразу во многих местах – это очень неудобно.
  • Каналы как явление продолжают развиваться – их становится всё больше и больше каждый день.
  • Число подписок на каналы растёт чудовищными темпами, почти на полмиллиона каждый месяц.
  • Введение более сложных метрик позволяет генерировать автоматические подборки каналов, которые тем не менее нуждаются в человеческом ревью.

Уже сейчас русские пользователи ищут каналы, расходуя десятки кликов на то, чтобы найти контент по душе. При этом в месяц прирост подписок на этих каналах в совокупности составляет полмиллиона в месяц. Если появится сервис, позволяющий искать каналы централизованно и переключаться между ними всего по одному клику, популярность Telegram существенно возрастет.

Учитывая вышесказанное, пора использовать ресурсы разработчиков. Для того, чтобы повысить юзабилити сервисов, Никита порекомендовал владельцам каталогов сделать следующее:

  • Обновить свои классификаторы каналов – web.archive подсказывает, что они почти ни у кого не изменялись с момента создания. Сейчас лето, можно нанять студентов.
  • Изменить интерфейс сайтов, сделать «листалку» каналов в духе Яндекс.Музыки: для выбора нового канала понадобился бы максимум один клик. 
  • Начать следить за тем, как люди ищут каналы и измерять, сколько они просматривают за сессию, девелоперам давать премии за превышение показателей.
  • Связаться с создателями inten.to и предложить им интеграцию – для них Telegram - не профильный бизнес, а их технологию можно использовать для создания лучшего каталога на рынке.