Описание
vk-ads-manager — скилл, который ведёт агента через весь путь запуска рекламы VK: анализ конкурентов и ниши перед стартом, сборка и настройка аудиторий, создание объявлений и креативов, правильная структура кампании — сегменты, ставки и бюджеты. Помогает таргетологам и владельцам бизнеса запускать VK Рекламу с помощью ИИ без глубокого погружения в интерфейс кабинета.
Что умеет:
— анализировать конкурентов и нишу;
— собирать аудитории;
— создавать объявления и структуру кампании;
— настраивать ставки и бюджеты.
Полная документация ниже — автоматически из репозитория ai-hub-open/vk-ads-manager (ветка main). Оригинальные материалы проекта распространяются на условиях его лицензии.
vk-ads-manager
Скилл для ИИ-агента, который собирает рекламную кампанию в VK Рекламе и заводит её в кабинет ads.vk.ru: изучает конкурентов, проектирует аудитории, считает прогноз бюджета, пишет объявления, привязывает креативы и создаёт структуру кампании через API.
Скилл — папка с инструкциями и скриптами, по которым агент выполняет работу таргетолога. Маршрут шагов лежит в SKILL.md, методики по разделам VK Рекламы — в references/, расчёты и генераторы — в scripts/. Агент читает их сам, отдельного приложения у скилла нет.
Версия 0.7.6, лицензия Apache-2.0. Диалог, документы и справочники — на русском языке. Числа в этом файле сверены с кодом этой версии.
Кампания, группы объявлений и объявления создаются на паузе. Переводить объекты в активный статус агенту запрещено: показы включает маркетолог в кабинете, и до этого бюджет не расходуется.
Скилл работает только с кабинетом VK Реклама (ads.vk.ru). Старый кабинет ВКонтакте и myTarget закрыты для создания кампаний с января 2026 года и не поддерживаются.
Что делает
Маршрут подготовки кампании — от брифа до структуры в кабинете. Каждый шаг оставляет файл в рабочей папке vk-campaign-<slug>/, следующий шаг читает его.
- Бриф. Продукт, цена, тип спроса, целевой CPL и его предел, бюджет, срок теста, цель кампании, состояние пикселя. Отдельно — материалы бренда: логотип, цвета, изображения продукта, скриншоты, готовые ролики.
- Конкуренты. Прямые и непрямые конкуренты, заменители и сценарий «ничего не делать»; затем разбор офферов, цен, подачи, сообществ и рекламных форматов. Список кандидатов подтверждается до глубокого разбора.
- Позиционирование и УТП — отдельное сообщение для каждого сегмента.
- Портреты покупателей и матрица аудиторий. Матрица строится по двум осям: теплота (горячие — те, кто уже взаимодействовал; тёплые — похожие аудитории и тематические интересы; холодные — соцдем и широкие интересы) и портрет покупателя. Заполняются не все клетки: в работу идут 4–6 ячеек с самой сильной гипотезой, одна ячейка — одна группа объявлений.
- Пиксель и события. Если счётчика нет, скилл выдаёт код пикселя и перечень событий под цель кампании —
page_view,lead,purchase,add_to_cart,registration. - Посадочная страница и прогноз бюджета. Три сценария: минимальный, целевой и расширенный. Сценарии отличаются не коэффициентом «на глаз», а тем, какую границу каждой метрики берёт расчёт: минимальный считает по высокому CPM и низким CTR и конверсии, расширенный — наоборот.
- Объявления и креативы. Тексты под форматы VK Рекламы с проверкой ограничений и модерации, по 3–5 вариантов на ключевую связку «гипотеза → аудитория → посадочная страница».
- Создание кампании в кабинете и итоговый отчёт-стратегия.
Быстрый запуск. На просьбу «запусти быстро», «без стратегии», «минимальная кампания» скилл идёт коротким путём (references/quick-launch.md): бриф из пяти вопросов, три сегмента, креативы, залив на паузе. Конкуренты, портреты и прогноз пропускаются, и в журнале запуска перечислено, что пропущено и чем это грозит. Согласование сегментов и текстов, проверка юридической чистоты, данные для ОРД и запрет активации остаются. Это не мастер «Быстрый запуск» в самом кабинете VK — там аудиторию и текст подбирает VK, и через API такая кампания не создаётся.
Связка «гипотеза → аудитория → воронка → посадочная → креатив» держится в одном файле creatives.json, поэтому таблица объявлений, отчёт и структура в кабинете не расходятся между собой.
Сессия прерывается без потери работы: состояние лежит в _state.json и журналах рабочей папки, по фразе «продолжаем по VK» агент поднимает его и идёт дальше, а не начинает заново.
Таргетинги
В матрицу попадают только те типы таргетинга, которые настраиваются в кабинете: интересы, ключевые фразы, ремаркетинг, похожие аудитории, свои списки контактов. Ключевые фразы в VK Рекламе — один тип таргетинга, а не собранное поисковое ядро: потолок 15–40 точных фраз на горячий сегмент. Минус-слов в VK Рекламе нет, сужение идёт исключениями интересов и сообществ.
Технические пороги площадки, которые скилл проверяет до сборки: похожая аудитория — от 1000 совпавших пользователей в источнике, загрузка базы контактов — от 1000 записей после сопоставления.
Работа с активной кампанией
Кроме подготовки, в references/lifecycle-runbook.md описаны 13 сценариев повседневной работы: сводка по кабинету и ежедневная проверка, изменение бюджета, пауза и запуск, похожие аудитории, загрузка базы контактов, замена креатива, сужение аудитории, недельная оптимизация, смена стратегии ставок, предзапусковый чек-лист, корректировки по соцдему, копирование кампании.
Перед изменением агент показывает план и ждёт подтверждения, после изменения перечитывает объект и пишет операцию в журнал. Сущности не удаляются — только ставятся на паузу. Статус кампании агент меняет исключительно по явной команде маркетолога, по своей инициативе — никогда.
Точки контроля
Места маршрута, где агент останавливается и ждёт решения маркетолога: бриф, список конкурентов, позиционирование, матрица аудиторий, прогноз бюджета, пиксель и события, ревью изображений и видео, тексты объявлений, создание структуры в кабинете. Сквозного прогона без человека нет.
Установка
Claude Code — плагином, с обновлениями
В сессии Claude Code:
/plugin marketplace add ai-hub-open/claude-plugins
/plugin install vk-ads-manager@ai-hub-open
Скилл вызывается как /vk-ads-manager:vk-ads-manager или просьбой своими словами («запусти таргет в VK»).
Затем включите автообновление: /plugin → Marketplaces → ai-hub-open → Enable auto-update.
С ним новые версии приходят сами при старте сессии. Без него — командой
/plugin marketplace update ai-hub-open.
Python-зависимости плагин сам не ставит — один раз выполните python install.py в папке плагина
(путь покажет /plugin → vk-ads-manager). Ключи хранятся в ~/.vk-ads-manager/, вне папки плагина, —
обновление их не трогает. Если раньше скилл лежал папкой в ~/.claude/skills/, удалите её, иначе
скилл будет загружаться дважды.
Вручную — папкой или архивом
Скачайте репозиторий, откройте его папку и запустите:
python install.py
Скрипт проверяет версию Python, ставит зависимости из requirements.txt, создаёт каталог ~/.vk-ads-manager/ для ключей и делает быстрый smoke-тест импортов. Запускать повторно безопасно.
Второй способ — готовый файл скилла: dist/vk-ads-manager.skill загружается в среду, которая умеет ставить скиллы, либо распаковывается вручную (внутри обычный ZIP). Собрать такой файл из исходников можно командой ./package.sh или python -m scripts.package_skill — рабочие папки, кэши и .git в него не попадают.
Подключение MCP
MCP — подключение агента к API рекламной системы. Через него агент читает кабинет и создаёт в нём объекты.
Скилл рассчитан на хостовый сервер https://vkads-mcp.aihub.click.ru/mcp — 46 инструментов VK Ads API с именами вида vk_ads_*: кампании, группы, объявления, аудитории, пиксели, контент, статистика, справочники. Ставить и клонировать ничего не нужно, установщик только дописывает адрес и заголовки в конфиг агентной среды:
python -m scripts.setup_vk_ads_mcp --token <CLICK_RU_TOKEN> --vk-account-id <ID> --target all
Цели записи: cursor, cursor-project, claude-code, claude-desktop, all. Полезные флаги — --dry-run (показать, что будет записано), --remove (снять записи), --click-ru-user-id (мастер-аккаунт). Существующие серверы в конфиге сохраняются, перед записью делается резервная копия. Полная инструкция, включая ручную правку конфигов, — в docs/hosted-mcp-setup.md.
Вместе с vk-ads установщик подключает хранилище картинок keepimage и сохраняет токен в реестр ключей, чтобы заливка креативов работала сразу; --no-keepimage это отключает.
Два способа дать доступ к кабинету.
- Через click.ru. Один API-токен из профиля click.ru/userinfo.html, поле «API Token». Аккаунт VK Рекламы должен быть подключён в click.ru; в заголовки идут токен и идентификатор аккаунта. Заявка на API VK Рекламы и собственное OAuth-приложение при этом не нужны.
- По прямым доступам VK Рекламы, если кабинет заведён не через click.ru. Сервер принимает готовый токен доступа либо пару
client_idиclient_secretприложения из кабинета (Настройки → API). Разница практическая: готовый токен живёт сутки и после этого требует обновления, а по ключам приложения агент получает и продлевает токен сам — для постоянной работы нужны они. У VK Рекламы ограничение в 5 активных токенов на пару «приложение × пользователь», частота запросов — 5 в секунду.
Доступ выдаёте и отзываете вы: токен снимается в том же профиле, откуда выдан, а --remove убирает сервер из конфига среды. Ключи хранятся в ~/.vk-ads-manager/credentials.json (на Unix права 600) — отдельно от папки скилла и от рабочих файлов кампании, в файлы кампании они не попадают. Вводить их лучше скрытым вводом, чтобы значение не осталось в истории команд:
python -m scripts.manage_credentials set vk_ads # ключ VK Рекламы
python -m scripts.manage_credentials set openai # генерация изображений
python -m scripts.manage_credentials list # что уже сохранено
python -m scripts.manage_credentials delete openai # удалить
Терминология API
API наследует имена myTarget, и в новом кабинете они означают другое:
| В интерфейсе VK Рекламы | В API |
|---|---|
| Кампания | ad_plan |
| Группа объявлений | campaign |
| Объявление | banner |
Отсюда два следствия, из-за которых скилл создаёт структуру одним вызовом. Группа без ad_plan_id создаётся, но в новом кабинете не видна. Объявления передаются внутри группы при её создании — отдельного метода «добавить объявление в существующую группу» в API нет, и пустая группа останется пустой навсегда: её придётся удалить и пересоздать.
Запуск
После установки напишите агенту, что нужно сделать, — например:
Собери кампанию в VK Рекламе для <продукт>, сайт <адрес>. Бюджет теста <сумма>, цель <заявки / трафик>.
Агент задаст бриф одним блоком, разберёт нишу и поведёт по шагам, останавливаясь в точках контроля.
Креативы
Свои картинки маркетолога имеют приоритет над генерацией: агент спрашивает о них до того, как что-то рисовать. Дальше развилка по тому, где лежит файл.
- Картинки файлами. Кладутся в
assets/images/под именами креативов. При заливе через MCP они выкладываются во временное хранилище скриптомupload_creatives_to_storage.py— ссылка живёт не больше двух часов и нужна только на момент вызова, VK скачивает картинку в свой контент. Хостовый сервер локальные пути не читает, поэтому шаг обязателен; токен click.ru для него агент спрашивает в начале работы, а не на заливе. Без токена картинки идут через REST-клиент, ручную загрузку или прямыми ссылками — передавать картинку текстом (base64) в вызове агент не пытается. - Размер квадрата. Квадратная картинка в объявлении — ровно 600×600: VK отклоняет 1080×1080 в этой роли. Исходник можно держать 1080, скрипты загрузки ужимают копию до 600 сами; 16:9 и 4:5 не трогают. Логотип 256×256 нужен в каждом объявлении.
- Картинки публичными ссылками. Идут в кабинет напрямую. Перед загрузкой каждая ссылка проверяется HEAD-запросом: если вернулся
text/html, это страница просмотрщика облачного диска, а не файл, и агент запросит замену вместо битой загрузки. - Видео. Хранилище принимает только изображения (PNG, JPEG, GIF, WebP). Видеокреатив заливается публичной ссылкой либо локальным файлом через REST-клиент скилла.
- Генерация. Источник картинок агент выбирает по тому, какие инструменты есть в среде. Есть инструмент
create_ad_image(так на платформе AI Hub) — рисует им: по картинке за вызов, сразу в размере роли VK, без текста на изображении, ключ не нужен. Инструмента нет — изображения собираются скриптом через OpenAI Images API (gpt-image-1илиdall-e-3); это внешний сервис, нужен ключ и оплата на его стороне. Видео — через Replicate, Runway, Kling или Veo. Нет ни инструмента, ни ключа — модуль пропускается целиком, а вместо картинок агент собирает техническое задание дизайнеру и говорит прямо, что без визуала кампанию не залить. Еслиcreate_ad_imageдважды вернул ошибку, агент называет её причину и предлагает только варианты про картинки: позже, свои файлы или ТЗ дизайнеру. - Загрузка с платформы. Где инструмент загрузки принимает путь к файлу рабочей папки (платформа AI Hub), картинка уходит в кабинет по пути, без временного хранилища и токена click.ru.
Как объекты попадают в кабинет
Три пути, агент берёт первый доступный в среде:
| Путь | Когда | Что нужно |
|---|---|---|
MCP vk-ads |
основной | вызов инструментов MCP, запуск кода не нужен |
REST-клиент deploy_campaign.py |
MCP не подключён | запуск Python и токен VK Рекламы |
| Ручная загрузка по инструкции | ни того, ни другого | только файлы и диалог |
На третьем пути скилл собирает LAUNCH_GUIDE.md — пошаговую инструкцию с точными значениями из файлов кампании, по которой структуру заводят руками.
Перед заливом агент спрашивает, заполнены ли в кабинете данные рекламодателя для ОРД: без них VK отклоняет объявления (ord_data_required). После создания агент проверяет каждую группу по списку её объявлений: пустой список означает, что креативы не залились, и такой результат не выдаётся за успешный. Поле объявлений в карточке группы на паузе всегда пустое, поэтому по нему не судят.
Без пикселя с целью агент берёт пакет с оплатой за клики: оптимизация на конверсии требует цели пикселя.
Что на выходе
- Структура в кабинете — кампания, группы объявлений и объявления со ссылкой на кампанию в интерфейсе.
- Матрица аудиторий — сегменты по теплоте и портретам с типом таргетинга, размером и источником данных для каждой ячейки.
- Прогноз бюджета — три сценария с воронкой «бюджет → показы → клики → заявки → лиды» и пометкой источника у каждой метрики:
api(цифра из кабинета),client(от клиента),benchmarkилиassumption. Лиды и CPL уходят в стратегию только с источникомapiилиclient; всё остальное помечено как несогласованное. - Таблица объявлений
ads.xlsxс проверкой ограничений площадки. - Отчёт-стратегия
strategy_report.md(и.docx) — резюме и УТП, карта воронок, посадочные, структура кампаний, прогноз, список запросов клиенту. Плюс самодостаточные файлы по блокам, каждый можно отдать отдельно. - Чек-лист перед запуском — пиксель, события, ссылки, тексты, маркировка, бюджет.
- Раздел «Пропущено из-за среды» в журнале запуска и в отчёте: где агент пошёл обходным путём, что именно недобрано и как это добрать руками. Если пропусков не было, так и написано.
Данные помечаются, а не додумываются: таргетинги берутся из тех, что реально настраиваются в кабинете, у каждой цифры прогноза виден источник, неподтверждённое помечается как непроверенное.
Требования
- Агентная среда — программа, в которой работает агент. Обязательный минимум от неё: чтение и запись файлов в рабочей папке и диалог с подтверждениями. Без диалога не работают точки контроля.
- Выполнение Python-скриптов — ими собираются прогноз, таблица объявлений, отчёт, креативы и заливка. Формально скилл доходит до конца и без них, но тогда расчёт и документы ложатся на человека, а проверка ограничений текстов теряется.
- Python 3.9 или новее — эту границу проверяет
install.py. - Доступ к кабинету VK Рекламы — токен click.ru либо прямые доступы VK Рекламы (см. «Подключение MCP»).
- Креативы — готовые изображения и видео либо ключи внешних сервисов генерации.
- Реквизиты рекламодателя для маркировки — юридические данные вносит человек в кабинете.
- FFmpeg — только для склейки видеосегментов.
Необязательные способности среды — поиск в интернете, чтение веб-страниц по ссылке, показ файлов — расширяют разбор конкурентов и посадочных. Что теряется без каждой из них, перечислено в SKILL.md, раздел «Что нужно от среды».
Ограничения
Чего скилл не делает:
- не создаёт лид-формы: API умеет создать только объявление-обёртку со ссылкой на готовую форму, саму форму собирают в кабинете руками;
- не создаёт и не устанавливает пиксель. Пиксель заводит человек в кабинете (Сайты → Добавить пиксель): VK требует для этого пароль от счётчика Top@Mail.ru, а пароли агент в чате не спрашивает. Агент выдаёт код и список событий и берёт
idготового пикселя через API; код на сайт ставит человек, и он же подтверждает, что события засчитываются; - не рисует креативы без внешнего сервиса генерации;
- не оформляет маркировку: реквизиты, договоры и акты заполняются в кабинете, API их только читает;
- не удаляет сущности при ведении кампании — ставит на паузу;
- не заменяет таргетолога: аудитории, прогноз и тексты объявлений остаются решением маркетолога.
Границы площадки и клиента:
- REST-клиент при первой загрузке не создаёт похожие аудитории (нужен источник, которого у новой кампании ещё нет) и не загружает базу контактов; его форма объявления (роли текста и картинки) сверена через MCP, но сам путь через REST вживую не проверен, видео и карусель в нём не проверены;
- у кампании (
ad_plan) нет метода смены статуса: пауза и запуск верхнего уровня идут обновлением объекта, у группы метод есть; - прохождение модерации и присвоение ERID зависят от площадки и ОРД, ожидание доходит до 10 дней;
- реальные скриншоты интерфейса продукта и ролики с людьми предоставляет клиент — сгенерированные для этого не годятся;
- лимиты площадки, под которые собирается структура: до 100 групп в кампании, до 30 объявлений в группе, до 10 000 аудиторий в кабинете, общий лимит 300 объявлений и не более 200 в сутки;
- лимиты текстов, которые проверяет таблица объявлений: заголовок до 25 знаков для сайта и до 40 для сообщества, приложения и лид-формы; текст рядом с кнопкой до 30 знаков; поле «О компании» до 115 знаков.
Состав репозитория
vk-ads-manager/
├── SKILL.md маршрут шагов и правила работы агента
├── README.md
├── CHANGELOG.md
├── LICENSE
├── requirements.txt
├── install.py
├── references/ методики: конкуренты, аудитории, объявления, прогноз,
│ спецификации форматов, модерация, ОРД, лид-формы,
│ каталоги, приложения, API, MCP, lifecycle
├── scripts/ прогноз, генераторы документов и медиа, заливка,
│ установщик MCP, реестр ключей, упаковка
├── docs/ подключение хостового MCP, отчёты о проверках
├── tests/ тесты разработчика (в .skill не попадают)
├── pytest.ini
├── requirements-dev.txt
├── package.sh
└── package.bat
Рабочие папки кампаний создаются вне папки скилла и в репозиторий не попадают.
Тесты
pip install -r requirements-dev.txt
python -m pytest
Сеть в тестах закрыта (tests/conftest.py запрещает socket.connect), HOME
подменяется на временную папку — реальные ключи из ~/.vk-ads-manager и живой
кабинет не задеваются. Залив проверяется только в dry_run.
Покрыто: настройка консоли и её подключение во всех точках входа, установщик MCP
(все четыре способа авторизации), заливка картинок в KeepImage, упаковщик .skill,
инварианты залива (всё создаётся в blocked, группа всегда с ad_plan_id, бюджеты
в рублях и защита от больших сумм), форма объявления по ролям и лимиты текстов, регистрация
ссылок, ошибка ОРД, ужатие квадрата до 600×600 и гейт прогноза. Прогон — меньше секунды.
Лицензия и участие
Лицензия Apache-2.0, текст — в LICENSE. Журнал изменений — в CHANGELOG.md; до версии 1.0 состав шагов и материалов может меняться.
Нашли ошибку в маршруте, устаревший факт о площадке или расхождение документации с поведением — откройте Issue с описанием шага, ожидаемого и фактического результата. Правки принимаются запросами на слияние в ветку dev. Секреты в Issues, запросах и файлах кампаний не публикуются: в репозитории только плейсхолдеры.