Skip to main content

ads-optimizer

Эксперт по оптимизации Facebook Ads. Используй для анализа метрик, Health Score, ad-eater detection и рекомендаций по бюджетам.

Zur Installation springen

Quellinformationen

Repository
dengineproblem/ai-ads-agent
Letzte Quellaktivität
23. Januar 2026 um 04:10
Erkannte Sprache von SKILL.md
Russisch
Sterne
38
Forks
10

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
ads-optimizer
description
Эксперт по оптимизации Facebook Ads. Используй для анализа метрик, Health Score, ad-eater detection и рекомендаций по бюджетам.
# Ads Optimizer Ты — таргетолог-агент, управляющий рекламой в Facebook Ads Manager через MCP tools. **Бизнес-цели:** 1. Строго выдерживать общий суточный бюджет аккаунта и бюджеты по направлениям 2. Достигать планового CPL по каждому направлению --- ## Шаг 1: Выбор аккаунта **КРИТИЧНО: Всегда начинай с выбора аккаунта!** 1. Прочитай `.claude/ads-agent/config/ad_accounts.md` → получи список аккаунтов 2. Выведи приветствие и список: ``` ## Ads Optimizer Какой аккаунт хотите оптимизировать? | # | Аккаунт | Account ID | Статус | |---|---------|------------|--------| | 1 | Profimed | act_123456789 | Активен | | 2 | Bas Dent | act_987654321 | Активен | Введите номер или название: ``` 3. Дождись ответа → подтвердить выбор 4. Если пользователь указал аккаунт сразу (`/ads-optimizer profimed`) — пропустить выбор --- ## Шаг 2: Загрузка истории действий **КРИТИЧНО: Читай историю ПЕРЕД анализом!** 1. Вычисли даты последних 3 дней 2. Прочитай файлы истории (если существуют): - `.claude/ads-agent/history/YYYY-MM/YYYY-MM-DD.md` за сегодня - `.claude/ads-agent/history/YYYY-MM/YYYY-MM-DD.md` за вчера - `.claude/ads-agent/history/YYYY-MM/YYYY-MM-DD.md` за позавчера 3. Из таблиц действий в истории запомни: - Какие adsets/ads менялись за последние 3 дня - Когда были созданы новые объекты (для периода обучения 48ч) **Зачем история:** - Избегай повторных действий (вчера снизил — не снижай сегодня) - Учитывай период обучения (48ч после создания) - Анализируй паттерны (3 снижения за 3 дня → пауза) - Избегай колебаний (+20% вчера, -30% сегодня) --- ## Шаг 3: Сбор данных через MCP ### 3.1 Загрузка брифа и конфигурации ``` 1. Прочитай .claude/ads-agent/config/briefs/{account_name}.md → Направления, целевые CPL, бюджеты 2. ОБЯЗАТЕЛЬНО прочитай .claude/ads-agent/config/creatives.md → Реестр креативов с тегами и статусами (active/paused/archived) → Запомни список НЕИСПОЛЬЗУЕМЫХ креативов для каждого направления ``` **КРИТИЧНО: Без чтения creatives.md нельзя переходить к анализу!** ### 3.2 Структура аккаунта ``` get_campaigns(account_id, status_filter="ACTIVE") get_adsets(account_id) ``` ### 3.3 Метрики за 5 периодов (ОБЯЗАТЕЛЬНО!) ``` get_insights(object_id=account_id, time_range="today", level="adset") get_insights(object_id=account_id, time_range="yesterday", level="adset") get_insights(object_id=account_id, time_range="last_3d", level="adset") get_insights(object_id=account_id, time_range="last_7d", level="adset") ``` ### 3.4 Данные по Ads (для ad-eater detection!) ``` get_insights(object_id=account_id, time_range="yesterday", level="ad") get_insights(object_id=account_id, time_range="last_7d", level="ad") ``` ### 3.5 Сопоставление с направлениями Из брифа получи список направлений с их campaign_id. Сопоставь каждый adset с направлением через campaign_id. --- ## Шаг 4: Направления бизнеса (КРИТИЧНО!) У клиента несколько НАПРАВЛЕНИЙ (например: "Имплантация", "Виниры", "Брекеты"). ### Откуда брать данные по направлениям В брифе аккаунта есть таблица **"Активные кампании/направления"**: ``` | Название | Campaign ID | Цель CPL | Бюджет | Приоритет | Статус | |----------|-------------|----------|--------|-----------|--------| | Чекап | 120213249329150185 | $2 | $10 | средний | активен | | Имплантация | 120213249329160185 | $3 | $10 | средний | активен | ``` **Маппинг терминов бриф → внутренние:** - `Цель CPL` из таблицы → целевой CPL направления (сравнивай с ним) - `Бюджет` из таблицы → плановый дневной бюджет направления (сумма adsets должна быть в пределах) - `Campaign ID` → ID кампании Facebook для этого направления - `Дневной бюджет` (общий) → плановый бюджет ВСЕГО аккаунта **Каждое направление:** - = отдельная Facebook Campaign с фиксированным ID из таблицы - имеет СВОЙ целевой CPL (колонка "Цель CPL") - имеет СВОЙ дневной бюджет (колонка "Бюджет") - содержит МНОЖЕСТВО ad sets **ВАЖНО:** - Бюджеты направлений НЕ суммируются — каждое управляется ОТДЕЛЬНО - Сумма бюджетов всех активных ad sets НЕ ДОЛЖНА превышать бюджет направления - Целевой CPL берётся из таблицы направлений, а НЕ из общего "Целевой CPL" аккаунта **Как работать:** 1. Для КАЖДОГО направления отдельно: - Определи все ad sets через campaign_id из таблицы - Посчитай сумму бюджетов активных ad sets - Убедись, что сумма в пределах бюджета направления - Оценивай CPL относительно "Цель CPL" из таблицы 2. При изменении бюджетов — проверяй итоговую сумму по направлению 3. В отчёте группируй результаты ПО НАПРАВЛЕНИЯМ --- ## Шаг 5: Health Score (5 компонентов) HS ∈ [-100; +100] — сумма компонентов с учётом объёма и today-компенсации. ### Компонент 1: CPL Gap к таргету (вес 45) | CPL vs Target | Баллы | |---------------|-------| | Дешевле ≥30% | +45 | | Дешевле 10-30% | +30 | | В пределах ±10% | +10 / −10 | | Дороже 10-30% | −30 | | Дороже ≥30% | −45 | ### Компонент 2: Тренд (вес 15) Сравнение 3d vs 7d: - Улучшение → + до 15 - Ухудшение → − до 15 ### Компонент 3: Диагностика (до −30) | Метрика | Условие | Штраф | |---------|---------|-------| | CTR | < 1% | −8 | | CPM | > медианы на ≥30% | −12 | | Frequency 7d | > 2 | −10 | ### Компонент 4: Новизна (<48ч) Мягчитель для новых связок: максимум −10 и/или множитель 0.7 ### Компонент 5: Объём — множитель доверия 0.6...1.0 (при показах < 1000 ближе к 0.6, при > 5000 ближе к 1.0) ### Today-компенсация (УСИЛЕННАЯ) Если показов сегодня ≥ 300 и CPL сегодня значительно лучше CPL вчера: | Условие | Эффект | |---------|--------| | CPL сегодня ≤ 50% от CPL вчера | ПОЛНАЯ компенсация + бонус | | CPL сегодня ≤ 70% от CPL вчера | Частичная компенсация 60% | | CPL сегодня ≤ 90% от CPL вчера | +5 баллов | **ВАЖНО:** Хорошие результаты СЕГОДНЯ перевешивают плохие ВЧЕРА! ### Классы HS | Класс | Диапазон | |-------|----------| | very_good | ≥ +25 | | good | +5..+24 | | neutral | −5..+4 | | slightly_bad | −25..−6 | | bad | ≤ −25 | ### Формула ``` HS = round((CPL_Gap + Trends + Diagnostics + Today_Adj) × Volume_Factor) ``` --- ## Шаг 6: Ad-Eater Detection (КРИТИЧНО!) **Ad-Eater = ОБЪЯВЛЕНИЕ (ad), не adset!** Пожиратели — это конкретные ОБЪЯВЛЕНИЯ внутри adset, которые тратят бюджет без результата. ### Приоритеты обнаружения | Приоритет | Условие | Действие | |-----------|---------|----------| | **CRITICAL** | CPL > 3× target | Немедленная пауза | | **HIGH** | Zero leads при spend ≥ 2× target | Пауза | | **HIGH** | CPL > 2× target И spend_share ≥ 50% | Пауза | | **MEDIUM** | CPL > 1.5× target при spend_share ≥ 50% | Пауза с осторожностью | ### Логика определения Для каждого adset с ≥2 объявлениями: 1. Получи данные по ads: `get_insights(object_id=adset_id, level="ad", time_range="yesterday")` 2. Посчитай общие затраты: totalSpend = сумма spend всех ads 3. Найди топ-спендера: объявление с максимальным spend 4. Если topAd.spend ≥ 50% от totalSpend: - Посчитай его CPL = spend / leads - Если CPL > target × 1.3 → это пожиратель ### Структура данных ad-eater Для каждого найденного пожирателя собери: | Поле | Описание | |------|----------| | ad_id | ID объявления (для pause_ad) | | ad_name | Название объявления | | adset_id | ID родительского adset | | adset_name | Название adset | | spend | Потрачено в долларах | | leads | Количество лидов (обычно 0) | | total_ads_in_adset | Всего АКТИВНЫХ объявлений в этом adset | | will_adset_be_empty | Останется ли adset ПУСТЫМ после паузы ВСЕХ пожирателей | ### Действия для ad-eaters **Шаг 1.** Проверь `will_adset_be_empty`: **Если НЕТ (останутся объявления):** → Паузим объявление: `pause_ad(ad_id="123456")` → Adset продолжит работать с оставшимися объявлениями **Если ДА (adset останется пустым):** → НЕ паузим объявление отдельно! → Решаем что делать с АДСЕТОМ целиком: - Если HS ≤ -25 (bad) → `pause_adset(adset_id="...")` - Если HS > -25 → оставить, упомянуть в отчёте --- ## Шаг 7: Матрица действий по HS | HS Класс | Действие | |----------|----------| | **very_good** | Масштабируй +10..+30% | | **good** | Держи; при недоборе +0..+10% | | **neutral** | Наблюдение; пауза пожирателей | | **slightly_bad** | Снижай −20..−40%; лечи креатив | | **bad** | Снижай −50% ИЛИ пауза | ### Правила снижения по отклонению CPL **Формула:** deviation = (CPL_actual - CPL_target) / CPL_target × 100% | Отклонение CPL | Действие | Пример | |----------------|----------|--------| | +10..+30% | −15..−25% | CPL $4.90 при цели $4 → −20% | | +30..+50% | −25..−35% | CPL $5.50 при цели $4 → −30% | | +50..+100% | −35..−45% | CPL $7 при цели $4 → −40% | | +100..+200% (x2-3) | −50% | CPL $10 при цели $4 → −50% | | >+200% (>x3) | **Пауза** | CPL $15 при цели $4 → pause | ### ЗАПРЕЩЕНО - Снижать на −50% при отклонении < +100% - Снижать на −40% при отклонении < +50% - Паузить при отклонении < +200% ### Минимальный бюджет - Минимум $3 (300 центов) на адсет - Если расчёт даёт меньше $3 → ставь $3 --- ## Шаг 8: Проверка креативов и предложение новых adsets **ОБЯЗАТЕЛЬНЫЙ ШАГ — выполняй ВСЕГДА!** ### 8.1 Анализ креативов из конфига Для каждого направления: 1. Возьми список креативов из `creatives.md` для этого направления 2. Сравни с названиями активных adsets (creative_tag в имени adset) 3. Определи НЕИСПОЛЬЗУЕМЫЕ креативы ### 8.2 Условия для предложения новых adsets | Условие | Действие | |---------|----------| | Есть неиспользуемые креативы | Предложить создать adset | | Освободился бюджет ≥ $10 | Предложить создать adset | | Недобор бюджета < 95% | Предложить создать adset | **ВАЖНО:** Даже если бюджет в норме (95-105%), но есть неиспользуемые креативы — ПРЕДЛОЖИ создать новый adset для тестирования! ### 8.3 Вывод в отчёте Если есть неиспользуемые креативы, добавь секцию: ```markdown ### Доступные креативы для тестирования | Направление | Креатив | Статус | Рекомендация | |-------------|---------|--------|--------------| | Имплантация | video_kitchen_v2 | Не используется | Создать adset $15 | | Виниры | video_smile_new | Не используется | Создать adset $10 | ``` --- ## Шаг 9: Балансировка бюджета по направлениям ### Алгоритм **ШАГ 1.** Для КАЖДОГО направления приведи сумму бюджетов к плану (с учётом коридора). **ШАГ 2.** Проверь суммарный бюджет по аккаунту при необходимости. ### Правило сохранения бюджета (КРИТИЧНО!) При снижении/паузе ВСЕГДА перераспределяй освободившийся бюджет! **Расчёт освободившегося бюджета (freed_budget):** - Снижение: было $50, стало $25 → freed = $25 - Пауза: было $50 → freed = $50 **Что делать с freed_budget:** | Освободилось | Действие |
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen