Вам больше не нужен Tgstat! Как собрать статистику постов канала в Telegram

Всем привет, меня зовут Саша Комбаров, я CEO в Пиробайт. Мы разрабатываем сервисы и мобильные приложения. А еще я веду Телеграм канал :) Сегодня поделюсь лайфхаком, как получить статистику любого канала бесплатно в несколько кликов!

Выгрузка моего канала
Выгрузка моего канала

Есть бот, который собирает статистику постов любого канала. Просмотры, реакции, комментарии. Время поста, ID, на какой пост был ответ. В общем, все собирает. Может на конкретную дату собрать и все уложить в csv: https://t.me/ToCsvBot

Меня он чем зацепил – смотрю популярность постов, для этого использую Tgstat, но эта функция бесплатная только на месяц, если хочешь посмотреть популярность за период, то плати. И ради одной этой фичи как-то накладно оплачивать подписку. Надо делать :)

Делать я умею, потому что работал девять лет назад в Тинькофф, а там в то время из автоматизации был только Excel, поэтому всякие формулы и функции мне снились еще очень долго… К делу!

Взял выгрузку, занес в Google Sheets, но появилась первая проблемка, реакции в одну строку в таком виде.

{':fire:': 18, ':thumbs_up:': 14, ':red_heart:': 8, ':thumbs_down:': 3, ':smiling_face_with_hearts:': 1}.

Пусть работают роботы!

Вам больше не нужен Tgstat! Как собрать статистику постов канала в Telegram

Берем ChatGPT, пишем ему, чтобы составил пользовательскую функцию для Apps Script, он выдает:

function sumReactions(str) { // Регулярное выражение для извлечения всех чисел из строки var allNumbersRe = /\d+/g; // Регулярное выражение для извлечения чисел, которые предшествуют знаку '=' var excludeNumbersRe = /=\d+/g; // Извлекаем все числа var allMatches = str.match(allNumbersRe); if (allMatches === null) { return 0; } // Извлекаем числа, которые предшествуют знаку '=' var excludeMatches = str.match(excludeNumbersRe); if (excludeMatches !== null) { excludeMatches = excludeMatches.map(function(match) { return match.replace('=', ''); // удаляем '=' перед числом }); } else { excludeMatches = []; } // Фильтруем все числа, исключая те, которые были найдены с предшествующим знаком '=' var validMatches = allMatches.filter(function(num) { return !excludeMatches.includes(num); }); // Преобразуем массив строковых чисел в массив чисел и суммируем их var sum = validMatches.reduce(function(total, num) { return total + parseInt(num, 10); }, 0); return sum; }

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

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

Просмотры = 0.5

Комментарии = 1

Реакции = 0.7

В этом случае формула будет выглядеть как:

=A2*0.5 + B2*1 + C2*0.7

Забиваем все в табличку, фильтруем и вуаля, получаем рейтинг своих постов (на картинке).

Еще заметил, что в одном посте если есть несколько файлов, то он каждому дает ID и в выгрузке это разные строки. Тут не стал мудрить, а просто удалил повторы через Данные. Чуть корявенько, но мне пойдет)

Ну и вот топ-5 постов за все время:

1. Баллы активности сотрудников: https://t.me/sasha_kombarov/623

3. Бизнес клубы: https://t.me/sasha_kombarov/1203

4. Реклама на канале: https://t.me/sasha_kombarov/792

5. Беслатные консультации: https://t.me/sasha_kombarov/1157

Сохраняйте в закладки 👽

Если у вас есть задача разработать сайт или мобильное приложение, то напишите в Телеграм, мы это обсудим: https://t.me/sashadzen

Заказать разработку сайта, веб-сервиса или мобильного приложения на нашем сайте: https://vk.cc/cuglQZ

Диджитал Shorts на YouTube: youtube.com/@sasha_dzen/shorts

Партнерская программа, где мы платим от 10 000 до 200 000 рублей за контакты тех, кому нужен дизайн или разработка: https://vk.cc/cuglXT

Телеграм-канал Саши Комбарова про управление агентством, проектами, людьми: https://t.me/sasha_kombarov

3636
77
11
27 комментариев

Забрал бота для работы , спасибо!

2
Ответить

Тестировал пару раз, полезно, даже по своему каналу :)

1
Ответить

Правильно, пусть работают роботы!

Ответить

Решение огонь!

1
Ответить

Юху, спасибо)

Ответить

Спасибо большое за информацию, побольше бы таких настоящих специалистов. Сегодня кстати только статью написала про мнимых специалистов, к которым нельзя обращаться

1
Ответить

Спасибо!)

Ответить