launch-meta-ad-campaign
Take someone from a business goal to a verified, paused-then-live Meta/Facebook/Instagram campaign without making them learn Meta's hierarchy. Use automatically for requests to launch, run, create, publish, set up, or plan Meta ads; use reporting skills for analysis-only requests.
Install / Use
npx skills add gooseworks-ai/goose-skills --skill launch-meta-ad-campaignInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of launch-meta-ad-campaign
launch-meta-ad-campaign scores 86/100 on our quality scale, 1908th of 2,912 Automation skills we index.
Its SKILL.md is 22 KB long, well organised into 14 sections and no code examples: a thorough specification that gives an agent plenty to work with.
With 1,222 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 33 days ago, so launch-meta-ad-campaign is actively maintained.
- Our last check on 2026-10-11 found the source still online.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
launch-meta-ad-campaign compared with similar skills
All 4 of these similar skills score higher than launch-meta-ad-campaign; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| launch-meta-ad-campaign (this skill)by gooseworks-ai | 86 | 1.2k | 33d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 102.4k | 1d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 89.7k | 3d ago | MCP Server |
| rufloby ruvnet | 100 | 79.3k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 33d ago | SKILL.md |
Frequently asked questions
- How do I install launch-meta-ad-campaign?
- Run
npx skills add gooseworks-ai/goose-skills --skill launch-meta-ad-campaign. The install tabs above show the steps for each supported agent. - Which AI agents does launch-meta-ad-campaign work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is launch-meta-ad-campaign safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is launch-meta-ad-campaign still maintained?
- The repository was last updated 33 days ago, so launch-meta-ad-campaign is actively maintained.
Skill content
View source on GitHubname: launch-meta-ad-campaign description: Take someone from a business goal to a verified, paused-then-live Meta/Facebook/Instagram campaign without making them learn Meta's hierarchy. Use automatically for requests to launch, run, create, publish, set up, or plan Meta ads; use reporting skills for analysis-only requests.
Launch Meta Ad Campaign
What this is for. Someone says "I want more signups". They should not have to learn what a campaign objective is, what an ad set does, what a pixel is, or which of Meta's fourteen optimization goals fits — and they should not be asked to choose any of them. They tell you about their business; you do the rest and explain it back in their words.
The skill is agent-neutral: choose the best available adapter, but keep one journey and one approval boundary.
Choose one mode
Use the first available mode:
- GooseWorks adapter when all GooseWorks launch tools are callable. Read references/gooseworks-adapter.md.
- Direct Meta adapter when a valid Meta token and ad-account access are available. Read references/direct-meta-adapter.md and use the bundled
tools/meta_marketing_api.js. - Planning-only fallback when neither write adapter is available. Read references/planning-only.md. Produce a useful plan; do not present missing write access as a failed planning task.
If both write adapters are available, prefer GooseWorks because its approval page, creative links, and recovery records are already integrated. Never mix adapters within one launch.
Before Stage 1, resume rather than restart. If a launch record or push already exists, resume it. Inspect existing campaigns, ad sets, ads and creative before recommending anything new, and say whether the intent fits reuse. Never duplicate a partially completed launch, and never build a second context system when the adapter already provides one.
<!-- shared:launch-journey start -->How to talk to the user
The user talks about their business. Talk back about their business.
Campaign ids, ad-set ids, pixel ids, objectives, optimization goals, placements and bid strategies are your working vocabulary, not theirs. Work them out, use them, and translate them back. Surface a raw id only when the user asks for one, or when they need it to do something in Meta themselves.
| What you are dealing with | What you say |
|---|---|
| Campaign objective | "what we're asking Meta to go after" |
| Ad set | the audience and the budget — usually no need to name it at all |
| LANDING_PAGE_VIEWS | "we pay for people who actually load your page, not just tap the ad" |
| LINK_CLICKS | "we pay for taps — cheaper, but some of them never arrive" |
| OFFSITE_CONVERSIONS | "we pay for the action itself — signups, purchases" |
| Pixel / conversion event | "the tracking on your site" / "the action we're counting" |
| Creative | "the ad" |
| Learning phase | "Meta needs roughly 50 of these a week before it can steer well" |
| effective_status: IN_PROCESS | "Meta is reviewing it — normal, usually within a day" |
| Account balance / funding source | "the card Meta bills" |
| Lifetime budget + end_time | "it spends at most $X and stops itself on the 30th" |
Three rules sit on top of that vocabulary:
- Frame every launch as a test worth running, never as "your ads are live". Say what this money can and cannot answer before it is spent. A budget that cannot measure cost per sale should never be reported as if it did.
- Never say an ad is live until Meta says so. A successful write is not a live ad.
- Own the errors. Translate Meta's failures into what happened and what happens next. Never hand back a raw API error and leave the user to decode it.
Workflow
Seven stages. Stages 1 to 5 run before a single object exists in Meta.
Stage 1 — Start with the goal
Open here. Do not open with Meta settings, and never ask the user to pick an objective, an optimization goal, a budget type or a structure — those are yours to derive.
Ask for six things, in the user's own language:
- The goal — what should this money produce? Sales, leads, signups, traffic, awareness, or "I want to find out whether this works at all".
- The offer — what is being promoted, and what does someone actually get?
- The audience — who is it for, and where are they?
- Budget and run time — the total and how long, e.g. "$300 over two weeks". If they give a daily number, ask for the total and duration anyway: "£20 a day" and "£140 for the week" build different things.
- Success metric — what number would make this a good fortnight? If they have none, say so and propose one.
- Destination — where should someone land after tapping?
Everything else you derive:
| You derive | From | |---|---| | Campaign objective | the goal plus the destination — a purchase on a site with tracking → sales; a form or signup → leads; "does this work at all" → traffic | | Optimization goal | whether the destination carries tracking, and how many of the target event the account already produces per week (Stage 2) | | Structure — one campaign, one audience, 2–3 ads | the budget | | Budget type | a total + duration → a lifetime budget with an end date, which hard-caps itself; an open-ended daily figure → a daily budget | | Placements, bid strategy, billing event | sensible defaults, unless something in the brief argues otherwise | | Schedule | the ad account's own timezone, never yours |
When something is missing, explain why you need it — one sentence, in business terms, then ask. Never ask for a fact you could look up, and never ask twice for something already answered.
"I need a rough sense of what a signup is worth to you, because that decides whether we can afford to chase signups directly or should buy traffic first and learn from it."
Take silence as a no, never as a yes. If the user genuinely cannot answer, say what you will assume instead and carry that assumption into the launch brief under what I'm unsure about.
Settle the claims before anything reaches an ad. Ask what the product does today, what may and may not be said, and whether there is a real, named, approved customer or result to cite — default none. Verify every number against a page you have rendered this session. Marketing sites drift: a pricing page saying "$29/mo" and a homepage saying "free tier" means neither can be quoted until the user resolves it. A wrong number runs publicly under their brand.
Stage 2 — Work out the rest yourself
Gather; don't ask. This stage decides Stages 3 to 6, and the user should not see most of it.
Read the account. Three numbers drive everything after:
- Lifetime spend. Zero means a cold account: no delivery history, wider variance, so prefer reliability over sophistication.
- Which events the tracking receives, and how many. A 90-day count divided by 13 gives the weekly rate that decides the optimization goal.
- The account timezone. Every schedule is expressed in it.
Then choose the optimization goal from those numbers, not from habit:
| Situation | Goal | How you describe it |
|---|---|---|
| Account produces ~50+ of the target event per week | OFFSITE_CONVERSIONS with the event attached | "we'll pay for the signups themselves" |
| Below that, destination has working tracking | LANDING_PAGE_VIEWS | "we'll pay for people who actually arrive" |
| Destination has no tracking | LINK_CLICKS | "we'll pay for taps, and some of those taps never land — worth fixing before we spend much more" |
An audience needs roughly 50 optimization events a week to stop guessing. Below that it sits in the learning phase indefinitely, and patience does not fix it. The bridge is: buy landing page views for two or three weeks, then move to the real event once volume clears the bar.
Then size the test honestly, and say the answer out loud in Stage 4:
| Daily spend | What it honestly buys | |---|---| | Under ~$15/day | A plumbing test. Does the ad clear review, does tracking fire, is the click-through rate plausible, does the destination work. Nothing about cost per result. | | ~$15–20/day | A traffic test. Directional click-through and cost per click. Still not ad-versus-ad. | | ~$50/day and up | Optimising for the real action becomes viable, if the event volume supports it. |
Structure follows the budget. One campaign, one audience, 2–3 ads, at any small budget. Splitting a small budget across audiences starves every one of them; extra ads inside one audience cost nothing, because delivery concentrates on whatever gets traction. Split into a second audience only when there is a concrete business reason — prospecting versus remarketing, or separate countries that need separate money.
Stage 3 — Readiness check before you ask for approval
Check the work before the user is asked to approve it. Run four checks, and report every problem in the same shape so the user can act on it without learning anything about Meta.
The findings template. Every finding, without exception:
A one-line name for the problem, in the user's words
- What's wrong: the specific, observed fact — not a category.
- Why it matters: the consequence in money, time or lost clicks.
- Blocks launch: Yes or No, plus one line of reason.
- I can fix this: exactly what you will do, or nothing here.
- You need to fix this: exactly what only the user can do, or nothing — leave it with me.
Never merge the last two. "There's a problem with your landing page" tells the user nothing about whether they need to open a laptop.
Check 1 — the destination. Open every candidate page in a browser and look at it. This is the check most often faked and the failure is invisible: source code, sitemaps and fetched summaries routinely disagree with what a visitor sees. On the rendered page, confirm it opens, that redirects land where you expect, that it continues the ad's sentence, that there is one obvious next action, and that tracking is present and the intended event fires.
The ad promises a free trial; the page opens on a pricing table
- What's wrong: the ad says "start free";
yoursite.com/pricingleads with three paid tiers and no free option above the fold.- Why it matters: people who tap for the free trial bounce. You pay for every one of those taps.
- Blocks launch: Yes — this wastes most of the budget.
- I can fix this: point the ads at
/signupinstead, which opens on the free plan, and rewrite the two headlines to match it.- You need to fix this: nothing — confirm the switch and I'll do it.
If the destination is weak, recommend specific changes or offer to prepare a better page for approval. Never silently send paid traffic to a generic homepage. A purpose-built page usually converts several times better, mostly by removing ways to leak out — but don't build one before a plumbing test, because a tiny budget cannot tell two pages apart.
Check 2 — the connection. Confirm with a real call that the account is connected, permitted to create ads, active, and funded. An authentication status that only proves a token exists proves nothing.
Meta can't bill anything yet
- What's wrong: the ad account is connected and has permission, but has no payment method.
- Why it matters: ads get built and reviewed, then never deliver. It looks like it's running.
- Blocks launch: No for building, Yes for spending.
- I can fix this: nothing — Meta won't accept a card from me.
- You need to fix this: add a card in Meta's billing settings. I'll build and get everything reviewed meanwhile, then check again before we start.
Check 3 — the identity the ads run under. Confirm the Facebook Page and the Instagram account li
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
102.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Scrapling
89.7k🕷️ A Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
ruflo
79.3k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
