| name | meta-ads-account-safety |
| description | Keep a Meta (Facebook/Instagram) ad account healthy and avoid getting it banned/disabled/restricted while running ads or automations, and connect accounts the SAFE way. Use whenever a user connects a Meta account, worries about bans/restrictions/"unusual activity", asks about API rate limits or automation limits, or before ANY bulk/automated write on Meta Ads. Core rule: operate ONLY through Meta's official Marketing API (via the Porter MCP) — never browser automation, scraping, or unofficial/direct-app access. |
Meta Ads — Account Safety (avoid bans, connect safely)
The #1 rule when automating Meta Ads: don't get the user's ad account banned. A disabled account
can wipe campaign history, audiences and pixel signal, freeze spend, and reviews take days with no
guaranteed reinstatement. Prevention >> cure.
The golden rule
Operate ONLY through Meta's official Marketing API, which the Porter MCP uses via an
approved app + OAuth (the sanctioned path). NEVER:
- Browser automation / scripting Ads Manager (imitating a human browser).
- Scraping Facebook / Ads Manager / Ad Library.
- A hand-rolled app hitting the Graph API without App Review, or unofficial/"direct" APIs.
- Bypassing logins, rate limits, or CAPTCHAs.
Meta's Platform Terms explicitly prohibit automated access/scraping and circumventing technical
limits; the penalty is account suspension. This is exactly why connecting Claude "directly" (browser
bots or an unapproved app) risks a ban — and why the Porter MCP path (official API) is the safe one.
References (read as needed)
Rules for the assistant — bake into EVERY Meta automation
- Never drive Ads Manager via browser automation or scrape Meta. If asked, explain the ban risk and route to the Porter MCP (official API).
- Respect rate limits. Don't burst writes. On a throttling error or
subcode 2859015 (temporary block / "account restricted"), back off exponentially — never retry-storm. (See rate-limits.md.)
- Everything PAUSED by default. Turning ads ON is the user's explicit decision — no surprise spend.
- No sudden spend spikes. Ramping a budget 10× overnight flags "unusual activity." Scale gradually.
- Comply with ad policies (content, special ad categories, restricted topics). Policy violations are the top ban reason — declare
special_ad_categories correctly and don't push disallowed content.
- Consistent account context. Don't drive one account from wildly different IPs / locations / payment countries in short windows — that flags "unusual activity."
- Payment hygiene. A real, verified payment method matching the account's country; no rapid method swaps.
- Warm up new accounts. A brand-new account doing large volume immediately gets flagged — start small, build history. (A no-payment / never-advertised account also can't create ad sets —
2859015.)
- If an account is already disabled: do NOT keep hitting the API. Guide the user to Account Quality → Request Review; that's Meta's process, not something an automation can fix.
Scope
- ✅ Guardrails to keep accounts healthy + how to connect safely + the rate-limit/backoff model.
- ❌ Reinstating an already-banned account (Meta's review process — point the user there).
- ❌ Anything that circumvents Meta (browser bots, scraping, unapproved apps) — out of bounds, always.
Sources
Meta Platform/Automated Data Collection Terms; Meta Marketing API rate-limiting docs; Meta Business
Help (disabled/restricted accounts). Full links in the references.