Meta ads
Plan and create Meta (Facebook + Instagram) advertising campaigns end-to-end via the Hyper MCP, defaulting to Advantage+ automation. Use when the user wants to launch Meta ads, Facebook ads, Instagram ads, Advantage+ campaigns, carousel ads, dynamic creative ads, set up Meta conversion tracking, analyze performance, audit a Meta ads account, or build Meta performance dashboards. Also triggers on phrases like meta campaign, facebook campaign, advantage+, or meta account audit.From its SKILL.md
npx -y skills add hyperfx-ai/marketing-skills --skill meta-adsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- skips confirmationTells the agent to proceed without asking first, 1 time: "Do not write a plan and wait for confirmation — proceed directly.".
- runs commandsInstructs the agent to run 1 command, including `hyperai search "<tool name>"`.
SKILL.md
9.8 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it
Meta Ads
Strategic guide for creating and managing Meta advertising campaigns, analyzing performance, and building dashboards from cached data. Default to Advantage+ unless the user explicitly requests manual control.
Out of scope — defer to other skills
| Request | Send them to |
|---|---|
| Competitor or public ad research (Meta Ads Library) | meta-ads-library |
| Ad creative generation (images, copy variants) | ad-creative-generation |
| Google Ads campaigns | google-ads |
| Pinterest / TikTok / Amazon paid campaigns | pinterest-ads, tiktok-ads, amazon-ads |
Requirements
- Hyper MCP installed and connected. https://app.hyperfx.ai/mcp
- Meta Business integration connected (Facebook + Instagram, with at least one ad account and one Page) at https://app.hyperfx.ai/apps.
- Firecrawl integration connected for site research and screenshot grounding (discovery phase).
If meta_ads_adaccount_list is not in the tool list, stop and tell the user to enable Hyper MCP and connect Meta Business.
If you suspect a connection issue (missing ad accounts, page publishing failures, or permission errors), call meta_ads_health_check() and report the diagnostics before proceeding.
Tool names
Use the exact tool name from your connected tool list. Canonical names are meta_ads_* (listed below). On Hyper platform chat, legacy meta_business_* names (e.g. meta_business_list_ad_accounts) and the retired plural names (e.g. meta_ads_campaigns_create) resolve to the same tools via aliases — if a call fails with "tool not found", search the live catalog for the canonical name.
| Group | Tools |
|---|---|
| Discovery | meta_ads_adaccount_list, meta_ads_owned_pages_list, meta_ads_pages_search, meta_accounts_list, meta_ads_instagram_accounts_list |
| Health & sync | meta_ads_health_check, meta_ads_health_get |
| Tracking assets | meta_ads_ad_pixels_list, meta_ads_ad_pixels_get, meta_ads_custom_audiences_list, meta_ads_lookalike_audiences_list, meta_ads_targeting_search |
| Step-by-step creation (preferred) | meta_ads_campaign_create, meta_ads_adset_create, meta_ads_ad_create, meta_ads_ad_images_upload, meta_ads_creative_create |
| Read & preview | meta_ads_campaign_get, meta_ads_campaigns_search, meta_ads_adset_list, meta_ads_ad_list, meta_ads_ad_get, meta_ads_ad_previews_get |
| Insights & dashboards | meta_ads_insights_get, hyper_data_build_dashboard, database_query |
| Launch & edits | meta_ads_campaigns_activate, meta_ads_campaign_update, meta_ads_adset_update, meta_ads_ad_update |
| Automated rules | meta_ads_adrule_create, meta_ads_adrule_list, meta_ads_adrule_get, meta_ads_adrule_update, meta_ads_adrule_delete, meta_ads_adrule_history_list |
| Site research | firecrawl_branding_extract, firecrawl_screenshots_create |
CLI users: translate tool names with the hyper-cli skill (hyperai search "<tool name>").
Rules that must never be forgotten
BUDGETS IN CENTS: $20.00 = 2000. $5.50 = 550. $100 = 10000. Never pass dollar amounts directly.
ACTIVATE, DON'T UPDATE: Use
meta_ads_campaigns_activate(campaign_id)to go live. Nevermeta_ads_campaign_update(status="ACTIVE")— that silently leaves ad sets and ads PAUSED so nothing serves.
ALWAYS START PAUSED: Create campaigns with
status="PAUSED". Never launch live without user review.
BUILD STEP BY STEP: Create campaigns with the individual tools —
meta_ads_campaign_create→meta_ads_adset_create→meta_ads_creative_create→meta_ads_ad_create, capturing each id from the previous response. (The old blueprint tools were removed.) The tools validate requests before sending — campaign objective rules, bid-strategy/bid-amount pairing, billing-event/optimization-goal compatibility, budget coherence — but objective-specific ad-set fields (optimization_goal,promoted_object) are YOUR responsibility: match them to the campaign objective using the reference file for the campaign type.
REGULATED ADVERTISERS NEED
special_ad_categories: For gambling, financial, housing, employment, credit, or political advertisers, declare the category onmeta_ads_campaign_create(e.g.special_ad_categories=["ONLINE_GAMBLING_AND_GAMING"]).
FIXED RUN WINDOWS GO ON THE AD SET: When the user gives a run duration or dates ("run it for 7 days", "through end of month"), set
start_timeANDend_time(ISO 8601) onmeta_ads_ad_sets_create. A daily-budget ad set with noend_timeruns continuously until manually paused — the requested window is silently lost.
GROUND COPY IN THE DESTINATION PAGE (RESEARCH FIRST): When the brief centers on a URL ("build a campaign for https://..."), fetch that page FIRST (
web_pages_fetch) — before discovery and before writing any copy — and ground ad copy in what the page actually says (product name, value props, offer). Never invent copy for a page you have not read; even when the user supplies exact copy or headlines, fetch the page to verify the destination matches the offer.
EU-TARGETED AD SETS NEED DSA FIELDS: If an ad set targets the EU, set
dsa_beneficiaryanddsa_payoronmeta_ads_ad_sets_create(who benefits from / pays for the ad) — required under the EU Digital Services Act, or delivery is restricted.
UTMs ON EVERY DESTINATION AD (
url_tags): Seturl_tags(UTM params, e.g.utm_source=meta&utm_medium=paid&utm_campaign=...) on every creative that drives to a destination — downstream measurement (e.g. AppsFlyer + a data warehouse) stitches on these, so an ad without UTMs is effectively unmeasurable. Use the advertiser's canonical template; if you don't have one, ask rather than ship untracked.
See references/constraints.md for the full constraint set.
All reference files live in
references/. Read them atreferences/<file>(e.g.references/discovery.md). They are not in the same directory as this SKILL.md.
Core process
Every task follows this sequence. Do not skip steps.
- Identify the goal — creation, analysis, or both?
- Check the routing table and read the referenced files before calling any tools
- Make a written plan — state campaign type, budget in cents, optimization goal, and sequence of steps; show it before acting
- Execute step by step, re-checking references/constraints.md at each creation step
- Show ad previews before activation
- Activate only when the user approves using
meta_ads_campaigns_activate()
Automated / scheduled runs: If there is no user present to interact with (e.g. a scheduled task), skip steps 3 and 6. Do not write a plan and wait for confirmation — proceed directly. Do not activate unless activation was explicitly included in the task instructions.
Routing table
| The user wants to… | Read these files first |
|---|---|
| Create a sales / conversion campaign | references/discovery.md → references/campaigns/sales.md |
| Create a leads campaign | references/discovery.md → references/campaigns/leads.md |
| Create a traffic campaign | references/discovery.md → references/campaigns/traffic.md |
| Create an awareness or engagement campaign | references/discovery.md → references/campaigns/awareness-engagement.md |
| Create an app promotion campaign | references/discovery.md → references/campaigns/app-promotion.md |
| Create a campaign (any objective) | references/discovery.md → the matching references/campaigns/*.md above, then build step by step |
| Analyze performance / query insights | references/analytics.md |
| Audit an account / find optimization opportunities | references/account-audit.md |
| Set up automated rules (auto-pause, budget guards, alerts) | references/automated-rules.md |
| Build a Meta dashboard or data app | references/analytics.md → references/dashboards.md |
| Analyze performance, then create a campaign | references/analytics.md → references/discovery.md → relevant campaign file |
| Build a funnel / multiple campaigns at once (TOF/MOF/BOF) | references/multi-campaign-funnel.md → references/discovery.md → per-tier campaign files |
| Objective not yet known | references/discovery.md — discovery clarifies the goal |
Worked examples
- Full sales campaign (ecommerce, Advantage+, step-by-step): references/examples/sales-ecommerce.md
- Full leads campaign (B2B SaaS, website pixel, step-by-step): references/examples/leads-form.md
What ships with it: 14 files
103.5 KB alongside SKILL.md
references/
- account-audit.md3.5 KB
- analytics.md7.6 KB
- automated-rules.md3.2 KB
- campaigns/app-promotion.md8.8 KB
- campaigns/awareness-engagement.md4.6 KB
- campaigns/leads.md14.2 KB
- campaigns/sales.md9.7 KB
- campaigns/traffic.md5.3 KB
- constraints.md19.3 KB
- dashboards.md2.8 KB
- discovery.md6.4 KB
- examples/leads-form.md6.4 KB
- examples/sales-ecommerce.md5.9 KB
- multi-campaign-funnel.md5.8 KB
Gives 0 of the 12 instructions most product growth skills give in ~2.2k tokens
Counted across 694 of the 879 authors here whose files we hold, read 2026-09-06
- Check for product marketing context firstin 49 of 694, across 20 files
- Validate the why before building featuresin 18 of 694, across 4 files
- Respond to every comment in real-timein 17 of 694, across 6 files
- Structure launch marketing across three channel typesin 16 of 694, across 4 files
- Recruit early users one-on-onein 13 of 694, across 2 files
- Ask one question at a timein 13 of 694
- Rank features using ICE scoringin 12 of 694, across 3 files
- Identify primary conversion goalin 11 of 694, across 3 files
- Identify traffic contextin 11 of 694, across 3 files
- Evaluate headline effectivenessin 11 of 694, across 3 files
- Check visual hierarchy and scannabilityin 11 of 694, across 3 files
- Run product diagnosticsin 11 of 694, across 3 files
Said here and by no other author read
- Default to Advantage+ automation
- Pass budgets in cents
- Activate campaigns using campaign activate
- Build campaigns step by step
- Declare special ad categories when regulated
- Set start and end times on ad sets
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.