Ad Account Auditor 是一个面向付费媒体账户或组合的审计技能,用于在既定约束下评估增量贡献与运营质量。平台报告的 ROAS 只是输入之一,绝不是目标本身或唯一真相。
触发时机
在以下情况必须使用:启动投放、实质性增加预算,或更改高风险出价/定向策略之前;当追踪、归因膨胀、不安全版位、声明合规或浪费开支存疑时;用户希望基于自身导出数据执行 ROAS/RQS 账户审计时。
快速开始
示例:审计此 USD 账户,针对直接响应,使用 7 天点击、3 天滞后、120 美元 CAC 上限。针对 holdout 和订单 ID 导出运行 incremental-profit 画像。
技能契约
读取:一个规范化账户/组合证据集。写入:仅限获得许可的 v3 制品。完成条件:所需上下文与全部 20 个状态均明确,否决(veto)使用已验证证据,评分器输出被报告且不执行任何开支变更。
该技能只做判断。conversion-signal-qa、attribution-reconciler、campaign-architect、ad-creative-builder 和 budget-pacing-monitor 负责构建/修复输入。未经单独明确批准,绝不启用广告系列、更改出价、上传受众或扩大预算。
对于投放前的账户审计请求,应在本门禁之前立即使用窄路径 conversion-signal-qa。不要在信号 QA 与审计之间自动插入 placement-exclusion-manager 或 conversion-value-mapper;缺失的版位或价值证据在本次运行中保持 Unknown,只有当用户请求或已完成门禁识别出相应发现时,这些兄弟构建器才成为单独的补救项。
数据来源
- 投放/开支:广告系列、查询、版位、受众和变更历史导出。
- 结果真相:来自电商、分析或 CRM 的去重订单/线索 ID。
- 经济性:币种、利润率/贡献、CAC/回收约束。
- 归因:平台与自有数据时间戳/ID,规范化窗口与滞后。
- 安全/声明:版位报告、已渲染广告/落地页、来自 offer-claims-registry(付费声明 SSOT)的已批准声明/披露状态。
- 增量性:holdout/地理拆分/因果测试,否则明确标注为代理(proxy)。
运行时与设置
读取 auditor-runbook.md、scoring-semantics.md、roas-benchmark.md 及 ROAS 目录条目。独立安装使用捆绑的不可变 references/auditor-runtime.md;绝不抓取可变的 main。在确定性调用前,遵循 runtime-invocation.md,解析 AARON_SKILLS_ROOT="${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || true)}",并要求 scorer、validator 和类型化目录。若不可用,返回 score_state: NOT_SCORED / score_confidence: not_scored,不给出门禁结论或持久制品。
声明画像(direct-response|prospecting|incremental-profit)、目标、币种、归因窗口、转化延迟、业务约束、目标和观察日期。若任何所需上下文缺失,返回 NEEDS_INPUT/UNDECIDED。
证据与评分
在比较指标前,先规范化币种、窗口、ID、滞后和组合范围。依据基准对全部 20 项 R1..S5 标准评分,并附来源/日期/类型/置信度。对缺失的自有数据真相、版位导出或对账使用 Unknown。无数据不构成否决,也不能仅因访问不便就标为 N/A。
验证否决项:
- ROAS-R1:可证明埋点未能满足指定的自有数据真相集。
- ROAS-R2:可证明存在实质性重复计算/膨胀。
- ROAS-O1:针对 offer-claims-registry 已批准状态存在实质性声明/披露失败。
- ROAS-O2:存在适用的平台/受限类别违规。
- ROAS-A1:版位证据证明存在实质性安全漏洞。
运行类型化评分器。将估计/代理增量性如实报告;不要将平台归因称为因果。
ROAS 示例
- 完整 direct-response 画像,原始分 78,无否决/失败:DONE/SHIP,最终 78。
- 完整画像,原始分 78,一项已验证 R1 失败:DONE_WITH_CONCERNS/FIX,最终 59。
- 完整画像,已验证 R1 与 R2 失败:DONE/BLOCK,保留原始分,无最终评分。
- 缺少版位报告:A1 Unknown,NEEDS_INPUT/UNDECIDED,无总体评分。
ROAS 护栏
高报告 ROAS 可能反映投放不足、品牌需求捕获或归因膨胀。学习阶段中断属于 S2 发现,而非自动否决。ATT/建模数据可能降低置信度,但不会自动导致 R1 失败。频次、创意疲劳和受众饱和需要单独证据。在规范化币种/窗口/滞后并去重结果前,绝不跨平台比较回报。
ROAS 转译
以业务影响和证据优先。在请求追踪时,限定 ROAS-R1/R2/O1/O2/A1;不要暴露与 RAMP/ECHO/TALE 冲突的裸 ID。
报告与结论
以 auditor-runbook 的精确类型化对话头开始。绝不用散文替代状态、结论或 score_state;在发现前列出每个明确缺失的合格项为 ``ID: `unknown```。展示结论、画像/上下文、评分或覆盖率/区间、置信度、R/O/A/S 明细、对账表、已验证关键控制项、Unknown 证据,以及按优先级的修复/负责人/重跑条件。评分器拥有状态/结论和 59 上限。
验证检查点
范围/币种/窗口/滞后/约束/目标均明确。自有数据结果真相与平台自报分离。全部 20 项都有有效状态与来源;Unknown 不被重新归一化。否决失败经过正向验证。未经单独批准,未发生任何开支/账户变更。
持久化
仅在明确授权后持久化到 memory/audits/ad/YYYY-MM-DD-<topic>.md。用 validate-audit-artifact.py 针对预期 --relative-path 组装并验证完整 v3 草稿,仅通过一次完整内容 Write 持久化,然后按 auditor runbook 要求重新验证目标。不支持对保留接收端进行编辑/shell/MCP 变更。不自主写入热缓存、声明、候选或账户状态。
参考资料
ROAS benchmark、Measurement protocol、Auditor runbook、Scoring semantics。
后续最佳技能
追踪:conversion-signal-qa;声明/披露:offer-claims-registry(ROAS-O1 背后的已批准声明/披露状态);归因:attribution-reconciler;结构/受众:campaign-architect;投放节奏:budget-pacing-monitor。