diff --git a/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md b/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md index 28c9663e..afe6d81d 100644 --- a/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md +++ b/docs/superpowers/2026-08-02-PROMT-ostalos-vladelcu.md @@ -98,11 +98,37 @@ «Rejected at moderation.» от 30.07 никуда не делись — новые сообщения просто легли поверх. Вреда нет, кроме вида. Убрать — правка боевой базы, только с «да» владельца. -### 🟡 №4. Три сбойных задания на заливку картинок +### ⬛ №4. Три сбойных задания на заливку картинок — **разобран 01.08.2026, вреда нет** -В боевой базе висят `upload` со статусом `failed` от 29.07 («после загрузки не появился -креатив размера …»). К разведке отношения не имеют, показам не мешают. Разбирать — -отдельная работа, не срочная. +Задания `id 1, 2, 3`, все `kind=upload`, кампания 6, подряд 29.07 в 16:16 / 16:40 / 16:49. +Каждое споткнулось на **разной** картинке: 160×600, потом 300×600, потом 336×280. + +**Две причины, обе уже вылечены в коде и на бою:** + +1. Робот жал «Создать» раньше, чем Яндекс принял все пятнадцать файлов — кто не успел, + терялся, и каждый раз это был другой (`bots/yandex-creatives/src/cabinet.js` §486-492). +2. При повторе портал переснимал слепок «до» заново, а там уже были видны картинки + прошлого захода → опознание падало по кругу и плодило дубли. Лечение — + `CreativeJobService::bannersToUpload()` берёт **только баннеры без номера креатива**. + +🔑 **Улика роста мусора прямо в базе:** `snapshot_before` у трёх заданий рос +466 → 829 → 1192 знака. Слепок пухнет ⇒ в кабинете прибавляются лишние картинки. +Датчик на будущее: сравнивать длину слепков соседних попыток одного задания. + +**Вреда нет, замер живой:** у кампании 6 все **15 из 15** баннеров имеют и номер креатива, +и номер объявления, «без креатива = 0». Сами три строки `failed` — просто журнал, +робот их не берёт. **Оставлены намеренно как история** (решение владельца 01.08.2026). + +**Мусор в кабинете — считан и оставлен.** Всего картинок **73**, из них **32 заняты** +живыми объявлениями, **41 ни к чему не привязана**. Владелец решил не чистить: работа +по Яндексу закрыта, новые дубли не плодятся. + +🔴 **Удалить картинку программно НЕЛЬЗЯ в принципе.** Наши картинки — «креативы» +(`v5/creatives`, тип `HTML5_CREATIVE`), а сервис `Creatives` у Яндекса умеет только +`add` и `get`. Метода удаления нет ни у нас, ни в API. Чистка возможна **только руками +в кабинете** через браузер, а для этого нужен профиль с живым входом (локальный занят +открытым Edge, второй — у робота на виртуалке, и его занятие роняет разведку). +Следующей смене: не искать «программный способ», его не существует. ### 🟡 №5. Телеграм в main, но на бой не выкачен @@ -142,6 +168,16 @@ 🪤 **Логин кабинета** — не тот, под которым ходит программный доступ. Конкретные учётки в файлы не пишем; смотреть `2026-08-01-PROMT-zakryt-hvosty.md` §хвост №1. +🪤 **`SelectionCriteria` — пустой ОБЪЕКТ, а не пустой массив.** В PHP `[]` уезжает в JSON +как `[]`, и живой Яндекс отвечает отказом 8000 «SelectionCriteria не может содержать +массив». Писать `new \stdClass` / `(object) []`. Наступал на это 01.08 при разборе +картинок, хотя в боевом клиенте про это уже написан комментарий. + +🪤 **Кабинет НЕ равен нашей кампании.** Там живут **4 кампании и 33 объявления**, из них +наша учебная — одна. Прежде чем объявлять картинку «лишней», спросить `v5/ads` по **всем** +кампаниям: 32 картинки из 73 заняты чужими объявлениями. Считать «лишние» по одному +размеру внутри своей кампании — ошибка, так у меня вышло 58 вместо настоящих 41. + ### Про чтение боевой базы (только чтение) Кладём php-файл в `/tmp` heredoc'ом с кавычками `<<'PHPEOF'`, зовём @@ -219,7 +255,8 @@ Реклама Яндекса **закрыта**: робот обучен, кампания была учебной, документов не будет и они не нужны (см. №1). Возвращаться к ней не надо. -Дальше — либо «да» владельца на одну из мелочей №3/№4, либо телеграм по порядку Г1 → Г2. +Хвост №4 разобран и закрыт 01.08: вреда нет, мусор в кабинете оставлен намеренно. +Дальше — либо «да» владельца на мелочь №3, либо телеграм по порядку Г1 → Г2. Телеграм — единственное направление, где осталась настоящая работа. Если владелец молчит — не выдумывать себе работу на боевом и не «дожимать» уже закрытое.