Custom Rules(规则引擎)完全指南
Autopilot 里的规则化执行能力:用 IF…THEN… 自定义条件 + 动作,让规则按排程自动执行——从创建到激活到查看结果,一篇讲透。
规则引擎在 Autopilot 里是什么
先把位置摆正:Custom Rules(规则引擎)是 Autopilot 里的一个能力,不是独立产品,也不等于 Autopilot 本身。
Autopilot 的默认模式是 AI 巡检——主动诊断账户、给出带依据的优化建议、你确认后执行。规则引擎是在这之上补的一层确定性执行:把你已经想清楚、逻辑明确的重复操作(止损、扩量、预警)写成固定规则,按排程自动跑,不必每次都等 AI 巡检。
可以把它理解成 Autopilot 走向「更自动」过程中的一个过渡能力——AI 巡检负责「发现你没想到的」,规则引擎负责「自动执行你已经定好的」。两者配合,不是二选一,也不是谁取代谁:
| 维度 | AI 巡检(Autopilot 默认模式) | Custom Rules(Autopilot 的规则化执行层) |
|---|---|---|
| 触发方式 | 你主动发起,或系统定时巡检推送 | 按你设好的 cron 排程自动跑(每小时 / 每天 / 每周) |
| 决策者 | AI 分析后给建议,你逐条确认才执行 | 你事先定好 IF…THEN…,命中就自动执行 |
| 是否需要人工确认 | ✅ 每条都要 | ❌ 激活后全自动(除触发范围保护时才通知) |
| 适合场景 | 不确定该怎么调、想看 AI 诊断再决策 | 逻辑明确的重复操作:止损、扩量、通知预警 |
| 覆盖广度 | AI 全面扫描,可能发现你没想到的问题 | 只管你定义的条件,精准但不会「主动发现」新问题 |
能不能同时开? 能——它们是 Autopilot 里的两个部分,可以同时覆盖同一组广告,互不干扰。
同一广告被两边同时覆盖时怎么办? 规则引擎按排程自动跑,到点就评估执行;AI 巡检在你主动触发时才评估。如果规则引擎已经把某个 Ad Set 暂停了,AI 巡检再跑时读到的状态就是 paused,不会对已暂停的对象再出「暂停建议」。两者之间不存在优先级冲突——先跑到的先生效,后跑的基于最新状态做判断。
安全机制
暂停 / 停用 / 删除一条规则
| 操作 | 效果 | 怎么做 |
|---|---|---|
| 暂停(Pause) | 规则保留、下次排程不跑 | 在 Autopilot 详情页点暂停,或对话中说「暂停规则 XX」 |
| 恢复(Resume) | 重新计算 next_run_at,下个整点生效 | 同上,点恢复 |
| 删除(Delete) | 软删除,不再显示、不再触发 | 对话中说「删除规则 XX」或页面操作 |

↑ Autopilot 详情页的规则列表,每条显示状态 badge(Active / Paused / Error),右侧可暂停、恢复、删除
会不会尊重「学习期保护」和「预算上限」?
- 学习期保护:规则引擎 V1 本身不内建平台学习期侦测逻辑。如果你不想在学习期内动广告,建议在条件里加入创建时间 > N 天的窗口(如
since_creation搭配天数门槛),或搭配 AI 巡检的学习期保护使用。 - 预算上限(cap):
adjust_budget操作支持cap参数——设好之后,无论规则跑几轮,预算都不会超过你定的上限。系统创建时会建议你加 cap,但不强制。
误触发能不能回滚?
暂不支持一键回滚。如果规则已经把某个 Ad 暂停了,你需要手动恢复(或新建一条反向规则)。最佳实践:新规则先用 notify only(只通知)跑几天观察,确认命中逻辑无误后再改为自动执行。
「先只通知,观察后再转自动执行」的过渡用法
完全支持。创建时 action 选 notify(通知),命中结果会记在执行日志里,你在巡检报告查看。观察一段时间确认无误后,再编辑规则把 action 改为 pause 或 adjust_budget——不需要删了重建。
操作 × 平台 × 层级矩阵
完整支持表
| 操作 | Meta | TikTok(Auction / Smart+) | TikTok GMV Max | Google Ads |
|---|---|---|---|---|
| pause | Campaign ✅ · Ad Set ✅ · Ad ✅ | Campaign ✅ · Ad Group ✅ · Ad ✅ | Campaign ✅ | Campaign ✅ · Ad Group ✅ · Ad ❌(暂不支持) |
| resume | Campaign ✅ · Ad Set ✅ · Ad ✅ | Campaign ✅ · Ad Group ✅ · Ad ✅ | Campaign ✅ | Campaign ✅ · Ad Group ✅ · Ad ❌(暂不支持) |
| adjust_budget | Campaign ✅ · Ad Set ✅ | Campaign ✅ · Ad Group ✅ | Campaign ✅ | Campaign ✅ · Ad Group ❌(Google 无广告组预算) |
| adjust_bid_target | Campaign ❌ · Ad Set ✅ | Campaign ✅ · Ad Group ✅ | Campaign ✅(需 VO_MIN_ROAS) | Campaign ✅ · Ad Group ✅ |
| notify | 全层级 ✅ | 全层级 ✅ | 全层级 ✅ | 全层级 ✅ |
| boost(加热) | — | — | Creative 层 ✅ | — |
| exclude(排除) | — | — | Creative 层 ✅(不可逆) | — |
CBO / ABO 下 adjust_budget 落在哪一层?
- Meta CBO 开启:预算在 Campaign 层。此时对 Ad Set 调预算无效(执行时会自动跳过)。
- Meta ABO(非 CBO):预算在 Ad Set 层。对 Campaign 调预算无效。
- 最佳做法:如果你的账户 CBO / ABO 混合,建议在同一条规则里同时设 Campaign 和 Ad Set 两个 item——系统执行时会自动判断哪层有效、跳过不适用的那层。你不需要先确认「我的 Campaign 是 CBO 还是 ABO」。
Google Ads 到底支持哪些操作?
Google Ads 完整支持 pause / resume / adjust_budget(Campaign 层)/ adjust_bid_target(Campaign 和 Ad Group 层)/ notify。不支持 Ad 层的 pause/resume(暂不支持)。Google 没有广告组预算概念,所以 adjust_budget 只作用在 Campaign。
条件能力全集
下面这些指标、时间窗口、运算符,最终会在界面上组合成一条规则的条件,像这样:

↑ 一条规则在界面上长这样——指标(spend / conversions_registration)+ 运算符 + 时间窗口(yesterday)+ 动作(notify)组合成条件
可用指标
以下为常用指标(非封闭白名单,系统持续扩充):
| 指标 unified_key | 说明 | 备注 |
|---|---|---|
spend | 花费 | |
impressions | 曝光量 | |
reach | 覆盖人数 | Google 仅 Reach/Video Campaign |
frequency | 频次 | Google 仅 Reach/Video Campaign |
cpm | 千次曝光成本 | |
clicks | 点击量 | |
ctr | 点击率 | 存为小数(1% = 0.01) |
cpc | 单次点击成本 | |
conversions | 转化数(泛口径) | 建议落到具体事件 |
cost_per_conversion | 转化成本 | 同上 |
cost_per_result | 单次成效费用(基于优化目标) | |
results | 成效数(基于优化目标) | |
roas | 广告回报率 | TikTok 需确认转化来源 |
conversion_value | 转化价值 | TikTok 需确认转化来源 |
CVR | 转化率 | 系统计算,非原生字段 |
adset_budget | Ad Set 当前预算 | Google 不适用 |
campaign_budget | Campaign 当前预算 | |
status | 投放状态 |
转化相关指标建议落到具体事件,例如:cost_per_install(安装成本)、cost_per_purchase(购买成本)、cost_per_add_to_cart(加购成本)。系统会在你说「CPA」时追问「是哪个事件的成本?」帮你精确到位。
时间窗口
| 窗口 | 含义 |
|---|---|
today | 当天累计(以账户时区为准) |
yesterday | 昨天整天 |
last_7d / last_14d / last_30d | 近 N 天(不含当天) |
since_creation | 从广告创建至今,最长 30 天截断 |
[3, 7](自定义区间) | 过去第 3 天到第 7 天 |
运算符
| 运算符 | 用途 |
|---|---|
> < >= <= = | 基本比较 |
between | 区间判断(如花费在 $50–$200 之间) |
change_pct | 环比涨跌百分比 |
条件组合(AND / OR)
- AND(全部满足才命中):多条件用
all逻辑包裹。 - OR(任一满足就命中):多条件用
any逻辑包裹。 - 支持嵌套组合:例如「(spend > $50 AND CPA > $15) OR (spend > $100 AND conversions = 0)」。
连续天数 / 连续小时
consecutive_days: N(N ≤ 30):过去 N 天每天各自都满足才命中。consecutive_hours: N(N ≤ 24):过去 N 小时每小时各自都满足才命中。
与 last_Nd 的区别:last_7d 看 7 天加总值是否超标;consecutive_days: 7 看这 7 天里每一天是否都超标——后者更严格,适合「持续表现差才动手」的场景。
排程
支持的频率
| 频率 | 示例 | 说明 |
|---|---|---|
| 每小时 | 每个整点跑一次 | 最小粒度 |
| 每 N 小时 | 每 2 / 3 / 4 小时跑一次 | |
| 每天固定整点 | 每天 09:00 | 最常用 |
| 每天多个整点 | 每天 09:00 到 18:00 每小时跑 | 适合白天密集监控 |
| 每周固定时间 | 每周一 09:00 | 适合周报型通知规则 |
最小粒度为 1 小时,仅支持整点触发。如果你说「每 30 分钟」,系统会告知最小是 1 小时并帮你调整。
一次性排程(只跑一次):暂不支持原生一次性模式。替代方案:创建后让它跑一次,再手动暂停。
时区如何确定
排程的 timezone 在你创建规则时指定。系统会预设你账户的时区,你可以覆盖。例如你的账户时区是 America/Los_Angeles,设「每天 09:00」就是太平洋时间早上 9 点。
yesterday / today 按什么口径计算
所有时间窗以账户时区为基准。yesterday = 账户时区的昨天 00:00–23:59。today = 账户时区的今天 00:00 到查询时刻。系统自动处理时区转换,你不需要手动换算。
作用范围(Scope)
规则可以精确定义作用的对象范围:
| 维度 | 能力 |
|---|---|
| 账户范围 | 可指定特定账户 ID(如 act_1615xxx);未指定则默认覆盖你在该平台授权的所有账户 |
| 层级 | 由 apply_to 决定:campaign / ad_set(ad_group)/ ad |
| 状态筛选 | 默认只作用 ACTIVE 状态的实体;action 为 resume 时默认筛 PAUSED |
| 其他筛选 | 支持按 objective(广告目标)、名称包含/不包含、ID 列表等条件缩窄范围 |
你不需要让规则作用于「全部」——可以精确到「账户 A 下、objective 包含 sales、名称包含 'US-' 的 Ad Set」。
多规则冲突处理
创建时:冲突检测
当你建新规则时,系统会自动比对同渠道已有规则:
- 操作矛盾(一条要暂停、另一条要加预算,且作用范围重叠)→ 系统提示你确认:是有意分工,还是需要加互斥条件。
- 规则重复/可合并(两条规则条件高度相似、同方向操作)→ 建议合并成一条,避免效果叠加(如两条各降 20% → 实际约 −36%)。
这些都是建议性提示、不阻止激活。你可以忽略继续建。
运行时:同一轮命中冲突
如果同一个广告在同一次执行周期被两条规则同时命中、且操作方向互斥(一个要停、一个要加预算):
- 冲突操作都不执行。
- 冲突信息记录在巡检报告的异常区。
- 你需要调整规则逻辑消除冲突。
目前没有优先级或权重机制——冲突即保守不动,不会误操作。建议不同规则用 scope_filter 做好范围隔离(例如一条管「ROAS > 2 的好广告」,一条管「CPA > $30 的差广告」,自然互斥)。
创建流程:完整走一遍
用一个真实例子示范完整流程。
你的需求:「Meta 账户里,花了 $50 以上但 CPA 高于 $15 的 Ad Set,每天自动降预算 20%,日预算最低不低于 $30。每天早上 10 点跑。」
Step 1:自然语言描述
你直接对 GrowthGPT 说上面那句话。中文、英文都行。不需要写代码、不需要知道字段名。
Step 2:意图解析
系统自动提取 7 个维度:
| 维度 | 解析结果 |
|---|---|
| channel | Meta |
| apply_to | ad_set |
| scope_filter | status = ACTIVE(默认) |
| conditions | spend > $50 (yesterday) AND cost_per_result > $15 (yesterday) |
| actions | adjust_budget −20%, floor = $30 |
| schedule | daily 10:00(账户时区) |
| name | 高CPA降预算(系统自动生成) |
如果有歧义,系统会追问一次。例如你说「CPA」,系统会问:「是指哪个事件的成本?安装 / 购买 / 加购?还是就按优化目标的成效费用?」
Step 3:可行性检查
系统自动校验:
- Meta Ad Set 层支持 adjust_budget?→ ✅
- cost_per_result 在 Meta 可用?→ ✅
- 调幅 −20% 是否超过建议值 ±50%?→ 没超过 ✅
- 纯比率规则缺少基数门槛?→ 已有 spend > $50,✅ 不需要额外提醒
Step 4:Rule Card 草案
系统输出规则卡片文字版:
规则名称:高CPA降预算 渠道:Meta 排程:每天 10:00 作用范围:所有账户 · Ad Set · status = ACTIVE 条件:spend > $50 yesterday AND cost_per_result > $15 yesterday 动作:降低日预算 20%,下限 $30
⚠️ 建议:持续降预算的规则,当预算触底 $30 后不再继续调整。
此时系统停下来等你确认草案——确认条件、动作、范围都没问题后才继续。

↑ 对话窗口中 GrowthGPT 输出的 Rule Card:规则名、渠道、排程、条件、动作的完整摘要,底部附保护提示
Step 5:Dry Run
你确认草案后,系统跑一次模拟(不动平台)——把你账户真实数据带入条件,看今天会命中几个 Ad Set、它们占总花费多少比例。
可能的结果:
正常情况:「命中 3 个 Ad Set,占昨日花费 18%,均符合 spend > $50 且 cost_per_result > $15。」→ 进入确认卡。
Dry Run incomplete:部分账户数据未返回(常见原因:账户刚授权、昨天没投放、平台 API 延迟)。这时系统会标注 Dry Run incomplete,不显示命中数。你可以选择:
- 仍然激活——数据缺失的账户在正式执行时如果还是拉不到数据,会自动跳过(熔断机制),不会误操作。
- 等一天再试——隔天数据正常后重新 Dry Run。

↑ Dry Run 反馈:命中的 Ad Set 数量与昨日花费占比;数据不完整时会标注 incomplete
Step 6:确认激活
系统弹出确认卡,展示最终规则摘要(规则名 + 排程 + 作用范围 + 条件→动作)。
- 点 Active → 规则落库、立即生效,等待下一个排程时间触发。
- 点 Cancel → 不创建,回到对话继续修改。

↑ 确认卡:顶部规则名与渠道 badge,中间条件→动作摘要,点 Active 才真正激活
激活之后:在哪看结果
| 查看方式 | 内容 | 在哪找 |
|---|---|---|
| 巡检报告(Run Inspection) | 每次执行的完整报告:扫描了几个实体、命中几个、执行了什么、跳过了什么、有没有异常 | Autopilot 详情页,点对应规则的执行记录 |
| 执行日志(Action Logs) | 每一笔具体动作的记录:哪个 Ad Set 被调了、调整前后值、时间戳 | 巡检报告内的明细展开 |
| 通知型规则(notify) | 命中结果记录在 Action Logs,你在巡检报告中查看「本次命中了哪些广告」 | 同上 |
在对话中你也可以直接问:「规则『高CPA降预算』今天命中了哪些广告?」GrowthGPT 会帮你拉出执行日志。
adjust_budget / adjust_bid_target 的调整幅度规则
adjust_budget
| 项目 | 规则 |
|---|---|
| 调整方式 | 百分比(如 +30%、−20%),基于当前预算计算 |
| 单次调幅建议上限 | ±50%。超过时系统提示建议分多次阶梯调整(不强制阻止) |
| cap(上限)/ floor(下限) | 可选设定。cap 防止无限增长;floor 防止降到不可用 |
| 平台最低预算限制 | Meta ≥ $1/天;TikTok Ad Group ≥ $20/天;调整后低于最低线则该笔不执行 |
| 预算上限约束 | ✅ 设了 cap = $500,即使规则每天加 30% 也不会超过 $500 |
adjust_bid_target
| 项目 | 规则 |
|---|---|
| 调整方式 | 百分比(如 +10%、−15%),基于当前 Target CPA 或 Target ROAS 计算 |
| 单次调幅建议上限 | ±30%。超过时系统警告(不强制) |
| 适用前提 | 只调目标数值(Target CPA 金额 / Target ROAS 倍数),不改出价策略类型 |
| cap / floor | 支持设定上限和下限,防止出价目标偏离合理范围 |
| 策略匹配 | 系统执行前会检查当前出价策略是否匹配——例如你设了调 Target CPA 但该 Ad Set 用的是 Lowest Cost(没有目标值)→ 自动跳过、不报错 |
FAQ
Q:Custom Rules 跟 Meta / TikTok / Google 平台内建的自动化规则有什么不同?
| 维度 | 平台内建规则 | GrowthGPT Custom Rules |
|---|---|---|
| 跨平台 | 每个平台各自的界面和语法 | 一套逻辑覆盖 Meta + TikTok + Google,统一管理 |
| 创建方式 | 到平台后台手动选字段、拼条件 | 自然语言描述,AI 帮你翻译成结构化规则 |
| 指标口径 | 各平台各自的指标名 | 统一指标语义(如 cost_per_result),系统自动映射到各平台原生字段 |
| 冲突管理 | 各平台不管你规则互相矛盾 | 创建时自动检测冲突 + 运行时冲突保护 |
| Dry Run | 大多平台没有预览 | 有。激活前模拟看命中范围和影响面 |
| 执行日志 | 各平台各自的日志格式 | 统一巡检报告,跨平台一站式查看 |
| 搭配 AI | 与平台规则完全独立 | 可与 Autopilot AI 巡检模式并行互补 |
| GMV Max 覆盖 | TikTok 平台自动化规则覆盖有限 | 支持 Campaign 暂停/调预算/调出价 + 创意层 boost/exclude |
简言之:如果你只投单一平台、规则简单——平台内建规则够用。如果你同时跑多平台、想用自然语言快速建规则、想要 Dry Run 和冲突保护——Custom Rules 是更合适的选择。
Q:跟第三方 SaaS(如 Revealbot、Madgicx、Smartly)比呢?
| 维度 | 第三方 SaaS | GrowthGPT Custom Rules |
|---|---|---|
| 创建方式 | GUI 表单,仍需手动选字段 | 自然语言 → AI 结构化,门槛更低 |
| 与投放整合 | 独立工具,需另外登录 | 内建在投放 + 分析 + 优化的同一对话界面 |
| AI 诊断 | 纯规则引擎 | 规则引擎 + AI 巡检双模式互补 |
| 定价 | 额外订阅费($50–$500/月) | 包含在 GrowthGPT 方案内 |
Q:功能边界——哪些事 Custom Rules 做不到?
| 暂不支持 | 替代方案 |
|---|---|
| 修改出价策略类型(如从 Cost Cap 切到 Lowest Cost) | 手动在平台操作 |
| 修改素材内容(Creative) | 使用 GrowthGPT 创意工具或手动 |
| 修改受众定向(Targeting) | 手动在平台操作 |
| 一键回滚上一次操作 | 新建反向规则或手动恢复 |
| Google Ad 层 pause/resume | 暂不支持,只能到 Ad Group 层 |
| 基于 Attribution Window 切换的条件 | 暂不支持 |
| 规则之间设定优先级/权重 | 暂不支持,用 scope_filter 隔离范围 |
| 一次性排程(只跑一次就停) | 跑完后手动暂停 |
Q:单个渠道最多能建几条规则?
每个渠道最多 10 条。如果到上限,建议合并相似规则——一条规则可包含多组「条件→动作」映射,不需要一个逻辑一条规则。
Q:单条规则最多几个动作?
3 个执行动作。超过时系统建议拆成多条规则。
Q:连续失败会怎样?
同一条规则连续 3 次执行出错 → 自动暂停,状态变为 Error,系统通知你。排查问题后可手动恢复。
Q:如果拉不到数据(昨天没花费、账户新授权等)会误操作吗?
不会。熔断机制——拉取数据为空(尤其花费为空)时,规则本轮全部跳过、不执行任何操作,在巡检报告里记录为「数据缺失,已跳过」。
Q:比率指标(如 CPA)在没有转化时怎么算?
- 花了钱但转化 = 0 → CPA = +∞(无限大),会命中「CPA > XX」的条件。这是合理行为:花钱零结果 → 该止损。
- 没花钱也没转化(0/0)→ 跳过该实体,不命中、不动作。
- 建议对纯比率规则加一条基数门槛(如
spend > $30),避免刚花一点就被判「CPA 极高」而误杀。系统创建时会主动提醒你加。