Перейти к содержимому

VK Ads

Подключите рекламный кабинет и работайте с кампаниями, объявлениями, аудиториями и статистикой через ИИ.

Инструментов в справочнике: 95 · MCP v3

Подключение

  1. Подключите кабинет VK Ads

    Откройте VK Ads в личном кабинете LidFly. Войдите через VK или используйте Client ID и Client Secret из настроек доступа VK Ads. После подключения кабинет появится в LidFly.

  2. Подключите ИИ-ассистента

    Перейдите к настройке Claude или Codex. Для других клиентов есть быстрый старт. Подключение использует https://lidfly.ru/mcp/v3 и вход в браузере. API-ключ вручную копировать не нужно.

  3. Проверьте доступ

    Попросите ИИ показать доступные кабинеты VK Ads. Сверьте название и ID нужного кабинета перед работой с рекламой.

Технические сведения о подключении и выборе кабинета

Сам кабинет VK Ads подключается двумя способами: через обычный вход VK или по Client ID + Client Secret из настроек доступа клиента. Во втором случае LidFly сам получает и обновляет токены, а в кабинете показывает статус «Полный доступ».

Для новых подключений используйте единый endpoint /mcp/v3. Полный VK endpoint /mcp/vk остаётся для legacy/advanced сценариев. Все meta-инструменты из tools/list, включая get_provider_context, resolve_campaign_scope, search_skills, get_skill и get_skill_resource, AI вызывает напрямую; в call_tool/call_write_tool передаются только внутренние инструменты, найденные через search_tools. Для сложных сценариев, включая goal_mode, skill-ответ возвращает точную версию и digest подписанного workflow, не расширяя права и scope.

Через то же подключение внешний ИИ может читать личную переписку инструментами support_get_messages/support_get_attachment. При неожиданной внутренней ошибке read-only support_prepare_report создаёт очищенный черновик с incident ID и ничего не отправляет. ИИ показывает его пользователю и только после явного текстового согласия вызывает support_send_error_report (отчёт разработчикам) или support_send_message (обращение в поддержку); при необходимости до пяти изображений загружаются через support_request_image_upload. Выбранный VK-кабинет не меняет владельца диалога.

Если доступно несколько VK Ads подключений или кабинетов, AI сначала вызывает get_provider_context. Если известна кампания, resolve_campaign_scope принимает точный ID или полное точное название и сначала проверяет Пространства. Поиск по названию последовательно читает страницы VK до конца в общем ограниченном бюджете времени; timeout или неполная пагинация возвращают incomplete, а не ложный результат об отсутствии. Затем AI передаёт в рабочие инструменты точные workspace_project_id, connection_id и при необходимости client_id. Campaign write без workspace_project_id проходит только когда call_write_tool preflight по campaign id нашёл единственный Workspace/provider scope. Для собственного кабинета нужен только connection_id. Если пользователь явно добавил VK user ID из переключателя, LidFly использует скрытый _user_id для чтения и ограниченных write-действий.

Первый запрос к ИИ

Укажите кабинет в запросе, если подключений несколько. Эти примеры запрашивают только чтение данных.

Проверить подключение

Покажи доступные мне кабинеты VK Ads, их названия и ID. Ничего не изменяй.

Посмотреть кампании

Покажи все кампании в выбранном кабинете VK Ads и их статусы. Если данные получены не полностью, сообщи об этом.

Оценить результаты

Сравни расходы, показы и клики в выбранном кабинете VK Ads за последние 7 полных дней с предыдущими 7 днями. Укажи период и доступную детализацию отчёта.

Несколько кабинетов

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

Кабинет, который виден в переключателе VK Ads, может быть недоступен через API. Если он не появился после синхронизации, проверьте способ подключения и права доступа.

Способы подключения, агентские кабинеты и ограничения ручного доступа

После OAuth или подключения по Client ID + Client Secret LidFly сохраняет отдельное VK Ads подключение, синхронизирует его основной кабинет, клиентов агентства и клиентов менеджера, показывает уровень доступа и позволяет выбрать рабочий кабинет ИИ. Встроенный чат, /mcp/v3, /mcp/vk и /mcp/vk/lite автоматически передают нужный connection_id, а для клиентского кабинета ещё и client_id.

Для новых подключений используйте OAuth или Client ID + Client Secret. Если старое подключение уже было создано по готовому access token, в его карточке «Сохранённый доступ» остаётся поле для замены истёкшего токена.

Важно: OAuth подключает не выбранный в верхнем меню кабинет VK Ads, а VK-пользователя, который подтвердил доступ. Если в браузере можно переключиться на кабинет клиента, но после «Найти кабинеты VK Ads» он не появляется в LidFly, значит VK API не отдаёт этот кабинет как клиента агентства или менеджера для текущего токена.

Для таких случаев в личном кабинете есть ручное добавление VK user ID из переключателя VK Ads. VK Ads API не показывает список этих скрытых клиентов отдельным методом, поэтому ID вводится вручную один раз. LidFly проверяет доступ к объектам через недокументированный фильтр _user_id и дальше подставляет этот фильтр автоматически для чтения и ограниченных write-действий.

Стоимость зависит от числа доступных ИИ кабинетов. Актуальные условия — на странице тарифов.

Синхронизируйте Используйте OAuth для своего VK-пользователя или Client ID + Client Secret для прямого полного доступа к кабинету клиента. Токены LidFly обновляет автоматически.
Выберите кабинет по умолчанию Если кампании у клиента, сделайте клиентский кабинет кабинетом по умолчанию.
Привяжите к проекту Для агентств каждый клиентский проект должен иметь provider entity vk_ads; AI получит connection_id из provider context.

Если клиентский кабинет — отдельный VK-логин, подключите его дополнительным OAuth либо попросите клиента передать Client ID и Client Secret из настроек доступа VK Ads. При подключении по ключам LidFly получает токены серверно, обновляет их автоматически и даёт встроенному чату и MCP полный доступ к чтению и редактированию в рамках прав VK Ads.

Если кабинет должен быть доступен через агентство или менеджера, он должен вернуться из agency/clients.json или /api/v3/manager/clients.json. Ручной ID из интерфейса VK Ads не заменяет official API-доступ: для agency_client_credentials нужен user id клиента из AgencyClients/ManagerClients, иначе VK отвечает Unknown client.

Переключение sudo в браузере VK Ads не равно official API-доступу. Но если клиент виден в переключателе, можно добавить его VK user ID в LidFly: чтение кампаний, групп и объявлений пойдёт через скрытый _user_id. Объектная статистика и realtime в таком manual режиме зависят от VK API и могут возвращать пустые или нулевые данные; тогда LidFly подставляет доступный агрегат кабинета через statistics/users и faststat/users. Для надёжной детализации по кампаниям, группам и объявлениям нужен official agency/manager API-доступ или отдельный VK OAuth клиента. В manual режиме можно менять max_price и статусы через mass-action, часть полей кампаний (budget_limit, budget_limit_day, даты, max_price) и название лид-формы. price групп, создание, загрузка креативов и single update объектов требуют official agency/manager API-доступ или отдельный VK OAuth клиента.

Для групп с автостратегией max_goals ставочный лимит меняется через max_price. Обычное поле price может дать успешный ответ API, но остаться прежним при проверочном чтении.

Возможности и ограничения

  • Реклама и отчёты. Кампании, группы, объявления, лид-формы, аудитории и статистика. Доступ зависит от прав подключённого кабинета.
  • Изменения с подтверждением. Перед созданием ИИ проверяет настройки. Новые кампании и объявления создаются остановленными; запуск — отдельное действие.
  • Неполные данные. Пустой ответ API не доказывает отсутствие кампаний. Неполную выборку и ограничения статистики нужно учитывать в выводах.
  • Похожие аудитории. Создайте Look-alike в интерфейсе VK Ads, дождитесь готовности и используйте ID готовой аудитории.
  • Лид-формы. Создание объявления останавливается, если привязка формы не прошла проверку. ИИ должен сообщить причину.
  • Неопределённый результат записи. После сбоя нужно проверить статус операции, прежде чем повторять создание.
VK Mini Apps и события в приложении

Добавлена диагностика статистики мини-приложений, включая сценарии Senler: агент отличает подписку в приложении от social_network.vk_subscribe, находит приложение, трекер, событие и сверяет результат с колонкой «Результат» в интерфейсе VK Ads.

Найти событие vk_get_mobile_apps
vk_get_inapp_events
Сверить результат vk_get_inapp_stats
vk_get_statistics
Настроить оптимизацию priced_event_type=43
priced_goal: tracker.id + event.name
Разбор с примерами использования
Технические проверки создания, статистики и результатов операций

vk_get_campaigns показывает новые кампании первыми. Если VK вернул только часть списка, результат содержит пометку «НЕПОЛНАЯ ВЫБОРКА» и следующий offset — ИИ продолжает пагинацию и не делает выводы по одной странице.

Пустой ответ VK Ads API помечается как not_observed — это отсутствие наблюдения в проверенном кабинете, а не доказательство того, что кампаний нет. Тот же контракт используют инструменты кампаний Яндекс Директа, поэтому ИИ не выдаёт неполную проверку за пустой кабинет.

vk_prepare_campaign безопасно проверяет полный payload без записи: фактические paid_event_type/priced_event_type, goal_mode, совместимость стратегии и max_price, бюджеты и даты, формат возраста, CTA и реальные массивы options.targetings/options.settings выбранного пакета. goal_mode=required требует валидную именованную цель кампании или группы, forbidden запрещает её, unsupported останавливает запись. Цель нельзя требовать только из-за site_conversions или наличия options.settings.priced_goal. priced_event_type=41, включая пакет 3122 «Вступить», и priced_event_type=51 для лид-формы — фиксированные события с goal_mode=forbidden: priced_goal не передаётся. ID лид-формы не является PricedGoal.source_id. Пакет 3509 с priced_event_type=0 также не является goal-оптимизированным.

При несовместимости preflight возвращает package_priced_goal_forbidden, package_priced_goal_required или package_goal_policy_unsupported до POST. LidFly не удаляет цель автоматически: ИИ предлагает согласовать выбранное фиксированное событие пакета без именованной цели либо совместимый goal/oCPM-пакет. Создание группы проверяет только goal-policy пакета и родительской кампании, оставляя окончательную package-валидацию VK. Обновление общей цели кампании проверяет пакеты групп с пределом 20 страниц/1000 групп; повтор страницы или незавершённая проверка возвращает campaign_goal_policy_scan_incomplete без POST.

ready=true означает успешный локальный и каталоговый preflight, но окончательную проверку всего payload выполняет VK только при создании. После подтверждения vk_create_campaign повторяет проверку, принимает ровно одну bootstrap-группу без баннеров и создаёт кампанию с группой только в статусе blocked. Вложенные баннеры запрещены и при отдельном создании группы.

Перед каждым объявлением vk_prepare_banner перечитывает группу, package, площадки, допустимые patterns, banner fields, CTA и тип URL. Связь площадок с шаблонами берётся из матрицы package.options.targetings.pads.patterns; PackagesPads служит только запасным источником, потому что VK может не вернуть в нём patterns. Поле pattern_relation_source показывает использованный источник, а неполный каталог не выдаётся за ошибку креатива. Только ready=true и normalized_arguments допускаются в vk_create_banner. Новый баннер всегда создаётся blocked. POST выполняется один раз; при timeout/5xx результат проверяется по журналу и GET readback без автоматического повтора. Два баннера в группе — A/B-варианты, а не последовательный показ видео.

Для event 51 порядок такой: vk_get_packages → vk_prepare_campaign → blocked-create без priced_goal → vk_get_lead_forms → vk_prepare_banner с внутренним URL https://vk.com/leadads/form/<id>. Пока URL-only контракт не подтверждён на выделенном тестовом кабинете, preflight возвращает lead_form_binding_unverified и не выполняет запись. Недокументированное content.lead_form_id не подставляется.

До POST LidFly сохраняет журнал операции и безопасный verification context без рекламных текстов, raw URL, payload и токенов. Детерминированный отказ VK сохраняется как очищенный provider_error — та же причина доступна через get_write_operation_status. При unknown/ambiguous status-tool делает только GET. Нужная защитная остановка кампании или баннера возвращается как отдельный подтверждаемый next_write.

Создание standalone Look-alike через документированный публичный VK API недоступно. LidFly не подменяет его списком ремаркетинга и не использует seed segment как ID готовой LAL. Похожую аудиторию нужно создать в интерфейсе VK Ads, дождаться готовности и затем использовать её собственный ID в связи сегмента.

Справочник инструментов

Найдите действие по названию или описанию. Изменение и удаление данных требуют подтверждения.

Статус

vk_status

Проверить подключение к VK Ads и получить информацию об аккаунте

Чтение

Кампании

vk_get_campaigns

Список кампаний: новые сначала, фильтры и явный next offset для полной пагинации

Чтение
vk_get_campaign

Одна кампания по ID со всеми полями

Чтение
vk_prepare_campaign

Package-aware preflight: event types, goal_mode и структурированные ошибки до POST

Чтение
vk_create_campaign

Создать blocked-кампанию; journal сохраняет безопасный provider rejection

Изменение
vk_get_write_operation_status

Read-only статус VK write-операции: сохранённая причина отказа или GET reconciliation

Чтение
vk_update_campaign

Изменить кампанию; общая priced_goal проходит bounded-проверку пакетов групп

Изменение
vk_manage_campaigns

Массовое изменение статуса, бюджета, дат и max_price кампаний (до 200)

Удаление

Группы объявлений

vk_get_ad_groups

Список групп объявлений с таргетингами и бюджетами

Чтение
vk_get_ad_group

Одна группа по ID с полными таргетингами

Чтение
vk_create_ad_group

Создать группу после проверки goal_mode; вложенные баннеры запрещены

Изменение
vk_update_ad_group

Изменить группу; priced_goal проверяется до POST, расширение фраз — после записи

Изменение
vk_manage_ad_groups

Массовое изменение статуса, бюджета и max_price групп (до 200)

Удаление

Объявления

vk_get_banners

Список объявлений с модерацией и контентом

Чтение
vk_get_banner

Одно объявление по ID с полным контентом

Чтение
vk_get_urls

Получить информацию о зарегистрированных ссылках по ID

Чтение
vk_resolve_url

Получить тип и VK Object ID из URL (для сообществ → source_id)

Чтение
vk_create_url

Зарегистрировать URL и получить числовой ID для баннера

Изменение
vk_prepare_banner

Проверить группу, package/pads, pattern, поля, CTA и URL без записи

Чтение
vk_create_banner

Создать blocked-объявление после preflight; journal и readback без повторного POST

Изменение
vk_update_banner

Изменить контент и настройки объявления

Изменение
vk_manage_banners

Массовое изменение статуса объявлений (до 200)

Удаление
vk_get_banner_patterns

Шаблоны баннеров — допустимые комбинации полей контента

Чтение
vk_get_banner_fields

Справочник полей баннеров: типы, размеры изображений, ограничения текста

Чтение
vk_remoderate_banners

Отправить отклонённые объявления на повторную модерацию

Изменение

Контент

generate_ad_image

AI-креатив: сначала показать промпт и формат, затем генерировать только после подтверждения; исходник и до 5 безопасных экспортов без увеличения; на пробной неделе — до 5 изображений из общего промобюджета при достаточном остатке; при оплаченном MCP-доступе — 5 бесплатных/мес, далее по прайсу в подтверждении; применение image ID подтверждается отдельно

Изменение
vk_upload_image

Загрузить изображение по URL и получить content ID для баннера

Изменение
vk_upload_video

Загрузить видео по URL и получить content ID для баннера (MP4, WebM, MOV, AVI)

Изменение

Статистика

vk_get_statistics

Статистика V2+V3: показы, клики, расход, результаты base.goals/base.vk.goals, custom_event, social_network, сортировка и пагинация

Чтение
vk_get_goal_statistics

Статистика по целям конверсий: конверсии, CPA, CR, ROMI, источник

Чтение
vk_get_community_stats

Продвижение сообщества: вступления, подписки, CPJ, CPS, Join Rate

Чтение
vk_get_video_report

Воронка видеорекламы: drop-off, CPV на каждом этапе, глубина, уникальные

Чтение
vk_get_inapp_stats

In-app события мобильных приложений и VK Mini Apps: totals, CPA, CR, ROMI по каждому событию

Чтение
vk_get_offline_conversions

Офлайн-конверсии: количество, конверсионная ставка, CPA

Чтение
vk_get_realtime_stats

Мониторинг в реальном времени: клики и показы поминутно за час

Чтение

VK Mini Apps

vk_get_mobile_apps

Подключённые мобильные приложения и VK Mini Apps: доступы statistics/segments/lookalike, связанные кампании, url_object_id

Чтение
vk_get_inapp_events

Доступные in-app события, приложения, трекеры и event names для Mini Apps и аудиторий

Чтение
vk_get_inapp_event_categories

Категории in-app событий для классификации событий приложения

Чтение
vk_update_inapp_event_category

Изменить категорию in-app события по приложению, трекеру и event ID

Изменение

Справочники

vk_get_regions

Справочник регионов для геотаргетинга: поиск, дочерние регионы, флаги

Чтение
vk_get_user_geo

Пользовательские регионы: 3700+ городов и населённых пунктов для таргетинга

Чтение
vk_get_mobile_categories

Категории мобильных приложений для таргетинга

Чтение
vk_get_mobile_os

Мобильные операционные системы для таргетинга

Чтение
vk_get_mobile_operators

Мобильные операторы связи для таргетинга

Чтение
vk_get_mobile_types

Типы мобильных устройств: смартфоны, планшеты

Чтение
vk_get_mobile_vendors

Производители устройств: Apple, Samsung и др.

Чтение
vk_get_targetings_tree

Дерево интересов и таргетингов для настройки групп объявлений

Чтение

Аудитории

vk_get_remarketing_counters

Список счётчиков ремаркетинга для отслеживания аудитории

Чтение
vk_get_remarketing_counter

Один счётчик ремаркетинга по ID

Чтение
vk_create_remarketing_counter

Создать счётчик ремаркетинга для сайта

Изменение
vk_update_remarketing_counter

Изменить счётчик: переименовать, обновить flags

Изменение
vk_delete_remarketing_counter

Удалить счётчик ремаркетинга (409 если используется)

Удаление
vk_get_counter_goals

Цели счётчика: посещение URL, JS-события

Чтение
vk_create_counter_goal

Создать цель для счётчика ремаркетинга

Изменение
vk_update_counter_goal

Изменить цель счётчика: name, goal_type, value

Изменение
vk_get_goals

Все цели конверсий из всех источников

Чтение
vk_get_remarketing_lists

Списки пользователей для ретаргетинга

Чтение
vk_get_remarketing_list

Один список пользователей по ID

Чтение
vk_update_remarketing_list

Изменить список пользователей: переименовать

Изменение
vk_delete_remarketing_list

Удалить список пользователей (409 если используется)

Удаление
vk_get_segments

Аудиторные сегменты для таргетинга

Чтение
vk_get_segment

Один аудиторный сегмент по ID

Чтение
vk_create_segment

Создать аудиторный сегмент с relations и pass_condition

Изменение
vk_update_segment

Изменить сегмент: переименовать, изменить pass_condition

Изменение
vk_delete_segment

Удалить аудиторный сегмент (409 если используется)

Удаление
vk_manage_segment_relations

Связи сегментов: добавить/изменить/удалить источники данных

Изменение
vk_get_local_geos

Точки локального геотаргетинга с радиусом

Чтение
vk_manage_local_geo

Управление точкой геотаргетинга: получить, создать, удалить

Изменение
vk_get_vk_groups

Получить VK-группы (источники данных для сегментов)

Чтение
vk_add_vk_group

Добавить VK-сообщество как источник данных для ремаркетинга

Изменение
vk_get_ok_groups

Источники аудитории из групп Одноклассников: проверенный source_id, ссылки и пагинация

Чтение
vk_add_ok_group

Зарегистрировать группу ОК по ссылке или вернуть существующий источник без повторной записи

Изменение

Пакеты размещения

vk_get_packages

Список пакетов до 50 на страницу; available_only означает каталоговый допуск, не гарантию create; create_evidence показывает, принимал ли VK этот пакет при создании

Чтение
vk_get_package

Один пакет по ID: все настройки, доступные таргетинги, ссылки; неизвестные поля в fields пропускаются с пометкой

Чтение
vk_get_packages_pads

Названия площадок локальными страницами до 50 или точечно по pad_ids без limit/offset; связь patterns берётся из vk_get_package, устаревший package_id отклоняется

Чтение
vk_get_pads_tree

Категории, названия и выбранные площадки группы по ad_group_id; также выбор пакета или дерева, пагинация и проверка полноты

Чтение

Прогноз охвата

vk_get_projection

Прогноз охвата аудитории при разных ставках CPM — оценка до запуска

Чтение

Контекстные фразы

vk_create_search_phrases

Создать список контекстных фраз + сегмент для таргетинга

Изменение
vk_get_search_phrases

Получить списки контекстных фраз

Чтение
vk_update_search_phrases

Обновить фразы в списке

Изменение
vk_delete_search_phrases

Удалить список контекстных фраз

Удаление

Пользователь

vk_get_user

Информация о текущем пользователе: аккаунт, баланс, валюта

Чтение

Клиенты агентства и менеджера

vk_get_agency_clients

Диагностический список клиентов агентства или менеджера с балансами, статусами и контактами

Чтение
vk_manage_agency_client

Создать, обновить или отвязать клиента агентства

Изменение
vk_get_transactions

История транзакций: пополнения, списания, переводы, НДС

Чтение
vk_transfer_funds

Перевод средств агентство ↔ клиент: пополнение и возврат

Изменение

Лид-формы и лиды

vk_get_lead_forms

Список лид-форм с фильтрами по кампаниям и группам

Чтение
vk_update_lead_form

Изменить название лид-формы без замещения контактных полей и страниц

Изменение
vk_get_leads

Собранные лиды: контакты, ответы на вопросы, привязка к кампании

Чтение

Задачи (legacy)

vk_add_tasks

Legacy notice: задачи переехали в Workspace MCP (/mcp/workspace). Там же хранятся клиенты, кампании, решения, контекст и AI-автозапуски

Чтение
vk_get_tasks

Legacy notice: используйте workspace_get_tasks, workspace_get_context или workspace_get_scheduled_ai_tasks

Чтение
vk_complete_task

Legacy notice: используйте workspace_complete_task

Чтение

Медиафайлы

request_upload

Запросить URL для загрузки локального файла (pre-signed URL → curl -T)

Изменение
list_media

Список загруженных медиафайлов с публичными URL

Чтение
delete_media

Удалить загруженный медиафайл

Удаление