Пачка 1 замечаний владельца о едином виде рекламных экранов. Песочница выключена
02.08.2026 — каждая дыра ниже стоила живых денег.
1. Заголовок объявления в АВТО-правиле. Кабинет МТС требует его для рекламы сайта;
утром 02.08 поле довезли до разовой формы, а в авто его не было вовсе — накопитель
создавал кампанию без ad_headline, и она сгорела бы в кабинете уже после списания.
Колонка client_tg_auto_rule.ad_headline, приём в контроллере (обязателен только при
включённом авто и не-телеграмной ссылке), перенос в кампанию, поле на экране.
2. Картинка/видео в авто-правиле. Колонка media_path, отдельная загрузка
POST /api/telegram/auto-rule/media, перенос в кампанию, поле на экране.
3. Проверка медиа переписана по настоящим требованиям кабинета, снятым глазами 02.08.
Было mimes:png,jpg,jpeg,gif,mp4|max:51200 — врало по пяти пунктам: принимало GIF,
пропускало вдвое больший вес, не смотрело пиксели и длительность, зря отказывало
в mov/webm. Стало правило App\Rules\ClientTg\MtsMedia: картинка JPEG/PNG до 25 МБ
и 640x360...5120x2880, видео до 20 МБ, 3-55 секунд, от 640x360. Формат картинки
определяется по содержимому, длительность и кадр видео читает App\Support\Mp4Probe
из контейнера — без внешних программ. Отказ человеческий: «Картинка слишком
маленькая: 300x200. Нужна не меньше 640x360».
4. Цена показа с медиа — 600 руб. с картинкой, 680 с видео — теперь видна ДО загрузки
файла, на обоих экранах.
Сверх плана, найдено по дороге:
5. Предохранитель накопителя: правило, сохранённое до 02.08 со ссылкой на сайт и пустым
заголовком, всё равно ушло бы в кабинет. Теперь такая пачка держится черновиком,
в журнал пишется причина no_headline.
6. Отказ сервера доходит до клиента его словами. Оба экрана глушили ответ общей фразой
«Не удалось рассчитать кампанию», и человек не понимал, что не так с файлом.
Границы честности: длительность и размер кадра читаются только у mp4/mov/m4v; у
webm/mkv/mpeg/wmv проверяются формат и вес — так и записано в Mp4Probe.
Проверено: 281 тест телеграм-модуля, 1753 фронтенд-теста, статанализ 0, Pint чист.
Глазами НЕ принимали — приёмка живьём в пачке 5. На боевой не выкачено.
Журнал схемы: v9.64 — номер взят как максимум по всем веткам плюс один, чтобы не
повторить столкновения 29.07 и 01.08.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>