Schedule Ads

Launch and provision paid ads on AdManage.ai from declarative YAML config.

Updated Jun 11, 2026
One-click install
npx skills add https://github.com/aaronjmars/aeon-bd --skill schedule-ads-aaronjmars
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: Schedule Ads
Source: https://github.com/aaronjmars/aeon-bd/tree/main/skills/schedule-ads
Command: npx skills add https://github.com/aaronjmars/aeon-bd --skill schedule-ads-aaronjmars

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Managing recurring paid ad launches and campaign provisioning across Meta, TikTok, Snapchat, Pinterest, and LinkedIn requires repetitive manual work in ad dashboards, with real risk of accidental spend. This Skill automates both flows from declarative config files while enforcing PAUSED-by-default launches and a daily spend cap circuit-breaker. ## Core Features & Use Cases - Scheduled ad launches: Reads config.yaml, matches schedule entries to today's date (weekday, exact date, date list, or cron), and launches ads into existing ad sets via the AdManage.ai API, always PAUSED unless explicitly overridden. - Campaign and ad set provisioning: The create branch diffs config.create.yaml against local state and creates missing Meta campaigns and ad sets, writing returned IDs back to .admanage-state/campaigns.json for idempotent re-runs. - Spend guardrails: A dailySpendCap circuit-breaker fails closed when spend cannot be verified, and a DRY_RUN mode writes payloads to disk for review without making API calls. - Use Case: A growth operator wants a promo ad launched every Monday into an existing Meta ad set. They define the schedule once in config.yaml, and the daily 8 AM run launches it PAUSED with spend-cap protection, notifying them of the result. ## Quick Start Copy config.example.yaml to config.yaml, fill in your AdManage ad account, workspace, page, and ad set IDs, then ask the agent to run the schedule-ads skill with DRY_RUN=true to preview today's launches.

Frequently Asked Questions about Schedule Ads

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

FAQPage Schema
How do I schedule recurring paid ad launches from a config file?▼

Define schedule entries in config.yaml with a when clause (everyDay, dayOfWeek, date, dates, or cron) plus ad sets and ad creative. The skill matches entries against today's date and launches them via the AdManage.ai POST /v1/launch endpoint, always PAUSED by default.

How do I create Meta campaigns and ad sets with the AdManage API?▼

Run the skill with the var set to create. It reads config.create.yaml, diffs campaigns against .admanage-state/campaigns.json, creates missing campaigns first, then ad sets referencing the returned campaign IDs, and writes new IDs back to state.

Does this skill support TikTok, Snapchat, Pinterest, and LinkedIn ads?▼

The schedule branch can launch ads into existing ad sets on Meta, TikTok, Snapchat, Pinterest, and LinkedIn. The create branch provisions campaigns and ad sets for Meta only; other platforms' creation shapes are planned for a later version.

Can I test ad launches without spending money?▼

Yes. Set DRY_RUN=true in the environment or dryRun: true in config. The skill builds the launch payloads, writes them to .pending-admanage/dryrun/, and sends a preview notification without making any AdManage API calls.

What happens if the daily spend cap is exceeded?▼

Before launching, the skill checks today's spend via GET /v1/spend/daily against the strictest dailySpendCap in config. If spend meets or exceeds the cap, or the spend figure cannot be verified, it fails closed: all launches are skipped and a warning is notified.

Why did the skill exit without launching any ads?▼

Common causes: config.yaml is missing, no schedule entries match today's date, ADMANAGE_API_KEY is unset, or the daily spend cap tripped. Each case logs a specific code such as SCHEDULE_ADS_NOTHING_TODAY and exits cleanly without notifying.