{"id":"5528e3a6-a251-4fe1-b45d-6b5315c3696b","entityType":"agent","slug":"clawhub-benkalsky-meta-ads-mcp","name":"Meta Ads MCP","canonicalUrl":"https://www.xpersona.co/agent/clawhub-benkalsky-meta-ads-mcp","canonicalPath":"/agent/clawhub-benkalsky-meta-ads-mcp","generatedAt":"2026-10-11T07:41:56.553Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T04:43:01.272Z","emptyReason":null},"description":"Production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use w... Skill: Meta Ads MCP Owner: benkalsky Summary: Production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use w... Tags: advertising:1.0.0, facebook-ads:1.0.0, instagram-ads:1.0.0, latest:1.1.0, marketing:1.0.0, mcp:1.0.0, meta-ads:1.0.0, openclaw:1.0.0, skill:1.0.0 Version history: v1.1.0 | 2026-06-09T22:44:09.727Z | auto - E","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17b8qfjfq0g8kveh2g8v1179h83ejwb:meta-ads-mcp","sourceUrl":"https://clawhub.ai/benkalsky/meta-ads-mcp","homepage":"https://clawhub.ai/benkalsky/skills/meta-ads-mcp","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/benkalsky/meta-ads-mcp","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/benkalsky/skills/meta-ads-mcp","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use w..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:43:01.272Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:43:01.272Z","emptyReason":null},"stars":null,"forks":null,"downloads":1156,"packageName":null,"latestVersion":"1.1.0","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T04:43:01.208Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T04:43:01.272Z","lastCrawledAt":"2026-10-11T04:43:01.208Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T04:43:01.208Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.0","createdAt":"2026-06-09T22:44:09.727Z","changelog":"- Expanded the description and documentation to clarify the handoff to external systems (Google Drive, facebook-ads, flux-imagegen skills). - Added a new \"Scope & external dependencies\" section to highlight data boundaries and integration points. - Updated references to ad budgets and audiences to include Custom Audiences and tighter copy around ad spend. - Removed the sample skill card file. - General documentation improvements for clarity and operational discipline.","fileCount":10,"zipByteSize":16622},{"version":"1.0.0","createdAt":"2026-05-05T18:46:32.363Z","changelog":"Initial public release: OpenClaw skill for safe Meta/Facebook/Instagram ads planning, launch preparation, tracking, optimization, and documentation through a Facebook Ads MCP workflow.","fileCount":10,"zipByteSize":15160}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17b8qfjfq0g8kveh2g8v1179h83ejwb:meta-ads-mcp","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T07:41:56.552Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-benkalsky-meta-ads-mcp/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T04:43:01.272Z","emptyReason":null},"readme":"Skill: Meta Ads MCP\n\nOwner: benkalsky\n\nSummary: Production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use w...\n\nTags: advertising:1.0.0, facebook-ads:1.0.0, instagram-ads:1.0.0, latest:1.1.0, marketing:1.0.0, mcp:1.0.0, meta-ads:1.0.0, openclaw:1.0.0, skill:1.0.0\n\nVersion history:\n\nv1.1.0 | 2026-06-09T22:44:09.727Z | auto\n\n- Expanded the description and documentation to clarify the handoff to external systems (Google Drive, facebook-ads, flux-imagegen skills).\n- Added a new \"Scope & external dependencies\" section to highlight data boundaries and integration points.\n- Updated references to ad budgets and audiences to include Custom Audiences and tighter copy around ad spend.\n- Removed the sample skill card file.\n- General documentation improvements for clarity and operational discipline.\n\nv1.0.0 | 2026-05-05T18:46:32.363Z | user\n\nInitial public release: OpenClaw skill for safe Meta/Facebook/Instagram ads planning, launch preparation, tracking, optimization, and documentation through a Facebook Ads MCP workflow.\n\nArchive index:\n\nArchive v1.1.0: 10 files, 16622 bytes\n\nFiles: references/budget-and-audience.md (3559b), references/campaign-architecture.md (3712b), references/campaign-operations.md (3947b), references/creative-and-copy.md (2706b), references/intake-questions.md (2041b), references/safety-guardrails.md (2639b), references/tracking-and-retargeting.md (2837b), skill-card.md (3103b), SKILL.md (5503b), _meta.json (131b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: meta-ads-mcp\nversion: 1.1.0\nlicense: MIT-0\ndescription: >\n  Production-grade operational guide for creating, managing, optimizing, and documenting Meta\n  (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use whenever the\n  user mentions Facebook ads, Instagram ads, Meta campaign planning, ad budgets/spend,\n  ad audiences (incl. Custom Audiences), retargeting, ad performance, Pixel/CAPI tracking, creative briefs,\n  naming conventions, campaign documentation, or safe MCP-based campaign\n  operations.\n---\n\n# Meta Ads MCP — Operational Guide\n\n> **Scope**: How to create, manage, update, pause, and document Meta (Facebook/Instagram) ad campaigns using the Facebook Ads MCP. Covers account setup, campaign architecture, targeting, creative, tracking, retargeting, documentation, and safety guardrails.\n\n## Scope & external dependencies\n\nThis skill is the **operational workflow** for Meta Ads MCP (campaigns, budgets, audiences, tracking, documentation). It intentionally hands three things to systems outside its own scope — be aware these cross trust boundaries:\n\n- **Google Drive** — suggested for storing creative assets and per-campaign docs. That is your organization's Drive, not part of this skill; substitute your own asset store if preferred.\n- **facebook-ads skill** — full ad-copy generation (variations, headlines, CTAs).\n- **flux-imagegen skill** — ad-creative image generation.\n\nUse them as needed, but treat any data leaving Meta Ads MCP (to Drive or another skill) under your own data-handling rules.\n\n## How to use this skill\n\nThis file is the entrypoint. Detailed playbooks live in `references/`. Load only the file relevant to the current task:\n\n| Task | Reference |\n|---|---|\n| Pick the right ad account, build campaign hierarchy, name entities | [`references/campaign-architecture.md`](references/campaign-architecture.md) |\n| Set budgets, choose cold/warm/hot audiences, apply exclusions | [`references/budget-and-audience.md`](references/budget-and-audience.md) |\n| Choose ad format, write copy frameworks, generate creative assets | [`references/creative-and-copy.md`](references/creative-and-copy.md) |\n| Install Pixel/CAPI, define events, build retargeting structure | [`references/tracking-and-retargeting.md`](references/tracking-and-retargeting.md) |\n| Create campaigns via MCP, monitor KPIs, document decisions | [`references/campaign-operations.md`](references/campaign-operations.md) |\n| Run pre-campaign intake before launch | [`references/intake-questions.md`](references/intake-questions.md) |\n| Follow hard safety rules and account-health guardrails | [`references/safety-guardrails.md`](references/safety-guardrails.md) |\n\n## Core workflow — always follow this order\n\n1. **Verify the account** — `ads_get_ad_accounts`, `ads_get_pages_for_business`, `ads_get_dataset_details`. Never proceed with an unverified pixel or unlinked page.\n2. **Run intake** — gather goal, audience, creative, budget, timeline, and landing page. Do not invent answers.\n3. **Plan structure** — pick objective, decide CBO vs ABO, draft 3–5 ad sets and 3–5 ads per set with consistent names.\n4. **Create everything PAUSED** — campaign → ad set → ad, all with `status: PAUSED`.\n5. **Preview + verify** — check pixel attachment, destination URL, ad preview, and naming in Ads Manager UI before activation.\n6. **Activate only after approval** — flip status to `ACTIVE` only after the full review is signed off.\n7. **Document** — log the campaign brief, audiences, creatives, performance, and decisions in the campaign documentation folder.\n\n## Non-negotiable safety rules\n\nThese are summarized here; full list in `references/safety-guardrails.md`.\n\n- **PAUSE, never delete.** Deletes destroy historical learning and cannot be reversed.\n- **Always create in PAUSED status.** No exceptions.\n- **Never edit budget by more than 20% at once** — larger jumps reset the Learning Phase.\n- **Never run a campaign without a verified pixel.**\n- **Never touch a campaign in Learning Phase** — first 7 days / ~50 events.\n- **Special ad categories must be declared** — housing, credit, employment, political/social issues.\n- **Detailed interest targeting was deprecated January 2026.** Use Advantage+ Audience or broad targeting + strong creative.\n\n## Key MCP tools — quick reference\n\n```text\nAccount & assets:\n  ads_get_ad_accounts              list accessible ad accounts\n  ads_get_pages_for_business       list pages under a Business Manager\n  ads_catalog_get_catalogs         check product catalogs for dynamic ads\n  ads_get_dataset_details          verify Pixel/dataset installation\n  ads_get_dataset_quality          check Event Match Quality (target 7+/10)\n\nCreation:\n  ads_create_campaign              create campaign (always status: PAUSED)\n  ads_create_ad_set                create ad set under a campaign\n  ads_create_ad                    create ad under an ad set\n  ads_activate_entity              flip status; use PAUSED to disable, never delete\n\nReporting:\n  ads_get_ad_entities              pull campaign/ad set/ad performance\n  ads_insights_performance_trend   analyze trends over time\n  ads_insights_anomaly_signal      detect unusual patterns\n  ads_get_opportunity_score        review Meta recommendations\n```\n\n## Related skills\n\n- **facebook-ads** — full ad copy generation: copy variations, headlines, CTA options, and visual concepts.\n- **image generation skills** — generate ad creatives in 1:1, 4:5, and 9:16 formats.\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn7afv05r120atbc75whrv1zkx825tt5\",\n  \"slug\": \"meta-ads-mcp\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1781045049727\n}\n\nFile v1.1.0:references/budget-and-audience.md\n\n# Budget Strategy & Audience Targeting\n\n## 4. BUDGET STRATEGY\n\n### CBO vs ABO\n| Scenario | Recommended |\n|---|---|\n| Total daily budget ≥ $50, trust Meta's algorithm | **CBO** — Meta allocates to best-performing ad set |\n| Small budget, strict testing, need visibility per audience | **ABO** — fixed budget per ad set |\n| Finding winning creatives in a new account | **ABO** first, then consolidate to CBO at scale |\n\n### Starting Budgets (per site/campaign)\n- **Testing phase**: $10–$20/day per campaign (ABO) — just enough to generate signal\n- **Scaling a winner**: $50–$200/day CBO, let Meta optimize\n- **Learning Phase rule**: Never edit budget by more than 20% at once — it resets learning\n- **Minimum for a conversion campaign to exit Learning Phase**: ~$50 total spend generating 50+ conversion events\n\n### Budget Guardrails\n- Set **Campaign Spending Limits** in Ads Manager as a hard ceiling\n- Set **Account Spending Limits** in billing settings\n- Review daily spend every morning during launch week\n- Never launch a campaign on a Friday without someone monitoring it\n\n---\n\n## 5. AUDIENCE TARGETING\n\n### Full-Funnel Audience Strategy\n\n#### Cold (Prospecting) — People who don't know the brand\n- **Advantage+ Audience** (recommended 2026): Let Meta find the right people using your pixel data as a signal. Provide broad demographics + let algorithm work.\n- **Lookalike Audiences**: Build from website visitors (180-day), purchasers, or email list. Start with 1–2% LAL, test 3–5% for scale.\n- **Broad Targeting**: Age + gender + country only — trust Meta's algorithm with strong creative.\n\n#### Warm (Engagement Retargeting) — People who know the brand but haven't converted\n- Facebook/Instagram page engagers (90 days)\n- Video viewers (25%, 50%, 75%)\n- Website visitors who didn't convert (30/60/90 days)\n\n#### Hot (Purchase Retargeting) — People who showed strong purchase intent\n- Website visitors of key pages (product page, pricing page, checkout)\n- Add-to-cart but didn't purchase (7–14 days)\n- Email list upload (Custom Audience from CRM)\n\n### Exclusions (Always Set These)\n- Exclude existing customers from prospecting campaigns\n- Exclude retargeting pools from cold audiences\n- Exclude purchasers from add-to-cart retargeting\n- Use Meta's **Audience Overlap tool** to check for cannibalization\n\n### Privacy & compliance (before any customer-data upload)\n\nCustomer-list Custom Audiences and PII in CAPI event parameters (email, phone) are regulated personal data. Before uploading or transmitting:\n\n- **Lawful basis & consent** — document a lawful basis (consent / contract / legitimate interest) under GDPR / CCPA / PIPEDA, and ensure your privacy policy covers Meta ad targeting.\n- **Hash before sending** — email and phone must be SHA‑256 hashed (normalized: lowercase + trimmed; phone in E.164) before they leave your systems. Never send plaintext PII.\n- **Data minimization** — upload only the fields you need; do not bulk-export full CRM records.\n- **Suppression** — honor opt-outs and right-to-be-forgotten; refresh suppression lists.\n- **DPA & residency** — operate under Meta's Data Processing Terms; account for EU/UK data-residency obligations.\n\nDo not upload customer PII without explicit sign-off from whoever owns data/privacy compliance.\n\n### Custom Audiences to Build and Maintain\n1. Website visitors (30 / 60 / 90 / 180 days)\n2. Video viewers by percentage (25% / 50% / 75%)\n3. Page engagers (30 / 90 days)\n4. Customer list uploads (email + phone, hashed)\n5. Purchasers / converters\n\n---\n\nFile v1.1.0:references/campaign-architecture.md\n\n# Account, Architecture & Naming\n\n## 1. Account & Business Setup\n\n### Which Ad Account & Business Manager to Use\n\n- **Always operate through Meta Business Manager** (`business.facebook.com`), never through personal ad accounts. Business accounts have better access controls, billing protection, and asset management.\n- Identify the correct **Ad Account ID** (`act_XXXXXXXXXX`) before executing any action. Use `ads_get_ad_accounts` to list accessible accounts.\n- Identify the correct **Business ID** using `ads_get_pages_for_business` if page-level targeting is needed.\n- Each website/brand should have its own dedicated ad account when possible. Mixing unrelated brands muddles reporting and increases account-risk blast radius.\n- Keep the **billing method verified** before launch. Unverified billing can pause campaigns automatically.\n\n### MCP Account Verification Checklist\n\nRun before the first campaign:\n\n1. `ads_get_ad_accounts` — confirm correct account IDs are accessible.\n2. `ads_get_pages_for_business` — confirm the correct Facebook Page is linked.\n3. `ads_catalog_get_catalogs` — check whether a product catalog exists for dynamic ads.\n4. `ads_get_dataset_details` — verify Pixel/dataset is installed and receiving events.\n5. `ads_get_dataset_quality` — check Event Match Quality score; target `7+/10`.\n\n---\n\n## 2. Campaign Architecture — Three-Tier Hierarchy\n\n```text\nCampaign  (Objective + Budget Strategy)\n  └── Ad Set  (Audience + Placement + Schedule + Budget)\n        └── Ad  (Creative + Copy + CTA + Destination URL)\n```\n\n### Campaign Level\n\n- Sets the **objective** — the single most important decision. Meta optimizes delivery for this goal.\n- Sets **budget strategy**: CBO (Campaign Budget Optimization) or ABO (Ad Set Budget Optimization).\n- Prefer one campaign per **product / funnel stage / business goal**.\n\n| Business Goal | Campaign Objective |\n|---|---|\n| Drive website visits | Traffic |\n| Get form submissions / leads | Leads |\n| Sell a product | Sales |\n| Grow brand recognition | Awareness |\n| Promote content or page engagement | Engagement |\n| Promote an app | App Promotion |\n\n> **2026 update:** Detailed interest targeting was deprecated January 2026. Use **Advantage+ Audience** or **broad targeting with strong creative** as the primary strategy. Interest-based audiences created before October 2025 no longer deliver reliably.\n\n### Ad Set Level\n\n- Contains **audience**, **placement**, **schedule**, and **budget** if using ABO.\n- Recommended range: **3–5 ad sets per campaign** — enough to test, not enough to fragment budget.\n- Each ad set should target a **distinct, non-overlapping audience segment**.\n- Minimum audience size: **50,000+ users** for efficient delivery.\n- Budget must support roughly **50 optimization events per week** to exit the Learning Phase.\n\n### Ad Level\n\n- Contains **creative**, **headline**, **body copy**, **CTA button**, and **destination URL**.\n- Recommended range: **3–5 ads per ad set** — enough for testing without starving delivery.\n- Name ads consistently for reporting clarity.\n\n---\n\n## 3. Naming Conventions — Mandatory\n\nUse consistent naming across all three levels.\n\n### Campaign / Ad Set Format\n\n```text\n[Site] | [Objective] | [Funnel Stage] | [Audience/Test Variable] | [Date YYYY-MM]\n```\n\nExamples:\n\n```text\nBrandA | Traffic | Cold | Broad-Advantage+ | 2026-05\nBrandB | Leads | Warm | Video-Viewers-LAL | 2026-05\nBrandC | Sales | Retargeting | Site-Visitors-30d | 2026-05\n```\n\n### Ad Format\n\n```text\n[Site] | [Format] | [Angle/Hook] | [Variation Letter]\n```\n\nExamples:\n\n```text\nBrandA | Video | Founder-Story | A\nBrandB | Image | Testimonial | B\nBrandC | Carousel | Product-Benefits | C\n```\n\nFile v1.1.0:references/campaign-operations.md\n\n# Campaign Creation, KPIs & Documentation\n\n## 11. CAMPAIGN MANAGEMENT: CREATING VIA MCP\n\n### Creating a Campaign (Step-by-Step with MCP Tools)\n\n**Step 1**: Gather account info\n```\nads_get_ad_accounts → get act_XXXXXXXXXX\nads_get_pages_for_business → get page ID\nads_get_dataset_details → get pixel ID\n```\n\n**Step 2**: Create campaign (PAUSED)\n```\nads_create_campaign\n  - objective: TRAFFIC / OUTCOME_LEADS / OUTCOME_SALES\n  - status: PAUSED\n  - name: [naming convention]\n  - special_ad_categories: [] (or CREDIT/HOUSING/EMPLOYMENT/ISSUES if applicable)\n```\n\n**Step 3**: Create ad set (PAUSED)\n```\nads_create_ad_set\n  - campaign_id: from step 2\n  - targeting: audience definition\n  - budget: daily_budget (in cents)\n  - optimization_goal: LINK_CLICKS / LEAD_GENERATION / CONVERSIONS\n  - status: PAUSED\n```\n\n**Step 4**: Create ad (PAUSED)\n```\nads_create_ad\n  - adset_id: from step 3\n  - creative: image/video + copy + headline + CTA\n  - status: PAUSED\n```\n\n**Step 5**: Full review before activation\n- Check all levels in Ads Manager UI\n- Verify pixel is attached to ad set\n- Verify destination URL is correct and loads\n- Verify creative and copy look correct in preview\n\n**Step 6**: Activate (set top-level campaign to ACTIVE only after review)\n\n---\n\n## 12. PERFORMANCE TRACKING & KPIs\n\n### Core KPIs by Campaign Objective\n\n| Objective | Primary KPI | Secondary KPIs |\n|---|---|---|\n| Traffic | CTR (Link), CPC | Reach, Frequency, Landing Page Views |\n| Leads | CPL (Cost per Lead) | Lead volume, Lead quality, Form completion rate |\n| Sales | ROAS, CPA | Add-to-cart rate, Checkout initiation, Purchase volume |\n| Awareness | CPM, Reach | Frequency, Video views, Brand lift |\n\n### Reporting Cadence\n- **Daily** (launch week): Check spend, CTR, any disapprovals\n- **Weekly**: Full performance review — CTR, CPM, CPL/CPA, ROAS, frequency\n- **Monthly**: Strategic review — winners vs. losers, budget reallocation, new creative planning\n\n### When to Intervene\n| Signal | Action |\n|---|---|\n| CTR < 0.5% on cold campaigns | Test new hook / creative |\n| CPM rising week-over-week | Audience fatigued — refresh creative or expand audience |\n| Frequency > 5 | Expand audience or pause ad set |\n| Ad in \"Learning Limited\" status | Consolidate ad sets or increase budget |\n| Spend depleting with zero conversions | Pause immediately, review pixel and landing page |\n| ROAS < break-even | Pause ad set, investigate (creative? audience? landing page?) |\n\n### Using MCP for Reporting\n```\nads_get_ad_entities — pull campaign/ad set/ad performance\nads_insights_performance_trend — analyze trends over time\nads_insights_anomaly_signal — detect unusual patterns\nads_insights_auction_ranking_benchmarks — see how ads perform vs. benchmarks\nads_get_opportunity_score — get Meta's recommendations\n```\n\n---\n\n## 13. EXTERNAL CAMPAIGN DOCUMENTATION\n\n### Per-Campaign Document (create in Google Drive for each site)\n\nStore in the site's designated Drive folder. Document should include:\n\n**Campaign Brief**\n- Campaign name (per naming convention)\n- Objective and KPI targets\n- Budget (daily, total)\n- Start date / end date / ongoing\n- Ad Account ID\n- Pixel ID\n\n**Audience Definition**\n- Cold audience description\n- Retargeting audiences and window\n- Exclusions applied\n\n**Creative Log**\n| Ad Name | Format | Angle | Status | CTR | CPM | Notes |\n|---|---|---|---|---|---|---|\n| Seraphim-Video-Story-A | Video 4:5 | Origin Story | Active | 1.8% | $8.20 | Top performer |\n| Seraphim-Image-Product-B | Image 1:1 | Product Shot | Paused | 0.4% | $12.00 | Low CTR |\n\n**Results Tracker**\n- Weekly snapshot of: Spend, Impressions, CTR, CPM, Leads/Sales, CPA/CPL, ROAS\n- Notes on what changed each week\n\n**Decisions Log**\n- Date / decision / reason\n- e.g. \"2026-05-10: Paused ad set 2 — frequency reached 7, CTR dropped to 0.3%\"\n\n**Creative Archive**\n- Link to Google Drive folder with all assets\n- Retired creatives marked \"Archive\" — never deleted\n\n---\n\nFile v1.1.0:references/creative-and-copy.md\n\n# Ad Formats, Copy & Asset Generation\n\n## 6. AD FORMATS & WHEN TO USE THEM\n\n| Format | Best For | Notes |\n|---|---|---|\n| **Single Image** | Awareness, traffic, quick tests | Fast to produce, cheap to test, use 1:1 ratio |\n| **Single Video** | Cold prospecting, storytelling, UGC | Hook in first 3 seconds, 15–60s optimal, add subtitles |\n| **Carousel** | Products, features, step-by-step | Each card = one idea; works for e-commerce |\n| **Instant Experience** | Immersive mobile landing pages | Full-screen, loads fast, good for high-ticket |\n| **Dynamic / Collection** | E-commerce with product catalog | Requires catalog; auto-personalizes |\n| **Lead Form** | Lead gen without a landing page | Native to Facebook; frictionless |\n\n### Creative Best Practices (2026)\n- **UGC-style videos** (creator talking to camera, holding product) consistently outperform polished ads\n- **Real faces with genuine expressions** outperform stock imagery\n- **First 3 seconds of video are everything** — open with conflict, result, or bold claim\n- **Always add subtitles** — 80%+ watch with sound off\n- **Use 4:5 ratio** for feed (takes more screen space than 1:1)\n- **Aspect ratio 9:16** for Stories and Reels placements\n\n---\n\n## 7. AD COPY FRAMEWORK\n\nUse the **existing facebook-ads SKILL** for full copy generation. Quick reference:\n\n| Funnel Stage | Framework | Opening Style |\n|---|---|---|\n| Cold | AIDA | Attention hook → build interest → desire → action |\n| Warm | PAS | Problem → Agitate → Solution |\n| Retargeting | BAB | Before → After → Bridge |\n\n**Copy Rules (Non-Negotiable)**:\n- Hook is the first sentence — rewrite it until it's undeniable\n- \"You / your\" always, never \"we / our\" in the hook\n- Short sentences, line breaks, one idea per paragraph\n- For health/wellness: never use \"cures\", \"guarantees\", \"eliminates\" — use \"helps\", \"may\", \"many people find\"\n\n---\n\n## 8. ASSET & TEXT GENERATION\n\n### For Image Creatives\n- Use the **flux-imagegen skill** to generate ad images with Claude\n- Request: 1080×1080 (1:1 feed) or 1080×1350 (4:5 portrait)\n- Generate at least 3 visual variations per angle\n- Always test: lifestyle image vs. product closeup vs. text-dominant graphic\n\n### For Copy\n- Use the **facebook-ads skill** — generates full ad packages with 3 copy variations, 3 headlines, CTA button options, and visual concept descriptions\n- Always generate multiple variations — A/B testing is non-negotiable\n\n### Asset Storage\n- Save all approved ad assets in the **Google Drive folder** for that site\n- Name files to match the naming convention: `[Site]-[Format]-[Angle]-[Variation]`\n- Keep a \"creative graveyard\" folder for retired but potentially recyclable creatives\n\n---\n\nFile v1.1.0:references/intake-questions.md\n\n# Pre-Campaign Intake Questions\n\n## 14. PRE-CAMPAIGN INTAKE — QUESTIONS TO ASK\n\nBefore creating any campaign, gather all of the following. Ask these in natural conversation (not all at once).\n\n### Account & Brand\n1. Which site/brand is this for? (to select correct ad account)\n2. What is the Facebook Page name/ID to use?\n3. Is the Pixel installed and verified on this site?\n4. Is CAPI (server-side tracking) set up? If not, is this blocking launch?\n\n### Campaign Goal\n5. What is the **primary objective**? (traffic / leads / sales / awareness)\n6. What is the **specific conversion event** we're optimizing for? (purchase, lead form submission, contact page visit, etc.)\n7. What does **success look like in numbers**? (e.g., CPL under $10, ROAS above 3x, 50 leads/month)\n\n### Audience\n8. Who is the **target customer**? (demographics, psychographics, pain points)\n9. Are we targeting **cold, warm, or retargeting** audiences — or all three?\n10. What countries/regions/cities?\n11. Do we have an **existing customer list** to upload for LAL or exclusions?\n12. Are there any audiences to **exclude**? (competitors, existing customers, irrelevant demographics)\n\n### Creative\n13. What **product or offer** is being promoted?\n14. What is the **main message / hook**? What transformation or benefit do we lead with?\n15. Do we have **existing creative assets** (images, videos, UGC)? Or do we need to generate them?\n16. Are there any **compliance restrictions**? (health claims, financial claims, regulated categories)\n17. What **tone** — inspirational / educational / direct response / storytelling?\n\n### Budget & Timeline\n18. What is the **daily or monthly budget**?\n19. Is there a **hard end date**, or is this ongoing?\n20. Is there a **promotional deadline** (sale, event, launch) that affects urgency?\n\n### Landing Page & Funnel\n21. What **URL** do ads link to?\n22. Is the landing page **optimized for the conversion event**? (fast load, clear CTA, mobile-friendly)\n23. Is there a **thank-you page** with a Pixel event firing on it?\n\n---\n\nFile v1.1.0:references/safety-guardrails.md\n\n# Safety Guardrails\n\n## 15. SAFETY GUARDRAILS (NON-NEGOTIABLE)\n\n### The Golden Rule: PAUSE, Never Delete\n\n> **Never delete campaigns, ad sets, ads, audiences, or pixels.** Meta's algorithm learns from historical data attached to every object. Deleted objects lose their optimization history forever. Paused objects retain it.\n\n```\nCORRECT:  ads_activate_entity(status: PAUSED) on underperforming campaigns/ad sets/ads\nINCORRECT: Any delete operation on live or historical campaign entities\n```\n\n### Additional Safety Rules\n\n| Rule | Why |\n|---|---|\n| Always create campaigns in **PAUSED** status | Prevents accidental spend before review |\n| Never increase budget by more than **20% at a time** | Larger jumps reset the Learning Phase |\n| Never run campaigns without a **verified Pixel** | No conversion data = no optimization |\n| Never edit targeting, creative, or budget simultaneously | Isolate variables so you know what changed performance |\n| Never touch campaigns in **Learning Phase** (first 7 days / ~50 events) | Edits extend or restart learning |\n| Keep **account spending limit** set in billing | Prevents runaway spend from bugs or errors |\n| Always **preview ads** before activating | Catches broken URLs, wrong pages, copy errors |\n| Never use **personal ad accounts** for business campaigns | No access controls, billing risk |\n| **Document every change** in the campaign's Decisions Log | Creates audit trail, enables learning over time |\n| For special ad categories (housing, credit, employment, political) — **declare them** | Non-declared special categories can cause account suspension |\n\n### Account Health Rules\n- Maintain **ad account policy compliance** — avoid prohibited content in any ad\n- If an ad is **rejected**, review the policy reason before resubmitting. Don't just re-upload identical creative.\n- If an **account is flagged or restricted**, immediately contact Meta Business Support — do not attempt workarounds\n- Keep **payment method verified** and up to date\n- **Verify identity** in Business Manager to unlock full capabilities\n\n## Data & privacy (non-negotiable)\n\n- Never upload customer email/phone, or send PII via CAPI, without a documented lawful basis and consent.\n- Always SHA‑256 hash email/phone before transmission — never plaintext.\n- Minimize data; honor opt-outs and right-to-be-forgotten; maintain suppression lists.\n- Operate under Meta's Data Processing Terms; account for EU/UK data-residency.\n- Special ad categories (housing, employment, credit, social/political issues) carry extra targeting and privacy restrictions — confirm eligibility and rules before launching.\n\nFile v1.1.0:references/tracking-and-retargeting.md\n\n# Pixel/CAPI Tracking & Retargeting\n\n## 9. PIXEL & TRACKING SETUP\n\n### The Recommended Setup: Pixel + CAPI Together\n\n**Meta Pixel** (browser-side) and **Conversions API / CAPI** (server-side) must both be running. Never rely on Pixel alone — Safari/Firefox block third-party cookies by default, and iOS privacy changes cause 40–60% data loss in Pixel-only setups.\n\n```\nBrowser Side:  User action → JavaScript Pixel fires → Meta receives event\nServer Side:   User action → Your server → CAPI → Meta receives event\nDeduplication: Both send same event_id → Meta counts it once\n```\n\n### Priority Events to Track (in order of importance)\n1. `Purchase` / `Lead` — primary conversion event\n2. `InitiateCheckout` / `ViewContent` — funnel signals\n3. `AddToCart` — intent signals\n4. `PageView` — top-of-funnel presence\n5. `CompleteRegistration` — for lead-gen sites\n\n### Pixel Installation (WordPress Sites)\n- Install via **Meta for WordPress plugin** (official) or **PixelYourSite plugin**\n- For CAPI on WordPress: use **PixelYourSite Pro** (has CAPI built in) or custom server-side integration\n- Verify in **Events Manager → Test Events** tool after installation\n- Check **Event Match Quality (EMQ)** score — target 7+/10\n\n### Pixel Verification Checklist\n- [ ] Pixel fires on all key pages\n- [ ] Purchase / Lead event fires correctly on conversion page\n- [ ] CAPI events are sending (check Events Manager → Aggregated Event Measurement)\n- [ ] Deduplication is working (no doubled events in Events Manager)\n- [ ] EMQ score is 7+/10 — improve by sending **hashed** email/phone in event parameters. **PII: requires a documented lawful basis, consent, and SHA‑256 hashing before transmission (see budget-and-audience.md → \"Privacy & compliance\").**\n- [ ] Attribution window set to: 7-day click, 1-day view\n\n---\n\n## 10. RETARGETING CAMPAIGNS\n\n### Retargeting Campaign Architecture\n\n```\nCampaign: [Site] | Sales/Leads | Retargeting | [Date]\n  Ad Set 1: Hot — Checkout abandoners (7 days)\n  Ad Set 2: Warm — Product page visitors (30 days, excl. purchasers)\n  Ad Set 3: Warm — Video viewers 75% (60 days)\n  Ad Set 4: Warm — Page engagers (90 days)\n```\n\n### Retargeting Creative Strategy\n- Be specific — reference what they viewed or did (\"Still thinking about [product]?\")\n- Show social proof — testimonials, reviews, trust signals\n- Create urgency if truthful — limited stock, expiring offer\n- Different creative from prospecting — they know you already\n- Use BAB (Before → After → Bridge) framework\n\n### Retargeting Exclusions (Critical)\n- Always exclude purchasers/converters from all retargeting sets\n- Set a **frequency cap** — max 3–5 impressions per person per week to avoid burnout\n- Monitor frequency score — above 5 = audience is oversaturated, expand or refresh creative\n\n---\n\nFile v1.1.0:skill-card.md\n\n## Description:\n\nMeta Ads MCP is a production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[benkalsky](https://clawhub.ai/user/benkalsky)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMarketing operators, agencies, and developers use this skill to plan, create, pause, monitor, and document Meta ad campaigns through MCP-guided workflows while preserving approval, privacy, and account-health controls.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill can guide real advertising operations where wrong account selection, missing spending limits, or premature activation could spend budget or affect live campaigns.\n\nMitigation: Confirm the ad account, page, pixel, spending limits, and final approval before creating or activating campaigns; create campaign entities in paused status first.\n\nRisk: Custom Audiences, Pixel, and CAPI workflows can involve customer data or regulated personal information.\n\nMitigation: Use the skill only after confirming customer-data consent, lawful basis, privacy-policy coverage, hashing requirements, opt-out handling, and applicable data-residency obligations.\n\nRisk: Campaign assets and documentation may cross trust boundaries when stored in Google Drive or passed to related copy and image-generation skills.\n\nMitigation: Use organization-approved storage, verify Drive folder permissions, and apply internal data-handling rules before sharing campaign details with external systems or other skills.\n\n## Reference(s):\n\n- [Meta Ads MCP Skill Page](https://clawhub.ai/benkalsky/skills/meta-ads-mcp)\n- [benkalsky Publisher Profile](https://clawhub.ai/user/benkalsky)\n- [Account, Architecture & Naming](references/campaign-architecture.md)\n- [Budget Strategy & Audience Targeting](references/budget-and-audience.md)\n- [Campaign Creation, KPIs & Documentation](references/campaign-operations.md)\n- [Ad Formats, Copy & Asset Generation](references/creative-and-copy.md)\n- [Pixel/CAPI Tracking & Retargeting](references/tracking-and-retargeting.md)\n- [Pre-Campaign Intake Questions](references/intake-questions.md)\n- [Safety Guardrails](references/safety-guardrails.md)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with checklists, campaign plans, documentation templates, and MCP operation names.]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [The skill is designed to propose operational steps and campaign documentation; live account actions require user approval and account verification.]\n\n## Skill Version(s):\n\n1.1.0 (source: frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.0: 10 files, 15160 bytes\n\nFiles: references/budget-and-audience.md (2589b), references/campaign-architecture.md (3712b), references/campaign-operations.md (3947b), references/creative-and-copy.md (2706b), references/intake-questions.md (2041b), references/safety-guardrails.md (2074b), references/tracking-and-retargeting.md (2670b), skill-card.md (2628b), SKILL.md (4725b), _meta.json (131b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: meta-ads-mcp\nversion: 1.0.0\nlicense: MIT-0\ndescription: >\n  Operational guide for creating, managing, optimizing, and documenting Meta\n  (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use whenever the\n  user mentions Facebook ads, Instagram ads, Meta campaign planning, budgets,\n  audiences, retargeting, ad performance, Pixel/CAPI tracking, creative briefs,\n  naming conventions, campaign documentation, or safe MCP-based campaign\n  operations.\n---\n\n# Meta Ads MCP — Operational Guide\n\n> **Scope**: How to create, manage, update, pause, and document Meta (Facebook/Instagram) ad campaigns using the Facebook Ads MCP. Covers account setup, campaign architecture, targeting, creative, tracking, retargeting, documentation, and safety guardrails.\n\n## How to use this skill\n\nThis file is the entrypoint. Detailed playbooks live in `references/`. Load only the file relevant to the current task:\n\n| Task | Reference |\n|---|---|\n| Pick the right ad account, build campaign hierarchy, name entities | [`references/campaign-architecture.md`](references/campaign-architecture.md) |\n| Set budgets, choose cold/warm/hot audiences, apply exclusions | [`references/budget-and-audience.md`](references/budget-and-audience.md) |\n| Choose ad format, write copy frameworks, generate creative assets | [`references/creative-and-copy.md`](references/creative-and-copy.md) |\n| Install Pixel/CAPI, define events, build retargeting structure | [`references/tracking-and-retargeting.md`](references/tracking-and-retargeting.md) |\n| Create campaigns via MCP, monitor KPIs, document decisions | [`references/campaign-operations.md`](references/campaign-operations.md) |\n| Run pre-campaign intake before launch | [`references/intake-questions.md`](references/intake-questions.md) |\n| Follow hard safety rules and account-health guardrails | [`references/safety-guardrails.md`](references/safety-guardrails.md) |\n\n## Core workflow — always follow this order\n\n1. **Verify the account** — `ads_get_ad_accounts`, `ads_get_pages_for_business`, `ads_get_dataset_details`. Never proceed with an unverified pixel or unlinked page.\n2. **Run intake** — gather goal, audience, creative, budget, timeline, and landing page. Do not invent answers.\n3. **Plan structure** — pick objective, decide CBO vs ABO, draft 3–5 ad sets and 3–5 ads per set with consistent names.\n4. **Create everything PAUSED** — campaign → ad set → ad, all with `status: PAUSED`.\n5. **Preview + verify** — check pixel attachment, destination URL, ad preview, and naming in Ads Manager UI before activation.\n6. **Activate only after approval** — flip status to `ACTIVE` only after the full review is signed off.\n7. **Document** — log the campaign brief, audiences, creatives, performance, and decisions in the campaign documentation folder.\n\n## Non-negotiable safety rules\n\nThese are summarized here; full list in `references/safety-guardrails.md`.\n\n- **PAUSE, never delete.** Deletes destroy historical learning and cannot be reversed.\n- **Always create in PAUSED status.** No exceptions.\n- **Never edit budget by more than 20% at once** — larger jumps reset the Learning Phase.\n- **Never run a campaign without a verified pixel.**\n- **Never touch a campaign in Learning Phase** — first 7 days / ~50 events.\n- **Special ad categories must be declared** — housing, credit, employment, political/social issues.\n- **Detailed interest targeting was deprecated January 2026.** Use Advantage+ Audience or broad targeting + strong creative.\n\n## Key MCP tools — quick reference\n\n```text\nAccount & assets:\n  ads_get_ad_accounts              list accessible ad accounts\n  ads_get_pages_for_business       list pages under a Business Manager\n  ads_catalog_get_catalogs         check product catalogs for dynamic ads\n  ads_get_dataset_details          verify Pixel/dataset installation\n  ads_get_dataset_quality          check Event Match Quality (target 7+/10)\n\nCreation:\n  ads_create_campaign              create campaign (always status: PAUSED)\n  ads_create_ad_set                create ad set under a campaign\n  ads_create_ad                    create ad under an ad set\n  ads_activate_entity              flip status; use PAUSED to disable, never delete\n\nReporting:\n  ads_get_ad_entities              pull campaign/ad set/ad performance\n  ads_insights_performance_trend   analyze trends over time\n  ads_insights_anomaly_signal      detect unusual patterns\n  ads_get_opportunity_score        review Meta recommendations\n```\n\n## Related skills\n\n- **facebook-ads** — full ad copy generation: copy variations, headlines, CTA options, and visual concepts.\n- **image generation skills** — generate ad creatives in 1:1, 4:5, and 9:16 formats.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7afv05r120atbc75whrv1zkx825tt5\",\n  \"slug\": \"meta-ads-mcp\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1778006792363\n}\n\nFile v1.0.0:references/budget-and-audience.md\n\n# Budget Strategy & Audience Targeting\n\n## 4. BUDGET STRATEGY\n\n### CBO vs ABO\n| Scenario | Recommended |\n|---|---|\n| Total daily budget ≥ $50, trust Meta's algorithm | **CBO** — Meta allocates to best-performing ad set |\n| Small budget, strict testing, need visibility per audience | **ABO** — fixed budget per ad set |\n| Finding winning creatives in a new account | **ABO** first, then consolidate to CBO at scale |\n\n### Starting Budgets (per site/campaign)\n- **Testing phase**: $10–$20/day per campaign (ABO) — just enough to generate signal\n- **Scaling a winner**: $50–$200/day CBO, let Meta optimize\n- **Learning Phase rule**: Never edit budget by more than 20% at once — it resets learning\n- **Minimum for a conversion campaign to exit Learning Phase**: ~$50 total spend generating 50+ conversion events\n\n### Budget Guardrails\n- Set **Campaign Spending Limits** in Ads Manager as a hard ceiling\n- Set **Account Spending Limits** in billing settings\n- Review daily spend every morning during launch week\n- Never launch a campaign on a Friday without someone monitoring it\n\n---\n\n## 5. AUDIENCE TARGETING\n\n### Full-Funnel Audience Strategy\n\n#### Cold (Prospecting) — People who don't know the brand\n- **Advantage+ Audience** (recommended 2026): Let Meta find the right people using your pixel data as a signal. Provide broad demographics + let algorithm work.\n- **Lookalike Audiences**: Build from website visitors (180-day), purchasers, or email list. Start with 1–2% LAL, test 3–5% for scale.\n- **Broad Targeting**: Age + gender + country only — trust Meta's algorithm with strong creative.\n\n#### Warm (Engagement Retargeting) — People who know the brand but haven't converted\n- Facebook/Instagram page engagers (90 days)\n- Video viewers (25%, 50%, 75%)\n- Website visitors who didn't convert (30/60/90 days)\n\n#### Hot (Purchase Retargeting) — People who showed strong purchase intent\n- Website visitors of key pages (product page, pricing page, checkout)\n- Add-to-cart but didn't purchase (7–14 days)\n- Email list upload (Custom Audience from CRM)\n\n### Exclusions (Always Set These)\n- Exclude existing customers from prospecting campaigns\n- Exclude retargeting pools from cold audiences\n- Exclude purchasers from add-to-cart retargeting\n- Use Meta's **Audience Overlap tool** to check for cannibalization\n\n### Custom Audiences to Build and Maintain\n1. Website visitors (30 / 60 / 90 / 180 days)\n2. Video viewers by percentage (25% / 50% / 75%)\n3. Page engagers (30 / 90 days)\n4. Customer list uploads (email + phone, hashed)\n5. Purchasers / converters\n\n---\n\nFile v1.0.0:references/campaign-architecture.md\n\n# Account, Architecture & Naming\n\n## 1. Account & Business Setup\n\n### Which Ad Account & Business Manager to Use\n\n- **Always operate through Meta Business Manager** (`business.facebook.com`), never through personal ad accounts. Business accounts have better access controls, billing protection, and asset management.\n- Identify the correct **Ad Account ID** (`act_XXXXXXXXXX`) before executing any action. Use `ads_get_ad_accounts` to list accessible accounts.\n- Identify the correct **Business ID** using `ads_get_pages_for_business` if page-level targeting is needed.\n- Each website/brand should have its own dedicated ad account when possible. Mixing unrelated brands muddles reporting and increases account-risk blast radius.\n- Keep the **billing method verified** before launch. Unverified billing can pause campaigns automatically.\n\n### MCP Account Verification Checklist\n\nRun before the first campaign:\n\n1. `ads_get_ad_accounts` — confirm correct account IDs are accessible.\n2. `ads_get_pages_for_business` — confirm the correct Facebook Page is linked.\n3. `ads_catalog_get_catalogs` — check whether a product catalog exists for dynamic ads.\n4. `ads_get_dataset_details` — verify Pixel/dataset is installed and receiving events.\n5. `ads_get_dataset_quality` — check Event Match Quality score; target `7+/10`.\n\n---\n\n## 2. Campaign Architecture — Three-Tier Hierarchy\n\n```text\nCampaign  (Objective + Budget Strategy)\n  └── Ad Set  (Audience + Placement + Schedule + Budget)\n        └── Ad  (Creative + Copy + CTA + Destination URL)\n```\n\n### Campaign Level\n\n- Sets the **objective** — the single most important decision. Meta optimizes delivery for this goal.\n- Sets **budget strategy**: CBO (Campaign Budget Optimization) or ABO (Ad Set Budget Optimization).\n- Prefer one campaign per **product / funnel stage / business goal**.\n\n| Business Goal | Campaign Objective |\n|---|---|\n| Drive website visits | Traffic |\n| Get form submissions / leads | Leads |\n| Sell a product | Sales |\n| Grow brand recognition | Awareness |\n| Promote content or page engagement | Engagement |\n| Promote an app | App Promotion |\n\n> **2026 update:** Detailed interest targeting was deprecated January 2026. Use **Advantage+ Audience** or **broad targeting with strong creative** as the primary strategy. Interest-based audiences created before October 2025 no longer deliver reliably.\n\n### Ad Set Level\n\n- Contains **audience**, **placement**, **schedule**, and **budget** if using ABO.\n- Recommended range: **3–5 ad sets per campaign** — enough to test, not enough to fragment budget.\n- Each ad set should target a **distinct, non-overlapping audience segment**.\n- Minimum audience size: **50,000+ users** for efficient delivery.\n- Budget must support roughly **50 optimization events per week** to exit the Learning Phase.\n\n### Ad Level\n\n- Contains **creative**, **headline**, **body copy**, **CTA button**, and **destination URL**.\n- Recommended range: **3–5 ads per ad set** — enough for testing without starving delivery.\n- Name ads consistently for reporting clarity.\n\n---\n\n## 3. Naming Conventions — Mandatory\n\nUse consistent naming across all three levels.\n\n### Campaign / Ad Set Format\n\n```text\n[Site] | [Objective] | [Funnel Stage] | [Audience/Test Variable] | [Date YYYY-MM]\n```\n\nExamples:\n\n```text\nBrandA | Traffic | Cold | Broad-Advantage+ | 2026-05\nBrandB | Leads | Warm | Video-Viewers-LAL | 2026-05\nBrandC | Sales | Retargeting | Site-Visitors-30d | 2026-05\n```\n\n### Ad Format\n\n```text\n[Site] | [Format] | [Angle/Hook] | [Variation Letter]\n```\n\nExamples:\n\n```text\nBrandA | Video | Founder-Story | A\nBrandB | Image | Testimonial | B\nBrandC | Carousel | Product-Benefits | C\n```\n\nFile v1.0.0:references/campaign-operations.md\n\n# Campaign Creation, KPIs & Documentation\n\n## 11. CAMPAIGN MANAGEMENT: CREATING VIA MCP\n\n### Creating a Campaign (Step-by-Step with MCP Tools)\n\n**Step 1**: Gather account info\n```\nads_get_ad_accounts → get act_XXXXXXXXXX\nads_get_pages_for_business → get page ID\nads_get_dataset_details → get pixel ID\n```\n\n**Step 2**: Create campaign (PAUSED)\n```\nads_create_campaign\n  - objective: TRAFFIC / OUTCOME_LEADS / OUTCOME_SALES\n  - status: PAUSED\n  - name: [naming convention]\n  - special_ad_categories: [] (or CREDIT/HOUSING/EMPLOYMENT/ISSUES if applicable)\n```\n\n**Step 3**: Create ad set (PAUSED)\n```\nads_create_ad_set\n  - campaign_id: from step 2\n  - targeting: audience definition\n  - budget: daily_budget (in cents)\n  - optimization_goal: LINK_CLICKS / LEAD_GENERATION / CONVERSIONS\n  - status: PAUSED\n```\n\n**Step 4**: Create ad (PAUSED)\n```\nads_create_ad\n  - adset_id: from step 3\n  - creative: image/video + copy + headline + CTA\n  - status: PAUSED\n```\n\n**Step 5**: Full review before activation\n- Check all levels in Ads Manager UI\n- Verify pixel is attached to ad set\n- Verify destination URL is correct and loads\n- Verify creative and copy look correct in preview\n\n**Step 6**: Activate (set top-level campaign to ACTIVE only after review)\n\n---\n\n## 12. PERFORMANCE TRACKING & KPIs\n\n### Core KPIs by Campaign Objective\n\n| Objective | Primary KPI | Secondary KPIs |\n|---|---|---|\n| Traffic | CTR (Link), CPC | Reach, Frequency, Landing Page Views |\n| Leads | CPL (Cost per Lead) | Lead volume, Lead quality, Form completion rate |\n| Sales | ROAS, CPA | Add-to-cart rate, Checkout initiation, Purchase volume |\n| Awareness | CPM, Reach | Frequency, Video views, Brand lift |\n\n### Reporting Cadence\n- **Daily** (launch week): Check spend, CTR, any disapprovals\n- **Weekly**: Full performance review — CTR, CPM, CPL/CPA, ROAS, frequency\n- **Monthly**: Strategic review — winners vs. losers, budget reallocation, new creative planning\n\n### When to Intervene\n| Signal | Action |\n|---|---|\n| CTR < 0.5% on cold campaigns | Test new hook / creative |\n| CPM rising week-over-week | Audience fatigued — refresh creative or expand audience |\n| Frequency > 5 | Expand audience or pause ad set |\n| Ad in \"Learning Limited\" status | Consolidate ad sets or increase budget |\n| Spend depleting with zero conversions | Pause immediately, review pixel and landing page |\n| ROAS < break-even | Pause ad set, investigate (creative? audience? landing page?) |\n\n### Using MCP for Reporting\n```\nads_get_ad_entities — pull campaign/ad set/ad performance\nads_insights_performance_trend — analyze trends over time\nads_insights_anomaly_signal — detect unusual patterns\nads_insights_auction_ranking_benchmarks — see how ads perform vs. benchmarks\nads_get_opportunity_score — get Meta's recommendations\n```\n\n---\n\n## 13. EXTERNAL CAMPAIGN DOCUMENTATION\n\n### Per-Campaign Document (create in Google Drive for each site)\n\nStore in the site's designated Drive folder. Document should include:\n\n**Campaign Brief**\n- Campaign name (per naming convention)\n- Objective and KPI targets\n- Budget (daily, total)\n- Start date / end date / ongoing\n- Ad Account ID\n- Pixel ID\n\n**Audience Definition**\n- Cold audience description\n- Retargeting audiences and window\n- Exclusions applied\n\n**Creative Log**\n| Ad Name | Format | Angle | Status | CTR | CPM | Notes |\n|---|---|---|---|---|---|---|\n| Seraphim-Video-Story-A | Video 4:5 | Origin Story | Active | 1.8% | $8.20 | Top performer |\n| Seraphim-Image-Product-B | Image 1:1 | Product Shot | Paused | 0.4% | $12.00 | Low CTR |\n\n**Results Tracker**\n- Weekly snapshot of: Spend, Impressions, CTR, CPM, Leads/Sales, CPA/CPL, ROAS\n- Notes on what changed each week\n\n**Decisions Log**\n- Date / decision / reason\n- e.g. \"2026-05-10: Paused ad set 2 — frequency reached 7, CTR dropped to 0.3%\"\n\n**Creative Archive**\n- Link to Google Drive folder with all assets\n- Retired creatives marked \"Archive\" — never deleted\n\n---\n\nFile v1.0.0:references/creative-and-copy.md\n\n# Ad Formats, Copy & Asset Generation\n\n## 6. AD FORMATS & WHEN TO USE THEM\n\n| Format | Best For | Notes |\n|---|---|---|\n| **Single Image** | Awareness, traffic, quick tests | Fast to produce, cheap to test, use 1:1 ratio |\n| **Single Video** | Cold prospecting, storytelling, UGC | Hook in first 3 seconds, 15–60s optimal, add subtitles |\n| **Carousel** | Products, features, step-by-step | Each card = one idea; works for e-commerce |\n| **Instant Experience** | Immersive mobile landing pages | Full-screen, loads fast, good for high-ticket |\n| **Dynamic / Collection** | E-commerce with product catalog | Requires catalog; auto-personalizes |\n| **Lead Form** | Lead gen without a landing page | Native to Facebook; frictionless |\n\n### Creative Best Practices (2026)\n- **UGC-style videos** (creator talking to camera, holding product) consistently outperform polished ads\n- **Real faces with genuine expressions** outperform stock imagery\n- **First 3 seconds of video are everything** — open with conflict, result, or bold claim\n- **Always add subtitles** — 80%+ watch with sound off\n- **Use 4:5 ratio** for feed (takes more screen space than 1:1)\n- **Aspect ratio 9:16** for Stories and Reels placements\n\n---\n\n## 7. AD COPY FRAMEWORK\n\nUse the **existing facebook-ads SKILL** for full copy generation. Quick reference:\n\n| Funnel Stage | Framework | Opening Style |\n|---|---|---|\n| Cold | AIDA | Attention hook → build interest → desire → action |\n| Warm | PAS | Problem → Agitate → Solution |\n| Retargeting | BAB | Before → After → Bridge |\n\n**Copy Rules (Non-Negotiable)**:\n- Hook is the first sentence — rewrite it until it's undeniable\n- \"You / your\" always, never \"we / our\" in the hook\n- Short sentences, line breaks, one idea per paragraph\n- For health/wellness: never use \"cures\", \"guarantees\", \"eliminates\" — use \"helps\", \"may\", \"many people find\"\n\n---\n\n## 8. ASSET & TEXT GENERATION\n\n### For Image Creatives\n- Use the **flux-imagegen skill** to generate ad images with Claude\n- Request: 1080×1080 (1:1 feed) or 1080×1350 (4:5 portrait)\n- Generate at least 3 visual variations per angle\n- Always test: lifestyle image vs. product closeup vs. text-dominant graphic\n\n### For Copy\n- Use the **facebook-ads skill** — generates full ad packages with 3 copy variations, 3 headlines, CTA button options, and visual concept descriptions\n- Always generate multiple variations — A/B testing is non-negotiable\n\n### Asset Storage\n- Save all approved ad assets in the **Google Drive folder** for that site\n- Name files to match the naming convention: `[Site]-[Format]-[Angle]-[Variation]`\n- Keep a \"creative graveyard\" folder for retired but potentially recyclable creatives\n\n---\n\nFile v1.0.0:references/intake-questions.md\n\n# Pre-Campaign Intake Questions\n\n## 14. PRE-CAMPAIGN INTAKE — QUESTIONS TO ASK\n\nBefore creating any campaign, gather all of the following. Ask these in natural conversation (not all at once).\n\n### Account & Brand\n1. Which site/brand is this for? (to select correct ad account)\n2. What is the Facebook Page name/ID to use?\n3. Is the Pixel installed and verified on this site?\n4. Is CAPI (server-side tracking) set up? If not, is this blocking launch?\n\n### Campaign Goal\n5. What is the **primary objective**? (traffic / leads / sales / awareness)\n6. What is the **specific conversion event** we're optimizing for? (purchase, lead form submission, contact page visit, etc.)\n7. What does **success look like in numbers**? (e.g., CPL under $10, ROAS above 3x, 50 leads/month)\n\n### Audience\n8. Who is the **target customer**? (demographics, psychographics, pain points)\n9. Are we targeting **cold, warm, or retargeting** audiences — or all three?\n10. What countries/regions/cities?\n11. Do we have an **existing customer list** to upload for LAL or exclusions?\n12. Are there any audiences to **exclude**? (competitors, existing customers, irrelevant demographics)\n\n### Creative\n13. What **product or offer** is being promoted?\n14. What is the **main message / hook**? What transformation or benefit do we lead with?\n15. Do we have **existing creative assets** (images, videos, UGC)? Or do we need to generate them?\n16. Are there any **compliance restrictions**? (health claims, financial claims, regulated categories)\n17. What **tone** — inspirational / educational / direct response / storytelling?\n\n### Budget & Timeline\n18. What is the **daily or monthly budget**?\n19. Is there a **hard end date**, or is this ongoing?\n20. Is there a **promotional deadline** (sale, event, launch) that affects urgency?\n\n### Landing Page & Funnel\n21. What **URL** do ads link to?\n22. Is the landing page **optimized for the conversion event**? (fast load, clear CTA, mobile-friendly)\n23. Is there a **thank-you page** with a Pixel event firing on it?\n\n---\n\nFile v1.0.0:references/safety-guardrails.md\n\n# Safety Guardrails\n\n## 15. SAFETY GUARDRAILS (NON-NEGOTIABLE)\n\n### The Golden Rule: PAUSE, Never Delete\n\n> **Never delete campaigns, ad sets, ads, audiences, or pixels.** Meta's algorithm learns from historical data attached to every object. Deleted objects lose their optimization history forever. Paused objects retain it.\n\n```\nCORRECT:  ads_activate_entity(status: PAUSED) on underperforming campaigns/ad sets/ads\nINCORRECT: Any delete operation on live or historical campaign entities\n```\n\n### Additional Safety Rules\n\n| Rule | Why |\n|---|---|\n| Always create campaigns in **PAUSED** status | Prevents accidental spend before review |\n| Never increase budget by more than **20% at a time** | Larger jumps reset the Learning Phase |\n| Never run campaigns without a **verified Pixel** | No conversion data = no optimization |\n| Never edit targeting, creative, or budget simultaneously | Isolate variables so you know what changed performance |\n| Never touch campaigns in **Learning Phase** (first 7 days / ~50 events) | Edits extend or restart learning |\n| Keep **account spending limit** set in billing | Prevents runaway spend from bugs or errors |\n| Always **preview ads** before activating | Catches broken URLs, wrong pages, copy errors |\n| Never use **personal ad accounts** for business campaigns | No access controls, billing risk |\n| **Document every change** in the campaign's Decisions Log | Creates audit trail, enables learning over time |\n| For special ad categories (housing, credit, employment, political) — **declare them** | Non-declared special categories can cause account suspension |\n\n### Account Health Rules\n- Maintain **ad account policy compliance** — avoid prohibited content in any ad\n- If an ad is **rejected**, review the policy reason before resubmitting. Don't just re-upload identical creative.\n- If an **account is flagged or restricted**, immediately contact Meta Business Support — do not attempt workarounds\n- Keep **payment method verified** and up to date\n- **Verify identity** in Business Manager to unlock full capabilities\n\nFile v1.0.0:references/tracking-and-retargeting.md\n\n# Pixel/CAPI Tracking & Retargeting\n\n## 9. PIXEL & TRACKING SETUP\n\n### The Recommended Setup: Pixel + CAPI Together\n\n**Meta Pixel** (browser-side) and **Conversions API / CAPI** (server-side) must both be running. Never rely on Pixel alone — Safari/Firefox block third-party cookies by default, and iOS privacy changes cause 40–60% data loss in Pixel-only setups.\n\n```\nBrowser Side:  User action → JavaScript Pixel fires → Meta receives event\nServer Side:   User action → Your server → CAPI → Meta receives event\nDeduplication: Both send same event_id → Meta counts it once\n```\n\n### Priority Events to Track (in order of importance)\n1. `Purchase` / `Lead` — primary conversion event\n2. `InitiateCheckout` / `ViewContent` — funnel signals\n3. `AddToCart` — intent signals\n4. `PageView` — top-of-funnel presence\n5. `CompleteRegistration` — for lead-gen sites\n\n### Pixel Installation (WordPress Sites)\n- Install via **Meta for WordPress plugin** (official) or **PixelYourSite plugin**\n- For CAPI on WordPress: use **PixelYourSite Pro** (has CAPI built in) or custom server-side integration\n- Verify in **Events Manager → Test Events** tool after installation\n- Check **Event Match Quality (EMQ)** score — target 7+/10\n\n### Pixel Verification Checklist\n- [ ] Pixel fires on all key pages\n- [ ] Purchase / Lead event fires correctly on conversion page\n- [ ] CAPI events are sending (check Events Manager → Aggregated Event Measurement)\n- [ ] Deduplication is working (no doubled events in Events Manager)\n- [ ] EMQ score is 7+/10 (improve by sending email/phone in event parameters)\n- [ ] Attribution window set to: 7-day click, 1-day view\n\n---\n\n## 10. RETARGETING CAMPAIGNS\n\n### Retargeting Campaign Architecture\n\n```\nCampaign: [Site] | Sales/Leads | Retargeting | [Date]\n  Ad Set 1: Hot — Checkout abandoners (7 days)\n  Ad Set 2: Warm — Product page visitors (30 days, excl. purchasers)\n  Ad Set 3: Warm — Video viewers 75% (60 days)\n  Ad Set 4: Warm — Page engagers (90 days)\n```\n\n### Retargeting Creative Strategy\n- Be specific — reference what they viewed or did (\"Still thinking about [product]?\")\n- Show social proof — testimonials, reviews, trust signals\n- Create urgency if truthful — limited stock, expiring offer\n- Different creative from prospecting — they know you already\n- Use BAB (Before → After → Bridge) framework\n\n### Retargeting Exclusions (Critical)\n- Always exclude purchasers/converters from all retargeting sets\n- Set a **frequency cap** — max 3–5 impressions per person per week to avoid burnout\n- Monitor frequency score — above 5 = audience is oversaturated, expand or refresh creative\n\n---\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nGuides agents through planning, creating, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns using the Facebook Ads MCP. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[benkalsky](https://clawhub.ai/user/benkalsky) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nMarketing teams, operators, and agent users use this skill to plan Meta ad account setup, campaign structure, budgets, audiences, creative, tracking, reporting, and safe activation workflows through an MCP-connected ad account. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can guide real Meta ad-account changes, budget adjustments, and campaign activation. <br>\nMitigation: Limit MCP permissions to the intended business and ad account, keep spending limits enabled, create entities in paused status, and require explicit human approval before activation or budget changes. <br>\nRisk: Customer-list uploads or Pixel/CAPI setup may involve customer identifiers or conversion data sent to Meta. <br>\nMitigation: Get privacy and legal approval before uploading customer lists or sending email, phone, or conversion identifiers, and restrict access to campaign documentation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub release page](https://clawhub.ai/benkalsky/meta-ads-mcp) <br>\n- [Campaign architecture](references/campaign-architecture.md) <br>\n- [Budget and audience strategy](references/budget-and-audience.md) <br>\n- [Creative and copy guidance](references/creative-and-copy.md) <br>\n- [Tracking and retargeting](references/tracking-and-retargeting.md) <br>\n- [Campaign operations](references/campaign-operations.md) <br>\n- [Pre-campaign intake questions](references/intake-questions.md) <br>\n- [Safety guardrails](references/safety-guardrails.md) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Guidance, Markdown, API calls, Configuration] <br>\n**Output Format:** [Markdown guidance with MCP tool names, checklists, campaign structures, and operational recommendations] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Campaign-changing actions should remain paused until explicit human approval.] <br>\n\n## Skill Version(s): <br>\n1.0.0 (source: frontmatter and ClawHub release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: Meta Ads MCP Owner: benkalsky Summary: Production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use w... Tags: advertising:1.0.0, facebook-ads:1.0.0, instagram-ads:1.0.0, latest:1.1.0, marketing:1.0.0, mcp:1.0.0, meta-ads:1.0.0, openclaw:1.0.0, skill:1.0.0 Version history: v1.1.0 | 2026-06-09T22:44:09.727Z | auto - E","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"Account & assets:\n  ads_get_ad_accounts              list accessible ad accounts\n  ads_get_pages_for_business       list pages under a Business Manager\n  ads_catalog_get_catalogs         check product catalogs for dynamic ads\n  ads_get_dataset_details          verify Pixel/dataset installation\n  ads_get_dataset_quality          check Event Match Quality (target 7+/10)\n\nCreation:\n  ads_create_campaign              create campaign (always status: PAUSED)\n  ads_create_ad_set                create ad set under a campaign\n  ads_create_ad                    create ad under an ad set\n  ads_activate_entity              flip status; use PAUSED to disable, never delete\n\nReporting:\n  ads_get_ad_entities              pull campaign/ad set/ad performance\n  ads_insights_performance_trend   analyze trends over time\n  ads_insights_anomaly_signal      detect unusual patterns\n  ads_get_opportunity_score        review Meta recommendations"},{"language":"text","snippet":"Campaign  (Objective + Budget Strategy)\n  └── Ad Set  (Audience + Placement + Schedule + Budget)\n        └── Ad  (Creative + Copy + CTA + Destination URL)"},{"language":"text","snippet":"[Site] | [Objective] | [Funnel Stage] | [Audience/Test Variable] | [Date YYYY-MM]"},{"language":"text","snippet":"BrandA | Traffic | Cold | Broad-Advantage+ | 2026-05\nBrandB | Leads | Warm | Video-Viewers-LAL | 2026-05\nBrandC | Sales | Retargeting | Site-Visitors-30d | 2026-05"},{"language":"text","snippet":"[Site] | [Format] | [Angle/Hook] | [Variation Letter]"},{"language":"text","snippet":"BrandA | Video | Founder-Story | A\nBrandB | Image | Testimonial | B\nBrandC | Carousel | Product-Benefits | C"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: meta-ads-mcp\nversion: 1.1.0\nlicense: MIT-0\ndescription: >\n  Production-grade operational guide for creating, managing, optimizing, and documenting Meta\n  (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use whenever the\n  user mentions Facebook ads, Instagram ads, Meta campaign planning, ad budgets/spend,\n  ad audiences (incl. Custom Audiences), retargeting, ad performance, Pixel/CAPI tracking, creative briefs,\n  naming conventions, campaign documentation, or safe MCP-based campaign\n  operations.\n---\n\n# Meta Ads MCP — Operational Guide\n\n> **Scope**: How to create, manage, update, pause, and document Meta (Facebook/Instagram) ad campaigns using the Facebook Ads MCP. Covers account setup, campaign architecture, targeting, creative, tracking, retargeting, documentation, and safety guardrails.\n\n## Scope & external dependencies\n\nThis skill is the **operational workflow** for Meta Ads MCP (campaigns, budgets, audiences, tracking, documentation). It intentionally hands three things to systems outside its own scope — be aware these cross trust boundaries:\n\n- **Google Drive** — suggested for storing creative assets and per-campaign docs. That is your organization's Drive, not part of this skill; substitute your own asset store if preferred.\n- **facebook-ads skill** — full ad-copy generation (variations, headlines, CTAs).\n- **flux-imagegen skill** — ad-creative image generation.\n\nUse them as needed, but treat any data leaving Meta Ads MCP (to Drive or another skill) under your own data-handling rules.\n\n## How to use this skill\n\nThis file is the entrypoint. Detailed playbooks live in `references/`. Load only the file relevant to the current task:\n\n| Task | Reference |\n|---|---|\n| Pick the right ad account, build campaign hierarchy, name entities | [`references/campaign-architecture.md`](references/campaign-architecture.md) |\n| Set budgets, choose cold/warm/hot audiences, apply exclusions | [`references/budget-and-audience.md`](references/budget-and-audience.md) |\n| Choose ad format, write copy frameworks, generate creative assets | [`references/creative-and-copy.md`](references/creative-and-copy.md) |\n| Install Pixel/CAPI, define events, build retargeting structure | [`references/tracking-and-retargeting.md`](references/tracking-and-retargeting.md) |\n| Create campaigns via MCP, monitor KPIs, document decisions | [`references/campaign-operations.md`](references/campaign-operations.md) |\n| Run pre-campaign intake before launch | [`references/intake-questions.md`](references/intake-questions.md) |\n| Follow hard safety rules and account-health guardrails | [`references/safety-guardrails.md`](references/safety-guardrails.md) |\n\n## Core workflow — always follow this order\n\n1. **Verify the account** — `ads_get_ad_accounts`, `ads_get_pages_for_business`, `ads_get_dataset_details`. Never proceed with an unverified pixel or unlinked page.\n2. **Run intake** — gather goal, audience, creative, budget, timeline, and landing page. Do not invent answer"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7afv05r120atbc75whrv1zkx825tt5\",\n  \"slug\": \"meta-ads-mcp\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1781045049727\n}"},{"path":"references/budget-and-audience.md","content":"# Budget Strategy & Audience Targeting\n\n## 4. BUDGET STRATEGY\n\n### CBO vs ABO\n| Scenario | Recommended |\n|---|---|\n| Total daily budget ≥ $50, trust Meta's algorithm | **CBO** — Meta allocates to best-performing ad set |\n| Small budget, strict testing, need visibility per audience | **ABO** — fixed budget per ad set |\n| Finding winning creatives in a new account | **ABO** first, then consolidate to CBO at scale |\n\n### Starting Budgets (per site/campaign)\n- **Testing phase**: $10–$20/day per campaign (ABO) — just enough to generate signal\n- **Scaling a winner**: $50–$200/day CBO, let Meta optimize\n- **Learning Phase rule**: Never edit budget by more than 20% at once — it resets learning\n- **Minimum for a conversion campaign to exit Learning Phase**: ~$50 total spend generating 50+ conversion events\n\n### Budget Guardrails\n- Set **Campaign Spending Limits** in Ads Manager as a hard ceiling\n- Set **Account Spending Limits** in billing settings\n- Review daily spend every morning during launch week\n- Never launch a campaign on a Friday without someone monitoring it\n\n---\n\n## 5. AUDIENCE TARGETING\n\n### Full-Funnel Audience Strategy\n\n#### Cold (Prospecting) — People who don't know the brand\n- **Advantage+ Audience** (recommended 2026): Let Meta find the right people using your pixel data as a signal. Provide broad demographics + let algorithm work.\n- **Lookalike Audiences**: Build from website visitors (180-day), purchasers, or email list. Start with 1–2% LAL, test 3–5% for scale.\n- **Broad Targeting**: Age + gender + country only — trust Meta's algorithm with strong creative.\n\n#### Warm (Engagement Retargeting) — People who know the brand but haven't converted\n- Facebook/Instagram page engagers (90 days)\n- Video viewers (25%, 50%, 75%)\n- Website visitors who didn't convert (30/60/90 days)\n\n#### Hot (Purchase Retargeting) — People who showed strong purchase intent\n- Website visitors of key pages (product page, pricing page, checkout)\n- Add-to-cart but didn't purchase (7–14 days)\n- Email list upload (Custom Audience from CRM)\n\n### Exclusions (Always Set These)\n- Exclude existing customers from prospecting campaigns\n- Exclude retargeting pools from cold audiences\n- Exclude purchasers from add-to-cart retargeting\n- Use Meta's **Audience Overlap tool** to check for cannibalization\n\n### Privacy & compliance (before any customer-data upload)\n\nCustomer-list Custom Audiences and PII in CAPI event parameters (email, phone) are regulated personal data. Before uploading or transmitting:\n\n- **Lawful basis & consent** — document a lawful basis (consent / contract / legitimate interest) under GDPR / CCPA / PIPEDA, and ensure your privacy policy covers Meta ad targeting.\n- **Hash before sending** — email and phone must be SHA‑256 hashed (normalized: lowercase + trimmed; phone in E.164) before they leave your systems. Never send plaintext PII.\n- **Data minimization** — upload only the fields you need; do not bulk-export full CRM records.\n- **Suppression** — honor opt-out"},{"path":"references/campaign-architecture.md","content":"# Account, Architecture & Naming\n\n## 1. Account & Business Setup\n\n### Which Ad Account & Business Manager to Use\n\n- **Always operate through Meta Business Manager** (`business.facebook.com`), never through personal ad accounts. Business accounts have better access controls, billing protection, and asset management.\n- Identify the correct **Ad Account ID** (`act_XXXXXXXXXX`) before executing any action. Use `ads_get_ad_accounts` to list accessible accounts.\n- Identify the correct **Business ID** using `ads_get_pages_for_business` if page-level targeting is needed.\n- Each website/brand should have its own dedicated ad account when possible. Mixing unrelated brands muddles reporting and increases account-risk blast radius.\n- Keep the **billing method verified** before launch. Unverified billing can pause campaigns automatically.\n\n### MCP Account Verification Checklist\n\nRun before the first campaign:\n\n1. `ads_get_ad_accounts` — confirm correct account IDs are accessible.\n2. `ads_get_pages_for_business` — confirm the correct Facebook Page is linked.\n3. `ads_catalog_get_catalogs` — check whether a product catalog exists for dynamic ads.\n4. `ads_get_dataset_details` — verify Pixel/dataset is installed and receiving events.\n5. `ads_get_dataset_quality` — check Event Match Quality score; target `7+/10`.\n\n---\n\n## 2. Campaign Architecture — Three-Tier Hierarchy\n\n```text\nCampaign  (Objective + Budget Strategy)\n  └── Ad Set  (Audience + Placement + Schedule + Budget)\n        └── Ad  (Creative + Copy + CTA + Destination URL)\n```\n\n### Campaign Level\n\n- Sets the **objective** — the single most important decision. Meta optimizes delivery for this goal.\n- Sets **budget strategy**: CBO (Campaign Budget Optimization) or ABO (Ad Set Budget Optimization).\n- Prefer one campaign per **product / funnel stage / business goal**.\n\n| Business Goal | Campaign Objective |\n|---|---|\n| Drive website visits | Traffic |\n| Get form submissions / leads | Leads |\n| Sell a product | Sales |\n| Grow brand recognition | Awareness |\n| Promote content or page engagement | Engagement |\n| Promote an app | App Promotion |\n\n> **2026 update:** Detailed interest targeting was deprecated January 2026. Use **Advantage+ Audience** or **broad targeting with strong creative** as the primary strategy. Interest-based audiences created before October 2025 no longer deliver reliably.\n\n### Ad Set Level\n\n- Contains **audience**, **placement**, **schedule**, and **budget** if using ABO.\n- Recommended range: **3–5 ad sets per campaign** — enough to test, not enough to fragment budget.\n- Each ad set should target a **distinct, non-overlapping audience segment**.\n- Minimum audience size: **50,000+ users** for efficient delivery.\n- Budget must support roughly **50 optimization events per week** to exit the Learning Phase.\n\n### Ad Level\n\n- Contains **creative**, **headline**, **body copy**, **CTA button**, and **destination URL**.\n- Recommended range: **3–5 ads per ad set** — enough for testing without starving "},{"path":"references/campaign-operations.md","content":"# Campaign Creation, KPIs & Documentation\n\n## 11. CAMPAIGN MANAGEMENT: CREATING VIA MCP\n\n### Creating a Campaign (Step-by-Step with MCP Tools)\n\n**Step 1**: Gather account info\n```\nads_get_ad_accounts → get act_XXXXXXXXXX\nads_get_pages_for_business → get page ID\nads_get_dataset_details → get pixel ID\n```\n\n**Step 2**: Create campaign (PAUSED)\n```\nads_create_campaign\n  - objective: TRAFFIC / OUTCOME_LEADS / OUTCOME_SALES\n  - status: PAUSED\n  - name: [naming convention]\n  - special_ad_categories: [] (or CREDIT/HOUSING/EMPLOYMENT/ISSUES if applicable)\n```\n\n**Step 3**: Create ad set (PAUSED)\n```\nads_create_ad_set\n  - campaign_id: from step 2\n  - targeting: audience definition\n  - budget: daily_budget (in cents)\n  - optimization_goal: LINK_CLICKS / LEAD_GENERATION / CONVERSIONS\n  - status: PAUSED\n```\n\n**Step 4**: Create ad (PAUSED)\n```\nads_create_ad\n  - adset_id: from step 3\n  - creative: image/video + copy + headline + CTA\n  - status: PAUSED\n```\n\n**Step 5**: Full review before activation\n- Check all levels in Ads Manager UI\n- Verify pixel is attached to ad set\n- Verify destination URL is correct and loads\n- Verify creative and copy look correct in preview\n\n**Step 6**: Activate (set top-level campaign to ACTIVE only after review)\n\n---\n\n## 12. PERFORMANCE TRACKING & KPIs\n\n### Core KPIs by Campaign Objective\n\n| Objective | Primary KPI | Secondary KPIs |\n|---|---|---|\n| Traffic | CTR (Link), CPC | Reach, Frequency, Landing Page Views |\n| Leads | CPL (Cost per Lead) | Lead volume, Lead quality, Form completion rate |\n| Sales | ROAS, CPA | Add-to-cart rate, Checkout initiation, Purchase volume |\n| Awareness | CPM, Reach | Frequency, Video views, Brand lift |\n\n### Reporting Cadence\n- **Daily** (launch week): Check spend, CTR, any disapprovals\n- **Weekly**: Full performance review — CTR, CPM, CPL/CPA, ROAS, frequency\n- **Monthly**: Strategic review — winners vs. losers, budget reallocation, new creative planning\n\n### When to Intervene\n| Signal | Action |\n|---|---|\n| CTR < 0.5% on cold campaigns | Test new hook / creative |\n| CPM rising week-over-week | Audience fatigued — refresh creative or expand audience |\n| Frequency > 5 | Expand audience or pause ad set |\n| Ad in \"Learning Limited\" status | Consolidate ad sets or increase budget |\n| Spend depleting with zero conversions | Pause immediately, review pixel and landing page |\n| ROAS < break-even | Pause ad set, investigate (creative? audience? landing page?) |\n\n### Using MCP for Reporting\n```\nads_get_ad_entities — pull campaign/ad set/ad performance\nads_insights_performance_trend — analyze trends over time\nads_insights_anomaly_signal — detect unusual patterns\nads_insights_auction_ranking_benchmarks — see how ads perform vs. benchmarks\nads_get_opportunity_score — get Meta's recommendations\n```\n\n---\n\n## 13. EXTERNAL CAMPAIGN DOCUMENTATION\n\n### Per-Campaign Document (create in Google Drive for each site)\n\nStore in the site's designated Drive folder. Document should include:\n\n**Campaign Brief**\n- Campaign name (p"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use w... Skill: Meta Ads MCP Owner: benkalsky Summary: Production-grade operational guide for creating, managing, optimizing, and documenting Meta (Facebook/Instagram) ad campaigns via the Facebook Ads MCP. Use w... Tags: advertising:1.0.0, facebook-ads:1.0.0, instagram-ads:1.0.0, latest:1.1.0, marketing:1.0.0, mcp:1.0.0, meta-ads:1.0.0, openclaw:1.0.0, skill:1.0.0 Version history: v1.1.0 | 2026-06-09T22:44:09.727Z | auto - E","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1884,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T04:43:01.272Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T04:43:01.272Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T07:41:56.553Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}