SuperAPI AI 工具集

ad-kill-rules

营销与增长

查看项目

更新于 10-19 04:53

技能介绍

用途

Ad Kill Rules 用于对广告投放执行预先声明的“证据门槛”。在广告上线之前,先确定判定标准:花费多少、观察多少天、什么算达标。若跳过这一步,200 条广告只会得到 200 个没有结论的实验。该技能每天早上检查投放结果,对达到花费门槛后仍未达标的广告执行暂停。

由于这是一条精确规则,它被设计为写在代码中,而不是交给模型判断。技能会在对话中报告结果,并可通过 schedule 将其转化为一个确定性的 Cogny 脚本,该脚本只能执行暂停操作。

主要能力

  • 按规则对广告进行分类:⏳ Learning(未达最低门槛,不下结论)、✅ Passing(通过)、🔴 Kill(达到最低门槛且违反 kill_if 规则)、🟡 Protected(本应被暂停但匹配 protect 规则,仅标记给人工处理)。
  • 支持多平台广告数据拉取与暂停操作,包括 Meta、TikTok、LinkedIn、Google、Bing、X、Reddit、Snapchat、ChatGPT ads(OpenAI Ads)、Apple Search Ads、Bidtheatre。
  • 提供空广告组保护:若暂停某广告会导致其广告组或广告系列没有任何活跃广告,则降级为 🟡 并说明原因。
  • 支持 max_pauses_per_run 限制单次运行的最大暂停数量。
  • 支持将每次暂停记录到 brain/campaigns/<ID> 的 ## Kill log 中。

使用方式

  • /ad-kill-rules 或 check:干跑(dry run),显示哪些广告会被暂停以及原因。
  • /ad-kill-rules apply BK014:暂停某个广告系列中被标记的广告(按批次询问)。
  • /ad-kill-rules schedule:创建一个每日仅暂停的脚本。

规则文件位于 brain/campaigns/<ID> 下 ## Evidence bar 的 YAML 块中(由 /campaign-ledger new 写入,以广告系列 ID 为键),默认规则位于 brain/contracts/ad-kill-rules。每次暂停记录在该文件夹的 ## Kill log 部分。若不存在默认规则,需与用户一起编写。

默认规则示例:

default:
  currency: SEK          # MUST match the ad account currency (customer.currency_code / account currency)
  min_spend: 500         # in `currency`, per ad, before any judgment (~$50); rescale for your currency
  min_days: 3            # days since first impression
  min_impressions: 2000
  kill_if:
    ctr_below: 1.0       # percent, link CTR where available
    cpl_above: 1200      # cost per lead / key event in `currency`; null to skip
                         # 0 leads: broken once spend >= cpl_above (CPL is undefined, treat as infinite)
    frequency_above: 4.0 # fatigue
  protect:
    - name_contains: "_founder_"   # never auto-kill these; flag only
  max_pauses_per_run: 10
  scope: name_prefix_in_ledger     # only ads whose name starts with a ledger ID

每个广告系列的规则块可覆盖默认值。scope 按设计仅限以 ID 命名的资产,因此规则不会触及他人负责的旧广告或品牌广告系列。

ID 匹配位置:Google 和 Bing 搜索广告以及 X 推广推文没有广告名称,因此在父级广告系列、广告组或行项目名称上匹配 ID。仅在 Meta、TikTok 和 LinkedIn 上按广告名称匹配。

首次运行:若 brain/contracts/ad-kill-rules 和 ledger 都不存在,scope 为空,技能不做任何事。此时应说明情况,并提示用户先运行 /campaign-ledger init 并编写规则文件。

前置条件与步骤

需要 Cogny($9/月)并至少连接一个广告平台。若不存在 mcp__cogny__* 工具,需先注册 https://cogny.com 并连接至少一个广告平台(Meta、TikTok、LinkedIn、Google、Bing、X、Reddit、Snapchat、Apple Search Ads、OpenAI Ads 或 Bidtheatre),然后在项目的 .mcp.json 中添加:

{"mcpServers": {"cogny": {"type": "http", "url": "https://app.cogny.com/mcp"}}}

重启 Claude Code,首次使用时会打开浏览器进行 OAuth 登录。

check 步骤会读取规则和 brain/campaigns/ledger(活跃 ID 列表),进行健康检查,然后按平台拉取广告级数据(自每条广告首次投放起,上限 30 天),仅保留实际在投放的广告,并按规则分类。

apply 步骤会先运行 check、展示暂停列表、按批次询问一次,然后调用各平台的暂停工具。各平台暂停工具与取值不同,例如 Meta 使用 Meta_Ads/tool_update_ad_status 取值 "PAUSED",TikTok 使用 TikTok_Ads/tool_update_ad_status 取值 "DISABLE",ChatGPT ads 使用 OpenAI_Ads/tool_update_ad_status 取值 "paused"(小写)。首次调用前需阅读工具 schema,因为各平台取值大小写不同。只执行暂停,遵守 max_pauses_per_run。

schedule 步骤中,Solo 没有脚本或自动化,可用 Claude Code 的 /schedule 或 /loop 定时运行 check,apply 保持手动。Cloud 部分需读取 get_script_sdk_reference,编写 create_script,以 enabled: false、crontab: "0 8 * * *" 创建,先 run_script 并设 dry_run: true,展示输出,用户确认后再启用。

适用场景

适用于在 Meta、TikTok、LinkedIn、Google、Bing、X、Reddit、Snapchat、Apple Search Ads、OpenAI Ads 等平台投放广告、并希望用统一、可审计的规则自动暂停表现不佳广告的营销团队。尤其适合需要避免“200 条广告得到 200 个无结论实验”的情况。

限制

  • 只暂停,绝不激活、删除或更改预算。
  • 只处理 ledger 中以 ID 命名的广告,绝不触碰 scope 之外的内容。
  • 绝不自动清空广告组。
  • 必须报告所有未能返回数据的平台;静默跳过会看起来像“全部通过”。
  • 规则必须在投放前决定;没有规则就不执行暂停,报告“no evidence bar”并停止。
  • Bidtheatre 仅支持报告,没有暂停工具,只能标记给人工处理。
  • Apple Search Ads 没有可暂停的创意,单位是广告组,仅应用 CPA/CPT 规则。
  • 若货币不一致且未提供汇率,则停止。