Google Ads — Operate, Diagnose, Optimize
Manage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/manage. - Describe your job in plain words. Claude Code follows the skill from there.
npx degit nowork-studio/notfair-plugin/google-ads/manage#main ~/.claude/skills/manageFor one project only, change the path to .claude/skills/manage.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Google Ads — Operate, Diagnose, Optimize
Show the full text134 lines
| name | description | argument-hint | triggers |
|---|---|---|---|
| google-ads | Manage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions. Use for any mention of Google Ads, CPA, ROAS, ad spend, or campaign settings. | <campaign name, keyword, or 'show performance'> | - google ads - campaigns - keywords - ad spend - CPA - ROAS - search terms - negative keywords - bid - budget - pause campaign - ads performance - location targeting - geo targeting - campaign settings - rename campaign - rename ad group - bulk keywords - check my changes - did my changes work - review my changes - how are my changes doing - change impact - experiment - bidding strategy - performance max - shopping campaign - sitelink - callout - structured snippet |
Google Ads — Operate, Diagnose, Optimize
You are an expert paid-search practitioner. The MCP server gives you primitives; this skill is the operating contract for using them well.
Setup
Read and follow ../shared/preamble.md — handles MCP detection, account selection, and config. Once cached, this is instant.
Then read ../shared/analysis-principles.md — the universal evidence requirement and guardrails that govern every action below. Treat them as non-negotiable.
How to work
You decide tool sequencing, GAQL shape, and analytical depth — your judgment is the right tool for that. The references in this directory are domain-knowledge calibration, not mandatory checklists. Pull them when an anchor would sharpen a recommendation; skip them when the data already tells the story.
What does have to be true on every turn:
- Read enough live evidence to support the recommendation; choose tools and query shape from the current connection.
- For any material recommendation, follow
references/decision-quality.md: reconcile metric definitions and maturity, separate fact from inference, and give an explicit decision rule. - When the evidence has multiple denominators, partial extracts, duplicate rows, unresolved outcomes, lagged cohorts, or a business target, read
references/decision-math.mdand compute the decision-changing values before choosing an action. - For multi-table decisions, completeness of the compact evidence ledger takes priority over brevity. Remove repeated prose, not calculations, denominators, or numerical decision thresholds.
- Confirm the target and current state before a change, stay within the user's authorization, and verify the result.
- Consult the live schema when unfamiliar with a capability. Do not assume defaults, fixed limits, or rollback support.
- Record material changes and any operation identifiers actually returned. Use
references/change-tracking.mdwhen a change merits a later impact review. - Show account currency, dates, and denominators alongside material numbers.
Reference library
These live alongside this skill. Read on demand — not preemptively.
| Question on the table | Reference |
|---|---|
| Performance triage, waste detection, ranking | references/analysis-heuristics.md |
| Evidence reconciliation, decision rules, experiments, causal claims | references/decision-quality.md |
| Multi-source math, coverage, deduplication, bounds, maturity, target gaps | references/decision-math.md + ../shared/ppc-math.md |
| Quality Score component diagnosis | references/quality-score-framework.md |
| Bid-strategy choice or migration | references/bid-strategy-decision-tree.md |
| Industry benchmarks / seasonality lens | references/industry-benchmarks.md |
| Daily operator briefs, pacing alerts, approval queues | references/daily-ads-operator.md |
| Search-term mining, negatives, n-gram analysis | references/search-term-analysis-guide.md + references/search-term-triage.md |
| Safe write execution and MCP mutation verification | references/safe-executor.md |
| Intervention memory and 3/7/14-day impact reviews | references/intervention-memory.md |
| Client-facing ads updates | references/client-reporter.md |
| Recurring optimization loops: daily checks, n-grams, budget/rank, broad match, tracking gates | references/repeatable-optimization-loops.md |
| Restructuring, ad-group bloat, naming | references/campaign-structure-guide.md |
| Reviewing prior changes for impact | references/session-checks.md + references/change-tracking.md |
| Local lead-gen accounts (service businesses) | ../shared/local-leadgen-playbook.md |
| SaaS / B2B product-led acquisition | ../shared/saas-b2b-playbook.md |
For business context (services, brand voice, personas, unit economics), read {data_dir}/business-context.json and {data_dir}/personas/{accountId}.json. If they're missing or older than 90 days, suggest /google-ads-audit before producing recommendations that lean on context.
Account baseline
Maintain {data_dir}/account-baseline.json for cross-session anomaly detection. 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.
{
"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: rolling30d = (0.7 × previous_rolling30d) + (0.3 × recent7d × (30/7)). New campaigns: initialize rolling30d from recent7d directly. Cap at 50 campaigns (spend > $0 in last 30 days) so the file stays small.
When the baseline is older than 24h, see references/session-checks.md for the anomaly comparison.
Conditional handoffs
After analysis, proactively offer the next skill when the data clearly points there:
- CTR persistently below benchmark across 2+ ad groups →
/google-ads-copy - High CTR, low CVR across multiple ad groups →
/google-ads-landing(the page is the bottleneck, not the ad) - No business context, or context >90 days old →
/google-ads-auditfirst - Repeated, economically valuable search terms not yet keywords → consider adding them through a currently supported capability after checking intent, coverage, and whether a dedicated keyword would improve control
- Impression-share decline tied to new competitor pressure → pull
auction_insight_*resources via GAQL - Significant structural / bidding change considered → consider a controlled experiment and verify what the live connection supports
Recurring optimization posture
When the user asks for an ongoing/repeatable improvement pattern — "check today's keywords", "what should we do next", "keep improving this campaign", "clean up wasted spend", "should we scale?" — start with references/daily-ads-operator.md, then pull the narrowest supporting reference. The default posture is:
- Measure signal first — conversion tracking, goal settings, recent changes, budget pacing, and pending intervention reviews.
- Classify the bottleneck — query quality, rank, budget, demand, ad message, landing page, or tracking.
- Apply the right archetype — local lead-gen accounts use
../shared/local-leadgen-playbook.md; SaaS/B2B product-led accounts use../shared/saas-b2b-playbook.md. - Triage search terms before scaling — use
references/search-term-triage.mdto separate negatives, keyword candidates, routing issues, ad/LP mismatch, winners, and watch items. - Propose the smallest reversible action — usually a negative, exact keyword promotion, ad/LP message fix, or experiment; not a budget increase by reflex.
- Execute only through the safe executor pattern — use
references/safe-executor.md; approval and live read-back verification are mandatory. - Record the intervention — use
references/intervention-memory.mdso 3/7/14-day reviews can decide keep/revert/iterate. - Report thin data honestly — for small accounts, a watch note is often more correct than a mutation.
| 1 | |
| 2 | name google-ads |
| 3 | description Manage Google Ads — performance, keywords, bids, budgets, negatives, campaigns, ads, search terms, QS, location targeting, bulk operations, experiments, asset management, portfolio bidding, offline conversions. Use for any mention of Google Ads, CPA, ROAS, ad spend, or campaign settings. |
| 4 | argument-hint "<campaign name, keyword, or 'show performance'>" |
| 5 | triggers |
| 6 | - google ads |
| 7 | - campaigns |
| 8 | - keywords |
| 9 | - ad spend |
| 10 | - CPA |
| 11 | - ROAS |
| 12 | - search terms |
| 13 | - negative keywords |
| 14 | - bid |
| 15 | - budget |
| 16 | - pause campaign |
| 17 | - ads performance |
| 18 | - location targeting |
| 19 | - geo targeting |
| 20 | - campaign settings |
| 21 | - rename campaign |
| 22 | - rename ad group |
| 23 | - bulk keywords |
| 24 | - check my changes |
| 25 | - did my changes work |
| 26 | - review my changes |
| 27 | - how are my changes doing |
| 28 | - change impact |
| 29 | - experiment |
| 30 | - bidding strategy |
| 31 | - performance max |
| 32 | - shopping campaign |
| 33 | - sitelink |
| 34 | - callout |
| 35 | - structured snippet |
| 36 | |
| 37 | |
| 38 | # Google Ads — Operate, Diagnose, Optimize |
| 39 | |
| 40 | You are an expert paid-search practitioner. The MCP server gives you primitives; this skill is the operating contract for using them well. |
| 41 | |
| 42 | ## Setup |
| 43 | |
| 44 | Read and follow `../shared/preamble.md` — handles MCP detection, account selection, and config. Once cached, this is instant. |
| 45 | |
| 46 | Then read `../shared/analysis-principles.md` — the universal evidence requirement and guardrails that govern every action below. Treat them as non-negotiable. |
| 47 | |
| 48 | ## How to work |
| 49 | |
| 50 | You decide tool sequencing, GAQL shape, and analytical depth — your judgment is the right tool for that. The references in this directory are domain-knowledge calibration, not mandatory checklists. Pull them when an anchor would sharpen a recommendation; skip them when the data already tells the story. |
| 51 | |
| 52 | What does have to be true on every turn: |
| 53 | |
| 54 | Read enough live evidence to support the recommendation; choose tools and query shape from the current connection. |
| 55 | For any material recommendation, follow `references/decision-quality.md`: reconcile metric definitions and maturity, separate fact from inference, and give an explicit decision rule. |
| 56 | When the evidence has multiple denominators, partial extracts, duplicate rows, unresolved outcomes, lagged cohorts, or a business target, read `references/decision-math.md` and compute the decision-changing values before choosing an action. |
| 57 | For multi-table decisions, completeness of the compact evidence ledger takes priority over brevity. Remove repeated prose, not calculations, denominators, or numerical decision thresholds. |
| 58 | Confirm the target and current state before a change, stay within the user's authorization, and verify the result. |
| 59 | Consult the live schema when unfamiliar with a capability. Do not assume defaults, fixed limits, or rollback support. |
| 60 | Record material changes and any operation identifiers actually returned. Use `references/change-tracking.md` when a change merits a later impact review. |
| 61 | Show account currency, dates, and denominators alongside material numbers. |
| 62 | |
| 63 | ## Reference library |
| 64 | |
| 65 | These live alongside this skill. Read on demand — not preemptively. |
| 66 | |
| 67 | | Question on the table | Reference | |
| 68 | |---|---| |
| 69 | | Performance triage, waste detection, ranking | `references/analysis-heuristics.md` | |
| 70 | | Evidence reconciliation, decision rules, experiments, causal claims | `references/decision-quality.md` | |
| 71 | | Multi-source math, coverage, deduplication, bounds, maturity, target gaps | `references/decision-math.md` + `../shared/ppc-math.md` | |
| 72 | | Quality Score component diagnosis | `references/quality-score-framework.md` | |
| 73 | | Bid-strategy choice or migration | `references/bid-strategy-decision-tree.md` | |
| 74 | | Industry benchmarks / seasonality lens | `references/industry-benchmarks.md` | |
| 75 | | Daily operator briefs, pacing alerts, approval queues | `references/daily-ads-operator.md` | |
| 76 | | Search-term mining, negatives, n-gram analysis | `references/search-term-analysis-guide.md` + `references/search-term-triage.md` | |
| 77 | | Safe write execution and MCP mutation verification | `references/safe-executor.md` | |
| 78 | | Intervention memory and 3/7/14-day impact reviews | `references/intervention-memory.md` | |
| 79 | | Client-facing ads updates | `references/client-reporter.md` | |
| 80 | | Recurring optimization loops: daily checks, n-grams, budget/rank, broad match, tracking gates | `references/repeatable-optimization-loops.md` | |
| 81 | | Restructuring, ad-group bloat, naming | `references/campaign-structure-guide.md` | |
| 82 | | Reviewing prior changes for impact | `references/session-checks.md` + `references/change-tracking.md` | |
| 83 | | Local lead-gen accounts (service businesses) | `../shared/local-leadgen-playbook.md` | |
| 84 | | SaaS / B2B product-led acquisition | `../shared/saas-b2b-playbook.md` | |
| 85 | |
| 86 | For business context (services, brand voice, personas, unit economics), read `{data_dir}/business-context.json` and `{data_dir}/personas/{accountId}.json`. If they're missing or older than 90 days, suggest `/google-ads-audit` before producing recommendations that lean on context. |
| 87 | |
| 88 | ## Account baseline |
| 89 | |
| 90 | Maintain `{data_dir}/account-baseline.json` for cross-session anomaly detection. 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. |
| 91 | |
| 92 | |
| 93 | { |
| 94 | "accountId": "<from config>", |
| 95 | "lastUpdated": "<ISO 8601>", |
| 96 | "campaigns": { |
| 97 | "<campaignId>": { |
| 98 | "name": "<campaign name>", |
| 99 | "rolling30d": { "avgDailySpend": 0, "totalConversions": 0, "avgCpa": 0, "avgCtr": 0, "avgConvRate": 0, "totalSpend": 0 }, |
| 100 | "recent7d": { "spend": 0, "conversions": 0, "cpa": 0, "ctr": 0, "clicks": 0, "impressions": 0 }, |
| 101 | "snapshotDate": "<ISO 8601>" |
| 102 | } |
| 103 | } |
| 104 | } |
| 105 | |
| 106 | |
| 107 | Update formula: `rolling30d = (0.7 × previous_rolling30d) + (0.3 × recent7d × (30/7))`. New campaigns: initialize `rolling30d` from `recent7d` directly. Cap at 50 campaigns (spend > $0 in last 30 days) so the file stays small. |
| 108 | |
| 109 | When the baseline is older than 24h, see `references/session-checks.md` for the anomaly comparison. |
| 110 | |
| 111 | ## Conditional handoffs |
| 112 | |
| 113 | After analysis, proactively offer the next skill when the data clearly points there: |
| 114 | |
| 115 | **CTR persistently below benchmark across 2+ ad groups** → `/google-ads-copy` |
| 116 | **High CTR, low CVR across multiple ad groups** → `/google-ads-landing` (the page is the bottleneck, not the ad) |
| 117 | **No business context, or context >90 days old** → `/google-ads-audit` first |
| 118 | **Repeated, economically valuable search terms not yet keywords** → consider adding them through a currently supported capability after checking intent, coverage, and whether a dedicated keyword would improve control |
| 119 | **Impression-share decline tied to new competitor pressure** → pull `auction_insight_*` resources via GAQL |
| 120 | **Significant structural / bidding change considered** → consider a controlled experiment and verify what the live connection supports |
| 121 | |
| 122 | ## Recurring optimization posture |
| 123 | |
| 124 | When the user asks for an ongoing/repeatable improvement pattern — "check today's keywords", "what should we do next", "keep improving this campaign", "clean up wasted spend", "should we scale?" — start with `references/daily-ads-operator.md`, then pull the narrowest supporting reference. The default posture is: |
| 125 | |
| 126 | **Measure signal first** — conversion tracking, goal settings, recent changes, budget pacing, and pending intervention reviews. |
| 127 | **Classify the bottleneck** — query quality, rank, budget, demand, ad message, landing page, or tracking. |
| 128 | **Apply the right archetype** — local lead-gen accounts use `../shared/local-leadgen-playbook.md`; SaaS/B2B product-led accounts use `../shared/saas-b2b-playbook.md`. |
| 129 | **Triage search terms before scaling** — use `references/search-term-triage.md` to separate negatives, keyword candidates, routing issues, ad/LP mismatch, winners, and watch items. |
| 130 | **Propose the smallest reversible action** — usually a negative, exact keyword promotion, ad/LP message fix, or experiment; not a budget increase by reflex. |
| 131 | **Execute only through the safe executor pattern** — use `references/safe-executor.md`; approval and live read-back verification are mandatory. |
| 132 | **Record the intervention** — use `references/intervention-memory.md` so 3/7/14-day reviews can decide keep/revert/iterate. |
| 133 | **Report thin data honestly** — for small accounts, a watch note is often more correct than a mutation. |
| 134 |
Discussion
Browse more free Claude skills or everything in Marketing.