# Ad Policy Check

Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and...

- Repository: https://github.com/gooseworks-ai/goose-skills (1276 stars)
- Category: Marketing
- License: MIT
- Last updated: 2026-10-27
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add gooseworks-ai/goose-skills --skill ad-policy-check -g -a claude-code -y`
Codex: `npx skills add gooseworks-ai/goose-skills --skill ad-policy-check -g -a codex -y`
Cursor: `npx skills add gooseworks-ai/goose-skills --skill ad-policy-check -g -a cursor -y`
Gemini CLI: `npx skills add gooseworks-ai/goose-skills --skill ad-policy-check -g -a gemini-cli -y`

## Description

Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and others) and the brand's category rules: the copy, on-image or on-screen text, pictures and people. Rewrites what can be fixed honestly, adds the disclosures that are needed, and flags anything that needs a human or legal review, with one pass, fixed or flag line per ad and platform. Use alone when you already have the ad text or images and know where they will run; otherwise run the playbook for the job (e.g. make-static-ads, make-content, email-lifecycle).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# ad-policy-check

Used by: make-static-ads (paid ads) and run-paid-campaigns (creative it checks at launch). Organic, email and creator content: load `disclosure.md` instead (or as well, when a paid ad uses a creator).

Craft knowledge, not legal advice. Policies change: when a rule decides whether an ad ships, tell the human to confirm it on the platform's live policy page. Claims are a separate check (the `claims-gate` skill, `../claims-gate/SKILL.md`); run that first, a line cut there is not reworded here.

**Reads:** the ad's planned or rendered text (copy, on-image or on-screen words, end cards, captions), what the picture shows, the people in it, the platforms and placements from the brief, the brand's category, and the brand's `dont` / `must` learnings (past disapprovals).
**Writes:** one policy line per ad and platform, and any set-level flag.

## 1. Category first

Regulated (health, supplements, food with health, nutrition or free-from claims, cosmetics with efficacy language, alcohol, cannabis/CBD, tobacco/vape, financial products, crypto, weight loss, kids' products, regulated professions, gambling, dating, political) or a special ad category on Meta (housing, employment, credit, social issues)?

- No brand rule on file for it → flag the whole set "needs legal review before launch".
- A special ad category → write it in the hand-off so whoever launches sets the flag; copy may not target protected traits.
- Gambling, dating, political → most platforms need pre-authorisation: flag and stop.
- Market matters (melatonin is prescription-only in the UK and Australia; the EU allows only authorised health-claim wordings; Canada needs licensed claims), know the market before writing.

The rest: https://github.com/gooseworks-ai/goose-skills/blob/HEAD/skills/marketing/ad-policy-check/SKILL.md
