← все проекты

ПЦ Директ кабинет (AI-сервис контекстной рекламы)

Рабочее место директолога Пульс Цен: запуск Директа по брифу, аналитика кампаний, сбор информации (вордстат/конкуренты), статистика и отчёты. ИИ-пайплайн подготовки + человеческий журнал всех изменений. Рамки: только ПЦ.

готовS1 · Фундамент5/5

Цель: Монорепо, схема БД, auth+RBAC, стейт-машина пайплайна, деплой на cfru по IP

Монорепо: db (Prisma/Postgres, 20+ моделей), api (Fastify+JWT+RBAC), workers (BullMQ), web (Next 15)
Скелет собран и компилируется. Схема: Org/User/роли, Client/Brief, PipelineRun/Step, Campaign/AdGroup/Ad, ChangeLog, ErrorFix, OptimizationAction, MetricSnapshot, QualityThreshold
feature
Стейт-машина пайплайна: 8 шагов launch с фиксацией в PipelineStep + ChangeLog
Воркер ведёт шаги, пишет вход/выход/время/ошибки; waiting_user при гейтах. Обработчики шагов — каркасы с контрактами (реализация по S3-S6)
feature
Монитор качества: пороги ОКР из брифа (отказы/CTR/объём/позиция) + детектор нарушений
QualityThreshold засеян из брифа, monitor-джоба каждые 4ч сравнивает снапшоты кодом (Compiled AI), нарушение -> ErrorFix + журнал
feature
UI: обзор, карточка клиента с пайплайном, журнал изменений, пороги, вход
Next 15, тёмная тема, SSR через локальный api
feature
Деплой на cfru: docker postgres+redis, pm2 (api/worker/web), порт 3080 по IP
LIVE http://80.90.184.203:3080 — docker dp-postgres/dp-redis, pm2 dp-api/dp-worker/dp-web, схема в БД, сид (владелец+12 порогов ОКР), ufw 3080 открыт, вход проверен
feature
В РАБОТЕS2 · Клиенты и стандартный бриф2/3

Цель: Заведение клиента, форма/загрузка брифа, подключение кабинетов

UI создания клиента и формы стандартного брифа (структура полей от продавца)
LIVE: /clients/new + карточка клиента с формой брифа (9 полей-черновик до образца владельца), кнопки «Аудит сайта»/«Полный запуск по брифу» (заблокирована без брифа). Проверено E2E.
feature
Импорт брифа из docx + согласовать с владельцем эталонный формат брифа
Владелец 2026-07-23: образец брифа даст позже. Стартуем с формы-черновика, поля пересогласуем по образцу.
feature
Подключение кабинетов: OAuth Яндекс Директ + Метрика, хранение токенов (шифрование)
Подключены реальные доступы ПЦ: кабинет Директа (общий, логин+токен, тот же токен для Вордстата) и Метрика ПЦ — перенесены с сервера LF в Connections (маскируются в UI). OAuth-флоу в один клик — отдельно, когда появится регистрация приложения.
feature
планS3 · Аудит сайта и AI-анализ бизнеса0/3

Цель: Гейт запуска: сайт не прошёл — РК не создаётся, клиенту документ рекомендаций

Чек-лист требований к посадочным (согласовать с владельцем) + краулер страниц
Чек-лист v1 составлен: docs/03_landing_checklist.md (5 групп, red=блокер/yellow=рекомендация, скоринг). У владельца есть свой — при получении смёржить. Остался краулер.
Чек-лист v1 (docs/03) + краулер РАБОТАЕТ: 11 кодовых проверок (техника/аналитика/конверсия/юридика), скоринг, red-провал = клиент blocked + run waiting_user. E2E на myvision.su: балл 15, 3 блокера найдены верно. Осталось: LLM-оценка оффера, PageSpeed, тест формы, docx-отчёт.
Решение владельца 2026-07-23: автоаудит отложен — на посадочных клиента антибот-защита, краулер ловит блокировки. Код готов (v1, 11 проверок), выключен флагом AUDIT_ENABLED=false, шаг пропускается в пайплайне. Вернуться когда решим вопрос доступа (whitelist IP / ручной аудит).
feature
LLM-оценка посадочных против брифа (через AI_PROXY egress) + скачиваемый документ рекомендаций
Вместе с аудитом — отложено (антибот).
feature
AI-анализ бизнеса по сайту: ниша, ЦА, офферы, УТП -> BusinessAnalysis
feature
планS4 · Конкуренты и семантика0/3

Цель: Анализ конкурентов + вордстат-семантика с минусами

Анализ конкурентов: выдача/объявления, выводы для офферов
feature
Вордстат-интеграция (перенос yd-wordstat-expand из LeadForge): ключи, кластеры, охват; фолбэк запрещён
feature
Минус-слова и минус-площадки, нормы: поиск >=30 ключей/10-20к, РСЯ >=50 фраз
feature
планS5 · Объявления и создание РК0/3

Цель: Комбинаторные объявления и черновики кампаний в Директе

Генерация комбинаторных объявлений 7 заголовков + 3 текста, разные углы, 1 оффер = 1 группа
feature
Директ API: создание кампаний/групп/объявлений черновиками через v501 addResponsiveAds (не v5!)
feature
UTM, быстрые ссылки, уточнения, стратегии и бюджеты
feature
планS6 · Контроль качества, запуск, самоисправление0/3

Цель: QA-гейт, запуск с подтверждением бюджета, автофиксы

QA-чек перед запуском: детерминированный чек-лист + LLM-ревью текстов
feature
Гейт бюджета в UI (ок-трачу) и включение показов; таймер запуска <=30 мин
feature
Самоисправление: монитор модерации/ошибок API, ретраи со сменой промпта, эскалация после 3 попыток
feature
В РАБОТЕS7 · Метрики и непрерывная оптимизация13/21

Цель: ПРИОРИТЕТ: рабочее место = анализ и статистика живых кампаний. Reports API + Метрика ПЦ, дашборд статистики, отчёты

Сбор метрик: Директ Reports API + Метрика (отказы) -> MetricSnapshot ежедневно
Коллтрекинг подтверждён владельцем: Callibri (ConnType=calltracking, CALLIBRI_TOKEN).
Полный цикл: Reports API + отказы + КОНВЕРСИИ по целям стратегии из Метрики (единый collectCampaignStats в packages/direct-api). Квирк: management-API целей не отдаёт часть целей (66531433) — фильтр убран, деградация: все цели одним запросом, при ошибке по одной с суммированием.
feature
Статистика по группам, объявлениям, фразам, площадкам и поисковым запросам (Reports API) + вкладки в кабинете
LIVE: getBreakdownReport (5 уровней, Reports API CUSTOM/SEARCH_QUERY). Группы и объявления — колонки статистики, фразы — статистика+ставки, новые вкладки Запросы (1000 строк живых) и Площадки с периодом. Проверено на Брендовых запросах ПЦ.
feature
Импорт существующих кампаний из Директа в кабинет (campaigns.get -> привязка к клиенту, синк групп и объявлений)
LIVE: GET /api/direct/campaigns (91 кампания кабинета) + POST import → Campaign в БД, дедуп по ydCampaignId. Owner-only: кабинет общий, специалистам ПЦ полный список не светим. UI на карточке клиента.
feature
Авто-оптимизации: минуса, ставки, чистка площадок, замена объявлений; valueBefore/After + deadline
feature
Подсказки ИИ директологу по аномалиям (роль специалиста из брифа)
feature
Дашборд статистики кампаний ПЦ: расход/клики/CTR/отказы/конверсии по дням, сравнение с нормами
LIVE: страница кампании — сводка 30 дней (расход/клики/показы/CTR/цена клика) + таблица по дням + «Обновить статистику» (Директ Reports API, upsert снапшотов). Проверено на 2 живых кампаниях ПЦ (Брендовые: ~43% CTR, ~1.9к/день). Отказы/конверсии — после подключения счётчика Метрики.
feature
Отчёт за период (неделя/месяц) для клиента: динамика, выводы, выгрузка
feature
Вордстат-инструмент в кабинете: подбор фраз с частотностью по запросу директолога
Дубль задачи выше — реализовано там же.
feature
Управление показами из кабинета: пауза/запуск кампании с подтверждением
LIVE: кнопки «Остановить показы»/«Включить показы» на странице кампании (campaigns.suspend/resume), confirm-диалог, запись в журнал человеческим языком. Специалист+.
feature
Просмотр семантики кампании: фразы и минус-слова live из Директа
LIVE: секция «Семантика» на странице кампании — keywords.get (до 10к фраз) + NegativeKeywords. Проверено: 270 фраз Брендовых.
feature
Пороги качества: изменяемые и добавляемые (CRUD + журнал)
LIVE: правка значения инлайн (системные дефолты переопределяются копией организации), добавление новых порогов, удаление своих. Всё пишется в журнал.
feature
Метрика ПЦ: выбрать счётчик, создание целей через API, конверсии/отказы в статистику
Счётчик 200476, отказы и конверсии ЛЬЮТСЯ (обе цели: 19 конверсий 21.07). Цель в стратегии теперь выпадающим списком целей. Осталось только: СОЗДАНИЕ новой цели в Метрике из кабинета.
feature
Вордстат-инструмент через API: подбор фраз с частотностью
Страница «Подбор фраз»: базовые фразы + регионы (поиск по названиям) -> Вордстат API v4 (create/poll/delete, ретрай на building) -> таблица с частотностью, чекбоксы -> добавление выбранных фраз прямо в группу кампании. Проверено: «пульс цен» = 12588 показов/мес, 49 связанных.
feature
Редактор кампании: настройки (бюджет/минуса/запрещённые площадки) с сохранением в Директ
LIVE: секция «Настройки кампании» — дневной бюджет, минус-фразы, запрещённые площадки редактируются и уходят campaigns.update; стратегия и счётчики показываются. Журнал человеческим языком.
feature
Редактор объявлений: правка заголовков/текстов, пауза/запуск объявления
LIVE: группы с объявлениями (ads.get), правка Title/Title2/Text -> ads.update (с предупреждением о перемодерации), пауза/включение объявления. Проверено на Брендовых (3 группы, 9 объявлений).
feature
ИИ-помощник в блоках: советы по статистике/семантике/объявлениям/настройкам
LIVE: кнопки «Совет ИИ» в 4 блоках. Контекст собирает код (Compiled AI): снапшоты, фразы, минуса, объявления, нормы. LLM DeepSeek через OpenRouter + egress-прокси. Тест на Брендовых — осмысленные советы. Цена ~копейки/запрос.
feature
Редактор: стратегии ставок, корректировки, временной таргетинг, гео группы
Сделано: ставки фраз (keywordbids get/set, ручные стратегии, массовая установка, Enter-правка) + корректировки (get/add/delete: мобильные/десктоп/демография, ретаргетинг видим). Осталось: временной таргетинг, гео-корректировки add.
feature
Редактор: быстрые ссылки, уточнения, визитка, промоакции объявлений
feature
Создание сущностей из кабинета: новая группа, новое объявление, добавление фраз
+ Правка существующих комбинаторных (v501 ResponsiveAdUpdate): заголовки/тексты/картинки/цена/ссылки, форма как при создании. Осталось: создание группы; тестовое создание в бою ждёт ок.
feature
ИИ-исполнитель: применить совет ИИ в один клик (минуса/тексты/площадки) с подтверждением
feature
Авто-сбор статистики кроном (сейчас по кнопке) + недельный отчёт клиенту
BullMQ repeatable каждые 6ч по всем привязанным кампаниям (active/paused/moderation), запись в журнал от «Автоконтроль». Недельный отчёт клиенту — отдельная задача, осталась.
feature
планS8 · Прод-готовность0/3

Цель: Права, безопасность, домен, приёмка

RBAC полный: управление командой org, инвайты; RLS в Postgres
feature
Шифрование токенов кабинетов at-rest, алерты в TG
feature
Домен + https + приёмка по docs/ACCEPTANCE.md (все поведенческие критерии)
feature
В РАБОТЕS9 · РСЯ и креативы1/5

Цель: Сетевые кампании + генерация и управление картинками/видео в объявлениях (Kie, adimages)

Создание сетевых (РСЯ) кампаний из кабинета: тип кампании, настройки сетей
feature
Генерация картинок-креативов через Kie (банк креативов, гейт ок-трачу)
feature
Загрузка картинок в Директ (adimages) и управление картинками в объявлениях
LIVE: adimages.add загрузка (base64, до 10МБ), превью картинок в карточках объявлений (TextAd hash + ResponsiveAd.AdImages.ImageUrl), выбор картинок при создании комбинаторного. Банк кабинета owner-only.
feature
Видео в объявлениях: исследовать возможности API (видеодополнения/креативы) и реализовать доступное
Ресёрч: VideoExtensionIds есть в ResponsiveAd; ButtonExtension/Carousel в v501 get есть, в доке add нет — нужен эксперимент. Загрузка видео-креативов не начата.
feature
ИИ-генератор объявлений: задача+тема картинки+референс → тексты и картинка
Тексты OpenRouter (контекст кодом), картинка Kie gpt-image-2 с автозагрузкой в adimages, гейт трат в UI. Боевой тест ждёт ок владельца.
feature

Ворклог (места остановки)

27.07.2026, 15:00:06 · S7 багфикс + S9 ИИ · claude

1) НАЙДЕН И ЗАКРЫТ БАГ: настройки кампании не сохранялись (жалоба владельца на тумблер Мониторинг сайта). Причина: Директ отвергает пустой Items ([] = ошибка не менее 1 элемента) и роняет ВЕСЬ campaigns.update — у РК МСК нет минус-фраз/целей/счётчиков, поэтому падало именно там, а на Брендовых работало. Фикс: пустые списки шлём null (NegativeKeywords, ExcludedSites, BlockedIps, CounterIds, PriorityGoals). Проверено на живой РК МСК: ENABLE_SITE_MONITORING=YES сохранился. Плюс ошибки сохранения теперь видны красной карточкой, а не серой строкой, и форма перечитывает данные из Директа после записи. 2) Создать с помощью ИИ в объявлениях: поля задача / тема картинки / референс товара (ссылка или загрузка файла — публичный URL берём из adimages), выбор количества заголовков и текстов, формат картинки. Тексты — OpenRouter (контекст собирает КОД: кампания, группа, её фразы, действующие объявления, посадочная), картинка — Kie gpt-image-2 (text-to-image, с референсом image-to-image) с автозагрузкой в Директ. Гейт денег: картинка отдельной кнопкой с подтверждением ~2,5 руб.

Ждёт ок владельца на платные боевые тесты: генерация текстов (~0,1 руб OpenRouter) и картинки (~2,5 руб Kie). Дальше: ButtonExtension/Carousel эксперимент, РСЯ-кампании, РАГ-стандарты для ИИ.

27.07.2026, 10:31:02 · S7 кабинет · claude

По фидбеку владельца: 1) сортировка кликом по колонкам во всех таблицах (Группы, Ставки и фразы, Запросы, Площадки) — 1-й клик по убыванию, 2-й по возрастанию, пустые всегда внизу; проверено на живых данных (запросы по кликам 1055→0, фразы по расходу топ 25941 руб). 2) Редактирование КОМБИНАТОРНЫХ объявлений: PATCH kind=responsive (v501 ResponsiveAdUpdate, Titles/Texts простыми массивами), форма правки = форма создания (единый компонент RespFields): заголовки 1-7, тексты 1-3, картинки до 5 с банком кампании и загрузкой, цена. Задеплоено, смоук headless-браузером, JS-ошибок нет. Сохранение правки в бою не жал — перемодерация живого объявления.

Ждёт ок владельца: тестовое создание/правка комбинаторного в живой группе + эксперимент ButtonExtension/Carousel в add. Дальше S9: РСЯ-кампании, Kie-генерация картинок, видео-креативы; затем ИИ-исполнитель + РАГ-стандарты.

27.07.2026, 10:14:08 · S7+S9 редактор v2 · claude

По фидбеку владельца (скрины Директа): 1) фильтры на Ставки и фразы (поиск/группа/статус/только с показами; массовая ставка теперь по отфильтрованным); 2) картинки объявлений видны в кабинете (РК МСК: 8 комбинаторных с картинками и статистикой); 3) создание КОМБИНАТОРНОГО объявления: 1-7 заголовков, 1-3 текста, до 5 картинок (банк кампании + загрузка своей через adimages.add), цена, живое превью в стиле РСЯ. Найдено: v501 get отдаёт ButtonExtension и Carousel (дока add молчит) — добавление кнопки/карусели требует эксперимента. Контракт /ads/responsive структурированный — под будущего ИИ-исполнителя. Всё задеплоено, UI проверен headless-браузером, JS-ошибок нет.

1) Тестовое комбинаторное объявление в живой группе (ждёт ок владельца) + эксперимент ButtonExtension/Carousel в add. 2) Редактирование существующих комбинаторных. 3) S9: РСЯ-кампании, генерация картинок Kie, видео-креативы. 4) Потом РАГ-память стандартов для ИИ-заполнения (идея владельца).

27.07.2026, 09:33:32 · S7 + этап A · claude

Этап A (глубина кабинета) задеплоен на прод: 1) статистика по группам/объявлениям/фразам/площадкам/поисковым запросам (единый getBreakdownReport поверх Reports API, 5 уровней) — колонки в Группах/Объявлениях/Фразах + новые вкладки Запросы и Площадки; 2) настоящие ставки: keywordbids с данными аукциона, правка при ручной стратегии, массовая установка; корректировки bidmodifiers (моб/десктоп/пол-возраст add, ретаргетинг видим); 3) импорт кампаний из Директа (owner-only — общий кабинет не палим специалистам); 4) редактор объявлений добит: ссылка+отображаемая ссылка, создание нового объявления, архив. Всё проверено headless-браузером на живой кампании Брендовые запросы (скрины). Роадмап: добавлен спринт 9 РСЯ и креативы, в S7 две новые задачи. Gap-анализ всего проекта сделан заново (7 из 8 шагов пайплайна — заглушки, campaigns.add нет, adimages нет).

Этап B (спринт 9): создание РСЯ-кампаний, генерация картинок через Kie (гейт ок-трачу), adimages загрузка и картинки в объявлениях, ресёрч видео в API. Потом этап C — оживить пайплайн бриф→РК (шаги 2-8, campaigns.add/adgroups.add/ads.add), потом этап D — ИИ-исполнитель советов (OptimizationAction). Мелочи из SCOPE-CUTS-LOG: инд. сайтлинки на объявление, гео-корректировки, ставка из аукциона.

23.07.2026, 19:52:04 · S7 · claude

Баг «цель показывает общее количество без привязки к кампании»: расследовано — привязка к кампании РАБОТАЛА, подвело СЕМПЛИРОВАНИЕ Метрики (accuracy по умолчанию: считала по 31% выборке, отдавала дробные 6.385, UI в ру-локали показал «6,385» — читалось как 6385). Фикс: accuracy=full во всех запросах к Метрике (точные числа без выборки) + округление + автоперезагрузка статистики при смене выбранных целей (не надо жать Показать). Проверено: та же цель за месяц = 4 конверсии с кампании (вместо «6385»), Регистрация = 96, разбивка по 26 дням корректна.

Дальше второй блок: корректировки ставок, временной таргетинг, создание группы/объявления, ИИ-исполнитель.

23.07.2026, 19:44:50 · S7 · claude

Доработка по уточнению владельца: в Обзоре кампании теперь можно анализировать ЛЮБЫЕ цели счётчика, а не только цели стратегии. Селектор целей — чипы + поиск по названию среди всех целей счётчика (551 шт.): регистрация, звонки, заказы, формы и т.д. По умолчанию предзаполняется целями кампании. Каждая выбранная цель — строкой с конверсиями и своей ценой конверсии за выбранный период и атрибуцию. Проверено: Листинг-Заказ=2, ПКТ-Заказ=2, Регистрация=25 за неделю по Брендовым.

Второй блок редактора: корректировки ставок, временной таргетинг, создание группы/объявления, ИИ-исполнитель.

23.07.2026, 19:35:08 · S7 · claude

Детальная аналитика по наказу владельца: в Обзоре кампании появились (1) фильтр периода — пресеты 7/14/30/90 дней + произвольные даты с/по; (2) выбор модели атрибуции: последний значимый / последний / первый переход (фильтр Метрики параметризован); (3) конверсии по КОНКРЕТНЫМ целям — таблица «Конверсии по целям» с количеством и ценой конверсии по каждой цели отдельно. Данные за период тянутся live из Директ Reports + Метрики (по-цельные запросы устойчивы к целям чужих счётчиков). Проверено на Брендовых: за 7 дней Регистрация = 25 конверсий (lastsign) vs 15 (first) — атрибуция реально меняет картину.

Мелочь: имена целей вне management-списка показываются как «Цель №N». Дальше по плану: корректировки ставок, временной таргетинг, создание группы/объявления, ИИ-исполнитель.

23.07.2026, 19:24:02 · S7 · claude

Ближайший блок аналитики закрыт: (1) авто-сбор статистики кроном каждые 6 часов по всем кампаниям — кнопку жать больше не нужно, сборщик общий для крона и кнопки (вынесен в пакет direct-api вместе со всем Директ-модулем); (2) конверсии по целям стратегии из Метрики в статистике: колонка «Конверсии» по дням + карточки «Конверсии» и «Цена конверсии» в сводке (по Брендовым: 19 конверсий 21.07); цель оптимизации в стратегии — выпадающим списком с названиями; (3) вордстат-инструмент «Подбор фраз»: фразы + регионы по названиям -> частотность из Вордстата (API v4) -> галочками добавить в группу кампании. Пофикшены: management-цели Метрики не содержат часть реальных целей (убран фильтр, деградация по одной), вордстат-ретрай на «report is being generated».

Второй блок: корректировки ставок (перенос из LF), временной таргетинг, визитка, создание группы/объявления из кабинета. Третий: ИИ-исполнитель «применить совет» + авто-оптимизации с фиксацией сроков. Владельцу: посмотреть «Подбор фраз» и конверсии в кампании.

23.07.2026, 19:07:09 · S7 · claude

UX-доработка по наказу владельца (юзабилити для простого директолога): (1) регионы показа — больше никаких ID: чипы с названиями + живой поиск по справочнику Директа (дикшинари кэшируется в памяти api, поиск серверный: Москва/Екатеринбург/Россия...), в таблице групп регионы тоже названиями; (2) быстрые ссылки — отдельные поля Название/Ссылка/Описание построчно с добавлением/удалением строк, ссылки показываются ЧИСТЫМИ (без UTM-каши), UTM автоматически добавляется при сохранении из поля «Параметры URL» ко всем ссылкам включая быстрые; (3) уточнения — чипы с крестиками, добавление по Enter. Проверено: поиск отдаёт Екатеринбург (54), имена по ID резолвятся.

Владельцу посмотреть глазами. Дальше: цели в стратегии тоже выпадающим списком (не ID), временной таргетинг сеткой, корректировки ставок, ИИ-исполнитель.

23.07.2026, 18:57:43 · S7 · claude

Владелец справедливо указал, что быстрые ссылки/уточнения/UTM и смена стратегии реализуемы через API (делали в LF) — признано и реализовано, сверено с боевым кодом LF. Кабинет теперь: (1) СМЕНА СТРАТЕГИИ из UI — 6 типов (макс.конверсий, макс.кликов, ср.CPA, ср.CPC, оплата за конверсии, ручные ставки) с полями по типу, тумблер показов в сетях, confirm о сбросе обучения; (2) БЫСТРЫЕ ССЫЛКИ (до 8, Название|href|Описание), УТОЧНЕНИЯ и ПАРАМЕТРЫ URL (UTM с шаблонами {campaign_id}/{ad_id}/{keyword}) — редактируются и применяются ко всем объявлениям кампании разом (sitelinks.add + adextensions.add + масс-ads.update); (3) РЕДАКТОР ГРУППЫ — регионы показа, минус-фразы группы, просмотр фраз группы с удалением и добавлением пачкой (keywords.add/delete). Чтение проверено на Брендовых: 6 ссылок, 8 уточнений, UTM utm_source=brend-contex — совпало со скринами владельца 1в1. Плашка ограничений сужена до реально недоступного в API (промоакции, эксперименты, Neuro Ads, приоритизация, сегменты Аудиторий).

Владельцу: проверить запись безобидной правкой. Дальше: автотаргетинг категорий группы (проверить поддержку в API v5), корректировки ставок (bidmodifiers — код есть в LF), временной таргетинг, ИИ-исполнитель, вордстат-инструмент.

23.07.2026, 18:43:42 · S7 · claude

Вкладка «Настройки» кампании расширена до уровня Директа (по скринам владельца): секции Стратегия (тип + недельный и дневной бюджет), Счётчики Метрики (редактируемые), Целевые действия и их ценность (цели с ₽, добавление из выпадающего списка целей счётчика ПЦ — подтянута 551 цель, удаление), Срок проведения (даты), Минус-фразы, Запрет показов (площадки + IP-адреса до 25), тумблеры (мониторинг сайта, расширенный гео, разметка Метрики, организация ЯБ). Смена типа стратегии намеренно оставлена только в Директе (обученная стратегия сбрасывается) — в UI есть плашка со списком того, чего API не даёт (UTM кампании, быстрые ссылки кампания-уровня, эксперименты, персонализация). Чтение проверено на Брендовых: стратегия Максимум конверсий 10000р/нед, 4 счётчика, 2 цели по 350р, IP 77.51.125.56 — всё совпало со скринами владельца.

Запись настроек через campaigns.update готова, но на живой кампании не гоняли — владельцу проверить на безобидной правке (например минус-фраза). Дальше: временной таргетинг (редактор сетки), корректировки ставок, быстрые ссылки/уточнения на уровне объявлений, вордстат-инструмент, цели/конверсии в статистику.

23.07.2026, 18:31:24 · S7 · claude

Редизайн раздела кампании по образцу Директ Про (наказ владельца: UI был слабый). Страница кампании = рабочая область с вкладками Обзор / Группы / Объявления / Ставки и фразы / Настройки. Объявления — превью как в выдаче (синий заголовок, зелёный домен, текст) + инлайн-редактирование с лимитами символов (56/30/81) + статусы «Идут показы/Остановлено». Группы — таблица с кликом-фильтром в объявления. Фразы — таблица со статусами и группами. Кампании у клиента — директо-таблица со статистикой 30 дней в строках (расход/клики/CTR/отказы из агрегатов). Цветные статус-точки. Всё на проде, страницы рендерятся.

Дальше по UI: период дат в статистике, массовые действия чекбоксами, ставки в таблице фраз. По функционалу: цели Метрики, вордстат-инструмент, ИИ-исполнитель.

23.07.2026, 18:21:53 · S7 · claude

Владелец выдал доступ к счётчику 200476 — отказы из Метрики подключены и льются в статистику обеих кампаний (пофикшен квирк: Метрика для части кампаний отдаёт Директ-ID со сдвигом +1e8, фильтр по обоим вариантам). Инсайт: отказы Брендовых 3-9% (норма), у РК МСК 33-52% при норме поиска до 20% — монитор качества зафиксирует нарушение автоматически.

Цели Метрики (создание через API + конверсии), затем остаток редактора и ИИ-исполнитель.

23.07.2026, 18:05:14 · S7 · claude

Курс на «полный функционал Директа + ИИ в каждом блоке» принят, ядро редактора готово и живое: (1) настройки кампании — дневной бюджет, минус-фразы, запрещённые площадки правятся из кабинета и сохраняются в Директ; (2) группы и объявления — просмотр, правка заголовков/текстов (с перемодерацией), пауза/включение объявления; (3) ИИ-советник в 4 блоках (статистика/семантика/объявления/настройки) — контекст собирает код из реальных данных, LLM DeepSeek через прокси, проверен живьём; (4) счётчик Метрики 200476 прописан, код отказов готов, но нужен гостевой доступ к счётчику для аккаунта ShamrayGroup1 (сейчас 403). Оставшийся объём редактора разбит на 5 задач.

БЛОКЕР ВЛАДЕЛЬЦУ: гостевой доступ счётчика 200476 аккаунту ShamrayGroup1 (Метрика -> Настройки -> Доступ). Дальше по списку: стратегии/корректировки/таргетинг, быстрые ссылки, создание групп/объявлений, ИИ-исполнитель «применить совет», авто-сбор статистики кроном.

23.07.2026, 17:43:45 · S7 · claude

Фидбек владельца отработан. (1) БАГ починен: карточка клиента отдавала «нет доступа» — падала сериализация номеров кампаний Директа (BigInt), исправлено. (2) Страница кампании: сводка за 30 дней (расход/клики/показы/CTR/цена клика), таблица по дням, кнопка «Обновить статистику» — реальный Директ Reports API; проверено на обеих живых кампаниях ПЦ (31+30 дней данных). (3) Семантика: фразы (keywords.get) и минус-слова кампании live из Директа. (4) Управление: пауза/запуск показов с подтверждением. (5) Пороги качества: редактируются инлайн, добавляются и удаляются, системные дефолты переопределяются на уровне организации. Все действия в журнале человеческим языком. Подтверждено владельцу: вордстат — только через API.

Метрика ПЦ: узнать/выбрать counterId, подтянуть отказы в снапшоты, создание целей через Management API и конверсии по ним. Авто-сбор статистики кроном (сейчас по кнопке). Вордстат-инструмент по API. Затем мастер создания кампании (бриф -> семантика -> объявления -> черновик в Директе).

23.07.2026, 17:32:07 · S2+S7 · claude

По наказу владельца: (1) сервис переименован в «ПЦ Директ кабинет» (UI+БД). (2) Журнал изменений переведён на человеческий язык для директологов: вместо connection/pipeline/JSON — «Подключён кабинет Яндекс Директ», «Собрали ключевые фразы», «email такой-то добавил клиента»; технические детали скрыты. (3) Реальные доступы ПЦ перенесены с сервера LF в Подключения: кабинет Директа (общий, +Вордстат) и Метрика ПЦ. (4) Заведён клиент «Пульс Цен», импортированы 2 живые кампании: «Брендовые запросы» (117490954) и «РК МСК активности и оквэд» (708678710). (5) Тестовые данные удалены. Видение согласовано: рабочее место директолога = запуск + аналитика + сбор информации + статистика; приоритет S7 (статистика живых кампаний) поднят, добавлены задачи дашборда статистики, отчётов и вордстат-инструмента.

S7 первым: сбор статистики по 2 кампаниям ПЦ (Reports API + Метрика) -> дашборд показателей против норм ОКР. Параллельно вордстат-инструмент. Затем S3-S5 (подготовка новых кампаний по брифу). Ждём от владельца образец брифа.

23.07.2026, 17:16:55 · S2 · claude

Переориентация по владельцу: работаем строго в рамках клиента Пульс Цен, фокус — полноценный кабинет директолога. (1) Тестовые данные и все посторонние упоминания вычищены из БД, доков и кода. (2) Автоаудит сайта отложен: у посадочных клиента антибот-защита — шаг site_audit пропускается (skipped) и пайплайн идёт дальше, код сохранён за флагом AUDIT_ENABLED. (3) Кабинет: страница «Подключения» (Директ/Метрика/Callibri, ручной ввод токенов, маскировка, журналирование), logout, навигация. E2E: пайплайн с пропуском аудита и создание подключения проверены на сервере.

Кабинет дальше: команда/роли (инвайты специалистов), страница кампаний, докрутить брифы под образец владельца (ждём docx). Потом S3-S5: AI-анализ бизнеса (по брифу, не по сайту — раз аудит отложен), семантика вордстатом, объявления. Владельцу: образец брифа, доступ к кабинету Директа ПЦ.

23.07.2026, 17:06:54 · S2+S3 · claude

S2: UI готов — создание клиента (/clients/new), форма стандартного брифа (черновик 9 полей), кнопки запуска аудита/полного пайплайна, карточка клиента показывает отчёт аудита построчно (ок/блокер/рекомендация). S3 частично: краулер-аудит v1 реализован и работает — 11 детерминированных проверок по docs/03_landing_checklist.md, скоринг 0-100, red-провалы блокируют запуск (клиент → blocked, ран → waiting_user с перечнем блокеров). E2E-прогон на myvision.su: балл 15/100, блокеры tel:/ИНН/политика ПД найдены корректно. Деплой на cfru, всё живое.

S2: OAuth/токен Яндекс Директа (страница «Подключения»), импорт docx-брифа после образца владельца. S3: LLM-оценка оффера против брифа (группа 3 чек-листа) через AI_PROXY, PageSpeed API, docx-документ рекомендаций. Владельцу: образец брифа + его чек-лист.

23.07.2026, 17:01:07 · S1-S3 · claude

Ответы владельца: (1) образец стандартного брифа даст позже; (2) чек-лист посадочных есть у него, но пока действуем по нашему — составлен v1 в docs/03_landing_checklist.md (техника/аналитика/оффер/конверсия/юридика+модерация, red/yellow, скоринг, passed = ни одного red); (3) коллтрекинг = Callibri. Доки обновлены локально и на сервере.

S2: форма клиента+брифа в UI (черновик полей), OAuth Директа. S3: краулер под чек-лист. Ждём от владельца: образец брифа, его чек-лист посадочных.

23.07.2026, 16:42:24 · S1 · claude

Старт проекта по брифу владельца (docx). Изучен бриф, роадмап 8 спринтов заведён. Собран скелет полноценной архитектуры (не MVP): монорепо npm workspaces — packages/db (Prisma 6 + Postgres, полная модель: тенанты/роли, клиенты/брифы, пайплайн-раны с шагами, кампании/группы/комбинаторные объявления, журнал изменений, самоисправление ErrorFix, оптимизация со сроками, метрики+пороги ОКР из брифа), apps/api (Fastify, JWT, RBAC owner/specialist/viewer), apps/workers (BullMQ: стейт-машина 8 шагов запуска + монитор порогов каждые 4ч), apps/web (Next 15: обзор, клиент, журнал, пороги). Всё компилируется.

Деплой на cfru (docker dp-postgres/dp-redis + pm2 + порт 3080 по IP) -> миграции+сид -> проверить вход и обзор. Дальше S2: формат стандартного брифа согласовать с владельцем, OAuth Директа.