关于 meta-ad-policy-checker
用于 Meta 广告文案提交前检查的 Skill,面向广告主及生成广告变体的 Agent。它每次从 Meta 透明度中心获取适用政策文本,并提供带引用的风险判断与改写建议。
主要功能
- 01按广告内容筛选适用政策
- 02获取并缓存实时政策文本
- 03分级标注违规风险
- 04提供政策引文与改写建议
- 05可检查落地页政策风险
适用场景
- 01提交新广告前检查文案
- 02审核生成的广告变体
- 03排查已拒登广告的问题
- 04写入 Meta 前进行风险拦截
MCP 相关
这是一个可独立运行或由其他 Skill 调用的广告政策检查流程。它可在通过 Meta MCP 或 API 写入广告前提供 verdict,但本身未说明提供 MCP 服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gooseworks-ai/ goose-skills --skill meta-ad-policy-checker安装后在 Claude Code 中输入/meta-ad-policy-checker确认已加载。
附带文件skill.meta.json
详细介绍
Meta 广告政策检查器
Meta 经常以违反政策为由拒绝广告,而且大多数拒绝都可以避免。情况几乎总是一样:广告主(或生成多个变体的 AI Agent)撰写的文案中使用了违反 Meta 已发布广告标准的措辞,或暗示了违规主张。如果能在提交前发现,修正起来成本很低;如果没发现,成本就很高——同一账户多次被拒可能会限制投放,或触发账户级限制。
这项技能是一项提交前检查。它会读取广告文案,判断适用哪些 Meta 政策,从 Meta 透明度中心获取最新政策文本,并给出清晰的判定结果,附上具体问题、引文和改写建议。它不会将政策规则硬编码——Meta 会更新规则,静态规则列表很快就会过时。相反,这项技能每次运行时都会以 Meta 自己的权威政策页面为准。
核心原则: 这项技能提供方法——检查什么、如何推理、如何评定严重程度。Meta 提供事实依据——实际政策文本。正是这种分工,能让技能随着 Meta 标准演变而保持准确。
适用场景
- 发布任何新的 Meta 广告之前
- 生成广告文案变体之后(展示或提交每个变体之前都调用此技能)
- 审核现有在线广告的政策风险时
- 排查近期被拒的广告时
- 通过任何 Meta MCP / API 写入工具提交文案之前
阶段 0:收集信息
- 广告主背景 (1–2 句话)
- 企业的业务内容
- 要推广的产品 / 服务 / 优惠
- 主要转化目标
- 广告素材
- 标题
- 正文 / 主文案
- 描述(如适用)
- CTA 按钮文案
- 目标 URL (可选——可用于交叉检查落地页)
- 特殊广告类别——由用户声明:
None/Employment/Credit/Housing/Social Issues, Elections or Politics(这会显著改变适用规则) - 定向摘要 (可选)——有助于检查歧视问题(年龄、性别、位置排除项)
- 视觉内容描述 (可选)——图片中的文字与政策相关
- 模式——
pre-flight(问题解决前阻止提交)或audit(仅标记问题,用于已上线的广告)
阶段 1:确定适用的政策
在获取政策前,先分析广告。大多数广告需要查阅 3–6 个政策页面,而非全部 25 个。始终包含基线政策,然后根据广告内容添加内容驱动的政策,再根据声明的特殊广告类别添加类别驱动的政策。
请将下方条目视为政策查询关键词,而非 URL 路径。Meta 透明度中心的 URL 嵌套在类别路径下,且会随时间变化,因此切勿直接根据这些标签拼接平铺的政策 URL。
基线(适用于每则广告)
- 社群守则
- 个人属性
- 耸人听闻的内容
- 错误信息
- 诱导互动 / 垃圾信息
- 语法与脏话
- 无效落地页
内容驱动(出现相关内容时添加)
| 触发条件 | 政策查询关键词 |
|---|---|
| 收入、收益、支付、“赚钱”、具体金额 | 个人财务要求;不切实际的结果 |
| 健康、减重、补充剂、健康功效主张 | 健康与保健;前后对比照片 |
| 按年龄、性别、种族、宗教、国籍进行定向 | 歧视性做法 |
| 加密货币、武器、成人内容、毒品、酒精、赌博、烟草 | 受限制内容 |
| 政治、社会议题、选举相关内容 | 社会议题、选举或政治 |
| 脏话、侮辱性用语、敏感措辞 | 脏话;煽动性内容 |
| 暗示跟踪 / 抓取 / 规避机制的任何内容 | 规避系统 |
按类别驱动(根据声明的特殊广告类别添加)
| 特殊广告类别 | 添加内容 |
|---|---|
| 就业 | Employment |
| 信贷 | Credit |
| 住房 | Housing |
| 社会议题、选举或政治 | Social issues, elections or politics |
阶段 1 的输出:一个有序列表,列出要在阶段 2 中解析并获取的政策查询键。
阶段 2:获取并缓存实时政策文本
首先获取 Meta 的广告标准索引:
https://transparency.meta.com/policies/ad-standards/
对于阶段 1 中的每个查询键:
- 从索引中解析出对应的 Meta 规范政策页面 URL。优先匹配完全相同的标题,其次选择最接近的标题/类别匹配项。
- 获取解析出的规范 URL。不要将查询键直接附加到广告标准基础路径来构造 URL;由于 Meta 将政策页面嵌套在类别路径下,这类扁平 URL 对许多现行政策会返回 404。
- 缓存“查询键 → 规范 URL → 页面文本”映射。
**缓存规则:**仅在当前会话中保存在内存里。对 10 个广告变体进行批量检查,总共应获取 3–6 个政策页面,而不是 30–60 个。跳过持久化缓存,以避免跨会话产生缓存过期问题。
**回退方案:**如果无法解析索引,或解析出的页面返回 404,则使用限定在 Meta 透明度域名内的网站搜索查找政策标题,并跳转到最匹配的现行政策。在输出中将此情况记录为“政策 URL 变更”备注,以便更新查询列表。
阶段 3:推理——广告与政策对照
对于每项已获取的政策,逐一检查广告的每个元素(标题、正文、描述、CTA、链接,以及提供的视觉内容描述),并询问:
- 广告中的短语、暗示或模式是否符合该政策文本中的任何受限模式?
- 适用的是哪条具体条款? 提取直接引文。
- 严重程度如何?
严重程度分为三个等级:
| 严重程度 | 定义 |
|---|---|
| 阻止 | 明确违规。广告几乎肯定会被拒登。修正前不要提交。 |
| 必须修正 | 可能违规或存在明确风险。广告可能通过审核,但被拒登或投放不足的风险相当大。建议提交前修正。 |
| 注意 | 边缘情况。措辞或模式存在歧义,Meta 有时会因此标记。值得留意,但未必需要修改。 |
对于发现的每个问题,请提供:
- 问题 — 广告中的确切短语或模式
- 政策 — 名称 + URL
- 引用 — Meta 政策页面中的直接引文
- 严重程度 — 上述三个等级之一
- 原因 — 用一句话说明该判断如何依据所引用的政策文本
- 建议改写 — 保留广告主意图,同时消除风险
阶段 4:着陆页交叉检查 (如果提供了 URL)
常见的拒登原因:广告中的声明在着陆页上没有依据,或着陆页的声明比广告更激进。进行简要交叉检查:
- 广告中的声明是否在着陆页上有所体现?
- 是否包含必要的披露信息(条款、资格要求、条件)?
- 着陆页是否包含任何如果出现在广告中就会被标记的声明?
- 着陆页是否正常运行(加载、渲染、没有损坏的重定向)?— 这是另一项 Meta 政策(
non-functional-landing-pages)。
这是针对政策的交叉检查,而非信息一致性检查。若要检查信息一致性(着陆页是否让人感觉是广告的延续),请使用 analyze-performance,其诊断会检查页面和信息的一致性。
阶段 5:生成输出
使用以下确切结构。
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
阶段 6:集成钩子
此技能既可独立运行,也可由其他技能调用。推荐的链式模式:
- 变体生成:
make-static-ads生成 N 个变体 →meta-ad-policy-checker逐一检查 → 仅向用户展示 PASS / FIX REQUIRED 变体 - 广告系列启动:
launch-meta-ad-campaign准备确切的暂停状态启动计划 →meta-ad-policy-checker检查每条广告 → 如果任何广告返回 BLOCK,则阻止启动 - 写入前检查: 在任何会向 Meta 写入内容的工具调用之前(通过 MCP、原生 API 或其他方式),调用方工作流都会检查判定结果,并在结果为 BLOCK 时中止
- 投放不足诊断:
meta-ads-analyzer标记一条几乎没有投放的广告 → 建议运行meta-ad-policy-checker,排查是否存在未提示的拒审
此技能会返回结构化输出(判定结果 + 逐项问题数组),因此调用代码可以通过程序检查 verdict !== "BLOCK" 来决定是否放行。
输出标准(强制)
- 引用,不要转述。 每项发现都必须包含 Meta 政策页面中的直接引文。无法引用的发现就没有依据,应予以删除。
- 严重程度应经过校准,而非猜测。 明确、具体地符合政策中“你不得……”条款的情况 = Block。符合“有歧义但有风险”的情况 = Fix Required。Meta 有时会标记、但通常不会标记的边缘情况 = Caution。
- 改写须保留原意。 改变优惠内容或受众的改写不算改写,而是另一则广告。改写应改变优惠的表达方式,而不是优惠的内容。
- 不要取代 Meta 的审核。 这是预检;Meta 才是最终把关者。如果改写后仍被拒审,应将其记录下来,作为下一轮迭代的参考。
- 复述广告主的背景信息。 始终重述你的假设,以便用户纠正误解。
此技能不会做什么
- 不会取代 Meta 的实际广告审核。 Meta 才是最终把关者。此技能可发现明显且有充分文档记录的问题;Meta 的执法标准会不断演变。
- 不会读取图片中的文字。 图片文字违规需要单独进行视觉检查,不在 v1 范围内。若提供了视觉描述,此技能会据此进行判断。
- 不会判定是否符合特殊广告类别的资格。 类别由用户声明。广告是否应当归入该类别,是另一项(法律/商业)判断。
- 不会执行 BLOCK 判定。 此技能只会给出判定结果;是否执行关卡由调用技能、工作流或人工决定。
- 不会追踪你账户中过往的拒审记录。 账户级历史记录会影响 Meta 的审核,但此技能无法查看。应将此判定视为风险下限,而非上限。
维护说明
阶段 1 中的政策 slug 列表是此技能中唯一需要变更的部分。Meta 偶尔会重命名或重组政策页面。阶段 2 的回退机制可妥善处理个别页面的变动,但定期检查 slug 列表(每年一次,或每当输出中出现多条“政策 URL 变动”备注时)有助于保持技能高效。slug 列表内嵌在此 SKILL.md 中,因此只需修改一个文件即可更新。
相关技能
make-static-ads— 在上游运行;生成此技能应检查的变体launch-meta-ad-campaign— 在上游运行;准备此技能应在审批前验证的多广告计划analyze-performance— 关注点不同:其诊断检查页面与消息的匹配情况,而此技能检查政策合规性meta-ads-analyzer— 在下游运行;如果投放中的广告系列出现未提示拒审的迹象(几乎没有投放、投放受限),此技能会执行诊断ad-campaign-analyzer— 关联较弱;拒审会在效果数据中体现为投放不足,因此当创意素材的投放量为零时,应交叉参考