Skip to content
Marketing
Skill

/meta-ad-manager

Front door and loop owner of a Meta (Facebook/Instagram) ad harness. Reads the brand's ads/ docs, works out which campaign the user means and which stage it is at, hands off to the stage skill that runs it (intake, strategy, creative, launch, checks, fixes, answers), and writes

From plugin
goose-skills
1.2k200 skills
Install
$ npx -y skills add gooseworks-ai/goose-skills --skill meta-ad-manager --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/meta-ad-manager

Context preview

The summary Claude sees to decide when to auto-load this skill.

Front door and loop owner of a Meta (Facebook/Instagram) ad harness. Reads the brand's ads/ docs, works out which campaign the user means and which stage it is at, hands off to the stage skill that runs it (intake, strategy, creative, launch, checks, fixes, answers), and writes

SKILL.md

meta-ad-manager.SKILL.md
name: meta-ad-manager
description: Front door and loop owner of a Meta (Facebook/Instagram) ad harness. Reads the brand's ads/ docs, works out which campaign the user means and which stage it is at, hands off to the stage skill that runs it (intake, strategy, creative, launch, checks, fixes, answers), and writes every stage change back to the docs. Use it when someone wants to run ads on Meta, comes back to ads they started earlier, a stage skill hands back, or a scheduled check fires.

Meta Ad Manager

**What this is for.** Someone says "I want to run ads on Meta", or comes back a week later and says "where are we?", or a scheduled check wakes up. This skill works out where things stand from the brand's ad docs, picks the next step, hands it to the skill that does that step, and writes down what happened and why. It never makes the user repeat themselves.

**It does not do the stage work itself.** Intake, strategy, making creatives, launching, checking and fixing each belong to their own skill. This skill decides which one runs, sets the tone, and keeps the docs true.

**The docs contract is law.** How to read and write the files and the rules for numbers are in [contract/RULES.md](contract/RULES.md). The file shapes are in [contract/templates/](contract/templates/), and [contract/validate.py](contract/validate.py) checks a folder. Read `RULES.md` before your first write.

Where this skill's files are

Every path in this skill (`contract/…`, `references/…`) is relative to **this skill's own folder**, not to your working directory:

| Installed by | This skill's folder | |---|---| | GooseWorks (the in-app coworker) | `agent-config/skills/meta-ad-manager/` in the workspace | | The goose-skills installer | the folder the installer printed; in Claude Code, wherever you placed it (for example `.claude/skills/meta-ad-manager/`) |

The stage skills below are installed with this one and sit beside it, in the same parent folder. `ads/` itself is never inside a skill folder.

Choose one mode

Use the first mode that is available, and read its adapter before Step 1:

1. **GooseWorks** when the GooseWorks tools are callable (the in-app coworker, or any agent with the GooseWorks MCP). Read [references/gooseworks-adapter.md](references/gooseworks-adapter.md). 2. **Direct Meta** when there is no GooseWorks, but a Meta access token and ad account are available. Read [references/direct-meta-adapter.md](references/direct-meta-adapter.md). 3. **Planning only** when neither is available. Read [references/planning-only.md](references/planning-only.md). Intake, strategy and the creative brief still work; nothing is read from or written to Meta.

**"The adapter"** in the workflow below means the file for the mode you chose. A campaign stays in the mode it started in; say so if the user's access changes mid-campaign.

Stage skills

| Skill | Stage it runs | Notes | |---|---|---| | `ad-management-intake` | intake: business facts, familiarity, the campaign brief; creates the `ads/` files | every mode | | `ads-north-star-strategy` | strategy: goal, audience, budget split, creative count, test frame | every mode | | campaign planning + creative generation | create and review | GooseWorks generates; other modes write a creative brief | | `launch-meta-ad-campaign` | launch: readiness, paused build, readback, confirmation | GooseWorks or direct Meta | | a quick check (daily report) | quick check on live campaigns | where the adapter has one | | `meta-ads-analyzer` | deep check on complete days | when installed | | fix-and-adjust actions (pause, revert, budget change, replace creative) | acting on an approved recommendation | the adapter lists what it supports | | `answer-ads-questions` | factual questions about the ads | every mode |

The first four and the answers skill are installed with this one. When a listed skill is not installed, the workflow's Fallback column says what to do. Outside GooseWorks, "campaign planning + creative generation" means the adapter's written creative brief, and the check and fix rows are what the adapter lists.

Inputs

  • **The message** — the user's words, or the automation's prompt for a scheduled run.
  • **The surface** — chat, a messaging channel, a scheduled run, or an outside agent host. It

changes only Step 0 and whether you may ask questions.

  • **The brand's `ads/` folder** — the adapter says where it is. It may not exist yet.
  • **The docs contract** — `contract/RULES.md` and `contract/templates/`.

<!-- shared:meta-ad-manager start --> <!-- This block is maintained in ONE place and copied byte-for-byte into both the maintainers' source copy and the published goose-skills copy. Edit one, copy it to the other, and run the parity script before shipping either. -->

Workflow

Step 0 — Surface gate

The harness needs a conversation to ask questions and get approvals.

  • **Web chat, a messaging channel, or an outside agent host:** go on. Web chat is a full

surface; never send its user elsewhere to continue.

  • **A surface with no conversation** (a button or form that started the request, with no chat

behind it): tell the user in one sentence to continue in chat or connect a messaging channel, and stop. Write nothing.

  • **Scheduled run:** go on, but you may not ask questions (see Step 6).

Follow-ups after launch arrive in the report. If the user asks how they will hear about results and has no messaging channel, say how the report reaches them and offer to connect a channel. Do not block on it.

Step 1 — Read the index

Read `ads/README.md`. Always first, always the whole file.

  • **It does not exist** → this brand has never started the harness. Route to intake (Step 4)

and write nothing yourself: `ad-management-intake` creates `ads/brand.md`, the index and the campaign folder, after it has stated its assumptions to the user (its Step 5 comes before its Step 6). Only on the fallback path (intake not installed) do you

Read more
Ships withgoose-skills

Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.

Get the whole plugin

Other skills on goose-skills.