Анализ русскоязычных 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 - не профильный бизнес, а их технологию можно использовать для создания лучшего каталога на рынке.