amekala/ads-mcp/adspirer-meta-ads

Claude Code and agent skill by amekala/ads-mcp

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Create and manage Meta Ads (Facebook and Instagram) through Adspirer — image, video, carousel, and lead-gen campaigns, ad sets, audiences, pixels, and creative fatigue. Use for anything on Facebook, Instagram, Meta, or FB ads. Covers the account-currency budget unit (never cents) and the required Facebook page id.

Install

npx vskill@latest install amekala/ads-mcp/adspirer-meta-ads

SKILL.md

Meta Ads (Facebook and Instagram)

Everything on Meta goes through the meta_ads router. Follow adspirer-mcp for the two-step.

Account parameter: ad_account_id, as a string. An act_ prefix is stripped for you.

Budgets are in the account's own currency

daily_budget and lifetime_budget are decimals in the ad account's own currency — not cents, and not converted to USD. For $50/day send 50. For $20/day send 20.

Do not multiply by 100 or send cents. If you send 2000 meaning $20, you will book `$2,000/day` — a 100× overspend. Read the created campaign back to confirm the number.

Objectives

Meta uses ODAX objectives. Use these names:

OUTCOME_AWARENESS · OUTCOME_TRAFFIC · OUTCOME_ENGAGEMENT · OUTCOME_LEADS · OUTCOME_APP_PROMOTION · OUTCOME_SALES

Legacy names (CONVERSIONS, LINK_CLICKS, LEAD_GENERATION) are auto-mapped, but say the ODAX name so the mapping is visible.

Every ad needs a page and a URL

Meta refuses to create an ad without a Facebook page_id and an http(s) landing URL. Get the page before you start building; asking for it halfway through a build wastes the user's time. list_meta_pixels and list_meta_instagram_accounts find the other ids you'll want.

Meta events arrive from the browser pixel, the Conversions API, or both. A pixel that looks idle does not mean server events stopped, and the reverse is also true. Dedup and event match quality are per event. audit_conversion_tracking covers Meta; the UI read is adspirer-ads-manager-browser. Don't pause an ad set for "no conversions" until you've checked which of those sources the optimization event actually uses.

Structure: one campaign, several ad sets

Targeting lives on the ad set, not the campaign. When a user wants to test three audiences, that is one campaign with three ad sets — not three campaigns. Budget can sit at the campaign level (Advantage+ / CBO) and be distributed, or at the ad-set level, but not usefully at both.

Build order: campaign → add_meta_ad_set → add_meta_ad. The campaign is created paused.

Creative

  • Image: feed 1:1 or 4:5, at least 600×600. Stories and Reels 9:16, at least 500×888. Under 30 MB.
  • Video: MP4 or MOV, H.264, under 4 GB. Reels are 9:16, 3–90 seconds.
  • Carousel: 2–10 cards. Every card needs its own landing URL, and all cards share one aspect

ratio. Mixing ratios fails.

  • Text: headline ≤ 255 characters. Primary text ≤ 2200, but it visually truncates around 125 —

put the point first.

Full tables in references/creative-specs.md.

Run validate_and_prepare_meta_assets before creating an ad, and discover_meta_assets to reuse what's already in the account.

Writes are rate-guarded

Campaign creation is capped per user (about 100/hour, 300/day). Updates, pauses, and resumes are not capped. If a write is blocked, stop and tell the user — do not retry in a loop, and do not switch tools to get around it.

Reading performance

get_meta_campaign_performance is a direct, top-level tool — do not route it through meta_ads. It renders a performance card. Pass raw_data: true for the raw numbers.

detect_meta_creative_fatigue is the one to reach for when CTR is sliding and frequency is climbing — that's fatigue, not a targeting problem. analyze_meta_wasted_spend finds ad sets spending without converting.

Lead-gen campaigns: list_meta_lead_forms and get_meta_lead_form_submissions return real people's contact details. Handle them as personal data — summarize, don't dump.

References

  • references/creative-specs.md — image, video, carousel, and text limits; ODAX objective map

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
105
Repository forks
23
7-day trend score
22

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/amekala/ads-mcp/adspirer-meta-ads/badge)](https://verified-skill.com/skills/amekala/ads-mcp/adspirer-meta-ads)

Something wrong with this skill or its page? Tell us.