Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Ad Preflight — предполётный контроль качества объявлений

Идея для Agent API Вайб-Маркетолога: eval-слой между генерацией и запуском бюджета.

Боль

Генератор (/direct/ads-generate) выдаёт десятки комбинаций «заголовок × текст» за один вызов — это сильно. Но дальше все они равноправны: какие комбинации реально готовы к запуску, какие нарушают лимиты Директа или закон «О рекламе», а какие обещают то, чего нет на лендинге клиента, — сегодня решает человек на глаз. На масштабе автопилота это дыра: агент, который сам тратит бюджет, не имеет инструмента, чтобы сам себя проверить.

Решение

preflight.py — детерминированный контроль качества каждой комбинации до запуска:

Проверка Класс
Лимиты Директа: заголовок ≤ 56, текст ≤ 81, слова ≤ 22 зн. БРАК (не пройдёт модерацию/обрежется)
Обещание объявления не подтверждено текстом лендинга (скидка N%, «доставка за час», гарантия N лет, «бесплатно», рассрочка…) ГАЛЛЮЦИНАЦИЯ (риск: клики по невыполнимому обещанию = слитый бюджет + жалобы)
Превосходные степени без подтверждения («лучший», «№1», «самый») — ст. 5 ФЗ «О рекламе» ИСПРАВИМО
CAPS, двойная пунктуация, покрытие ключевых фраз ИСПРАВИМО

Ключевой принцип: качество — число, а не вайб. Проверки детерминированные — без LLM-судьи, поэтому результат воспроизводим, бесплатен в прогоне и пригоден как gate в CI или как шаг автопилота перед /autopilot/run.

Как это работает

python preflight.py --url https://клиент.ru [--utp "..."] [--audit] [--out report.md]
  1. POST /direct/ads-generate — пакет объявлений вашим генератором (с Idempotency-Key);
  2. локально выкачивается текст лендинга;
  3. каждая комбинация прогоняется через чек-лист → вердикт ГОДНО / ИСПРАВИМО / БРАК / ГАЛЛЮЦИНАЦИЯ с причинами;
  4. --audit дополнительно снимает /direct/landing-audit в тот же отчёт.

Токен — из VIBE_API_TOKEN или файла, в код не зашивается. Скоупы: read + generate.

Результат прогона (живой API, лендинг vibemarketolog.ru)

64 комбинации: ГОДНО 34 · ИСПРАВИМО 8 · БРАК 22.

34% выдачи бракуется ещё до запуска, и почти весь брак — один системный дефект: заголовки 58–59 знаков при лимите Директа 56. То есть генератору не хватает жёсткого пост-чека длины — ровно то, что preflight ловит за миллисекунды и бесплатно.

Полный отчёт с причинами по каждой комбинации: report.md.

Куда это развивается

  1. Gate для автопилота: перед /autopilot/run — обязательный preflight; комбинации с вердиктом ГАЛЛЮЦИНАЦИЯ/БРАК не уходят в кампании. Плюс режим review-gate: изменения дороже порога — подтверждение одной кнопкой в Telegram (у вас уже есть inbox-механика).
  2. Golden-set регрессия генератора: фиксированный набор лендингов + пороги (доля ГОДНО ≥ X%) — и каждое обновление промптов/моделей генератора проверяется автоматически, а не «на глаз». Это защита продукта от тихих деградаций.
  3. Отчёт клиенту как фича: тот же preflight в UI — «мы не просто сгенерировали, мы проверили и показываем почему» — аргумент продаж против генераторов-конкурентов.

Илья Шаповалов · ilya-proof.vercel.app · github.com/yagaMI-Reverse

About

Preflight QA for AI-generated Yandex Direct ads: limits, ad-law stop-words, keyword coverage, landing fact-check. Built on Vibe Agent API.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages