Files
portal/docs/superpowers
Дмитрий 18f3352823 fix(реклама): отказ Директа до заведения кампании возвращает деньги клиенту
Живой случай 04.08.2026 на боевом: Директ отказал по позиции уже ПОСЛЕ
заморозки, и 1 020,60 ₽ клиента повисли запертыми. Кампания осталась
черновиком, а «Паузы», которой снимают заморозку, у черновика нет —
вернуть деньги было нечем.

Заморозка стоит до первого обращения к Директу намеренно: иначе не хватило
бы денег, а в Яндексе крутилась бы включённая реклама за счёт Лидерры. Значит
убирать за неудачей обязан сам запуск.

Граница точная: бронь отпускается, только если в кабинете Яндекса ничего не
завелось (yandex_campaign_id пуст). Есть кампания — деньги остаются заперты,
она способна крутить показы; запуск возобновляемый, клиент дожмёт его
повторным нажатием, а заморозка идемпотентна и второй раз денег не запрёт.

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

Сторожа держат обе стороны границы: «возвращает деньги, если Директ отказал
до того, как кампания заведена» (числа #11 один в один) и «оставляет деньги
запертыми, если кампания в Яндексе уже заведена». Второй был зелёным сразу,
поэтому проверен вырезанием — убрал условие границы, он покраснел.

Разбор — в отчёте приёмки, §6ж.

Прогон: 383 сторожа блока рекламы, статанализ 0, стиль чист. Схема не менялась.
2026-08-04 12:23:03 +03:00
..
@
2026-08-03 00:02:38 +03:00