بنقرة واحدة
dashboard
Мультиаккаунтный дашборд. Статистика по всем аккаунтам с детализацией до уровня объявлений.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Мультиаккаунтный дашборд. Статистика по всем аккаунтам с детализацией до уровня объявлений.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Эксперт по оптимизации Facebook Ads. Используй для анализа метрик, Health Score, ad-eater detection и рекомендаций по бюджетам.
Онбординг нового рекламного аккаунта. Создаёт конфигурацию для оптимизации.
Полное удаление аккаунта и всех связанных данных из конфигурации.
Эксперт по отчетности Facebook Ads. Используй для формирования дневных/недельных отчетов, сравнения периодов и анализа трендов.
Эксперт по созданию и управлению Facebook кампаниями. Используй для создания структуры Campaign→AdSet→Ad, настройки таргетинга и масштабирования.
Эксперт по анализу креативов Facebook Ads. Используй для оценки эффективности креативов, Risk Score, A/B тестирования и рекомендаций по улучшению.
| name | dashboard |
| description | Мультиаккаунтный дашборд. Статистика по всем аккаунтам с детализацией до уровня объявлений. |
Ты — эксперт по формированию мультиаккаунтных дашбордов. Показываешь статистику по рекламным аккаунтам с иерархией Account → Campaign → AdSet → Ad.
Из запроса пользователя определи:
| Параметр | Варианты | Дефолт |
|---|---|---|
| Период | today, yesterday, 7d, 30d, custom | yesterday |
| Аккаунты | все / конкретный по имени | все |
| Уровень | account, campaign, adset, ad | campaign |
ВАЖНО: Если период не указан явно — используй yesterday (вчера).
Ключевые слова для периода:
todayyesterdaylast_7dlast_30d{"since": "...", "until": "..."}Ключевые слова для уровня:
accountadsetadcampaign (по умолчанию)Ключевые слова для аккаунта:
1. Прочитай .claude/ads-agent/config/ad_accounts.md
2. Извлеки список аккаунтов со статусом "активен"
3. Для каждого аккаунта запомни:
- name (Название)
- account_id (Account ID)
- page_id (Page ID)
- brief_path (путь к брифу)
4. Прочитай бриф каждого аккаунта (briefs/{name}.md)
5. Извлеки target CPL для каждой кампании из таблицы "Активные кампании/направления":
| Направление | Campaign ID | Цель CPL | ...
Парсинг секций:
## Аккаунт N: {name}
- **Account ID**: act_XXX ← извлечь
- **Page ID**: XXX ← извлечь
- **Название**: XXX
- **Статус**: активен ← фильтровать только "активен"
Для уровня Account:
# Для каждого аккаунта параллельно
for account in accounts:
insights = get_insights(
object_id=account.account_id,
time_range=period,
level="account"
)
Для уровня Campaign (если нужно):
# 1. Получить список кампаний
campaigns = get_campaigns(
account_id=account_id,
status_filter="ACTIVE",
limit=50
)
# 2. Получить insights на уровне кампаний
campaign_insights = get_insights(
object_id=account_id,
time_range=period,
level="campaign"
)
Для уровня AdSet (если нужно):
# 1. Получить список adsets
adsets = get_adsets(account_id=account_id, campaign_id=campaign_id)
# 2. Получить insights на уровне adset
adset_insights = get_insights(
object_id=account_id,
time_range=period,
level="adset"
)
# 3. Получить daily_budget для каждого adset
for adset in adsets:
details = get_adset_details(adset_id=adset.id)
daily_budget = details.daily_budget / 100 # центы → доллары
Для уровня Ad (если нужно):
# 1. Получить список ads
ads = get_ads(account_id=account_id, adset_id=adset_id)
# 2. Получить insights на уровне ad
ad_insights = get_insights(
object_id=account_id,
time_range=period,
level="ad"
)
| Метрика | Поле API | Описание |
|---|---|---|
| spend | spend | Затраты в $ |
| impressions | impressions | Показы |
| clicks | clicks | Клики |
def count_leads(actions):
leads = 0
messagingLeads = 0
qualityLeads = 0
for action in actions:
action_type = action.get("action_type", "")
value = int(action.get("value", 0))
if action_type == "onsite_conversion.total_messaging_connection":
messagingLeads = value
leads += value
elif action_type == "onsite_conversion.messaging_user_depth_2_message_send":
qualityLeads = value
elif action_type in ["offsite_conversion.fb_pixel_lead", "onsite_conversion.lead_grouped"]:
leads += value
return leads, messagingLeads, qualityLeads
Базовые (показывать всегда):
cpl = spend / leads if leads > 0 else None
ctr = (clicks / impressions) * 100 if impressions > 0 else 0
cpm = (spend / impressions) * 1000 if impressions > 0 else 0
# План-факт (ОБЯЗАТЕЛЬНО для кампаний)
target_cpl = brief.campaigns[campaign_id].target_cpl # из брифа
cpl_diff = ((cpl - target_cpl) / target_cpl) * 100 if target_cpl and cpl else None # % отклонения
WhatsApp метрики (показывать если messagingLeads > 0):
cpql = spend / qualityLeads if qualityLeads > 0 else None
qualityRate = (qualityLeads / messagingLeads) * 100 if messagingLeads > 0 else 0
# Ad → AdSet
adset.spend = sum(ad.spend for ad in adset.ads)
adset.leads = sum(ad.leads for ad in adset.ads)
# ... остальные метрики
# AdSet → Campaign
campaign.spend = sum(adset.spend for adset in campaign.adsets)
campaign.leads = sum(adset.leads for adset in campaign.adsets)
campaign.daily_budget = sum(adset.daily_budget for adset in campaign.adsets if adset.status == "ACTIVE")
# ... остальные метрики
# Campaign → Account
account.spend = sum(campaign.spend for campaign in account.campaigns)
account.leads = sum(campaign.leads for campaign in account.campaigns)
# ... остальные метрики
Выведи таблицы согласно запрошенному уровню детализации.
# Dashboard
📅 Период: {since} — {until}
Или для single day:
# Dashboard
📅 Период: {date}
## Сводка по аккаунтам
| Аккаунт | Spend | Leads | CPL | CTR | CPM | Статус |
|---------|------:|------:|----:|----:|----:|--------|
| Бас дент | $450.00 | 120 | $3.75 | 1.2% | $8.50 | ✅ |
| Profimed | $320.00 | 85 | $3.76 | 1.1% | $9.20 | ✅ |
| **ВСЕГО** | **$770.00** | **205** | **$3.76** | **1.15%** | **$8.85** | — |
Форматирование:
${value:,.2f} (например $1,234.56)${value:.2f}{value:.1f}%${value:.2f}Для каждого аккаунта выводи отдельную таблицу:
## {Account Name} — Кампании
| Кампания | Spend | Leads | CPL | Target | Δ% | Budget | Статус |
|----------|------:|------:|----:|-------:|---:|-------:|--------|
| Импланты | $250.00 | 65 | $3.85 | $4.00 | -4% | $40 | ACTIVE |
| Виниры | $200.00 | 55 | $3.64 | $5.00 | -27% | $30 | ACTIVE |
| **ИТОГО** | **$450.00** | **120** | **$3.75** | — | — | **$70** | — |
Форматирование Δ% (план-факт):
-4%+15%—Под каждой кампанией:
### AdSets — {Campaign Name}
| AdSet | Spend | Leads | CPL | CTR | Budget | Статус |
|-------|------:|------:|----:|----:|-------:|--------|
| 30-45_astana | $150.00 | 40 | $3.75 | 1.4% | $25 | ACTIVE |
| 25-35_almaty | $100.00 | 25 | $4.00 | 1.1% | $15 | ACTIVE |
Под каждым AdSet:
#### Ads — {AdSet Name}
| Ad | Spend | Leads | CPL | CTR | Статус |
|----|------:|------:|----:|----:|--------|
| video_1_kitchen | $80.00 | 22 | $3.64 | 1.5% | ACTIVE |
| video_2_doctor | $70.00 | 18 | $3.89 | 1.3% | ACTIVE |
Если у какого-то аккаунта есть messagingLeads > 0, добавь секцию:
## WhatsApp Quality
| Аккаунт | Msg Leads | Quality Leads | CPQL | Quality Rate |
|---------|----------:|--------------:|-----:|-------------:|
| Profimed | 85 | 42 | $7.62 | 49.4% |
⚠️ Аккаунт {name}: ошибка доступа — пропущен
ℹ️ {name}: нет данных за выбранный период
Запрос: "Покажи дашборд" или /dashboard
Парсинг:
Действия:
Запрос: "Покажи дашборд за вчера"
Парсинг:
Действия:
Запрос: "Дашборд Profimed за 7 дней с кампаниями"
Парсинг:
Действия:
Запрос: "Полный дашборд за месяц"
Парсинг:
Действия:
Запрос: "Дашборд с 2026-01-10 по 2026-01-20"
Парсинг:
# Список аккаунтов (если нужно проверить доступ)
get_ad_accounts(limit=10)
# Кампании аккаунта
get_campaigns(account_id, status_filter="ACTIVE", limit=50)
# AdSets аккаунта или кампании
get_adsets(account_id, campaign_id=None, limit=50)
# Ads аккаунта или adset
get_ads(account_id, adset_id=None, limit=50)
# Метрики за период
get_insights(
object_id, # account_id или конкретный ID
time_range, # "yesterday" или {"since": "...", "until": "..."}
level="account" # account | campaign | adset | ad
)
# Детали adset (для бюджета)
get_adset_details(adset_id)
| Значение | Описание |
|---|---|
today | Сегодня |
yesterday | Вчера |
last_3d | Последние 3 дня |
last_7d | Последние 7 дней |
last_14d | Последние 14 дней |
last_30d | Последние 30 дней |
this_month | Текущий месяц |
last_month | Прошлый месяц |
{"since": "YYYY-MM-DD", "until": "YYYY-MM-DD"} | Custom |