naming-rules

Original🇺🇸 English
Translated

Настройка правил нейминга и структуры кампаний для аккаунта.

2installs
Added on

NPX Install

npx skill4agent add dengineproblem/agents-monorepo naming-rules

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
  • Бриф обновлён (добавлена ссылка)
  • Существующие кампании замаплены на направления
  • Примеры названий валидны