Кинопоиск x Yandex Direct MCP: Архитектура

Автоматизация Performance-маркетинга через LLM

Концепция Model Context Protocol (MCP) для управления кампаниями Яндекс Директа через естественный язык. Решение интегрирует продвинутые методологии сведения данных (CRM + Direct) и автоматизирует рутину, фокусируясь на главной метрике — trial-подписках.

🎯

Целевой CPA (Поиск)

≤ 3 900 ₽

📱

Целевой CPA (РСЯ)

1 500 - 1 700 ₽

💰

Месячный бюджет

До 300 млн ₽

⚙️

Блок 1: Архитектура и Прикладная Логика

Как MCP связывает намерения пользователя с методами Yandex Direct API для решения задач Кинопоиска.

Задействованные методы Yandex Direct API

  • 🗂️
    Campaigns / AdGroups API:

    Управление статусами, геотаргетингом, минус-фразами на уровне кампаний (в т.ч. ЕПК).

  • 🔑
    Keywords API:

    Массовое добавление околоцелевых запросов (названия фильмов, актеры) из LLM-генераций.

  • ⚖️
    Bids / KeywordBids API:

    Точечные корректировки ставок для удержания CPA в рамках KPI (3900 / 1700 руб).

  • 📊
    Reports API:

    Автоматическая выгрузка статистики для замены ручного "ИНДЕКС + ПОИСКПОЗ" при сведении с CRM.

Трансформация процессов

❌ Сведение данных:

Выгрузка отчетов из Директа, выгрузка CRM-базы. Часы работы с ВПР / ИНДЕКС+ПОИСКПОЗ в Excel для расчета реального CPA по trial-подпискам.

❌ Запуск новых тайтлов:

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

❌ Оптимизация:

Ручной поиск кампаний в РСЯ, где CPA превысил 1700 руб, и остановка групп.

🤖

Блок 2: Сценарии использования (Use Cases)

Как выглядит диалог специалиста с интерфейсом LLM и что происходит под капотом.

Ввод пользователя (Prompt)

«Проверь кампании в РСЯ. Если CPA по цели 'Trial_Subscription' за последние 7 дней выше 1700 руб — снизь ставки на 15%, если выше 2500 руб — останови группу.»

LLM (Reasoning)
  • Понимает намерение: фильтрация РСЯ, расчет CPA по конверсиям, два условия (снизить ставку / остановить).
  • Формирует запрос параметров для Reports API (поля: AdGroupId, Cost, Conversions).
MCP (API Calls) -> Result
  • Reports API: POST запрос с фильтром NetworkType=AD_NETWORK.
  • Bids API / AdGroups API: setAuto (снижение на 15%), suspend (остановка).
  • Результат: Вывод в чат таблицы с измененными группами и сэкономленным бюджетом.
📈

Интерактивный дашборд работы MCP

Демонстрация того, как MCP удерживает целевые значения CPA после получения команды на оптимизацию (Симуляция Reports API).

Динамика CPA (Поиск vs РСЯ)

Цель: Trial-подписка. Мониторинг за 14 дней.

🛡️

Блок 3: Технические ограничения и безопасность

Защита от галлюцинаций LLM и управление лимитами API при бюджете до 300 млн руб.

Лимиты Yandex Direct API

  • Баллы (Units): Динамически расходуются. MCP реализует паттерн Token Bucket. Если баллы заканчиваются, MCP ставит низкоприоритетные задачи (например, отчеты за год) в очередь.
  • Частота (Concurrency): Ограничения на параллельные запросы (до 5 одновременных отчетов). MCP использует асинхронные пулы (Celery/Asyncio).
  • Пакетность: LLM генерирует массивы данных (до 1000 ключей за раз), чтобы отправлять их одним пакетным API-запросом, экономя баллы.
🧠

Защита от галлюцинаций

  • Human-in-the-loop (HITL): Любые изменения бюджета > 10% или остановка кампаний с расходом > 100k руб/день требуют подтверждения кнопкой "Approve" в чате.
  • Pydantic / JSON Schema: LLM общается с MCP через строго типизированные схемы. Невозможно отправить ставку в формате "сто рублей" вместо 100.0.
  • Dry-Run: Перед реальным API вызовом, MCP симулирует изменения и пишет саммари: "Вы собираетесь повысить CPA до 5000₽. Это превышает KPI Кинопоиска (3900₽). Вы уверены?"

Разработано для Хакатона: Концепция интеграции Yandex Direct API x LLM (MCP)