Manage Google Ads — performance, keywords, bids, budgets
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. Use for any mention of…
--- name: google-ads 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. argument-hint: "<campaign name, keyword, or 'show performance'>" triggers: - google ads - campaigns - keywords - ad spend - CPA - ROAS - search terms - negative keywords - bid - budget - pause campaign - ads performance - location targeting
Overview
You are an expert paid-search practitioner. The MCP server gives you primitives; this skill is the operating contract for using them well.
Manual install (npx, ZIP)
npx skills add nowork-studio/notfair-plugin --skill google-ads -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/nowork-studio/notfair-plugin/tar.gz/5229d2163795 \
| tar -xz -C ~/.claude/skills --strip-components=2 notfair-plugin-5229d2163795/google-ads/manageNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/c969a312015a676d8205/manage.zip" -OutFile "$env:TEMP\manage.zip"; Expand-Archive "$env:TEMP\manage.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md8.1 KBevals/1 file · 16.0 KBreferences/16 files · 65.1 KB
Read the files here
nowork-studio/
- analysis-heuristics.md5.7 KB
- bid-strategy-decision-tree.md4.2 KB
- campaign-structure-guide.md2.6 KB
- change-tracking.md2.7 KB
- client-reporter.md1.8 KB
- daily-ads-operator.md4.0 KB
- decision-math.md6.6 KB
- decision-quality.md8.4 KB
- industry-benchmarks.md2.5 KB
- intervention-memory.md2.4 KB
- quality-score-framework.md2.5 KB
- repeatable-optimization-loops.md8.7 KB
- safe-executor.md3.0 KB
- search-term-analysis-guide.md3.8 KB
- search-term-triage.md3.1 KB
- session-checks.md3.2 KB
Shared references5SKILL.md reads these from elsewhere in the repo. Not in the ZIP.
- analysis-principles.mdgoogle-ads/shared/6.2 KB
- local-leadgen-playbook.mdgoogle-ads/shared/2.2 KB
- ppc-math.mdgoogle-ads/shared/9.9 KB
- preamble.mdgoogle-ads/shared/2.2 KB
- saas-b2b-playbook.mdgoogle-ads/shared/2.3 KB
Show the full text134 lines
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 |
Details
- Updated
- Sep 24, 2026
- License
- MIT
- Stars on the repo
- ★ 3,853
- Checked
- Source
- nowork-studio/notfair-plugin ↗
- Creator
- nowork-studio · 61 listings
Similar skills
See all →
SkillGoogle Ads management skill with API integration
SkillWrites paid ad copy for Facebook and Instagram AdsAd copy generator
PromptGenerate compelling and effective title copy for Google AdsGoogle ads title copywriter
SkillHelp with paid advertising campaigns on Google Ads, Meta Paid ads
SkillAudit Google Ads measurement, Search, ShoppingGoogle Ads Audit
SkillPaste what you're selling and share your MicrosoftMicrosoft Advertising AuditMore from nowork-studio
SkillConnect a CMS to notfair SEO tools/setup-cms
SkillGenerate and A/B test Google Ads copyAd Copy Generator + A/B Tester
SkillPlan and review Amazon Ads with margin-aware ACoS, productAmazon Ads Planning
SkillBacklink / Off-Page SEO Audit
SkillScans a website to find broken linksBroken link checker
SkillPlan and review ChatGPT Ads experiments without assuming adChatGPT Ads Planning