Create Campaign

Provision Meta campaigns and ad sets from declarative config with idempotent state tracking.

626|225|Updated Mar 4, 2026
One-click install
npx skills add https://github.com/aaronjmars/aeon --skill create-campaign-aaronjmars
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: Create Campaign
Source: https://github.com/aaronjmars/aeon/tree/main/skills/create-campaign
Command: npx skills add https://github.com/aaronjmars/aeon --skill create-campaign-aaronjmars

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes assets (resource) and references (resource) and scripts (resource) components.

What problem does it solve?

Provisioning Meta campaigns and ad sets manually is slow and error-prone, especially when you want repeatable, scheduled growth operations without surprise spend.

Core Features & Use Cases

  • Declarative campaign provisioning: Creates Meta campaigns and ad sets from skills/create-campaign/config.yaml, using a minimal, reliable payload model.
  • Idempotent stateful behavior: Reads .admanage-state/campaigns.json to skip entities that already exist, preventing duplicates across repeated runs.
  • Safety-first defaults: Creates everything in PAUSED status by default and supports dry-run to queue payloads without making API calls.
  • AdManage sandbox workflow: Queues credentialed API calls for scripts/postprocess-admanage-create.sh, then writes returned IDs back into state so schedule-ads can launch creatives later.
  • Use Case: You want to bootstrap quarterly prospecting campaigns (with multiple ad sets by country and age) and then launch creatives on an automated schedule, with PAUSED containers until you’re ready to run.

Quick Start

Create your desired campaigns and ad sets in skills/create-campaign/config.yaml (using dailyBudget and targeting), then invoke the Create Campaign skill to queue paused entities and persist their IDs for later use by schedule-ads.

Frequently Asked Questions about Create Campaign

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create Meta ad campaigns from a config file without duplicate entities?▼

You can provision Meta ad campaigns declaratively from a YAML config file, which reads a state file to skip existing entities and prevents duplicates across repeated runs. This avoids manual API calls while reliably creating campaign structures.

How does dry-run mode work for Meta ad campaign provisioning?▼

Dry-run mode queues your campaign and ad set payloads to a pending directory without making any API calls. This allows you to safely review configuration payloads and test growth automation workflows before executing live changes.

Can I bootstrap multiple Meta ad sets by country and age safely?▼

Yes, you can define multiple ad sets with specific targeting like country and age in your config file. The system applies safety-first defaults by creating all campaign containers in a PAUSED status to prevent unexpected ad spend.

What is idempotent provisioning for Meta ad campaigns?▼

Idempotent provisioning tracks created campaign and ad set IDs in a JSON state file. By reading this state on each run, the system skips entities that already exist, ensuring repeated automated growth workflows do not create duplicate campaigns.

Do I need to manually schedule creatives after provisioning Meta campaigns?▼

After provisioning, the system writes returned Meta IDs back into state via a postprocess script. This persisted state allows a separate scheduling step to launch creatives later, keeping containers paused until you are ready to run.

Best way to automate quarterly prospecting campaign structure creation on Meta?▼

Declarative campaign provisioning from a config file is ideal for bootstrapping quarterly prospecting campaigns. It creates paused ad sets on demand and persists IDs for later creative scheduling, avoiding surprise spend during automated growth operations.