Перейти к основному содержимому

Рассылки

Раздел Рассылки отправляет одно сообщение выбранной аудитории вашего бота. Аудитория собирается теми же фильтрами, что и отчёты, поэтому «напишите всем, кто нажал кнопку, но не дошёл до оплаты» — это не выгрузка в файл и не сторонний сервис, а несколько кликов там же, где вы смотрите аналитику.

Рассылка проходит через состояния: черновик → подготовка → запуск. Разделение сделано намеренно: между «я закончил писать» и «сообщение ушло людям» есть шаг, который замораживает текст и показывает точное число получателей до того, как что-то отправится.

Кто что может

ДействиеМинимальная роль
Смотреть рассылки, получателей и ход отправкиReader
Создавать, редактировать, удалять черновикWriter
Тестовая отправкаWriter
Подготовить и вернуть в черновикWriter
Запустить и отозватьAdmin

Запуск и отзыв требуют прав администратора не по формальным причинам: сообщение миллиону человек нельзя «поправить обратно», в отличие от виджета на дашборде.


Состояния рассылки

СостояниеЧто означаетЧто ещё можно вернуть
ЧерновикТекст и аудиторию можно менять. Ничего не отправленоВсё. Черновик можно удалить целиком
ПодготовкаСобирается список получателей. Для большой аудитории — минутыДождитесь окончания
Готова к отправкеСписок получателей зафиксирован, сообщение заморожено«Вернуть в черновик» — список отбрасывается, текст снова редактируется
ОтправляетсяСообщения уходят получателямТолько «Отозвать»: отправка прекращается, доставленное удаляется
ЗавершенаВсе получатели обработаныТолько «Отозвать» — и только пока действует окно удаления
ОтменяетсяОтправка остановлена, идёт удаление доставленногоДождитесь окончания
ОтмененаОтзыв завершёнНичего. Это запись о том, что было

Отправленную рассылку удалить нельзя: это запись о том, что реальные люди получили реальное сообщение. Удаляется только черновик.

Сообщение замораживается при подготовке

После подготовки текст, кнопки и вложение изменить нельзя — редактирование вернёт ошибку. Так устроено специально: рассылку, у которой первая половина получила один текст, а вторая другой, невозможно ни объяснить получателям, ни корректно отозвать. Чтобы поправить текст, нажмите «Вернуть в черновик».


Аудитория

Аудитория задаётся ровно одним из четырёх способов — это выбор, а не набор независимых полей.

СпособКому уйдёт
Всё времяВсем, кому бот может написать, как бы давно они ни были активны
За последние N днейВсем, кто был активен за последние N дней. Отсчёт назад от момента подготовки, а не от момента, когда вы открыли черновик
Точные датыВсем, кто был активен между двумя датами. Границы не сдвинутся, когда бы рассылка ни ушла
СписокТолько тем, кого вы перечислили поимённо

Первые три способа можно сузить фильтром — тем же конструктором, что и в фильтрах аналитики: по событию, по свойству, по значению $tg.*. Комбинация «всё время + условие» — это способ охватить всех, кто когда-либо совершал нужное действие.

Относительное окно — обычный выбор, и именно поэтому оно считается при подготовке: «активные за последние 30 дней» должно означать 30 дней до отправки, а не 30 дней до того дня, когда черновик был создан.

Кто попадает в аудиторию, а кто нет

Аудитория собирается из событий, а не из списка пользователей. Причина простая: карточка пользователя не доказывает, что боту есть куда написать, а событие в личном чате — доказывает.

Поэтому в аудиторию не попадают:

  • те, кто общался с ботом только в группе — Telegram запрещает боту писать первым, и такая отправка гарантированно провалится;
  • те, кто ни разу не открывал личный чат с ботом.

Если оценка показывает «никто не подходит», а пользователи у бота есть — почти всегда дело именно в этом.

Аудитория — это снимок на момент подготовки. Он подтверждает, что личный чат существовал в выбранном окне, но не подтверждает, что человек не заблокировал бота позже: такие получатели отсеиваются уже при отправке и видны в разбивке как «Пользователь заблокировал бота».

Оценка числа получателей

Под фильтром показывается живая оценка «Получат сообщение: N». Она считается до предела вашего тарифа, а не точно: точный подсчёт по всей истории проекта — самый дорогой запрос в продукте, а редактору нужны ответы только на два вопроса — «примерно сколько» и «не превышен ли лимит». Если подходящих больше лимита, вы увидите «Подходит больше N человек».

Список вручную

В режиме «Список» получатели перечисляются по одному в строке: числовой Telegram ID или @username.

  • До 10 000 записей в списке — суммарно ID и имён. Лимит тарифа на число получателей действует дополнительно.
  • ID должен быть положительным: отрицательный — это группа или канал, а рассылка идёт только в личные чаты.
  • @username находится только среди тех, кого бот уже видел: Telegram не позволяет боту узнать ID по имени. Неразобранные имена перечисляются прямо в редакторе — до отправки, пока с этим ещё можно что-то сделать.
  • Форматы @durov, t.me/durov и Durov принимаются и приводятся к одному виду.
  • Фильтр в этом режиме не применяется: сузить поимённый список условием означало бы молча выбросить людей, которых вы назвали намеренно.

Сообщение

Текст и форматирование

ЧтоПредел
Текст сообщения4096 символов
Подпись, если прикреплён файл1024 символа

Оба числа — ограничения Telegram, а не наши. Разница между ними — главная ловушка: файл, прикреплённый к уже написанному тексту, снижает лимит вчетверо, и Telegram в этом случае отклоняет отправку целиком, а не обрезает текст. Редактор предупреждает об этом сразу.

Панель форматирования даёт жирный, курсив, подчёркнутый, зачёркнутый, спойлер, моноширинный, цитату и ссылку. Разметка хранится отдельно от текста, поэтому писать HTML или Markdown руками не нужно и не следует.

Два переключателя рядом с текстом:

  • Без превью ссылок — ссылка не развернётся в карточку с картинкой и описанием.
  • Без звука — уведомление придёт беззвучно. Для больших рассылок это заметно вежливее.

Кнопки

Под сообщением можно собрать inline-клавиатуру.

ЧтоПредел
Рядов12
Кнопок в ряду8
Надпись на кнопке64 символа
callback_data64 байта

У кнопки есть либо ссылка, либо callback_data — ровно одно из двух. Ссылка должна быть полной, со схемой: https://example.com, а не example.com; принимаются http, https и tg.

callback_data считается в байтах, а не в символах

Кириллица занимает два байта на символ, эмодзи — больше. Русский текст упирается в предел примерно на 32 символах. Редактор показывает счётчик в байтах.

Для callback_data есть подсказка со значениями, которые ваш бот уже получал. Если введённого значения там нет, редактор это отметит: скорее всего кнопка ничего не сделает при нажатии — если только вы не научили бота этому значению прямо сейчас.

Вложение

К сообщению можно прикрепить один файл.

ТипПредел размера
Фото10 МБ
Видео, GIF/анимация, аудио, голосовое, файл50 МБ

Это ограничения Bot API. Широко цитируемые 2 ГБ — предел обычных клиентов Telegram, к ботам он не относится.

Тип вложения выбираете вы, и он важен: GIF, отправленный как «файл», не воспроизводится, а голосовое сообщение принимается только в OGG — MP3 придёт обычным файлом. Metriox проверяет содержимое файла и не даст отправить, например, картинку под видом видео.

Библиотека файлов

Загруженные файлы остаются в библиотеке проекта и переиспользуются: одно и то же изображение не нужно загружать дважды. В библиотеке видно, сколько места занято, какие файлы используются рассылками, и можно удалить ненужные.

  • Удаление файла ничего не отменяет. Уже доставленные копии останутся в чатах получателей.
  • Файл, который держит незавершённая рассылка, удалить нельзя: пока рассылка не отправила первое сообщение, эти байты — единственная копия.
  • Файлы, на которые не ссылается ни одна рассылка, удаляются автоматически по сроку из вашего тарифа (по умолчанию — через 180 дней). Файл, прикреплённый к черновику, не трогается, каким бы старым он ни был.
Первое сообщение чуть медленнее

Файл загружается в Telegram один раз — на первой отправке рассылки, дальше переиспользуется. Тестовая отправка делает это заранее.


Тестовая отправка

«Тестовая отправка» отправляет сообщение в один чат — обычно вам самому — тем же самым путём, которым пойдёт реальная рассылка: та же очередь, тот же отправитель, та же обработка ошибок. Тест, идущий другим путём, ничего не доказывал бы о том пути, который действительно работает.

Чем тест отличается от настоящей отправки:

ТестРассылка
КомуОдин чат, который вы указалиВся подготовленная аудитория
Из какого состоянияВ том числе из черновикаТолько из «Готова к отправке»
Какой текстТекущий черновик, если рассылка ещё не подготовленаЗамороженный при подготовке
Статус рассылкиНе меняетсяМеняется
Счётчики рассылкиНе учитываетсяУчитывается
Отзыв рассылкиТест не удаляетсяУдаляются доставленные сообщения
Тест доставляет настоящее сообщение

Указывайте чат, который контролируете. Самая частая первая ошибка — «Не начал диалог с ботом»: Telegram не позволяет боту написать первым. Откройте чат с ботом, нажмите /start и повторите.

Если тест отправлен из черновика и текст после этого изменён — реальная рассылка уйдёт уже другой. Редактор об этом предупреждает.


Подготовка, запуск и отмена

Подготовка

«Подготовить к отправке» делает две вещи: замораживает сообщение и собирает список получателей. Отправки при этом не происходит.

  • Для большой аудитории это минуты. Повторное нажатие безопасно: подготовка продолжится с того места, где остановилась, а не начнётся заново.
  • Рассылка с нулём получателей отклоняется. Иначе она мгновенно завершилась бы и выглядела в панели прогресса ровно как идеально доставленная.
  • Аудитория больше лимита тарифа тоже отклоняется — до того, как будет записана хоть одна строка.

Подготовленная рассылка занимает один из слотов одновременных рассылок вашего тарифа. Если её не запустить в течение 7 дней, она возвращается в черновики и освобождает слот; то же происходит с подготовкой, зависшей дольше часа.

«Вернуть в черновик» — обратная операция: список получателей отбрасывается, текст снова редактируется. Это безопасное направление, поэтому прав администратора она не требует. Повторная подготовка собирает аудиторию заново: кто подписался за это время — попадёт, кто заблокировал бота — нет.

Запуск

«Отправить» доступна только из состояния «Готова к отправке» и только администратору. В окне подтверждения показывается:

  • сколько человек получит сообщение;
  • сколько примерно событий это спишет с квоты;
  • примерная длительность отправки — сообщения идут со скоростью около 25 в секунду на одного бота (ниже предела Telegram: собственные ответы бота используют тот же лимит);
  • напоминание об окне отзыва.

Если рассылка изменилась, пока окно подтверждения было открыто, запуск отклоняется: числа, на которые вы согласились, — это и есть всё основание согласия.

Запуск необратим

Отменить запуск нельзя. Можно только отозвать рассылку — и только для тех сообщений, которые ещё попадают в окно удаления Telegram.

Отмена

«Отозвать» делает две вещи сразу:

  1. Прекращает отправку. Те, до кого очередь не дошла, помечаются как «Отменено до отправки» — а не остаются висеть в очереди навсегда.
  2. Начинает удалять уже доставленные сообщения. Это описано в следующем разделе.

Отзыв доставленной рассылки

Metriox умеет удалять уже доставленные сообщения из чатов получателей. Это не отмена отправки — к моменту отзыва сообщения уже существуют у людей в переписке; Metriox проходит по списку получателей и удаляет их.

Окно удаления

Telegram разрешает боту удалить собственное сообщение только в течение 48 часов. Это ограничение самого Telegram, обойти его нельзя. Metriox прекращает попытки на 47-м часу — на час раньше, намеренно: время отправки фиксируется в момент, когда отправитель отчитался о результате, то есть чуть позже реальной отправки, и запас закрывает эту разницу вместе с временем в очереди на удаление.

Окно считается для каждого сообщения отдельно, а не для рассылки целиком

Это важнее, чем кажется. Отправка идёт со скоростью около 25 сообщений в секунду, поэтому большая рассылка растянута на часы: у первого получателя окно закончится раньше, чем у последнего. Отзыв через двое суток может удалить «хвост» рассылки и не суметь удалить её начало.

Практический вывод: отзывайте сразу, как только поняли, что рассылка ушла не та. Считайте, что у вас меньше двух суток, а не ровно 48 часов.

Что именно происходит

  • Удаляются только доставленные сообщения, для которых сохранён их идентификатор в Telegram.
  • Сообщения старше окна помечаются «Удалить не вышло» без обращения к Telegram. Поэтому отзыв недельной рассылки на миллион человек происходит мгновенно: спрашивать нечего.
  • Если сообщение уже удалено — например, самим получателем, — это считается успехом. Цель в том, чтобы сообщения не было, и его нет.
  • Только удаление. Metriox не подменяет старое сообщение другим текстом: рассылку старше окна удаления вернуть нельзя никак, и продукт говорит об этом прямо, а не создаёт видимость отзыва.
  • Тестовые отправки отзыв не трогает.

Что видно в интерфейсе

В панели прогресса появляется блок «Ход удаления» со счётчиками «Попыток удаления» и «Удалено», а у каждого получателя — состояние: «Ещё в чате», «Удалено» или «Удалить не вышло».

Отзыв работает и на завершённой рассылке, не только на идущей, — при условии, что сообщения ещё попадают в окно.


Что это стоит

Каждое отправленное сообщение рассылки — это одно событие в вашей квоте аналитики. Рассылка на 100 000 человек расходует 100 000 событий из месячного лимита проекта — того самого, при исчерпании которого останавливается приём событий и ломается ваша собственная аналитика. Об этом лучше узнать здесь, а не из счёта.

Доставленные сообщения попадают в аналитику как события message.outbound, поэтому рассылку видно в отчётах наравне с остальным трафиком бота.

Рассылку ограничивают два потолка, и действует тот, который меньше:

ПотолокЧто это
Месячная квота событийОбщая квота проекта. При запуске резервируется столько событий, сколько сообщений уйдёт. Не хватает — запуск отклоняется с сообщением, сколько нужно и сколько осталось
Месячный лимит сообщений рассылокОтдельный лимит именно на рассылки. Считается по периоду, в котором рассылка была запущена

Проверка выполняется один раз, при запуске. Дальше рассылка идёт до конца: начатая рассылка не может остановиться на середине из-за того, что квоту израсходовал чей-то другой трафик. Наполовину отправленное объявление — это хуже, чем перерасход.

Перед большой рассылкой посмотрите остаток квоты

Оценка получателей в редакторе и есть оценка расхода: один получатель — одно сообщение — одно событие.


Лимиты

Ограничения Telegram — одинаковые для всех:

ЧтоЗначение
Текст сообщения4096 символов
Подпись при вложении1024 символа
Надпись на кнопке64 символа
callback_data64 байта
Клавиатура12 рядов по 8 кнопок
Вложений в сообщении1
Размер фото10 МБ
Размер остальных файлов50 МБ
Окно удаления сообщения48 часов (Metriox прекращает попытки на 47-м часу)

Ограничения тарифа — значения по умолчанию, ваш тариф может быть щедрее:

ЧтоFreeПлатные тарифы
Получателей в одной рассылке100 0001 000 000
Одновременных рассылок550
Сообщений рассылок в месяц25 0005 000 000
Место под файлы1 ГБ20 ГБ
Автоудаление неиспользуемых файловчерез 180 днейчерез 180 дней
Хранение списка получателей365 дней365 дней

Отдельно: записей в списке вручную — до 10 000, глубина окна аудитории — до 730 дней.

Список получателей хранится не вечно

По истечении срока хранения построчный список удаляется, а итоговые числа остаются. После этого уже нельзя посмотреть, что произошло с конкретным человеком и получил ли он сообщение. На отзыв это не влияет: окно удаления в 48 часов закрывается намного раньше любого срока хранения.


Статусы получателей

СтатусЧто произошло
В очередиЕщё не отправляли
ОтправляетсяСообщение в работе
ДоставленоTelegram принял сообщение
Доставлено частичноЧасть сообщений дошла, часть нет
Отменено до отправкиРассылку отозвали раньше, чем дошла очередь
Пользователь заблокировал ботаОбычное дело в любой рассылке
Не начал диалог с ботомЛичного чата нет, писать первым Telegram не разрешает
Аккаунт удалёнПользователя больше нет
НедоступенTelegram не нашёл такой чат
Доставка неизвестнаСообщение отправлено, но подтверждения не было
«Доставка неизвестна» — это не ошибка отправки

Такое сообщение, скорее всего, дошло. Telegram не даёт способа проверить это задним числом, поэтому Metriox не отправляет повторно: лучше редкая неопределённость, чем человек, получивший одно и то же объявление дважды.


Чего в рассылках нет

  • Отправка по расписанию. Рассылка уходит тогда, когда её запустили.
  • Альбомы и несколько файлов в одном сообщении. Одно вложение на сообщение.
  • Редактирование доставленного сообщения. Отзыв — это удаление, и только в пределах окна.
  • Повторная отправка тем, у кого статус «Доставка неизвестна».

Что дальше?