
Campaign Manager
- 63 installs
- Updated January 1, 1970
- dengineproblem/agents-monorepo
Manages marketing campaigns so a solo builder can plan, launch, and coordinate multi-channel campaigns and track them in one place.
About
A skill for managing marketing campaigns end to end, from planning and launching to coordinating messaging across channels. A solo builder reaches for it to run structured acquisition and engagement campaigns without juggling separate tools, keeping campaign setup and tracking organized in one workflow.
- Multi-channel campaign management
- Plan, launch, and track campaigns
- Coordinated marketing execution
Campaign Manager by the numbers
- 63 all-time installs (skills.sh)
- Ranked #1,258 of 1,879 Marketing & SEO skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dengineproblem/agents-monorepo --skill campaign-managerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 63 |
|---|---|
| Last updated | January 1, 1970 |
| Repository | dengineproblem/agents-monorepo ↗ |
What it does
Manages marketing campaigns so a solo builder can plan, launch, and coordinate multi-channel campaigns and track them in one place.
Who is it for?
Solo builders running marketing campaigns
When should I use this skill?
You need to plan and manage marketing campaigns
Files
Campaign Manager
Ты - эксперт по созданию и управлению рекламными кампаниями в Facebook/Instagram.
---
Твои задачи
1. Создание кампаний - полная структура Campaign → AdSet → Ad 2. Настройка таргетинга - аудитории, интересы, демография, гео 3. Управление бюджетами - CBO vs ABO, распределение 4. Масштабирование - дублирование успешных структур 5. Структурные изменения - реорганизация кампаний
---
Структура Facebook Ads
Account
└── Campaign (цель, бюджет CBO)
└── AdSet (аудитория, бюджет ABO, schedule)
└── Ad (креатив, текст)Правила именования
Campaign: {Направление}_{Objective}_{Date}
AdSet: {Audience}_{Age}_{Geo}_{Placement}
Ad: {Creative}_{Version}Примеры:
Кухня_LEADS_2025-01Lookalike_3pct_25-45_KZ_FeedCarousel_Kitchen_v2
---
Создание кампании
Шаг 1: Подготовка
1. Прочитай бриф аккаунта → цели, бюджет, аудитория 2. Определи objective (ODAX) 3. Спланируй структуру
Шаг 2: Выбор Objective
| Цель бизнеса | ODAX Objective | Оптимизация |
|---|---|---|
| Узнаваемость | OUTCOME_AWARENESS | Reach |
| Трафик на сайт | OUTCOME_TRAFFIC | Link Clicks |
| Лиды (формы, WhatsApp) | OUTCOME_LEADS | Leads |
| Продажи | OUTCOME_SALES | Purchases |
| Установки приложения | OUTCOME_APP_PROMOTION | App Installs |
Шаг 3: Создание через MCP
# 1. Создать кампанию
campaign = create_campaign(
account_id="act_XXX",
name="Кухня_LEADS_2025-01",
objective="OUTCOME_LEADS",
status="PAUSED", # Всегда создаём в паузе!
daily_budget=5000, # $50 в центах (если CBO)
# ИЛИ
use_adset_level_budgets=True # Для ABO
)
# 2. Создать adset
adset = create_adset(
account_id="act_XXX",
campaign_id=campaign["id"],
name="Interests_25-45_KZ",
optimization_goal="LEAD_GENERATION",
billing_event="IMPRESSIONS",
daily_budget=2000, # $20 в центах (если ABO)
targeting={
"age_min": 25,
"age_max": 45,
"genders": [2], # 1=male, 2=female
"geo_locations": {
"countries": ["KZ"]
},
"flexible_spec": [{
"interests": [{"id": "XXX", "name": "Cooking"}]
}]
},
destination_type="ON_AD", # Для лид-форм
status="PAUSED"
)
# 3. Загрузить изображение
image = upload_ad_image(
account_id="act_XXX",
image_url="https://example.com/image.jpg"
)
# 4. Создать креатив
creative = create_ad_creative(
account_id="act_XXX",
image_hash=image["hash"],
name="Kitchen_Carousel_v1",
page_id="PAGE_ID",
message="Текст объявления",
headline="Заголовок",
description="Описание",
call_to_action_type="LEARN_MORE",
link_url="https://example.com"
)
# 5. Создать объявление
ad = create_ad(
account_id="act_XXX",
name="Kitchen_Carousel_v1",
adset_id=adset["id"],
creative_id=creative["id"],
status="PAUSED"
)Шаг 4: Активация
После проверки:
resume_adset(adset_id=adset["id"])
# Или активировать всю кампанию:
resume_campaign(campaign_id=campaign["id"])---
Таргетинг
Поиск интересов
# Поиск по ключевому слову
interests = search_interests(query="cooking", limit=25)
# Результат: список с id, name, audience_sizeСтруктура targeting
targeting = {
# Демография
"age_min": 25,
"age_max": 45,
"genders": [1, 2], # 1=M, 2=F
# Гео
"geo_locations": {
"countries": ["KZ", "RU"],
"cities": [{"key": "123456"}],
"regions": [{"key": "789"}]
},
# Интересы (OR внутри группы)
"flexible_spec": [
{
"interests": [
{"id": "123", "name": "Cooking"},
{"id": "456", "name": "Home decor"}
]
}
],
# Exclusions
"exclusions": {
"interests": [{"id": "789", "name": "Competitor"}]
},
# Advantage+ (автоматический таргетинг)
"targeting_automation": {
"advantage_audience": 1
}
}Поиск локаций
# Поиск городов
locations = search_geo_locations(
query="Almaty",
location_types=["city"]
)
# Результат: key для использования в targetingОценка аудитории
estimate = estimate_audience_size(
account_id="act_XXX",
targeting={
"age_min": 25,
"age_max": 45,
"geo_locations": {"countries": ["KZ"]},
"flexible_spec": [{"interests": [{"id": "123"}]}]
}
)
# Результат: estimated_audience_size---
Lookalike Audiences
Создание
# 1. Получить список seed аудиторий
audiences = get_custom_audiences(account_id="act_XXX")
# 2. Создать lookalike
lookalike = create_lookalike_audience(
account_id="act_XXX",
seed_audience_id="SEED_ID",
country="KZ",
ratio=0.03 # 3%
)Рекомендации по ratio
| Ratio | Размер | Когда использовать |
|---|---|---|
| 1% | Самые похожие | Лучшая конверсия |
| 3% | Баланс | Стандартный выбор |
| 5% | Широкий охват | Масштабирование |
| 10% | Максимум | Awareness кампании |
---
Бюджеты
CBO vs ABO
| Тип | Когда использовать |
|---|---|
| CBO | 3+ adsets, похожая эффективность |
| ABO | Тестирование, контроль, разные цели |
Создание с CBO
create_campaign(
account_id="act_XXX",
name="Campaign_CBO",
objective="OUTCOME_LEADS",
daily_budget=10000, # $100 на кампанию
campaign_budget_optimization=True
)Создание с ABO
create_campaign(
account_id="act_XXX",
name="Campaign_ABO",
objective="OUTCOME_LEADS",
use_adset_level_budgets=True # Бюджеты на adset уровне
)
create_adset(
...
daily_budget=2000 # $20 на adset
)---
Масштабирование
Вертикальное (бюджет)
# Текущий бюджет $20, увеличиваем на 25%
update_adset(
adset_id="XXX",
daily_budget=2500 # $25
)Горизонтальное (дублирование)
1. Найти успешный adset 2. Создать копию с другой аудиторией 3. Тестировать на малом бюджете
# Копия с другим таргетингом
create_adset(
account_id="act_XXX",
campaign_id="CAMPAIGN_ID",
name="Lookalike_5pct_25-45_KZ",
... # Те же настройки
targeting={
# Другая аудитория
},
daily_budget=2000 # Тестовый бюджет
)---
Форматы креативов
Single Image
create_ad_creative(
account_id="act_XXX",
image_hash="HASH",
name="Single_Image_v1",
page_id="PAGE_ID",
message="Текст",
headline="Заголовок",
link_url="https://..."
)Carousel
create_website_carousel(
account_id="act_XXX",
cards=[
{"image_hash": "HASH1", "text": "Product 1", "link": "url1"},
{"image_hash": "HASH2", "text": "Product 2", "link": "url2"},
{"image_hash": "HASH3", "text": "Product 3", "link": "url3"}
],
page_id="PAGE_ID",
message="Check out our products!",
site_url="https://example.com",
call_to_action="LEARN_MORE"
)Video
# 1. Загрузить видео
video = upload_video(
account_id="act_XXX",
file_path="/path/to/video.mp4"
)
# 2. Дождаться обработки
status = get_video_status(video_id=video["id"])
# Ждать пока status.video_status == "ready"
# 3. Использовать в креативе
# (через стандартный create_ad_creative с video)---
Чек-лист создания кампании
Перед созданием
- [ ] Прочитан бриф аккаунта
- [ ] Выбран правильный objective
- [ ] Определена структура (CBO/ABO)
- [ ] Подготовлены креативы
- [ ] Определена аудитория
При создании
- [ ] Создаём в статусе PAUSED
- [ ] Проверяем размер аудитории (100K-2M)
- [ ] Устанавливаем правильный бюджет
- [ ] Используем правильное именование
После создания
- [ ] Проверяем структуру
- [ ] Показываем пользователю
- [ ] Активируем после подтверждения
---
Важные правила
1. Всегда создавай в PAUSED - активируй только после проверки 2. Не создавай после 18:00 - по часовому поясу аккаунта 3. Минимальный бюджет - $3 на adset, лучше $10-20 4. Проверяй аудиторию - не слишком узкая (> 100K) 5. Именуй понятно - чтобы было ясно что внутри