Обновить
8K+
-2
Григорий Дубровских@RaZe-31cs

Делаю проекты пока не залетит

2
Подписчики
Отправить сообщение

231 мёртвая душа: как реклама в Telegram обманула меня, а потом обманула моя собственная метрика

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели12K

Я закинул бюджет в Telegram-рекламу своего pet-проекта — новостного бота — и за сутки получил +232 подписчика. Дашборд загорелся зелёным: «активация 81%». Палец уже тянулся к кнопке «пополнить баланс».

Хорошо, что не долил. Потому что когда я посмотрел, что эти 232 человека реально делают, оказалось: живое действие — осознанный тап 👍 или клик по ссылке — сделал ровно один. Остальные 231 — мёртвые души: 35% заблокировали бота в первый же день, а 218 из 232 зарегистрировались в один и тот же час.

Но самое неприятное — врала не только реклама. Врала моя собственная метрика: «активация 81%» считала автоматические просмотры, которые бот пишет сам себе в онбординге. Я радовался цифре, которую проще всего накрутить.

В посте — как я поймал накрутку собственными метриками за один вечер, почему «цена за подписчика» это ловушка, какую единственную цифру нельзя подделать по построению, и как отличить живой трафик от ботофермы тремя простыми SQL-запросами. С реальными числами из прода: Habr — 28% живых, органика — 19%, платная реклама — 0.4%.

Как метрика мне врала

10 дней спустя: как мой бот дважды умирал незаметно, а метрика релевантности мне врала

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.1K

Полторы недели назад я выложил на Habr бота с лентой хороших новостей на sqlite-vec за $5/мес. Потом пришли живые юзеры — и началось самое интересное. Не код. Эксплуатация.

За 10 дней в проде:

🪦 Бот дважды умирал незаметно — поллил Telegram и казался живым, но не создавал ни одной новости по 4–5 дней. Один раз — OOM на загрузке модели, другой — feedparser.parse(url) без таймаута заморозил весь пайплайн.

📉 Метрика релевантности «рухнула» до 30% — и я чуть не откатил рабочую фичу. Оказалось, один юзер поставил 106 дизлайков из 228 и отравил и метрику, и приор источников. Починил, считая по уникальным юзерам — правда оказалась 42%.

🎯 Реакции 78 человек сами показали, какие источники выкинуть: tech-аудитория отвергает общие новости и любит курируемое.

Внутри — реальные логи, код фиксов (httpx-таймаут, watchdog, робастные метрики) и уроки про надёжность воркеров и доверие к цифрам.

👉 @futur_e_news_bot

Читать далее

Я собрал Telegram-бота с лентой новостей, которая учится на твоих реакциях — и хостится за $5 в месяц

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели8K

Хотел ленту новостей без двух вещей: дублей (одно событие из пяти каналов с разными заголовками) и потока негатива по утрам.

Получился Telegram-бот, который по умолчанию показывает только хорошие и нейтральные новости — а тяжёлый контент включается в настройках на 4 уровнях. Плюс он убирает дубли, переводит RU↔EN и подстраивает выдачу под твои реакции 🔥 ❤️ 😢.

Но самое интересное — он живёт на одной машине Fly.io за ~$5 в месяц. В статье разбираю, как:

заменил Postgres + pgvector на встраиваемый sqlite-vec и убрал отдельную БД-машину;

гоняю типизацию, перевод и оценку тональности через бесплатные LLM на OpenRouter (счёт $0–1/мес);

считаю эмбеддинги локально на fastembed/ONNX без внешних API;

собрал рекомендательное ядро на «векторе вкуса» с EWMA и анти-баблом.

И, конечно, грабли: sqlite-vec, который ломался на arm64; vec0 без INSERT OR REPLACE; fastembed, сменивший пулинг между версиями; и LLM, которая «подкручивала» оценки негатива, пока я не дал ей чёткую рубрику.

👉 Бот живой, можно потрогать: @futur_e_news_bot

Читать далее

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность

Специализация

Фулстек разработчик
Старший
Git
SQL
Python
Docker
Английский язык