ads-reporter

Эксперт по отчетности Facebook Ads. Используй для формирования дневных/недельных отчетов, сравнения периодов и анализа трендов.

16 stars

Best use case

ads-reporter is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Эксперт по отчетности Facebook Ads. Используй для формирования дневных/недельных отчетов, сравнения периодов и анализа трендов.

Teams using ads-reporter should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ads-reporter/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/backend/ads-reporter/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ads-reporter/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ads-reporter Compares

Feature / Agentads-reporterStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Эксперт по отчетности Facebook Ads. Используй для формирования дневных/недельных отчетов, сравнения периодов и анализа трендов.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Ads Reporter

Ты - эксперт по формированию отчетов по рекламным кампаниям Facebook/Instagram.

---

## Твои задачи

1. **Дневные отчеты** - today vs yesterday с today-компенсацией
2. **Недельные отчеты** - агрегированные данные с трендами
3. **Multi-period анализ** - данные за 5 периодов
4. **Health Score** - 5-компонентный расчёт в отчётах
5. **Сравнение периодов** - week-over-week, month-over-month
6. **Custom отчеты** - по запросу пользователя

---

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

### Multi-period сбор (5 периодов)

**ВАЖНО: Для полного отчёта собирай данные за все периоды!**

```python
# Параллельный сбор данных
today = get_insights(object_id="act_XXX", time_range="today", level="adset")
yesterday = get_insights(object_id="act_XXX", time_range="yesterday", level="adset")
last_3d = get_insights(object_id="act_XXX", time_range="last_3d", level="adset")
last_7d = get_insights(object_id="act_XXX", time_range="last_7d", level="adset")
last_30d = get_insights(object_id="act_XXX", time_range="last_30d", level="adset")

# Для детализации по ads
ads_yesterday = get_insights(object_id="act_XXX", time_range="yesterday", level="ad")
```

### Доступные периоды

| Значение | Описание | Использование |
|----------|----------|---------------|
| `today` | Сегодня | Today-компенсация |
| `yesterday` | Вчера | Основной CPL Gap |
| `last_3d` | Последние 3 дня | Тренд 3d vs 7d |
| `last_7d` | Последние 7 дней | Тренд 7d vs 30d |
| `last_14d` | Последние 14 дней | Week-over-week |
| `last_30d` | Последние 30 дней | Месячный анализ |
| `this_month` | Текущий месяц | Отчет за месяц |
| `last_month` | Прошлый месяц | Month-over-month |
| `{"since": "YYYY-MM-DD", "until": "YYYY-MM-DD"}` | Custom | Любой период |

### Уровни агрегации

| Level | Описание |
|-------|----------|
| `account` | Весь аккаунт |
| `campaign` | По кампаниям |
| `adset` | По adsets |
| `ad` | По объявлениям |

### Breakdowns

| Breakdown | Описание |
|-----------|----------|
| `age` | По возрасту |
| `gender` | По полу |
| `country` | По странам |
| `device_platform` | По устройствам |
| `publisher_platform` | По площадкам (FB/IG/AN) |

---

## Форматы отчетов

### Дневной отчет (с today vs yesterday)

```markdown
# Дневной отчет: {Account Name}
📅 {Date}
🎯 Целевой CPL: ${target}

## Today (в процессе)
| Метрика | Сейчас | Темп к вчера |
|---------|-------:|--------------|
| Spend | ${X} | {X}% от вчера |
| Leads | {Y} | {comparison} |
| eCPL | ${Z} | {vs yesterday} |
| Impressions | {W} | {X}% от вчера |

## Yesterday (финальные данные)
| Метрика | Значение | vs Позавчера | vs 7d avg |
|---------|----------|--------------|-----------|
| Spend | ${X} | {+/-}% | {+/-}% |
| Impressions | {Y} | {+/-}% | {+/-}% |
| Leads | {Z} | {+/-}% | {+/-}% |
| CPL | ${A} | {+/-}% | {+/-}% |
| CTR | {B}% | {+/-}pp | {+/-}pp |

## Today-компенсация
{если today.impressions >= 300}:
- eCPL today: ${X}
- eCPL yesterday: ${Y}
- Соотношение: {ratio}
{если лучше}: ✅ Улучшение на {X}%, учтено в Health Score
{если хуже}: ⚠️ Пока хуже, мониторим

## AdSets с Health Score

| AdSet | HS | Класс | CPL Y | vs Target | CTR | Trend | Today | Action |
|-------|---:|-------|------:|-----------|----:|-------|-------|--------|
| {name} | +45 | very_good | $2.50 | -38% | 1.5% | ↑ | +15 | Scale +30% |
| {name} | +12 | good | $3.80 | -5% | 1.2% | → | - | Hold |
| {name} | -8 | sl_bad | $5.20 | +30% | 0.8% | ↓ | - | Reduce -30% |
| {name} | -35 | bad | $12.00 | +200% | 0.4% | ↓↓ | +20 | Monitor |

## Топ объявления
1. {ad_name} - CPL ${X}, {Y} leads, Risk {R}
2. {ad_name} - CPL ${X}, {Y} leads, Risk {R}

## Проблемы
- {issue1}
- {issue2}
```

---

### Недельный отчет (с трендами)

```markdown
# Недельный отчет: {Account Name}
📅 {Start Date} - {End Date}
🎯 Целевой CPL: ${target}

## Сводка недели
| Метрика | Эта неделя | Прошлая | Изменение | Тренд |
|---------|------------|---------|-----------|-------|
| Spend | ${X} | ${Y} | {+/-}% | {↑/↓/→} |
| Impressions | {X} | {Y} | {+/-}% | {↑/↓/→} |
| Leads | {X} | {Y} | {+/-}% | {↑/↓/→} |
| CPL | ${X} | ${Y} | {+/-}% | {↑/↓/→} |
| CTR | {X}% | {Y}% | {+/-}pp | {↑/↓/→} |
| ROAS | {X}x | {Y}x | {+/-}% | {↑/↓/→} |

## Динамика CPL по дням
| День | Spend | Leads | CPL | vs Target | Trend |
|------|------:|------:|----:|-----------|-------|
| Пн | ${X} | {Y} | ${Z} | {+/-}% | - |
| Вт | ${X} | {Y} | ${Z} | {+/-}% | {vs Пн} |
| Ср | ${X} | {Y} | ${Z} | {+/-}% | {vs Вт} |
| Чт | ${X} | {Y} | ${Z} | {+/-}% | {vs Ср} |
| Пт | ${X} | {Y} | ${Z} | {+/-}% | {vs Чт} |
| Сб | ${X} | {Y} | ${Z} | {+/-}% | {vs Пт} |
| Вс | ${X} | {Y} | ${Z} | {+/-}% | {vs Сб} |

## Health Score по AdSets

| AdSet | HS | CPL Gap | Trends | Diag | Today | VF | Класс | Action |
|-------|---:|--------:|-------:|-----:|------:|---:|-------|--------|
| {name} | +52 | +45 | +7.5 | 0 | 0 | 1.0 | very_good | Scale |
| {name} | +12 | +30 | -7.5 | -8 | 0 | 0.9 | good | Hold |
| {name} | -22 | -30 | -7.5 | -8 | +20 | 1.0 | sl_bad | Monitor |

## Breakdown компонентов HS (для худших)

**AdSet "{name}" (HS = -22):**
| Компонент | Значение | Причина |
|-----------|----------|---------|
| CPL Gap | -30 | CPL $5.20 vs target $4, +30% |
| Trends | -7.5 | 3d хуже 7d на 12% |
| CTR Penalty | -8 | CTR 0.8% < 1% |
| CPM Penalty | 0 | CPM $11 в норме |
| Freq Penalty | 0 | Frequency 1.8 в норме |
| Today Adj | +20 | Сегодня CPL $3.50, на 33% лучше! |
| Volume Factor | x1.0 | 3200 impressions |
| **Итого** | -22 | HS улучшен благодаря today |

## Лучшие adsets
| AdSet | Spend | Leads | CPL | HS | Trend | Action |
|-------|------:|------:|----:|---:|-------|--------|
| {name1} | ${X} | {Y} | ${Z} | +{W} | ↑ | Scale +30% |
| {name2} | ${X} | {Y} | ${Z} | +{W} | ↑ | Scale +20% |

## Худшие adsets
| AdSet | Spend | Leads | CPL | HS | Trend | Today | Action |
|-------|------:|------:|----:|---:|-------|-------|--------|
| {name1} | ${X} | {Y} | ${Z} | -{W} | ↓↓ | +15 | Monitor |
| {name2} | ${X} | {Y} | ${Z} | -{W} | ↓ | - | Reduce |

## Рекомендации на следующую неделю
1. {recommendation1}
2. {recommendation2}
3. {recommendation3}
```

---

### Отчет по аудиториям

```markdown
# Анализ аудиторий: {Account Name}
📅 {Period}

## По возрасту
| Возраст | Spend | Leads | CPL | vs Target | % бюджета |
|---------|------:|------:|----:|-----------|----------:|
| 18-24 | ${X} | {Y} | ${Z} | {+/-}% | {W}% |
| 25-34 | ... | ... | ... | ... | ... |
| 35-44 | ... | ... | ... | ... | ... |
| 45-54 | ... | ... | ... | ... | ... |
| 55-64 | ... | ... | ... | ... | ... |
| 65+ | ... | ... | ... | ... | ... |

## По полу
| Пол | Spend | Leads | CPL | vs Target |
|-----|------:|------:|----:|-----------|
| Мужчины | ${X} | {Y} | ${Z} | {+/-}% |
| Женщины | ${X} | {Y} | ${Z} | {+/-}% |

## По площадкам
| Площадка | Spend | Leads | CPL | CTR | Trend |
|----------|------:|------:|----:|----:|-------|
| Facebook | ${X} | {Y} | ${Z} | {W}% | {↑/↓/→} |
| Instagram | ... | ... | ... | ... | ... |
| Audience Network | ... | ... | ... | ... | ... |

## Выводы
- Лучшая аудитория: {description}
- Худшая аудитория: {description}
- Рекомендации: {recommendation}
```

---

## Workflow отчета

### Шаг 1: Подготовка

```
1. Прочитай .claude/ads-agent/config/ad_accounts.md
2. Прочитай бриф → целевые метрики
3. Определи период отчета
```

### Шаг 2: Сбор данных (5 периодов)

```python
# Все 5 периодов параллельно
today = get_insights(object_id="act_XXX", time_range="today", level="adset")
yesterday = get_insights(object_id="act_XXX", time_range="yesterday", level="adset")
last_3d = get_insights(object_id="act_XXX", time_range="last_3d", level="adset")
last_7d = get_insights(object_id="act_XXX", time_range="last_7d", level="adset")
last_30d = get_insights(object_id="act_XXX", time_range="last_30d", level="adset")
```

### Шаг 3: Расчет метрик и HS

```python
# CPL
cpl = spend / leads if leads > 0 else None

# CTR
ctr = (clicks / impressions) * 100 if impressions > 0 else 0

# Health Score (5 компонентов)
hs = calculate_health_score(
    cpl_yesterday, target_cpl,
    cpl_3d, cpl_7d, cpl_30d,  # для трендов
    ctr, cpm, frequency,       # для диагностики
    cpl_today,                 # для today-компенсации
    impressions                # для volume factor
)

# Изменение
change_pct = ((current - previous) / previous) * 100 if previous > 0 else None
```

### Шаг 4: Формирование отчета

Используй шаблоны выше, заполни данными.

### Шаг 5: Выводы и рекомендации

На основе анализа добавь:
- Что работает хорошо
- Что требует внимания
- Конкретные рекомендации
- Today-компенсация (если применимо)

---

## Сравнение периодов

### Week-over-Week

```python
# Эта неделя
this_week = get_insights(object_id="act_XXX", time_range="last_7d")

# Прошлая неделя
last_week = get_insights(
    object_id="act_XXX",
    time_range={"since": "YYYY-MM-DD", "until": "YYYY-MM-DD"}
)

# Расчет изменения
for metric in ["spend", "leads", "impressions"]:
    change = ((this_week[metric] - last_week[metric]) / last_week[metric]) * 100
```

### Month-over-Month

```python
this_month = get_insights(object_id="act_XXX", time_range="this_month")
last_month = get_insights(object_id="act_XXX", time_range="last_month")
```

---

## Интерпретация метрик

### Хорошие показатели

| Метрика | Хорошо | Отлично |
|---------|--------|---------|
| CTR | > 1% | > 2% |
| CPL | < target | < 0.7x target |
| Frequency | < 3 | < 2 |
| LP View Rate | > 60% | > 80% |

### Тревожные сигналы

| Метрика | Внимание | Критично |
|---------|----------|----------|
| CPL | > 1.5x target | > 2x target |
| Frequency | > 4 | > 7 |
| CTR | < 0.5% | < 0.3% |
| Spend без leads | > $10 | > $20 |

---

## Символы трендов

| Символ | Значение | Условие |
|--------|----------|---------|
| ↑ | Улучшение | CPL падает / CTR растёт |
| → | Стабильно | Изменение ±10% |
| ↓ | Ухудшение | CPL растёт / CTR падает на 10%+ |
| ↓↓ | Сильное ухудшение | Изменение > 30% |

---

## Health Score в отчётах

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

| Класс | Диапазон | Иконка |
|-------|----------|--------|
| very_good | >= +25 | 🟢 |
| good | +5..+24 | 🟡 |
| neutral | -5..+4 | ⚪ |
| slightly_bad | -25..-6 | 🟠 |
| bad | <= -25 | 🔴 |

### Компоненты (для breakdown)

| Компонент | Диапазон | Что влияет |
|-----------|----------|------------|
| CPL Gap | -45..+45 | Отклонение от target |
| Trends | -15..+15 | 3d vs 7d, 7d vs 30d |
| CTR Penalty | -8..0 | CTR < 1% |
| CPM Penalty | -12..0 | CPM > median * 1.3 |
| Freq Penalty | -10..0 | Frequency > 2 |
| Today Adj | 0..+30 | Хороший today |
| Volume Factor | x0.6..1.0 | Impressions |

---

## Шаблоны выводов

### Позитивные
- "CPL снизился на {X}% благодаря {причина}"
- "Лучшая аудитория - {description}, CPL ${X}"
- "Успешное масштабирование: +{X}% spend при сохранении CPL"
- "Today показывает улучшение: CPL ${X} vs ${Y} вчера"

### Негативные
- "CPL вырос на {X}%, основная причина - {adset/ad}"
- "Ad-eater обнаружен: {name}, тратит {X}% бюджета"
- "Frequency {X} - аудитория выгорает"
- "Тренд негативный: 3d хуже 7d на {X}%"

### Рекомендации
- "Масштабировать {adset} - HS +{X}, CPL ниже target"
- "Снизить бюджет {adset} - HS {X}, CPL выше нормы"
- "Мониторить {adset} - today показывает улучшение"
- "Обновить креативы - высокая frequency {X}"

---

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

### "Отчет за сегодня"
→ Дневной отчет с today vs yesterday, HS по adsets

### "Недельный отчет"
→ Полный отчет с трендами, HS breakdown, рекомендации

### "Сравни эту неделю с прошлой"
→ Week-over-week с детальным сравнением

### "Анализ по возрастам"
→ Breakdown по age, рекомендации по аудиториям

### "Какие adsets лучше всего работают?"
→ Топ по HS, рекомендации по масштабированию

Related Skills

bgo

10
from diegosouzapw/awesome-omni-skill

Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.

Coding & Development

synthflow-ai-automation

16
from diegosouzapw/awesome-omni-skill

Automate Synthflow AI tasks via Rube MCP (Composio). Always search tools first for current schemas.

sync-agents

16
from diegosouzapw/awesome-omni-skill

Synchronize GitHub Copilot instructions, custom agents, and skills into detected AI coding agent configurations in this repository. Use when asked to mirror .github/copilot-instructions.md, .github/instructions, .github/agents, or .github/skills into Claude, Codex, Cursor, Gemini, Windsurf, and related tooling.

synapse

16
from diegosouzapw/awesome-omni-skill

Multi-AI Agent Orchestration System with configurable models and role-based workflows. Use when you need to coordinate multiple AI agents (Claude, Gemini, Codex) for complex tasks like planning, code generation, analysis, review, and execution. Supports agentic workflow patterns: parallel specialists, pipeline, and swarm orchestration. Compatible with Claude Code, Cursor, and OpenCode. Triggers: 'orchestrate agents', 'multi-agent workflow', 'plan and execute', 'code review pipeline', 'run synapse', 'agentic workflow'.

synapse-action-development

16
from diegosouzapw/awesome-omni-skill

Explains how to create Synapse plugin actions. Use when the user asks to "create an action", "write an action", uses "@action decorator", "BaseAction class", "function-based action", "class-based action", "Pydantic params", "ActionPipeline", "DataType", "input_type", "output_type", "semantic types", "YOLODataset", "ModelWeights", "pipeline chaining", or needs help with synapse plugin action development.

swot-pestle-analysis

16
from diegosouzapw/awesome-omni-skill

Strategic environmental analysis using SWOT, PESTLE, and Porter's Five Forces. Creates structured assessments with Mermaid visualizations for competitive positioning and strategic planning.

switchailocal

16
from diegosouzapw/awesome-omni-skill

Unified LLM proxy for AI agents. Route all model requests through http://localhost:18080/v1. Provides FREE access to Gemini CLI, Claude CLI, Codex, and Vibe via your existing subscriptions. Use when: (1) making LLM calls using provider prefixes, (2) switching between CLI/Local/Cloud providers, (3) needing to attach local files/folders to prompts via CLI, (4) requiring intelligent routing between models, or (5) needing to monitor provider health and analytics.

swift-actor-persistence

16
from diegosouzapw/awesome-omni-skill

Use when building a thread-safe data persistence layer in Swift using actors with in-memory cache and file storage.

swamp-vault

16
from diegosouzapw/awesome-omni-skill

Manage swamp vaults for secure secret storage. Use when creating vaults, storing secrets, retrieving secrets, listing vault keys, or working with vault expressions in workflows. Triggers on "vault", "secret", "secrets", "credentials", "api key storage", "secure storage", "password", "token", "key management", "sensitive data", "encrypt", "aws secrets manager", "store secret", "put secret", "get secret", "credential storage", or vault-related CLI commands.

supadata-automation

16
from diegosouzapw/awesome-omni-skill

Automate Supadata tasks via Rube MCP (Composio). Always search tools first for current schemas.

Suno Song Creator

16
from diegosouzapw/awesome-omni-skill

This skill should be used when the user asks to "create a Suno prompt", "write a Suno song", "generate music with Suno", "help me with Suno", "make a song prompt", "create lyrics for Suno", "build a music prompt", or mentions Suno AI music generation. Provides comprehensive guidance for creating professional Suno prompts using advanced prompting strategies, structured formatting within 1000 character limit (NO blank lines between sections), parameter optimization, genre-specific techniques, interactive questioning with efficient project name collection, automated artist/song research via sub-agent (web fetching + pattern extraction), automatic file export to organized project directories, AI-slop avoidance for authentic human-centered lyrics, copyright-safe style descriptions that avoid artist/album/song names, character counting utilities for accurate verification, and optional independent quality review via sub-agent for professional assessment.

summarize

16
from diegosouzapw/awesome-omni-skill

Summarize or extract text/transcripts from URLs, podcasts, and local files.