Вам больше не нужен Tgstat
Есть бот, который собирает статистику постов любого канала. Просмотры, реакции, комментарии. Время поста, 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}.
Пусть работают роботы!
Берем 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/6232. 100% Шпирт:
https://t.me/sasha_kombarov/10913. Бизнес клубы:
https://t.me/sasha_kombarov/12034. Реклама на канале:
https://t.me/sasha_kombarov/7925. Беслатные консультации:
https://t.me/sasha_kombarov/1157Сохраняйте в закладки 👽