Agent skill

Meta Ad Policy Checker

by gooseworks-ai in gooseworks-ai/goose-skills

Pre-flight policy check for Meta ads. An agent skill from gooseworks-ai/goose-skills.

MITAuto-check passedMarketing & SEO

Install Meta Ad Policy Checker

skills CLI
$ npx skills add gooseworks-ai/goose-skills --skill meta-ad-policy-checker -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gooseworks-ai/goose-skills meta-ad-policy-checker --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gooseworks-ai/goose-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ads/composites/meta-ad-policy-checker .claude/skills/meta-ad-policy-checker && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
meta-ad-policy-checker
GitHub stars
1.2k
Used in
1 other repo
Token cost
~3.1k tokens
SKILL.md length
1,520 words
Files
2
Skills in repo
273
Repo updated
First seen
Licence
MIT

At a glance

Pre-flight policy check for Meta ads. An agent skill from gooseworks-ai/goose-skills.

  • Works in 7 steps: Intake → Determine Which Policies Apply → Fetch + Cache Live Policy Text → …
  • Tasks that involve Copywriting
  • SKILL.md covers When to Use, Phase 0: Intake, Phase 1: Determine Which… and Phase 2: Fetch + Cache Live…, plus 8 more sections
  • Reaches transparency.meta.com

What it does

Meta Ad Policy Checker is an agent skill from gooseworks-ai/goose-skills. Pre-flight policy check for Meta ads. Takes ad copy plus advertiser context, resolves and fetches the relevant Meta transparency-center policy pages at runtime, and returns a Pass / Fix Required / Block verdict with cited findings and rewrites.

Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `skill.meta.json`).

It sits in Marketing & SEO, covering Copywriting and Paid advertising. It works with Meta Ads. The repository describes itself as: Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping. The licence is MIT.

When your agent uses it

  • Tasks that involve Copywriting
  • Tasks that involve Paid advertising

Example prompts

  • “/meta-ad-policy-checker”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Intake
  2. Determine Which Policies Apply
  3. Fetch + Cache Live Policy Text
  4. Reason — Ad vs. Policy
  5. Landing-Page Cross-Check (if URL provided)
  6. Produce the Output
  7. Integration Hooks

What it can do on your machine

Read from SKILL.md and the folder at commit c650c6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • transparency.meta.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Meta Ad Policy Checker loads about 3.1k tokens when it runs. Until then it costs about 67 tokens; SKILL.md has 1,520 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~67
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from gooseworks-ai/goose-skills at commit c650c6d, republished under its MIT licence (© gooseworks-ai). 1,520 words, ~3,102 tokens.

Download SKILL.mdSave it as .claude/skills/meta-ad-policy-checker/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
meta-ad-policy-checker
description
Pre-flight policy check for Meta ads. Takes ad copy plus advertiser context, resolves and fetches the relevant Meta transparency-center policy pages at runtime, and returns a Pass / Fix Required / Block verdict with cited findings and rewrites.
tags
ads

Meta Ad Policy Checker

Meta disapproves ads for policy reasons constantly, and most disapprovals are preventable. The pattern is almost always the same: an advertiser (or an AI agent generating variants) writes copy that uses a phrase or implies a claim that violates Meta's published advertising standards. The fix is cheap if you catch it before submission, expensive if you don't — repeated disapprovals on the same account can throttle delivery or trigger account-level restrictions.

This skill is a pre-flight check. It reads ad copy, figures out which Meta policies apply, fetches the live policy text from Meta's transparency center, and returns a clear verdict with specific findings, citations, and rewrites. It does not hardcode policy rules — Meta updates those, and a static rule list goes stale. Instead, the skill uses Meta's own canonical policy pages as ground truth on every run.

Core principle: The skill provides the methodology — what to check, how to reason, what severity to assign. Meta provides the source of truth — the actual policy text. This separation is what keeps the skill correct as Meta's standards evolve.

When to Use

  • Before launching any new Meta ad
  • After generating ad copy variants (call this on each variant before showing or submitting)
  • When auditing an existing live ad for policy risk
  • When troubleshooting a recently disapproved ad
  • Before pushing copy through any Meta MCP / API write tool

Phase 0: Intake

  1. Advertiser context (1–2 sentences)
    • What the business does
    • What product / service / offer is being advertised
    • Primary conversion goal
  2. Ad asset(s)
    • Headline(s)
    • Primary text / body
    • Description (if applicable)
    • CTA button text
    • Destination URL (optional — enables a landing-page cross-check)
  3. Special Ad Category — declared by user: None / Employment / Credit / Housing / Social Issues, Elections or Politics (this changes the applicable rules significantly)
  4. Targeting summary (optional) — useful for discrimination checks (age, gender, location exclusions)
  5. Visual description (optional) — text-in-image is policy-relevant
  6. Mode — pre-flight (block until clean) or audit (flag-only, used for already-live ads)

Phase 1: Determine Which Policies Apply

Reason about the ad before fetching. Most ads need 3–6 policy pages, not all 25. Always include the baseline set, then add content-driven pages based on what the ad mentions, then add category-driven pages based on declared Special Ad Category.

Treat the entries below as policy lookup keys, not URL slugs. Meta's Transparency Center URLs are nested under category paths and change over time, so never construct a flat policy URL directly from these labels.

Baseline (every ad)
  • Community Standards
  • Personal Attributes
  • Sensational Content
  • Misinformation
  • Engagement Bait / Spam
  • Grammar & Profanity
  • Non-Functional Landing Pages
Content-driven (add when present)
TriggersPolicy lookup keys
Income, earnings, payouts, "make money", specific dollar amountsPersonal financial requirements; unrealistic outcomes
Health, weight loss, supplements, wellness claimsHealth and wellness; before-and-after photos
Targeting by age, gender, race, religion, nationalityDiscriminatory practices
Crypto, weapons, adult, drugs, alcohol, gambling, tobaccoRestricted content
Political, social-issue, election contentSocial issues, elections or politics
Profanity, slurs, sensitive languageProfanity; inflammatory content
Anything that implies tracking / scraping / circumventionCircumventing systems
Category-driven (add based on declared Special Ad Category)
Special Ad CategoryAdd
EmploymentEmployment
CreditCredit
HousingHousing
Social Issues, Elections or PoliticsSocial issues, elections or politics

Output of Phase 1: an ordered list of policy lookup keys to resolve and fetch in Phase 2.

Phase 2: Fetch + Cache Live Policy Text

Fetch Meta's ad-standards index first:

https://transparency.meta.com/policies/ad-standards/

For each lookup key from Phase 1:

  1. Resolve it from the index to Meta's canonical policy page URL. Prefer exact title matches, then closest title / category matches.
  2. Fetch the resolved canonical URL. Do not build a URL by appending the lookup key directly to the ad-standards base path; those flat URLs 404 for many current policies because Meta nests policy pages under category paths.
  3. Cache the lookup key → canonical URL → page text mapping.

Caching rule: in-memory for the current session only. A batch check of 10 ad variants should produce 3–6 policy-page fetches total, not 30–60. Skip persistent caching to avoid stale-cache bugs across sessions.

Fallback: if the index cannot be parsed or a resolved page 404s, use a site-restricted web search for the policy title on Meta's transparency domain and navigate to the closest-matching current policy. Log this as a "policy URL drift" note in the output so the lookup list can be updated.

Phase 3: Reason — Ad vs. Policy

For each fetched policy, walk through every element of the ad (headline, body, description, CTA, link, visual description if provided) and ask:

  1. Does any phrase, implication, or pattern in the ad match a restricted pattern in this policy's text?
  2. What specific clause from the policy applies? Pull the direct quote.
  3. What is the severity?

Severity model — three levels:

SeverityDefinition
BlockClear violation. Ad will almost certainly be disapproved. Do not submit until fixed.
Fix RequiredLikely violation or explicit risk. Ad may pass but is at meaningful risk of disapproval or under-delivery. Fix recommended before submission.
CautionEdge case. Ambiguous wording or pattern Meta sometimes flags. Worth knowing about; not necessarily worth changing.

For each issue identified, produce:

  • Issue — exact phrase or pattern in the ad
  • Policy — name + URL
  • Citation — direct quote from Meta's policy page
  • Severity — one of the three above
  • Why — one-line explanation grounding the call in the cited policy text
  • Suggested rewrite — preserves the advertiser's intent, removes the risk
Show full SKILL.md (635 more words)Show less

Phase 4: Landing-Page Cross-Check (if URL provided)

Common disapproval reason: ad claims that aren't substantiated on the LP, or LP claims more aggressive than the ad. Run a brief cross-check:

  • Are the claims made in the ad reflected on the LP?
  • Are required disclosures present (terms, eligibility, conditions)?
  • Does the LP make any claim that, if it were on the ad, would be flagged?
  • Is the LP functional (load, render, no broken redirects)? — this is a separate Meta policy (non-functional-landing-pages)

This is policy-specific cross-check — not message-match. For message-match (does the LP feel like a continuation of the ad?), use ad-to-landing-page-auditor.

Phase 5: Produce the Output

Use this exact structure.

VERDICT: PASS | FIX REQUIRED | BLOCK

ADVERTISER CONTEXT (echo back so the user knows what was assumed)
SPECIAL AD CATEGORY: [declared]
POLICIES CHECKED: [list of slugs fetched, with URLs]

PER-ISSUE FINDINGS:
  - Issue: [exact phrase or pattern from the ad]
    Policy: [name] (URL)
    Citation: "[direct quote from Meta's policy page]"
    Severity: Block | Fix Required | Caution
    Why: [one-line explanation grounded in the citation]
    Suggested rewrite: [safer alternative preserving intent]

RISK SCORE: Low | Medium | High
  (factors: count of Block issues, count of Fix Required issues, special-category status)

3 SAFER VARIANTS OF THE FULL AD:
  (only generated if any Block or Fix Required issues exist)
  - Variant A: [full ad rewrite — headline + body + CTA]
  - Variant B: [full ad rewrite — different angle on the same offer]
  - Variant C: [full ad rewrite — most conservative version]

NOTES:
  - Areas where Meta enforcement is known to vary (best-effort observation)
  - LP-related findings (if URL was provided)
  - Anything requiring human judgment beyond what this skill can verify
  - Any "policy URL drift" notes from Phase 2 fallback handling

Phase 6: Integration Hooks

This skill is built to be both standalone-runnable and callable from other skills. Recommended chain patterns:

  • Variant generation: messaging-ab-tester produces N variants → meta-ad-policy-checker runs on each → only PASS / FIX REQUIRED variants surface to the user
  • Campaign launch: launch-meta-ad-campaign prepares the exact paused launch plan → meta-ad-policy-checker runs on every ad → block launch if any return BLOCK
  • Pre-write gate: before any tool call that writes to Meta (via MCP, native API, or otherwise), the calling workflow checks the verdict and aborts on BLOCK
  • Diagnostic on under-delivery: meta-ads-analyzer flags an ad with near-zero delivery → suggest running meta-ad-policy-checker to rule out a silent disapproval

The skill returns structured output (verdict + per-issue array) so calling code can gate on verdict !== "BLOCK" programmatically.

Output Standards (Mandatory)

  • Cite, don't paraphrase. Every finding includes a direct quote from Meta's policy page. If you can't quote, the finding isn't grounded — drop it.
  • Severity is a calibration, not a guess. A clear, specific match to a "you may not" clause in the policy = Block. An "ambiguous but risky" match = Fix Required. An edge case Meta sometimes flags but often doesn't = Caution.
  • Rewrites preserve intent. A rewrite that changes the offer or the audience is not a rewrite — it's a different ad. Rewrites change how the offer is expressed, not what it is.
  • Don't replace Meta's review. This is pre-flight; Meta is final gatekeeper. If a rewrite still gets disapproved, that's information for the next iteration — log it.
  • Echo the advertiser context. Always restate what was assumed, so the user can correct misinterpretation.

What This Skill Will Not Do

  • Won't replace Meta's actual ad review. Meta is the final gatekeeper. This catches the obvious and the well-documented; Meta enforcement evolves.
  • Won't read images for text. Text-in-image violations need a separate vision pass; out of scope for v1. The skill will reason about visual descriptions if provided.
  • Won't determine Special Ad Category eligibility. The user declares the category. Whether the ad should be in that category is a separate (legal/business) judgment.
  • Won't enforce the BLOCK. It produces a verdict; the calling skill, workflow, or human enforces the gate.
  • Won't track historical disapprovals on your account. Account-level history affects Meta's review, but isn't visible to this skill. Treat the verdict as the floor of risk, not the ceiling.

Maintenance Note

The list of policy slugs in Phase 1 is the only mutable piece of this skill. Meta occasionally renames or restructures policy pages. The Phase 2 fallback handles individual page drift gracefully, but periodic review of the slug list (annually, or any time several "policy URL drift" notes appear in outputs) keeps the skill efficient. The slug list lives inline in this SKILL.md so updates are a single-file change.

  • messaging-ab-tester — runs upstream; generates variants this skill should check
  • launch-meta-ad-campaign — runs upstream; prepares the multi-ad plan this skill should validate before approval
  • ad-to-landing-page-auditor — paired pre-flight; different concern (message-match vs. policy compliance), same checkpoint
  • meta-ads-analyzer — runs downstream; if a live campaign shows symptoms of a silent disapproval (near-zero delivery, throttling), this skill is the diagnostic step
  • ad-campaign-analyzer — loose link; disapprovals show up as underdelivery in performance data, so cross-reference when a creative shows zero delivery

© gooseworks-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/ads/composites/meta-ad-policy-checker of gooseworks-ai/goose-skills.

  • SKILL.md
  • skill.meta.json

Open the folder on GitHubat commit c650c6d

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gooseworks-ai/goose-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Meta Ad Policy Checker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Meta Ad Policy Checker compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Meta Ad Policy Checker this skillgooseworks-ai/goose-skills1.2k1 repos~3.1kAutomated safety check: PassMIT
Meta Ad Builderkrusemediallc/arcads-claude-code1.6k—~1.7kAutomated safety check: NotesMIT
Hook MethodologyDV0x/creative-ad-agent120—~3.1kAutomated safety check: PassMIT
Ad Copy Writercognyai/claude-code-marketing-skills104—~595Automated safety check: NotesNone
Memstack Marketing Facebook Adcwinvestments/memstack423—~2.6kAutomated safety check: PassProprietary
Ad CreativeLeoYeAI/openclaw-marketing-skills1k8 repos~3.4kAutomated safety check: PassCustom licence

Similar skills

  • Meta Ad Builder

    krusemediallc/arcads-claude-code

    Publish finished creatives as live Meta (Facebook/Instagram) ads via the Meta Marketing API, plus research and ad-copy support.

    1.6k GitHub stars~1.7k tokensUpdated 18 days ago
    Marketing & SEOAuto-check: notes
  • Hook Methodology

    DV0x/creative-ad-agent

    Generates conversion-focused ad copy through research-first extraction.

    120 GitHub stars~3.1k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Ad Copy Writer

    cognyai/claude-code-marketing-skills

    Generate ad copy variations for Google, Meta, and LinkedIn Ads

    104 GitHub stars~595 tokensUpdated 3 mo ago
    Marketing & SEOAuto-check: notes
  • Memstack Marketing Facebook Ad

    cwinvestments/memstack

    A skill your agent uses when the user says 'facebook ad', 'FB ad', 'Meta ad', 'Instagram ad', or needs social media ad copy with targeting, creative direction, and A/B test plans for Meta Ads Manager.

    423 GitHub stars~2.6k tokensUpdated 14 days ago
    Marketing & SEOAuto-check passed
  • Ad Creative

    LeoYeAI/openclaw-marketing-skills

    When the user wants to generate, iterate, or scale ad creative — headlines, descriptions, primary text, or full ad variations — for any paid advertising platform.

    1k GitHub starsUsed in 8 repos~3.4k tokens
    Marketing & SEOAuto-check passed
  • Marketing Os

    Yuzzyuk/marketing-os

    A complete marketing department in one skill. An agent skill from Yuzzyuk/marketing-os.

    540 GitHub stars~2.5k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed

More from gooseworks-ai/goose-skills

All 273 skills in this repo
  • Reddit Post Finder

    gooseworks-ai/goose-skills

    Scrape and search Reddit posts using Apify. An agent skill from gooseworks-ai/goose-skills.

    1.2k GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check passed
  • Create Image Fal

    gooseworks-ai/goose-skills

    Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent.

    1.2k GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Render Hook Replacement

    gooseworks-ai/goose-skills

    Replace an existing video's opening with a supplied clip or free kinetic text hook while retaining and verifying every original body frame, audio, captions and ending.

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Blog Feed Monitor

    gooseworks-ai/goose-skills

    Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites.

    1.2k GitHub starsUsed in 1 repo~578 tokens
    Auto-check passed
  • Competitor Post Engagers

    gooseworks-ai/goose-skills

    Find leads by scraping engagers from a competitor's top LinkedIn posts.

    1.2k GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check: notes
  • Render Chatgpt Chat

    gooseworks-ai/goose-skills

    Assemble a ChatGPT chat-reveal video ad from a thread + timeline JSON — one continuous Playwright recording of a ChatGPT mobile chat (user types with the iOS keyboard up → taps send → keyboard…

    1.2k GitHub stars~2.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Meta Ad Policy Checker

What does Meta Ad Policy Checker do?

Pre-flight policy check for Meta ads. An agent skill from gooseworks-ai/goose-skills. Meta Ad Policy Checker is an agent skill from gooseworks-ai/goose-skills. Pre-flight policy check for Meta ads.

When should I use Meta Ad Policy Checker?

Meta Ad Policy Checker fits situations like: tasks that involve Copywriting; tasks that involve Paid advertising.

How do I install Meta Ad Policy Checker in Claude Code?

Run `npx skills add gooseworks-ai/goose-skills --skill meta-ad-policy-checker -a claude-code`. Or copy the skill folder (skills/ads/composites/meta-ad-policy-checker in gooseworks-ai/goose-skills) into .claude/skills/meta-ad-policy-checker in your project. Claude Code loads it when a task matches its description.

How do I install Meta Ad Policy Checker in Codex?

Run `npx skills add gooseworks-ai/goose-skills --skill meta-ad-policy-checker -a codex`. Or copy the skill folder (skills/ads/composites/meta-ad-policy-checker in gooseworks-ai/goose-skills) into .agents/skills/meta-ad-policy-checker in your project. Codex loads it when a task matches its description.

Can I use Meta Ad Policy Checker in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gooseworks-ai/goose-skills --skill meta-ad-policy-checker -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/meta-ad-policy-checker, .gemini/skills/meta-ad-policy-checker, .github/skills/meta-ad-policy-checker and .opencode/skills/meta-ad-policy-checker in your project.

What does Meta Ad Policy Checker need to run?

SKILL.md names no scripts, command-line tools or credentials: Meta Ad Policy Checker is instructions for the agent only.

Does Meta Ad Policy Checker access the network?

SKILL.md names 1 domain. In commands or code: transparency.meta.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Meta Ad Policy Checker safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Meta Ad Policy Checker use?

Meta Ad Policy Checker is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Meta Ad Policy Checker use?

About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Meta Ad Policy Checker?

Skills that share tags, products or a category with Meta Ad Policy Checker: Meta Ad Builder (krusemediallc/arcads-claude-code, 1.6k stars), Hook Methodology (DV0x/creative-ad-agent, 120 stars), Ad Copy Writer (cognyai/claude-code-marketing-skills, 104 stars) and Memstack Marketing Facebook Ad (cwinvestments/memstack, 423 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Meta Ad Policy Checker?

gooseworks-ai (a GitHub organization) maintains it in gooseworks-ai/goose-skills, which has 1,240 GitHub stars. The repository holds 273 skills in this directory. The repository was last updated on October 8, 2026.

Source: gooseworks-ai/goose-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.