Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
dengineproblem avatar

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-manager

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs63
Last updatedJanuary 1, 1970
Repositorydengineproblem/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

SKILL.mdMarkdownGitHub ↗

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-01
  • Lookalike_3pct_25-45_KZ_Feed
  • Carousel_Kitchen_v2

---

Создание кампании

Шаг 1: Подготовка

1. Прочитай бриф аккаунта → цели, бюджет, аудитория 2. Определи objective (ODAX) 3. Спланируй структуру

Шаг 2: Выбор Objective

Цель бизнесаODAX ObjectiveОптимизация
УзнаваемостьOUTCOME_AWARENESSReach
Трафик на сайтOUTCOME_TRAFFICLink Clicks
Лиды (формы, WhatsApp)OUTCOME_LEADSLeads
ПродажиOUTCOME_SALESPurchases
Установки приложенияOUTCOME_APP_PROMOTIONApp 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

ТипКогда использовать
CBO3+ 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. Именуй понятно - чтобы было ясно что внутри

Related skills

Marketing & SEOcontentdistribution

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.