За ночь в канале прибавилась тысяча подписчиков. К обеду новый пост набирает вдвое меньше обычного, а рекламодатель, с которым размещение согласовано на завтра, просит прислать статистику. Подписчиков вы не покупали — их прислал конкурент.
TGuard (@channel_guardian_bot) — не приложение и не личный кабинет на сайте, а обычный Telegram-бот, которого вы добавляете администратором в канал, группу или чат. Сейчас он стоит примерно в 15 000 из них и занимается ровно этим: не пускает чужих, вычищает тех, кто уже вошёл, и показывает, из кого на самом деле состоит ваша аудитория. Ниже — обзор возможностей TGuard целиком: что каждая функция делает, когда срабатывает и чего не умеет.
Лимит вступлений — то, с чего стоит начинать
Базовая защита канала от накрутки выглядит скучно: вы задаёте, сколько подписок разрешено за промежуток времени. Скажем, сто человек за десять минут. Всё, что придёт сверху, бот забанит автоматически — или, если вы так настроите, просто пришлёт уведомление и оставит решение вам.
Тонкость в том, по каким ссылкам считать. Вариантов два: по всем сразу или только по прямой. Основная пригласительная ссылка канала считается прямой, поэтому именованные ссылки для рекламных закупок стоит заводить отдельно — тогда всплеск по одной из них видно сразу, и не приходится гадать, откуда пришла волна.
Настоящая лавина обрабатывается иначе. Когда в канал за полминуты ломится больше пятисот аккаунтов, разбирать, кто из них живой, уже поздно, — TGuard останавливает поток целиком, кладёт всех в чёрный список и присылает вам уведомление. А вот если лимиты у канала не заданы вообще, бот считает наплыв разрешённым и вместо блокировки шлёт предупреждение с кнопкой настройки: без вашего решения он никого не тронет.
Антивирус: общая база и правило пяти каналов
Лимит ловит волну, но не отдельных ботов, которые заходят по пять штук в час. Этим занимается функция «Антивирус»: каждый вступающий проверяется по базе аккаунтов, уже засветившихся в накрутках на другие каналы сети. Совпало — аккаунт блокируется, а если вход идёт по заявкам, заявка отклоняется ещё до принятия.
Интереснее то, как аккаунт в эту базу попадает и как из неё выходит. Каждый бан в любом канале сети — это отметка. Если аккаунт забанили минимум в пяти разных каналах, он считается абьюзером безоговорочно: пять независимых владельцев не ошибаются одновременно. Если каналов меньше пяти, вердикт мягче — например, решённая капча снимает подозрение, потому что живой человек, прошедший проверку, дороже, чем чужая ошибка модерации. Есть и отдельный список ошибочно помеченных: владелец, который погорячился с чисткой, может вернуть людей, и это учитывается сетью.
Антивирус — единственная функция бота, которая работает тем лучше, чем больше каналов ею пользуется. Остальные одинаково полезны и первому подключившемуся, и пятнадцатитысячному.
Порог тревоги — три уникальных известных абьюзера за час. После этого владелец получает уведомление со списком пригласительных ссылок, по которым шёл заход, и, если антивирус включён, все эти аккаунты уже заблокированы. Точность бот не приукрашивает: погрешность в 1–2% в описании функции заявлена прямо. Подробный разбор механики — в статье про антивирус для Telegram-канала.
Проверить конкретный аккаунт можно и вручную, без всякой атаки: команда /chk с ID или ником покажет, числится ли человек абьюзером, в скольких каналах его банили и решал ли он когда-нибудь капчу.
Капча, и почему в публичном канале она устроена иначе
Капча в TGuard бывает двух видов, и путают их постоянно.
Первый — капча на заявки. Если у канала включён вход по заявкам, бот пишет каждому заявителю в личку и просит подтвердить, что он человек. Не решил за пять минут или решил неверно — заявка отклоняется. Дальше поведение зависит от вашей настройки: при включённом автоприёме бот сам примет заявку с решённой капчей, иначе она просто останется вам на одобрение уже отфильтрованной.
Второй вид — капча для публичного канала, и вот здесь логика обратная. Публичный канал открыт, заявок нет, останавливать некого. Поэтому TGuard выдаёт особую пригласительную ссылку: кто пришёл по ней и прошёл проверку — остаётся, все остальные вылетают, пока капчу не решат. Ссылку закрепляют в канале или ставят в рекламные креативы. Работу можно посмотреть на живом примере — @tguard_public_captcha_test. Приветственное сообщение после успешной проверки настраивается своим текстом. Больше деталей — в материале про капчу для каналов и групп.
Стоит держать в голове, что капча не заменяет антивирус. Уведомление об атаке прямо содержит строку на случай, когда боты прорвались через проверку, а антивирус их всё равно узнал, — такое бывает.
Заявки на вступление: приём, чистка, массовые действия
Заявки — отдельный участок работы, который руками не масштабируется. TGuard умеет принимать их автоматически, и при этом на автоприём распространяются все остальные механизмы: лимиты, антивирус (известный бот будет забанен или кикнут сразу после принятия) и капча.
Накопившуюся очередь можно разобрать разом: «Принять все» или «Отклонить все» с указанием текущего количества. Обработка идёт в фоне, по завершении приходит уведомление. Очередь бот держит у себя семь суток — этого хватает, чтобы не потерять заявки, поданные, пока вас не было.
Спам в чатах и комментариях
Для групп и чатов обсуждения работает отдельный движок. Он читает поток сообщений и сверяет их с правилами чата. Правил девять: ссылки, частота сообщений, сообщения из одних эмодзи, медиа, аудио и голосовые, стикеры, отправители без юзернейма, ссылки, спрятанные в разметке текста, и известные абьюзеры. Плюс собственный список стоп-слов.
У каждого правила своя реакция: записать в журнал, удалить сообщение или удалить и забанить. Новое правило по умолчанию только записывает — сначала посмотрите, на чём оно срабатывает в вашем чате, потом ужесточайте. Настраивается всё на веб-странице по ссылке из бота, а не бесконечными командами в чате. Есть и предохранитель: не больше двадцати действий по вердиктам на чат в минуту, чтобы неудачное стоп-слово не выкосило живую беседу быстрее, чем вы это заметите.
Отдельного упоминания стоит то, как движок ищет стоп-слова. Спамер меняет не слово, а его написание: латинская a вместо кириллической, греческая сигма вместо буквы «о», невидимый пробел внутри слова. Строка вроде пσдраδσткα дℓя κaждσгσ στ 17 лeт читается глазами нормально, а обычным правилом «подработк» не ловится вообще. TGuard приводит текст к двум формам — по внешнему виду символов и по звучанию — и ищет в обеих. Смена алфавита целиком (kazino латиницей) тоже перестаёт работать. Больше про то, что реально ловится, — в статье о спаме в телеграм-группе.
Когда подписчиков удаляет свой же администратор
Атака не всегда приходит снаружи. Любой бот, добавленный в канал, получает право удалять подписчиков, и отобрать это право у него нельзя. Обиженный администратор способен на то же самое, только быстрее.
Защита от рейдерства закрывает оба случая. Для администраторов вы задаёте лимит: сколько удалений разрешено за какой промежуток. Например, десять человек за час. Одиннадцатое удаление — и бот снимает с этого администратора права, а вам приходит уведомление. Владельца канала лимит не касается.
Чтобы это работало, администраторов удобно назначать через бота: TGuard генерирует ссылку, вы отправляете её подписчику, он переходит — и получает ровно тот набор прав, который вы выбрали заранее. Чужие боты, начавшие удалять подписчиков, выкидываются из канала, а владелец получает уведомление с именем виновника. Механику целиком разбирали в материале про антирейд в Telegram.
Накрутка просмотров: сначала бот выясняет вашу норму
Просмотры накручивают не так заметно, как подписчиков, и «много просмотров» само по себе ни о чём не говорит — пост мог просто зайти. Поэтому TGuard сначала строит профиль канала: для последних ста публикаций он запоминает, сколько просмотров они набирали через час после выхода, через два, через три и так далее — на неделю вперёд по часовым отметкам.
Дальше новый пост сравнивается не с соседями по нише, а с прошлым вашего же канала: сколько он обычно набирал именно на этом часу жизни поста. Уведомление приходит при превышении на 25% и выше и не меньше ста просмотров. Пока наблюдений мало, бот молчит — на паре постов «норму» не построить. Отдельно ловятся всплески на старых публикациях, к которым уже никто не возвращается: там это почти всегда накрутка.
Если статистика вам не нужна, а нужен просто порог — его можно задать руками. Тогда уведомление приходит по факту превышения, а каждое следующее — только после того, как пост наберёт ещё столько же сверху. Для корректной работы просмотров в канал нужно добавить второго бота, @tguard_views_protector_bot. Подробности — в статье о накрутке просмотров в Telegram.
Сканирование подписчиков: то, чего Telegram не показывает
У канала нельзя открыть список участников — Telegram его просто не показывает. Отсюда почти все вопросы вида «как узнать, кто у меня в подписчиках». TGuard собирает список обходным путём, через поиск по участникам, который отдаёт не больше двухсот человек за раз: бот перебирает начала имён — сперва отдельные буквы и цифры, потом частые сочетания, а там, где двухсот не хватило, копает глубже.
Отсюда два режима. Быстрое сканирование запускается не чаще раза в сутки и занимает до десяти минут — этого хватает большинству каналов. Глубокое сканирование не ограничено по частоте, находит заметно больше, но идёт часами и требует, чтобы вы создали собственного бота через @BotFather и отдали TGuard его токен: Telegram ограничивает частоту таких запросов на каждого бота, и свой бот снимает этот потолок именно с вашего канала.
Есть и третий скан — поиск удалённых аккаунтов. Он работает по накопленной истории: чем дольше TGuard стоит в канале, тем больше удалённых он найдёт. На канале, куда бота добавили вчера, эта функция покажет почти ничего, и это не поломка. Как читать результаты — в статье о том, как увидеть всех подписчиков канала.
Четыре способа чистки
Чистка в TGuard — это не одна кнопка, а четыре разных инструмента под разные ситуации.
- Последние подписчики. Атака случилась только что: указываете число, бот удаляет столько последних вступивших. Работает только для каналов.
- По таблице. Открываете веб-таблицу подписчиков, отбираете нужных по дате, имени, гео или статусу — и удаляете выбранных прямо оттуда. Это же способ чистки «за промежуток времени».
- Удалённые аккаунты. Отдельная операция, которая выносит из канала всех найденных владельцев удалённых профилей. Идёт в фоне, по окончании приходит число.
- Чёрный список. Целиком или только те, кто попал туда за последние N часов — на случай, когда чистка задела живых людей.
Здесь же настраивается принципиальная вещь: банить или кикать. По умолчанию бот банит, то есть кладёт аккаунт в чёрный список канала, и вернуться тот не сможет. Кик удаляет, минуя список, — и удалённый может подписаться снова хоть через секунду. Настройка действует на все чистки сразу, ручные и автоматические. Если чёрный список успел разрастись до тысяч записей, его чистят одним действием — об этом отдельная статья.
Аналитика: подписки, срезы аудитории, вовлечённость
Всё, что бот видит по каналу, доступно веб-таблицами по ссылкам из меню. Их три группы.
Журнал активности — подписки и отписки с временем и, что важнее, с именем пригласительной ссылки. По нему видно, сколько человек пришло с конкретной закупки и сколько из них отписалось через неделю; для оценки рекламы это полезнее, чем прирост в моменте.
Срезы аудитории — все подписчики, отдельно премиум и не-премиум, отдельно СНГ и остальной мир, отдельно найденные боты, удалённые аккаунты и «мёртвые души» (те, кто давно не был онлайн). Разбор того, что из этого о чём говорит, — в материале про аналитику подписок.
Проще один раз посмотреть: вот живая таблица подписчиков нашего демо-канала. Колонки — дата вступления, сам подписчик с пометками «премиум», «бот» и «удалён», пол, страна, когда последний раз был в сети, статус и пригласительная ссылка, по которой он пришёл. Всё сортируется и фильтруется, а выбранные строки выгружаются в Excel или удаляются из канала прямо со страницы.
Вовлечённость — какие публикации аудитория реально смотрит. Это тот же поток замеров просмотров, только показанный не как тревога, а как график по постам. Подробнее — в статье об аналитике вовлечённости.
Сертификат чистоты и подбор каналов для рекламы
Две функции, которые нужны не для защиты, а для денег.
Сертификат чистоты — короткий отчёт с процентом чистоты канала, числом подписчиков, ботов, мёртвых и удалённых аккаунтов на дату проверки. Его пересылают рекламодателю как доказательство качества аудитории, запрашивают у продавца перед покупкой канала или репостят к себе. Считается он по данным сканирования, так что перед генерацией канал имеет смысл просканировать.
Обратная задача — найти, где закупаться. TGuard подбирает каналы среди тех, что уже под его защитой, по теме и совпадению ключевых слов, и показывает 7–15 вариантов с числом участников и подтверждённым процентом чистоты. Рядом лежит смежная функция — каналы с пересекающейся аудиторией: она отвечает не «где рекламироваться», а «чем ещё интересуются мои подписчики». Про механику похожих каналов писали здесь.
Сюда же примыкают защищённые розыгрыши: участники проходят проверку по базе TGuard, и призоловы с ботами до розыгрыша не доходят.
Режим SOS: пять настроек одной кнопкой
Когда атака идёт прямо сейчас, разбираться в настройках некогда. Режим SOS выставляет разом жёсткий набор: лимит в 10 вступлений за 60 секунд по всем ссылкам, блокировку вместо уведомления, бан вместо кика, включённый антивирус и автоприём заявок. Выключается так же, одной кнопкой.
Отдельно от режима существует одноимённая услуга: если канал под атакой, а трогать настройки страшно, поддержка разбирается сама — снимает атаку, аккуратно чистит последствия и настраивает защиту на будущее. Для тех, кто не хочет заниматься этим в принципе, есть доверенное управление: настройку и реакцию на атаки берёт на себя команда.
Как включить TGuard
Возможности TGuard включаются по отдельности, а само подключение занимает пару минут:
- Откройте @channel_guardian_bot и нажмите «Старт».
- Добавьте бота администратором в канал, группу или чат.
- Выдайте право банить и удалять подписчиков — этого достаточно для базовой защиты. Для капчи и заявок добавьте право добавлять участников, для антиспама — удаление сообщений.
- В боте: «Мои каналы» → выберите канал → «Настройка защиты и чистка» → задайте лимит вступлений и включите антивирус.
Интерфейс бота есть на русском, английском, турецком, арабском и китайском. Функции при этом одинаковые — переключение языка меняет только тексты, включая сообщение капчи, которое ваши подписчики увидят на языке владельца канала.
Если после этого обзора остались вопросы по конкретной функции — почти на каждую из перечисленных у нас есть отдельный разбор в блоге, а отзывы о боте TGuard и анонсы новых возможностей живут в канале @channel_guardian_channel.
Частые вопросы
Бан снимается: чёрный список канала чистится целиком или только за последние N часов — если чистка задела людей, вернуть их можно одним действием. Аккаунт, помеченный абьюзером по ошибке, попадает в отдельный список исключений, и сеть это учитывает при следующих проверках. Проверить конкретного человека можно командой /chk: она покажет, числится ли он абьюзером и в скольких каналах его банили. А если возвраты нужны регулярно, переключите способ блокировки с бана на кик — тогда удалённый сможет вернуться сам.
Для блокировки накрутки достаточно права банить и удалять подписчиков. Капче и работе с заявками нужно право добавлять участников — без него бот не сможет принять заявку после решённой капчи. Антиспаму в чате нужно удаление сообщений. Полный набор прав требуется только защите от рейдерства: там бот сам назначает администраторов по вашей ссылке и снимает права с тех, кто вышел за лимит.
И там, и там, но набор функций разный. Каналу достаются лимиты вступлений, антивирус, капча, аналитика подписок и защита от накрутки просмотров. Группе и чату обсуждения — антиспам по сообщениям, капча на вход и те же лимиты. Чистка последних подписчиков доступна только каналам: в группе вместо неё работает выборочная чистка по таблице подписчиков.