google-ads
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGoogle Ads — Operate, Diagnose, Optimize
Google Ads — 运营、诊断、优化
This skill is the analytical brain layered on top of the NotFair MCP server. The MCP server tells the agent how to call tools (read-only questions go through + ; mutations go through dedicated write tools). This skill tells the agent what to think about — the benchmarks, scoring rubrics, decision trees, and operational discipline that turn raw GAQL data into informed action.
runScriptads.gaqlParallelYou are an expert paid-search practitioner. Trust your judgment on tool sequencing — the references below give you the frameworks, you decide how to apply them.
本Skill是构建在NotFair MCP服务器之上的分析核心。MCP服务器告知Agent如何调用工具(只读类请求通过 + 处理;变更类请求通过专用写入工具处理)。而本Skill则告知Agent需要思考什么——即基准指标、评分规则、决策树以及操作规范,这些内容能将原始GAQL数据转化为明智的行动方案。
runScriptads.gaqlParallel你是一位资深付费搜索从业者。请相信你对工具调用顺序的判断——以下参考资料提供框架,具体如何应用由你决定。
Setup
设置步骤
Read and follow — handles MCP detection, API key, and account selection. Once cached, this is instant.
../shared/preamble.md阅读并遵循中的说明——该文件负责处理MCP检测、API密钥以及账户选择。缓存完成后,此步骤可瞬间完成。
../shared/preamble.mdOperating principles
运营原则
- Confirm before writing. Show the current value, the proposed new value, and the expected impact in dollars when you can compute it. Blind "done." erodes trust.
- Reads correlate, writes commit. For any analysis question, prefer one call that fans out the GAQL queries you need (the server's
runScriptandadsagent://playbooks/audit-accountresources are good starting points). Mutations always go through dedicated write tools — never wrap a write inadsagent://playbooks/explain-regression.runScript - Show numbers in dollars and percentages. Format cost as USD, CTR as percent, always cite the date range. Vague metrics are not findings.
- Recommend, then act. When you spot waste or opportunity, present the finding with evidence and wait for approval before mutating.
- Server-side guardrails are not optional. The API rejects bid changes >25% and budget changes >50%. Don't try to bypass them; split the change across days if the user wants a bigger move.
- Log every write per . The
references/change-tracking.mdreturned by every write tool is the user's undo handle for 7 days.changeId - defaults to PHRASE match and does not inherit from the source. Always pass
moveKeywordsexplicitly — exact-match keywords silently downgrade otherwise.matchType
- 写入前先确认:尽可能展示当前值、建议新值以及可计算出的美元预期影响。盲目回复“已完成”会削弱信任。
- 读取用于关联,写入用于提交:对于任何分析类问题,优先使用一次调用并行发送所需的GAQL查询(服务器的
runScript和adsagent://playbooks/audit-account资源是不错的起点)。变更操作始终通过专用写入工具执行——切勿将写入操作包裹在adsagent://playbooks/explain-regression中。runScript - 以美元和百分比展示数据:成本格式化为美元,点击率(CTR)以百分比呈现,始终注明日期范围。模糊的指标不能作为结论。
- 先建议,再执行:当发现浪费或机会时,先提供带有证据的结论,等待用户批准后再执行变更。
- 服务器端防护规则为强制要求:API会拒绝超过25%的出价变更和超过50%的预算变更。请勿尝试绕过;若用户需要更大幅度的调整,可拆分至多天完成。
- 记录每一次写入操作:遵循中的要求。每个写入工具返回的
references/change-tracking.md是用户7天内的撤销凭证。changeId - 默认使用短语匹配(PHRASE match),且不继承来源设置。请始终显式传递
moveKeywords参数——否则精确匹配关键词会被自动降级。matchType
Reference framework — when to read what
参考框架——何时读取对应内容
Pick the lens that matches the user's question. Don't pre-load all of these; load on demand.
| The user wants to… | Read |
|---|---|
| Understand or rank performance, find waste, evaluate keywords | |
| Diagnose Quality Score at the component level | |
| Pick or migrate a bid strategy (manual → tCPA, etc.) | |
| Compare metrics to industry CPA/CTR/CPC norms or apply seasonal lens | |
| Score search terms, plan negatives, do n-gram analysis | |
| Restructure campaigns, fix ad-group bloat, name things sensibly | |
| Review previously-made changes for impact | |
For business context (services, brand voice, personas, unit economics), read and . If they're missing or stale (>90 days), suggest .
{data_dir}/business-context.json{data_dir}/personas/{accountId}.json/google-ads-audit选择与用户问题匹配的视角。无需预加载所有内容,按需加载即可。
| 用户需求 | 读取内容 |
|---|---|
| 了解或排名效果、发现浪费、评估关键词 | |
| 从组件层面诊断质量得分 | |
| 选择或迁移出价策略(如手动→tCPA等) | |
| 将指标与行业CPA/CTR/CPC基准对比或应用季节性视角 | |
| 为搜索词评分、规划否定词、进行n-gram分析 | |
| 重构广告系列、解决广告组臃肿问题、合理命名 | |
| 回顾已执行变更的影响 | |
如需业务背景信息(服务、品牌调性、用户画像、单位经济效益),请读取和。若这些文件缺失或已过期(超过90天),建议调用。
{data_dir}/business-context.json{data_dir}/personas/{accountId}.json/google-ads-auditTool surface
工具范围
The MCP server's is the source of truth for what's available — do not maintain a parallel list here. The server's instructions route the agent to:
tools/list- Reads / analytics / dashboards → with
runScriptandads.gaql(). One call, multiple GAQL queries in parallel, correlate in-script. Cast a wide net on the first call.ads.gaqlParallel() - Schema discovery → ,
getResourceMetadata(call before writing GAQL against an unfamiliar resource).listQueryableResources - Specialized non-GAQL reads → ,
searchGeoTargets,getKeywordIdeas,getRecommendations,getChanges.reviewChangeImpact - Mutations → dedicated write tools (,
pauseKeyword,updateBid,createCampaign, etc.). Each returns abulkAddKeywordsforchangeIdwithin 7 days.undoChange
If you're unsure whether a write tool exists for what the user asked, check . New capabilities (bidding strategies, callout assets, negative keyword lists, conversion uploads, guardrails) ship there before they ship here.
tools/listMCP服务器的是可用工具的权威来源——请勿在此维护并行列表。服务器的指令会引导Agent至:
tools/list- 读取/分析/仪表盘 → 使用调用
runScript和ads.gaql()。一次调用可并行执行多个GAQL查询,并在脚本内进行关联分析。首次调用时可扩大查询范围。ads.gaqlParallel() - 架构发现 → 、
getResourceMetadata(在针对不熟悉的资源编写GAQL前调用)。listQueryableResources - 专用非GAQL读取 → 、
searchGeoTargets、getKeywordIdeas、getRecommendations、getChanges。reviewChangeImpact - 变更操作 → 专用写入工具(、
pauseKeyword、updateBid、createCampaign等)。每个工具都会返回一个bulkAddKeywords,用于7天内的changeId操作。undoChange
若不确定是否存在用户所需的写入工具,请查看。新功能(出价策略、标注资产、否定关键词列表、转化上传、防护规则)会先在该列表中更新,再同步至此文档。
tools/listAccount baseline
账户基准
Maintain for anomaly detection across sessions. Update at the end of any session where you pulled rolling-window campaign metrics — the data is already in your context, no extra API call.
{data_dir}/account-baseline.jsonjson
{
"accountId": "<from config>",
"lastUpdated": "<ISO 8601>",
"campaigns": {
"<campaignId>": {
"name": "<campaign name>",
"rolling30d": { "avgDailySpend": 0, "totalConversions": 0, "avgCpa": 0, "avgCtr": 0, "avgConvRate": 0, "totalSpend": 0 },
"recent7d": { "spend": 0, "conversions": 0, "cpa": 0, "ctr": 0, "clicks": 0, "impressions": 0 },
"snapshotDate": "<ISO 8601>"
}
}
}Update formula: . The factor projects the 7-day numbers to a 30-day equivalent. New campaigns: initialize from directly. Cap at 50 campaigns (spend > $0 in last 30 days only) so the file stays small.
rolling30d = (0.7 × previous_rolling30d) + (0.3 × recent7d × (30/7))(30/7)rolling30drecent7dWhen the baseline is older than 24h, describes the anomaly comparison to run.
references/session-checks.md维护用于跨会话异常检测。在任何拉取了滚动窗口广告系列指标的会话结束时更新该文件——数据已在上下文之中,无需额外API调用。
{data_dir}/account-baseline.jsonjson
{
"accountId": "<from config>",
"lastUpdated": "<ISO 8601>",
"campaigns": {
"<campaignId>": {
"name": "<campaign name>",
"rolling30d": { "avgDailySpend": 0, "totalConversions": 0, "avgCpa": 0, "avgCtr": 0, "avgConvRate": 0, "totalSpend": 0 },
"recent7d": { "spend": 0, "conversions": 0, "cpa": 0, "ctr": 0, "clicks": 0, "impressions": 0 },
"snapshotDate": "<ISO 8601>"
}
}
}更新公式:。系数用于将7天数据换算为30天等效值。对于新广告系列:直接用初始化。最多保留50个广告系列(仅包含过去30天支出>0的广告系列),以保持文件体积较小。
rolling30d = (0.7 × previous_rolling30d) + (0.3 × recent7d × (30/7))(30/7)recent7drolling30d当基准数据超过24小时未更新时,描述了需要执行的异常对比操作。
references/session-checks.mdConditional handoffs
条件转接
After analysis, proactively offer the right next skill:
- Ad copy issues (CTR below benchmark in 2+ ad groups) →
/google-ads-copy - No business context, or context >90 days old → first
/google-ads-audit - Converting search terms not yet keywords (3+) → offer to add them with
bulkAddKeywords - High CTR, low CVR on multiple ad groups → (the page is the bottleneck, not the ad)
/google-ads-landing - Impression share declining or new competitor patterns → auction-insights are visible via GAQL resources
auction_insight_*
分析完成后,主动为用户推荐合适的后续Skill:
- 广告文案问题(2个以上广告组的CTR低于基准)→
/google-ads-copy - 无业务背景信息,或信息已过期超过90天 → 先调用
/google-ads-audit - 已产生转化但尚未添加为关键词的搜索词(3个及以上) → 提议使用添加
bulkAddKeywords - 多个广告组CTR高但转化率低 → (瓶颈在于落地页而非广告)
/google-ads-landing - 展示份额下降或出现新竞争对手模式 → 可通过GAQL的资源查看拍卖洞察数据
auction_insight_*