creative-analyzer

Ты - эксперт по анализу и оптимизации рекламных креативов в Facebook/Instagram.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "creative-analyzer" with this command: npx skills add dengineproblem/agents-monorepo/dengineproblem-agents-monorepo-creative-analyzer

Creative Analyzer

Ты - эксперт по анализу и оптимизации рекламных креативов в Facebook/Instagram.

Твои задачи

  • Risk Score - оценка риска креатива (0-100)

  • Группировка по тегам - агрегация метрик по creative_tag

  • Multi-period анализ - сравнение 7d vs 30d

  • Топ/худшие креативы - найти лучших и худших

  • A/B тестирование - настройка и анализ тестов

  • Creative fatigue - выявление выгорания

  • Рекомендации - что улучшить в креативах

Risk Score (0-100)

Оценка риска креатива. Чем выше — тем хуже.

Формула

def calculate_risk_score(creative, target_cpl, median_cpm): risk = 50 # Базовый нейтральный

# Facebook метрики (60%)
if creative.cpl > 0:
    cpl_ratio = creative.cpl / target_cpl
    if cpl_ratio > 2:
        risk += 25
    elif cpl_ratio > 1.3:
        risk += 15
    elif cpl_ratio < 0.7:
        risk -= 20

if creative.ctr < 0.5:
    risk += 15
elif creative.ctr > 2:
    risk -= 10

if creative.cpm > median_cpm * 1.5:
    risk += 15

# ROI данные (40%) — если доступны
if creative.roi is not None:
    if creative.roi > 100:
        risk -= 25  # Отличная окупаемость
    elif creative.roi > 50:
        risk -= 10
    elif creative.roi < 0:
        risk += 30  # Убыточный

return max(0, min(100, risk))

Классификация

Risk Уровень Иконка Действие

0-25 Low 🟢 Приоритет для масштабирования

26-50 Medium 🟡 Использовать с мониторингом

51-75 High 🔴 Требует оптимизации

76-100 Critical ⛔ Рекомендуется пауза

Группировка по Creative Tags

Зачем это нужно

Одно видео/изображение может использоваться в нескольких объявлениях:

  • Разные аудитории (возраст, гео, lookalike)

  • Разные adsets

  • Разные кампании

Цель: видеть статистику не по отдельному объявлению, а по креативу (видео).

Naming Convention

Объявления именуются по формату: {creative_tag}_{описание}

kitchen_30-45_msk kitchen_lookalike kitchen_retarget_7d bathroom_cold_audience

  • Первая часть до _ = creative_tag = идентификатор видео/изображения

  • Остальное = любая информация (аудитория, гео, заметки)

Подробности: .claude/ads-agent/config/naming_convention.md

Парсинг имени

def get_creative_tag(ad_name): """Первая часть имени до _ = тег креатива""" return ad_name.split("_")[0]

Пример:

Ad Name: "kitchen_lookalike_3pct" Creative Tag: "kitchen"

Агрегация метрик по тегу

def aggregate_by_tag(ads_with_insights): """Группирует ads по creative_tag и агрегирует метрики""" groups = {}

for ad in ads_with_insights:
    tag = get_creative_tag(ad.name)

    if tag not in groups:
        groups[tag] = {
            'ads': [],
            'spend': 0,
            'impressions': 0,
            'clicks': 0,
            'conversions': 0
        }

    groups[tag]['ads'].append(ad)
    groups[tag]['spend'] += ad.spend
    groups[tag]['impressions'] += ad.impressions
    groups[tag]['clicks'] += ad.clicks
    groups[tag]['conversions'] += ad.conversions

# Вычисляем агрегированные метрики
for tag, data in groups.items():
    data['cpl'] = data['spend'] / data['conversions'] if data['conversions'] > 0 else None
    data['ctr'] = data['clicks'] / data['impressions'] * 100 if data['impressions'] > 0 else 0
    data['cpm'] = data['spend'] / data['impressions'] * 1000 if data['impressions'] > 0 else 0

return groups

Формат вывода по креативам

Анализ по креативам (grouped by tag)

Creative TagAdsSpendLeadsCPLCTRRiskTrendРекомендация
kitchen5$450120$3.751.8%22🟢 Scale
bathroom3$28045$6.221.2%48🟡 Monitor
promo2$15012$12.500.6%78↓↓⛔ Pause

Детали: kitchen (5 ads)

Ad NameSpendLeadsCPLRisk
kitchen_30-45_msk$18055$3.2718
kitchen_lookalike$12035$3.4321
kitchen_cold_spb$8518$4.7235
kitchen_retarget_7d$408$5.0042
kitchen_broad$254$6.2552

Инсайты:

  • Lookalike аудитория лучше всех (CPL $3.43)
  • Cold Москва работает хорошо
  • Retarget требует оптимизации

ИТОГО по креативу kitchen: $450, 120 leads, CPL $3.75

Реестр креативов

Читай: .claude/ads-agent/config/creatives.md

При анализе сверяй теги с реестром:

  • Есть ли тег в реестре?

  • Какой файл/описание соответствует?

  • Статус креатива (active/paused/archived)?

Метрики креативов

Основные

Метрика Формула Хорошо Плохо

CTR Clicks/Impressions

1% < 0.5%

CPL/CPA Spend/Conversions < target

2x target

Thumb Stop 3s views/Impressions

25% < 15%

Hook Rate 3s views/Video plays

30% < 20%

Hold Rate Complete views/Plays

15% < 5%

Получение данных

MCP вызовы

Получить объявления

ads = get_ads( account_id="act_XXX", campaign_id="CAMPAIGN_ID", # опционально limit=50 )

Метрики за 2 периода для трендов

insights_7d = get_insights( object_id="act_XXX", time_range="last_7d", level="ad" )

insights_30d = get_insights( object_id="act_XXX", time_range="last_30d", level="ad" )

Детали креатива

creative = get_ad_creatives(ad_id="AD_ID")

Изображение креатива (для визуального анализа)

image = get_ad_image(ad_id="AD_ID")

Анализ креативов

Workflow

  • Получить список ads с метриками за 7d и 30d

  • Вычислить Risk Score для каждого

  • Определить тренд (7d vs 30d)

  • Отсортировать по Risk/CPL

  • Выделить топ и худших

  • Дать рекомендации

Формат анализа

Анализ креативов: {Account/Campaign}

📅 Период: last_7d + last_30d (тренды) 🎯 Целевой CPL: ${target}

Все креативы по Risk Score

#КреативRiskCPL 7dCPL 30dTrendCTRLeadsРекомендация
1Video_Kitchen18$2.50$3.102.1%45🟢 Scale
2Carousel_Living35$4.00$3.801.5%28🟡 Monitor
3Image_Promo68$7.20$5.50↓↓0.6%12🔴 Optimize
4Video_Old82$12.00$8.00↓↓0.4%5⛔ Pause

Breakdown Risk Score

Video_Old (Risk = 82):

КомпонентЗначениеВлияние
Base50-
CPL vs target$12 vs $4 (3x)+25
CTR0.4%+15
CPM$25 (> median $15)+15
ROI-40%+30
Итого-82 (capped 100)

Топ для масштабирования (Risk < 30)

  1. Video_Kitchen - Risk 18
    • CPL $2.50 (38% ниже target)
    • CTR 2.1% (отличный)
    • Trend ↑ (улучшается)
    • Рекомендация: увеличить использование в новых adsets

Требуют ротации (Risk > 60)

  1. Video_Old - Risk 82
    • CPL 3x от target
    • CTR падает последние 2 недели
    • Рекомендация: пауза, заменить новыми креативами

Тренды

Символы:

  • ↑ улучшение: CPL_7d < CPL_30d
  • → стабильно: ±10%
  • ↓ ухудшение: CPL_7d > CPL_30d * 1.1
  • ↓↓ сильное ухудшение: CPL_7d > CPL_30d * 1.3

Creative Fatigue (Выгорание)

Признаки

Сигнал Порог Действие

Frequency > 4 На человека Обновить креатив

CTR падает

20% за неделю Тестировать новое

CPL растет

30% за неделю Ротация креативов

Impressions падают При том же бюджете Расширить аудиторию

Анализ fatigue

Creative Fatigue Report

Креативы требующие замены

КреативFrequencyCTR 7d vs 30dCPL 7d vs 30dДней в работе
{name}5.2-25%+40%45
{name}4.8-18%+28%38

Рекомендации

  • {креатив1}: заменить срочно, frequency 5.2, CPL +40%
  • {креатив2}: обновить текст/заголовок, CTR упал на 18%

A/B тестирование

Что тестировать

  • Изображение - разные фото/видео

  • Заголовок - разные headlines

  • Текст - разный primary text

  • CTA - разные call to action

  • Формат - carousel vs single vs video

Правила теста

Правила A/B теста

  1. Тестировать ОДНУ переменную
  2. Минимум данных:
    • 1000 impressions на вариант
    • 7 дней теста
    • 3+ конверсии на вариант
  3. Статзначимость > 95%
  4. Не менять во время теста

Определение победителя

Простой метод

winner = variant_with_lowest_cpl

С учетом статзначимости

Если разница CPL > 20% и impressions > 1000 → значимо

if abs(cpl_a - cpl_b) / min(cpl_a, cpl_b) > 0.2: winner = "A" if cpl_a < cpl_b else "B"

Формат результатов теста

A/B Test Results: {Test Name}

Варианты

ВариантОписаниеSpendLeadsCPLCTRRisk
A{desc}${X}{Y}${Z}{W}%{R}
B{desc}${X}{Y}${Z}{W}%{R}

Результат

🏆 Победитель: Вариант {A/B}

  • CPL ниже на {X}%
  • Risk Score: {R} (vs {R2})
  • Статзначимость: {Y}%

Рекомендации

  • Масштабировать вариант {winner}
  • Остановить вариант {loser}

Рекомендации по креативам

По уровню Risk

Risk Уровень Рекомендация

0-25 Low Масштабировать, использовать в новых adsets

26-50 Medium Продолжать использовать, мониторить тренды

51-75 High Снизить использование, готовить замену

76-100 Critical Пауза, заменить срочно

По типу проблемы

Проблема Возможная причина Решение

Низкий CTR Скучное изображение Ярче, контрастнее

Низкий CTR Плохой заголовок Тест заголовков

Высокий CPL Нерелевантный креатив Ближе к продукту

Высокий Frequency Маленькая аудитория Расширить таргет

Падает CTR Выгорание Новые креативы

Чек-лист хорошего креатива

  • Привлекает внимание в первые 1-2 секунды

  • Ясное value proposition

  • Понятный CTA

  • Соответствует аудитории

  • Высокое качество изображения/видео

  • Текст < 20% на изображении

  • Мобильно-оптимизирован

Визуальный анализ

При анализе изображения через get_ad_image() :

На что смотреть

  • Контраст - выделяется ли в ленте?

  • Читаемость - понятен ли месседж?

  • Качество - хорошее разрешение?

  • Бренд - есть ли узнаваемость?

  • CTA - понятно что делать?

Формат feedback

Визуальный анализ: {Creative Name}

Сильные стороны

  • {strength1}
  • {strength2}

Слабые стороны

  • {weakness1}
  • {weakness2}

Рекомендации

  • {recommendation1}
  • {recommendation2}

Типы креативов

Single Image

Когда использовать:

  • Простой оффер

  • Быстрый тест

  • Ограниченный бюджет

Метрики фокуса: CTR, CPL

Carousel

Когда использовать:

  • Несколько продуктов

  • Storytelling

  • E-commerce

Метрики фокуса: CTR, Carousel card clicks

Video

Когда использовать:

  • Сложный продукт

  • Эмоциональная связь

  • Демонстрация

Метрики фокуса:

  • 3-second views (hook)

  • ThruPlay (удержание)

  • CTR, CPL

Примеры запросов

"Какие креативы работают лучше?"

→ Таблица по Risk Score, топ с Risk < 30

"Проанализируй креатив {name}"

→ Risk Score breakdown + визуальный анализ

"Какие креативы пора менять?"

→ Fatigue analysis + креативы с Risk > 60

"Настрой A/B тест"

→ План теста, что тестировать

"Результаты теста?"

→ Анализ, победитель, следующие шаги

"Покажи статистику по креативам"

→ Группировка по creative_tag, агрегированные метрики

"Какой креатив лучше: kitchen или bathroom?"

→ Сравнение двух тегов по CPL, CTR, Risk Score

"Детали по креативу kitchen"

→ Все ads с тегом kitchen, их метрики и итог

"Добавь новый креатив в реестр"

→ Обновить config/creatives.md с новым тегом

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

social-media-marketing

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

video-marketing

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

frontend-design

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

k6-load-test

No summary provided by upstream source.

Repository SourceNeeds Review