--- name: naming-rules description: Настройка правил нейминга и структуры кампаний для аккаунта. --- # Naming Rules Интерактивный помощник для настройки правил именования Campaign/AdSet/Ad и структуры аккаунта. --- ## Твои задачи 1. Определить аккаунт для настройки 2. Задать вопросы о структуре и нейминге 3. Собрать существующие кампании из аккаунта 4. Сгенерировать файл правил `config/naming/{account}_naming.md` 5. Обновить бриф аккаунта (добавить ссылку на naming rules) --- ## Что создаётся в результате ``` .claude/ads-agent/config/ └── naming/ └── {account}_naming.md ← правила нейминга для аккаунта ``` --- ## Workflow (7 шагов) ### Шаг 0: Определи аккаунт ``` Для какого аккаунта настраиваем правила нейминга? ``` Проверь список в `.claude/ads-agent/config/ad_accounts.md`. Прочитай бриф аккаунта из `.claude/ads-agent/config/briefs/{account}.md`. --- ### Шаг 1: Структура кампаний (3 вопроса) **Q1: Что означает Campaign в твоём аккаунте?** ``` 1. Направление/услуга (Имплантация, Виниры, Гнатология) 2. Цель рекламы (WhatsApp, Lead Forms, Traffic) 3. Аудитория (Холодная, Ретаргетинг, LAL) 4. Другое (опиши) ``` **Q2: Когда создаётся НОВАЯ кампания?** ``` 1. Новое направление/услуга 2. Новая цель (WhatsApp → Lead Forms) 3. Новый тип аудитории 4. Никогда — всё в одной кампании 5. Комбинация (опиши) ``` **Q3: Шаблон названия Campaign:** ``` Примеры: 1. {Направление} 2. {Направление}_{Цель} 3. {Цель}_{Направление} 4. {Направление} | {Цель} | {Дата} 5. Свой формат (опиши) Доступные переменные: - {Направление} — название услуги/продукта - {Цель} — WhatsApp, Lead Forms, Traffic, etc. - {Аудитория} — Cold, Retargeting, LAL - {Дата} — дата создания ``` --- ### Шаг 2: Структура AdSets (3 вопроса) **Q4: Что означает AdSet в твоём аккаунте?** ``` 1. Один креатив = один AdSet 2. Один таргетинг = один AdSet (несколько креативов внутри) 3. Комбинация креатив + таргетинг 4. Тест гипотезы (A/B тест) 5. Другое (опиши) ``` **Q5: Когда создаётся НОВЫЙ AdSet?** ``` Выбери всё что применимо: [ ] Новый креатив [ ] Новый таргетинг (возраст, гео, интересы) [ ] Изменение бюджета [ ] Тест гипотезы [ ] Другое (опиши) ``` **Q6: Шаблон названия AdSet:** ``` Примеры: 1. {Направление}_{Возраст}_{Гео} 2. {Creative}_{Дата} 3. {Направление}_{Creative} 4. {Направление}_{Аудитория}_{Бюджет} 5. Свой формат (опиши) Доступные переменные: - {Направление} — название услуги/продукта - {Creative} — название креатива - {Возраст} — диапазон (25-45) - {Гео} — город/страна - {Аудитория} — тип аудитории - {Бюджет} — дневной бюджет - {Дата} — дата создания ``` --- ### Шаг 3: Названия объявлений (3 вопроса) **Q7: Что ОБЯЗАТЕЛЬНО должно быть в названии Ad?** ``` Выбери всё что нужно для группировки статистики: [ ] Название креатива (РЕКОМЕНДУЕТСЯ — для группировки) [ ] Направление [ ] Формат (video/image/carousel) [ ] Дата создания [ ] Версия (v1, v2) ``` **Q8: Шаблон названия Ad:** ``` Примеры: 1. {creative_name} 2. {Направление} | {creative_name} 3. {Направление} | {creative_name} | {format} 4. {creative_name} | {format} | {date} 5. Свой формат (опиши) Доступные переменные: - {creative_name} — уникальное имя креатива - {Направление} — название услуги - {format} — video/image/carousel - {date} — дата создания (YYYY-MM-DD) - {version} — версия (v1, v2) ``` **Q9: Как формировать creative_name?** ``` 1. По первым словам текста: "восстановим_за_4" 2. По названию файла: "SAK.mov" 3. Описательно: "девушка_улыбка_зелёный" 4. Код + описание: "CR001_имплант_видео" 5. Свой подход (опиши) ``` --- ### Шаг 4: Существующие кампании **Q10: Загрузить существующие кампании из аккаунта?** Если да — вызови `get_campaigns(account_id, limit=50)` и покажи список: ``` Найдены кампании: | # | Название | Campaign ID | Статус | |---|----------|-------------|--------| | 1 | Имплантация | 123456789 | ACTIVE | | 2 | Виниры | 234567890 | ACTIVE | | 3 | Гнатология | 345678901 | PAUSED | Какие из них активно используются? (укажи номера или "все") Для каких направлений эти кампании? ``` Собери маппинг: Направление → Campaign ID --- ### Шаг 5: Валидация Покажи сводку всех правил: ``` 📋 ПРАВИЛА НЕЙМИНГА — {account_name} ## Структура ### Campaign = {что означает} - Новая когда: {условия} - Шаблон: `{template}` - Пример: `{example}` ### AdSet = {что означает} - Новый когда: {условия} - Шаблон: `{template}` - Пример: `{example}` ### Ad - Шаблон: `{template}` - Пример: `{example}` - creative_name: {как формируется} ## Существующие кампании | Направление | Campaign ID | Использовать | |-------------|-------------|--------------| {campaigns_table} --- Всё верно? (да / нет, изменить) ``` --- ### Шаг 6: Генерация файла Создай директорию если не существует: ``` .claude/ads-agent/config/naming/ ``` Создай файл `{account}_naming.md`: ```markdown # {Account Name} — Naming Rules > Создан через /naming-rules {date} --- ## Структура аккаунта ### Campaign **Означает:** {campaign_meaning} **Создавать новую когда:** - {condition_1} - {condition_2} **Шаблон:** `{campaign_template}` **Примеры:** - `Имплантация` - `Виниры` --- ### AdSet **Означает:** {adset_meaning} **Создавать новый когда:** - {condition_1} - {condition_2} **Шаблон:** `{adset_template}` **Примеры:** - `Имплантация_восстановим_за_4_$10` - `Виниры_биркин_$15` --- ### Ad **Шаблон:** `{ad_template}` **Обязательные элементы:** - {element_1} - {element_2} **Примеры:** - `Имплантация | восстановим_за_4 | video` - `Виниры | биркин | video` --- ### Creative Name **Формируется:** {creative_name_rule} **Примеры:** - `восстановим_за_4` - `биркин` - `швейцарская_точность` --- ## Существующие кампании | Направление | Campaign ID | Цель | Статус | |-------------|-------------|------|--------| {campaigns_rows} --- ## Сценарии использования ### Новый креатив для существующего направления 1. **Campaign:** использовать существующую (`{direction}` → `{campaign_id}`) 2. **AdSet:** создать по шаблону `{adset_example}` 3. **Ad:** создать по шаблону `{ad_example}` ### Новое направление 1. **Campaign:** создать `{campaign_example}` 2. **AdSet:** создать `{adset_example}` 3. **Ad:** создать `{ad_example}` ### Тест нового таргетинга 1. **Campaign:** использовать существующую 2. **AdSet:** создать новый с другим таргетингом 3. **Ad:** использовать существующие креативы --- ## История изменений | Дата | Изменение | |------|-----------| | {date} | Создан через /naming-rules | ``` --- ### Шаг 7: Обновление брифа Добавь в бриф аккаунта (`briefs/{account}.md`) ссылку на naming rules: ```markdown ## Naming Rules См. [naming/{account}_naming.md](../naming/{account}_naming.md) ``` --- ## Интеграция с другими скиллами ### Как другие скиллы используют naming rules: **`/campaign-manager`:** ``` 1. Читает config/naming/{account}_naming.md 2. При создании Campaign/AdSet/Ad применяет шаблоны 3. Проверяет существующие кампании перед созданием новой ``` **`/ads-optimizer`:** ``` 1. Читает naming rules 2. При создании нового adset применяет шаблон 3. Использует creative_name для логирования ``` **`/ads-reporter`:** ``` 1. Группирует статистику по creative_name 2. Извлекает creative_name из названия Ad по шаблону ``` **`/creative-analyzer`:** ``` 1. Парсит creative_name из названий объявлений 2. Группирует метрики по креативам ``` --- ## Валидация названий При создании проверяй: ```python # Campaign assert "{Направление}" in campaign_name or custom_format_valid # AdSet assert "{Creative}" in adset_name or "{Направление}" in adset_name # Ad assert "{creative_name}" in ad_name # ОБЯЗАТЕЛЬНО для группировки ``` --- ## Частые ошибки | Ошибка | Решение | |--------|---------| | Нет creative_name в Ad | Добавь — иначе невозможно группировать статистику | | Дубликат Campaign | Проверь существующие перед созданием | | Разные форматы названий | Придерживайся шаблона из naming rules | --- ## После настройки Чек-лист: - [ ] Файл создан в `config/naming/{account}_naming.md` - [ ] Бриф обновлён (добавлена ссылка) - [ ] Существующие кампании замаплены на направления - [ ] Примеры названий валидны