Account Onboarding
Интерактивный помощник для настройки нового Facebook Ads аккаунта.
Твои задачи
-
Провести пользователя через сбор информации (~20 вопросов)
-
Валидировать данные на каждом этапе
-
Показать сводку и запросить подтверждение
-
Создать конфигурационные файлы
-
Проверить подключение к API
Что создаётся в результате
.claude/ads-agent/config/ ├── ad_accounts.md ← Добавляется запись аккаунта └── briefs/ └── {account_name}.md ← Создаётся новый бриф
Workflow (8 шагов)
Шаг 0: Приветствие
Выведи сообщение:
👋 Привет! Это онбординг нового рекламного аккаунта.
Я задам ~20 вопросов о бизнесе клиента: • Базовая информация (4) • Бизнес-параметры (5) • Цель рекламы (1) • Технические ID (2-5 в зависимости от цели) • Направления/кампании (по 5 на каждое)
В конце создам:
- Запись в ad_accounts.md
- Бриф briefs/{name}.md
Готов начать?
Дождись подтверждения.
Шаг 1: Базовая информация (4 вопроса)
ОБЯЗАТЕЛЬНЫЕ — все 4.
-
Название бизнеса:
(например: Bas Dent, FitLife, TechStore)
-
Facebook Ads Account ID:
act_XXXXXXXXX (найти в Business Manager → Ad Accounts)
-
Часовой пояс:
UTC+5 (Алматы) / UTC+3 (Москва) / UTC+6 (Астана) / другой
-
Ниша бизнеса:
E-commerce / Услуги / SaaS / Образование / Медицина / другая
Валидация:
-
Account ID должен начинаться с act_
-
Часовой пояс — формат UTC+X
Дефолт: Валюта всегда USD.
Шаг 2: Бизнес-параметры (5 вопросов)
ОБЯЗАТЕЛЬНЫЕ: 1-3. ОПЦИОНАЛЬНЫЕ: 4-5.
-
Что продаёте / какие услуги:
(краткое описание основных продуктов/услуг)
-
Регион работы:
Казахстан / Россия / СНГ / Весь мир / конкретные города
-
Целевая аудитория:
Возраст: 25-45 Пол: все / жен / муж Интересы: (ключевые)
-
Боли клиентов (для копирайтинга) [опционально]:
Какие проблемы решаете? Что волнует клиентов?
-
Конкурентные преимущества [опционально]:
Почему должны выбрать вас?
После получения региона — найди geo ID:
-
Прочитай справочник config/knowledge/geo_locations.md
-
Найди указанные города/страны в таблицах
-
Если город НЕ найден в справочнике — вызови MCP: search_geo_locations(query="{город}", location_types=["city"])
-
Сохрани для брифа:
-
city_key — ID города
-
region_id — ID региона (если есть)
-
country_code — код страны
-
radius — радиус по умолчанию (25 km для городов KZ, 40 km для RU)
Шаг 3: Цель рекламы (1 вопрос)
ОБЯЗАТЕЛЬНЫЙ.
Выбери цель рекламы:
- WhatsApp — сообщения в WhatsApp (оптимизация на начало переписки)
- Instagram Трафик — клики на профиль Instagram
- Site Leads — лиды на сайте (с Pixel)
- Lead-формы — мгновенные формы Facebook/Instagram
(1 / 2 / 3 / 4)
Технические параметры по целям:
Цель Campaign Objective Optimization Goal Destination Type
WhatsApp OUTCOME_ENGAGEMENT CONVERSATIONS WHATSAPP
Instagram Трафик OUTCOME_TRAFFIC LINK_CLICKS —
Site Leads OUTCOME_LEADS OFFSITE_CONVERSIONS WEBSITE
Lead-формы OUTCOME_LEADS LEAD_GENERATION ON_AD
Шаг 4: Технические ID (динамический)
В зависимости от цели (из Шага 3) собери нужные технические данные.
ВСЕГДА ОБЯЗАТЕЛЬНЫЕ:
-
Facebook Page ID:
(число, например: 123456789012345) (найти в Business Suite → Страницы → О странице)
-
Есть ли Instagram аккаунт? (да/нет) Если да:
Instagram Account ID: (число) (найти в Business Suite → Instagram аккаунты)
В ЗАВИСИМОСТИ ОТ ЦЕЛИ:
Если цель = "WhatsApp":
- WhatsApp Business номер телефона:
+7XXXXXXXXXX (формат с кодом страны) (должен быть подключен к Business Manager)
Если цель = "Lead-формы":
-
Lead Form ID [если уже есть]:
(число) или "создать новую" (найти в Meta Business Suite → Формы)
-
Какие поля в форме нужны:
Имя / Телефон / Email / Город / другие
Если цель = "Site Leads":
-
URL сайта/лендинга:
-
Facebook Pixel ID:
(число, например: 123456789012345) (найти в Events Manager → Data Sources)
-
Есть ли настроенные события? (да/нет) Если да, какие:
Purchase / Lead / AddToCart / ViewContent / другие
Если цель = "Instagram Трафик":
(Дополнительных ID не требуется, только Page ID и Instagram ID)
Валидация:
-
Page ID — только цифры, 15-16 знаков
-
Instagram ID — только цифры
-
WhatsApp — формат +XXXXXXXXXXX (E.164)
-
Lead Form ID — только цифры или "создать новую"
-
Pixel ID — только цифры, 15-16 знаков
-
URL — валидный URL с https://
Шаг 5: Направления/кампании (интерактивно)
Сколько направлений/кампаний в аккаунте?
(1-10)
Для КАЖДОГО направления спроси:
Направление {N}:
- Название: (например: Импланты, Виниры, Курсы)
- Целевой CPL: $X (стоимость лида в USD)
- Дневной бюджет: $X
- Приоритет: высокий / средний / низкий
- Campaign ID [если уже есть]: или "создать новую"
Валидация:
-
CPL должен быть числом > 0
-
Бюджет должен быть числом >= 5
Шаг 6: ROAS (только для e-commerce)
Спрашивать только если ниша = E-commerce.
Целевой ROAS:
ROAS (Return on Ad Spend) — сколько долларов выручки приносит $1 рекламных расходов.
Пример расчёта: • Потратили на рекламу: $100 • Получили выручки: $300 • ROAS = $300 / $100 = 3x
Формула: ROAS = Выручка / Расходы на рекламу
Типичные значения: • 2x — минимально приемлемый • 3x-4x — хороший результат • 5x+ — отличный результат
Целевой ROAS: Xх (например: 3x) или "не отслеживаю"
Шаг 7: Валидация
Выведи ВСЮ собранную информацию в структурированном виде:
📋 СВОДКА ОНБОРДИНГА
Базовая информация
- Название: {business_name}
- Account ID: {account_id}
- Валюта: USD
- Часовой пояс: {timezone}
- Ниша: {niche}
Бизнес
- Продукт: {product}
- Регион: {region}
- ЦА: {target_audience}
- Боли: {pains}
- Преимущества: {advantages}
Цель рекламы
- Цель: {goal} ({objective} / {optimization_goal})
- ROAS: {roas} (если e-commerce)
Технические ID
- Page ID: {page_id}
- Instagram ID: {instagram_id} (или "нет")
- WhatsApp: {whatsapp_phone} (если WhatsApp)
- Lead Form ID: {lead_form_id} (если Lead-формы)
- Pixel ID: {pixel_id} (если Site Leads)
- Сайт: {website_url} (если Site Leads)
Направления ({count})
| Название | Целевой CPL | Бюджет | Приоритет | Campaign ID |
|---|---|---|---|---|
| {directions_rows} |
Всё верно? (да / нет, изменить)
Если "нет" — спроси что изменить и обнови данные.
Шаг 8: Генерация файлов
После подтверждения создай файлы:
- Добавь запись в ad_accounts.md
Прочитай .claude/ads-agent/config/ad_accounts.md , найди последний номер аккаунта и добавь в конец (перед "Пример формата"):
Аккаунт {N}: {business_name}
- Account ID: {account_id}
- Page ID: {page_id}
- Instagram ID: {instagram_id}
- Название: {business_name}
- Бриф: briefs/{filename}.md
- Статус: активен
- Валюта: USD
- Часовой пояс: {timezone}
- Цель рекламы: {goal}
- Заметки: {niche}. {short_description}
- Создай briefs/{filename}.md
{business_name} - Бриф
Создан через /account-onboarding {date}
Бизнес
- Ниша: {niche}
- Продукт: {product}
- Регион: {region}
- Целевая аудитория: {target_audience}
- Сайт/Landing: {website}
Для копирайтинга
- Боли клиентов: {pains}
- Преимущества: {advantages}
Цель рекламы
- Цель: {goal}
- Campaign Objective: {objective}
- Optimization Goal: {optimization_goal}
- Destination Type: {destination_type}
- Целевой ROAS: {roas}
Технические ID (для API)
Обязательные
- Facebook Page ID:
{page_id} - Instagram Account ID:
{instagram_id}<!-- или "нет" -->
В зависимости от цели
<!-- Заполняется в зависимости от goal -->
Для WhatsApp:
- WhatsApp номер:
{whatsapp_phone}
Для Lead-форм:
- Lead Form ID:
{lead_form_id} - Поля формы: {form_fields}
Для Site Leads:
- URL сайта: {website_url}
- Pixel ID:
{pixel_id} - Настроенные события: {pixel_events}
Гео-локации
| Город/Страна | Тип | Key/Code | Region ID | Радиус |
|---|---|---|---|---|
| {city_name} | city | {city_key} | {region_id} | {radius} km |
| {country_name} | country | {country_code} | — | — |
Правила оптимизации (дефолты)
Пороговые значения
- Минимум impressions для решений: 1000
- Минимум конверсий для решений: 3
- Минимум дней до агрессивных действий: 2
- Ad-eater порог: CPL > target × 3
Бюджетные лимиты
- Максимальное увеличение за раз: 30%
- Максимальное уменьшение за раз: 50%
Временные ограничения
- Часовой пояс: {timezone}
- Не создавать adsets после: 18:00
CPL диапазоны
- Normal: target × 1.0-1.5
- High: target × 1.5-2.0
- Ad-eater: target × 3.0+
Активные кампании/направления
| Название | Campaign ID | Цель CPL | Дневной бюджет | Приоритет | Статус |
|---|---|---|---|---|---|
| {directions_rows} |
Заметки
- Создан: {date}
- Онбординг провёл: Claude (skill: account-onboarding)
История изменений
| Дата | Изменение |
|---|---|
| {date} | Создан бриф через /account-onboarding |
Шаг 9: Тест подключения
После создания файлов проверь доступ к API:
Проверка доступа
campaigns = get_campaigns(account_id="{account_id}", limit=5)
Выведи результат:
✅ Онбординг завершён!
Созданные файлы:
- .claude/ads-agent/config/ad_accounts.md — запись добавлена
- .claude/ads-agent/config/briefs/{filename}.md — бриф создан
API проверка:
- Доступ к аккаунту: ✅
- Найдено кампаний: {count}
Теперь можно использовать:
- /ads-optimizer — оптимизация
- /ads-reporter — отчёты
- /campaign-manager — управление кампаниями
Если API вернул ошибку:
⚠️ Файлы созданы, но API недоступен!
Ошибка: {error_message}
Проверьте:
- Account ID правильный?
- MCP токен имеет доступ к аккаунту?
- Аккаунт активен в Business Manager?
Файлы сохранены, можно исправить Account ID в briefs/{filename}.md
Дефолтные значения
currency: USD
optimization_rules: min_impressions: 1000 min_conversions: 3 min_days: 2 max_budget_increase: 30 max_budget_decrease: 50 no_create_after: "18:00" ad_eater_multiplier: 3
cpl_ranges: normal_multiplier: 1.5 high_multiplier: 2.0 ad_eater_multiplier: 3.0
budget_defaults: adset_min: 5
Цели и их параметры
Цель objective optimization_goal destination_type billing_event
WhatsApp OUTCOME_ENGAGEMENT CONVERSATIONS WHATSAPP IMPRESSIONS
Instagram Трафик OUTCOME_TRAFFIC LINK_CLICKS — IMPRESSIONS
Site Leads OUTCOME_LEADS OFFSITE_CONVERSIONS WEBSITE IMPRESSIONS
Lead-формы OUTCOME_LEADS LEAD_GENERATION ON_AD IMPRESSIONS
Валидация данных
Поле Проверка
account_id Начинается с act_ , только цифры после
page_id Только цифры, 15-16 знаков
instagram_id Только цифры или "нет"
whatsapp_phone Формат +XXXXXXXXXXX (E.164)
lead_form_id Только цифры или "создать новую"
pixel_id Только цифры, 15-16 знаков
website_url Валидный URL с https://
timezone Формат UTC+X или UTC-X
target_cpl Число > 0
roas Число > 1 или "не отслеживаю"
budget Числа > 0, min >= 5
Генерация filename
filename = business_name.lower() .replace(" ", "") .replace("-", "") .replace(/[^a-z0-9_]/g, "")
Примеры:
- "Bas Dent" → "bas_dent"
- "FitLife Studio" → "fitlife_studio"
- "ИП Иванов" → "ip_ivanov" (транслит)
После онбординга
Чек-лист готовности:
-
Бриф создан в briefs/{name}.md
-
Аккаунт добавлен в ad_accounts.md
-
API доступ проверен
-
Готов к /ads-optimizer
Частые ошибки
Ошибка Решение
Account ID без act_
Добавь префикс act_
Ошибка API доступа Проверь токен в MCP, добавь аккаунт в Business Manager
Файл уже существует Спроси: обновить или создать с суффиксом?