Кампания: требования, модерация и шестичасовой расчёт
20 сентября 2026. Раздел ТЗ, основанный на изученном интерфейсе Vyro и тексте условий, предоставленном пользователем. Закрытый кабинет рекламодателя Vyro целиком не исследован. Значения 5 000 просмотров и $1 000 относятся к приведённому примеру; универсальность для всех кампаний не установлена.
Что нужно в продукте
| Функция |
Правило Clippy |
Текущая готовность |
| Бриф |
Цель, исходники, разрешённые фрагменты, формат, язык, площадки, обязательные титры, CTA, теги, ограничения, маркировка |
Демонстрационный экран; нужен редактор и серверное хранение |
| Экономика |
Ставка за 1 000, порог, потолок на ролик, общий бюджет, сроки размещения и учёта |
Ставка, порог и потолок фиксируются у отслеживаемого видео; резерв бюджета не готов |
| Доступ к кампании |
Открытая/по заявке, вступление, подтверждение версии условий |
Вступление в прототипе; серверная модель участия нужна |
| Подтверждение автора |
Код в био и неизменный ID соцаккаунта |
Серверная проверка реализована для владельца пилота |
| Приём ролика |
Каноническая ссылка, автор, дата публикации, допустимая площадка, лимит отправок |
ID/автор/уникальность URL работают; даты и квоты кампании ещё нужны |
| Проверка заказчиком |
Только свои кампании; видео, чек-лист брифа, одобрить/отказать с причиной |
Операторская проверка и журнал есть; права заказчика ещё нужны |
| Исправление / апелляция |
Причина отказа, допустимость повторной подачи, срок, ответ, история |
В ТЗ; не реализовано |
| Счётчики |
Сбор каждые 6 часов без открытого браузера, последний успешный сбор, ошибки и просроченная очередь |
Обработчик и расписание в коде готовы; активация хостинга не подтверждена |
| Антифрод |
Падение/аномальный скачок → удержание; ручное решение, доказательства и апелляция |
Эвристика и удержание есть; полноценного антифрода нет |
| Дубли |
Один ID нельзя подать дважды; повторный монтаж на том же аккаунте запрещён |
Уникальность ID есть; распознавание одинакового видео после перезагрузки требует fingerprint/ручной проверки |
| Начисления |
Только одобренным; порог, прирост, лимит, доступный резерв; неизменяемый журнал |
Предварительный расчёт реализован, резерв общего бюджета ещё нет |
| Выплаты |
Проверка статуса НПД/ИП, документы, WinWork, сверка статусов |
Сценарий и документы; переводов нет |
| Операционные функции |
Уведомления, поддержка, спор, пауза кампании, завершение, возврат остатка, экспорт |
Требуют реализации |
Автомат состояний
Подан → на проверке → одобрен / отклонён с причиной. У одобренного отдельно отображаются порог не достигнут, начисляется, лимит достигнут, удержание. После финальной сверки сумма может стать доступной к выводу; статус «одобрен» сам по себе не означает выплату. Удаление/приватизация видео блокирует финальную сверку, ошибка провайдера не означает нулевые просмотры.
Заказчик принимает решение по своей кампании, администратор разрешает споры и аномалии, финансовая роль утверждает выплаты. Один человек не должен получать эти права сменой роли в браузере. В текущем закрытом пилоте все серверные действия доступны только владельцу проекта.
Расчёт раз в 6 часов
Предлагаемые фиксированные окна: 03:00, 09:00, 15:00, 21:00 МСК. В каждом окне прочитать все due-видео, сохранить снимок и проверить авторство, статус и аномалии. В текущей реализации один запуск работает максимум 12 минут; ненулевой backlog требует продолжения очереди/масштабирования. Это не бесконечный обход в одном HTTP-запросе.
Порог — общие просмотры ролика, оплата — допустимый прирост после baseline. До одобрения или ниже порога новых записей денег нет. Как только оба условия выполнены, учитывается накопленный прирост с момента добавления. При одинаковом счётчике повторный запуск не начисляет повторно. Ошибка API сохраняет последний хороший счётчик и переносит попытку на следующее окно.
Пример: старт 1 000 просмотров, порог 5 000, ставка 120 ₽/1 000. При 4 999 начисление 0. При 5 000 и одобрении: 480 ₽ за прирост 4 000. В следующем цикле 6 000: ещё 120 ₽. Лимит 500 ₽ оставит от второго начисления только 20 ₽. Это предварительная сумма до антифрода, бюджета и документов.
В финансовой версии дополнительно нужна атомарная проверка остатка общего бюджета и резерв. Нельзя платить за весь рост каждому ролику, если совокупный результат превышает профинансированный бюджет. Правило финального интервала фиксируется до вступления. Коррекции денег оформляются отдельными проводками с причиной, а не удалением старого начисления.
Источники и границы выводов
- Приведённые пользователем условия кампании Vyro: обязательная проверка заказчиком, только одобренные публикации, минимум 5 000 просмотров, максимум $1 000 на публикацию. Они не объясняют baseline, ретроактивный зачёт или момент прекращения учёта.
- Vyro Content Requirements: запрет искусственной активности, присвоения чужих клипов и повторной публикации одинакового контента на том же аккаунте. Также права на материалы, честные заявления и ограничения продвижения.
- Cloudflare Cron Triggers: обработчик scheduled и расписание UTC. Наличие обработчика в сборке не доказывает регистрацию расписания в конкретном управляемом хостинге.