← AdspirerCONTENT HISTORY

Update to Adspirer

Snapshot Oct 28, 2026 · 12:05 UTC · version 2.1.0

Collection source: downloaded plugin package.

WHAT CHANGED

First saved snapshot

No earlier snapshot is available to establish a change.

Save Adspirer and check future changes in Following.

Up to 10 plugins free · no card required.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "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.",
  "included_files": [
    {
      "relative_path": "references/creative-specs.md",
      "size_in_bytes": 2942
    }
  ],
  "name": "adspirer-meta-ads",
  "skill_md_contents": "---\nname: adspirer-meta-ads\ndescription: 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.\n---\n\n# Meta Ads (Facebook and Instagram)\n\nEverything on Meta goes through the `meta_ads` router. Follow `adspirer-mcp` for the two-step.\n\nAccount parameter: `ad_account_id`, as a **string**. An `act_` prefix is stripped for you.\n\n## Budgets are in the account's own currency\n\n`daily_budget` and `lifetime_budget` are **decimals in the ad account's own currency — not\ncents, and not converted to USD.** For `$50/day` send `50`. For `$20/day` send `20`.\n\nDo **not** multiply by 100 or send cents. If you send `2000` meaning `$20`, you will book\n**`$2,000/day`** — a 100× overspend. Read the created campaign back to confirm the number.\n\n## Objectives\n\nMeta uses ODAX objectives. Use these names:\n\n`OUTCOME_AWARENESS` · `OUTCOME_TRAFFIC` · `OUTCOME_ENGAGEMENT` · `OUTCOME_LEADS` ·\n`OUTCOME_APP_PROMOTION` · `OUTCOME_SALES`\n\nLegacy names (`CONVERSIONS`, `LINK_CLICKS`, `LEAD_GENERATION`) are auto-mapped, but say the ODAX\nname so the mapping is visible.\n\n## Every ad needs a page and a URL\n\nMeta refuses to create an ad without a Facebook `page_id` and an `http(s)` landing URL. Get the\npage before you start building; asking for it halfway through a build wastes the user's time.\n`list_meta_pixels` and `list_meta_instagram_accounts` find the other ids you'll want.\n\n## Structure: one campaign, several ad sets\n\nTargeting lives on the **ad set**, not the campaign. When a user wants to test three audiences,\nthat is one campaign with three ad sets — not three campaigns. Budget can sit at the campaign level\n(Advantage+ / CBO) and be distributed, or at the ad-set level, but not usefully at both.\n\nBuild order: campaign → `add_meta_ad_set` → `add_meta_ad`. The campaign is created **paused**.\n\n## Creative\n\n- **Image**: feed 1:1 or 4:5, at least 600×600. Stories and Reels 9:16, at least 500×888. Under 30 MB.\n- **Video**: MP4 or MOV, H.264, under 4 GB. Reels are 9:16, 3–90 seconds.\n- **Carousel**: 2–10 cards. Every card needs its own landing URL, and all cards share one aspect\n  ratio. Mixing ratios fails.\n- **Text**: headline ≤ 255 characters. Primary text ≤ 2200, but it visually truncates around 125 —\n  put the point first.\n\nFull tables in `references/creative-specs.md`.\n\nRun `validate_and_prepare_meta_assets` before creating an ad, and `discover_meta_assets` to reuse\nwhat's already in the account.\n\n## Writes are rate-guarded\n\nCampaign creation is capped per user (about 100/hour, 300/day). Updates, pauses, and resumes are\nnot capped. If a write is blocked, stop and tell the user — do not retry in a loop, and do not\nswitch tools to get around it.\n\n## Reading performance\n\n`get_meta_campaign_performance` is a **direct, top-level tool** — do not route it through\n`meta_ads`. It renders a performance card. Pass `raw_data: true` for the raw numbers.\n\n`detect_meta_creative_fatigue` is the one to reach for when CTR is sliding and frequency is\nclimbing — that's fatigue, not a targeting problem. `analyze_meta_wasted_spend` finds ad sets\nspending without converting.\n\nLead-gen campaigns: `list_meta_lead_forms` and `get_meta_lead_form_submissions` return real\npeople's contact details. Handle them as personal data — summarize, don't dump.\n\n## References\n\n- `references/creative-specs.md` — image, video, carousel, and text limits; ODAX objective map\n"
}

SHA-256 of public snapshot: 71a51c4b79848322242477430df7db152ba03f646190321cb3940daa4345f736