New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Manage Google Ads — performance, keywords, bids, budgets

Google Ads — Operate, Diagnose, Optimize

by nowork-studio · MIT license · ★ 3,853 on GitHub · updated Sep 24

Google Ads — Operate, Diagnose, Optimize cover

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)
Claude Codenpx skills add nowork-studio/notfair-plugin --skill google-ads -g -a claude-code
Claude Code (manual)mkdir -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/manage
Windows (PowerShell)New-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" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md8.1 KB
  • evals/1 file · 16.0 KB
  • references/16 files · 65.1 KB
Read the files here
nowork-studio/5229d2118 files
Shared references5SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
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.md and 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.md when 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-audit first
  • 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:

  1. Measure signal first — conversion tracking, goal settings, recent changes, budget pacing, and pending intervention reviews.
  2. Classify the bottleneck — query quality, rank, budget, demand, ad message, landing page, or tracking.
  3. 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.
  4. 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.
  5. Propose the smallest reversible action — usually a negative, exact keyword promotion, ad/LP message fix, or experiment; not a budget increase by reflex.
  6. Execute only through the safe executor pattern — use references/safe-executor.md; approval and live read-back verification are mandatory.
  7. Record the intervention — use references/intervention-memory.md so 3/7/14-day reviews can decide keep/revert/iterate.
  8. Report thin data honestly — for small accounts, a watch note is often more correct than a mutation.
1---
2name: google-ads
3description: 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.
4argument-hint: "<campaign name, keyword, or 'show performance'>"
5triggers:
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 
40You 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 
44Read and follow `../shared/preamble.md` — handles MCP detection, account selection, and config. Once cached, this is instant.
45 
46Then 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 
50You 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 
52What 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 
65These 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 
86For 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 
90Maintain `{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```json
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 
107Update 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 
109When the baseline is older than 24h, see `references/session-checks.md` for the anomaly comparison.
110 
111## Conditional handoffs
112 
113After 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 
124When 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 
1261. **Measure signal first** — conversion tracking, goal settings, recent changes, budget pacing, and pending intervention reviews.
1272. **Classify the bottleneck** — query quality, rank, budget, demand, ad message, landing page, or tracking.
1283. **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`.
1294. **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.
1305. **Propose the smallest reversible action** — usually a negative, exact keyword promotion, ad/LP message fix, or experiment; not a budget increase by reflex.
1316. **Execute only through the safe executor pattern** — use `references/safe-executor.md`; approval and live read-back verification are mandatory.
1327. **Record the intervention** — use `references/intervention-memory.md` so 3/7/14-day reviews can decide keep/revert/iterate.
1338. **Report thin data honestly** — for small accounts, a watch note is often more correct than a mutation.
134 
View all files on GitHub →

Details

Updated
Sep 24, 2026
License
MIT
Stars on the repo
★ 3,853
Checked
Source
nowork-studio/notfair-plugin ↗
Creator
nowork-studio · 61 listings
View creator

Similar skills

See all →
SkillGoogle Ads management skill with API integrationivangfalco/ads-skills · by ivangfalcoGoogle Ads management skill with API integration. Covers campaign creation, optimization, keyword management, performance analysis, and search term auditing via Python scripts that connect to the Google Ads API. MANDATORY TRIGGERS: Google Ads, Google campaign, Google search ads, Google PMax, Performance Max, Google Display, Google Shopping, Google ad performance, Google keyword, search terms, Google RSA, Google bidding, Google Ads API★ 275 GitHub starsSkillWrites paid ad copy for Facebook and Instagram AdsAd copy generatormarcosmodly/marketing-skill · by marcosmodlyWrites paid ad copy for Facebook and Instagram (Meta) Ads, Google Search Ads (RSA headlines and descriptions), and LinkedIn Ads: multiple variants per platform, each testing a different hook angle and sized to that platform's character limits, ready for A/B testing. Use when the user asks for ad copy, ad headlines, ad variants, PPC or paid social copy, Facebook ad text, Google Ads headlines, or A/B test copy for a paid campaign.★ 42 GitHub starsPromptGenerate compelling and effective title copy for Google AdsGoogle ads title copywriterf/prompts.chat · by SEM MetaxgtseoGenerate compelling and effective title copy for Google Ads campaigns, tailored to your target audience and objectives.New listingSkillHelp with paid advertising campaigns on Google Ads, Meta Paid adsdavila7/claude-code-templates · by davila7When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ad copy,' 'ad creative,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' or 'audience targeting.' This skill covers campaign strategy, ad creation, audience targeting, and optimization.★ 32.3k GitHub starsSkillAudit Google Ads measurement, Search, ShoppingGoogle Ads AuditAgriciDaniel/claude-ads · by AgriciDanielAudit Google Ads measurement, Search, Shopping, Performance Max, Demand Gen, YouTube-linked inventory, keywords and search terms, negative-keyword generation or review, creative assets, bidding, budgets, settings, and policy. Use for Google Ads, AdWords, Search campaigns, search terms reports, broad negatives, Shopping, Performance Max, PMax, Demand Gen, GAQL, Google conversion tracking, or Google campaign optimization.★ 9.5k GitHub starsSkillPaste what you're selling and share your MicrosoftMicrosoft Advertising AuditAgriciDaniel/claude-ads · by AgriciDanielPaste what you're selling and share your Microsoft Advertising numbers; get back a plain-English report on what's wasting money and what to fix first.★ 9.5k GitHub stars

More from nowork-studio

SkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillGenerate and A/B test Google Ads copyAd Copy Generator + A/B Testernowork-studio/notfair-plugin · by nowork-studioGenerate and A/B test Google Ads copy. Use when asked to write ad copy, headlines, descriptions, create ad variants, test ad messaging, improve CTR, or generate RSA (Responsive Search Ad) components. Trigger on "ad copy", "write ads", "headlines", "descriptions", "RSA", "responsive search ad", "ad text", "ad creative", "improve CTR", "ad A/B test", "ad variants", "write me an ad", "ad variation experiment", or when the user wants to improve click-through rate on existing ads.★ 3.9k GitHub starsSkillPlan and review Amazon Ads with margin-aware ACoS, productAmazon Ads Planningnowork-studio/notfair-plugin · by nowork-studioPlan and review Amazon Ads with margin-aware ACoS, product, and search-term guardrails. Use for Amazon advertising, Sponsored Products, Sponsored Brands, Sponsored Display, ASIN targeting, Amazon ACoS, or Amazon Ads performance exports.★ 3.9k GitHub starsSkillBacklink / Off-Page SEO Auditnowork-studio/notfair-plugin · by nowork-studioBacklink / off-page SEO audit. Works WITHOUT a paid tool by default — it uses the Google Search Console Links report (your top linking sites, most-linked pages, and anchor text) plus any backlink export the user provides (Ahrefs / Semrush / Majestic / DataForSEO CSV). Analyzes referring-domain profile, anchor-text distribution (over-optimized / spammy patterns), most-linked pages vs. money pages (internal-linking opportunity), toxic/spam link signals, and link-building priorities. Use this skill when the user asks about backlinks, link building, off-page SEO, referring domains, anchor text, toxic/spam links, disavow, or their link profile. Trigger on: "backlinks", "backlink audit", "link building", "off- page SEO", "referring domains", "anchor text", "toxic links", "spam links", disavow file", "who links to me", "link profile", "domain authority". NOTE: rich third-party metrics (DR/DA, full link index) require a paid data source; this skill is explicit about what it can and can't see without one.★ 3.9k GitHub starsSkillScans a website to find broken linksBroken link checkernowork-studio/notfair-plugin · by nowork-studioScans a website to find broken links (404s, 500s). Crawls internal pages, identifies broken outbound links, and reports source pages for easy fixing. Use this when the user asks to "check for broken links", "find 404s", audit my links", or "is my site healthy".★ 3.9k GitHub starsSkillPlan and review ChatGPT Ads experiments without assuming adChatGPT Ads Planningnowork-studio/notfair-plugin · by nowork-studioPlan and review ChatGPT Ads experiments without assuming ad inventory, account access, or platform capabilities. Use for ChatGPT advertising, OpenAI ads, conversational ad concepts, ChatGPT campaign plans, or performance reviews from a verified export.★ 3.9k GitHub stars