ads-google
Skill102 starsChanged 6 months agoMITView on GitHub
Google Ads deep analysis covering Search, Performance Max, Display, YouTube, and Demand Gen campaigns. Evaluates 80 checks across conversion tracking, wasted spend, account structure, keywords, ads, and settings. Use when user says Google Ads, Google PPC, search ads, PMax, Performance Max, or Google campaign.
11 other projects use a version of this, 8 of them edited.
Adopted by
Most recently taken up by
- oivanfelipe/claude-skillsedited, first seen Nov 8, 2026
- itsryanarmani/skillstheir own version, first seen Nov 8, 2026
- pooriaarab/skillstheir own version, first seen Nov 7, 2026
- AgriciDaniel/claude-adstheir own version, first seen Oct 25, 2026
- hackjpn/claude-skillsedited, first seen Oct 11, 2026
- chriswestt/claude-skillsedited, first seen Oct 9, 2026
Other versions11 projects use a version of this.
Word for word · 0
None found.
Edited · 8
- coopersimson96/ai-content-system★ 1783% same
- megastep/codex-skills★ 483% same
- Maxymize/maxym-ai-ads★ 291% same
- get-proofpilot/claude-skills-catalog★ 183% same
- Biznomad/claude-skills★ 086% same
- chriswestt/claude-skills★ 091% same
- hackjpn/claude-skills★ 083% same
- oivanfelipe/claude-skills★ 0100% same
Wrote their own version · 3
- AgriciDaniel/claude-ads★ 10ksame name
- itsryanarmani/skills★ 1same name
- pooriaarab/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository21 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- adsSkill
- ads-auditSkill
- ads-budgetSkill
- ads-competitorSkill
- ads-concienciaSkill
- ads-createSkill
- ads-creativeSkill
- ads-dnaSkill
- ads-generateSkill
- ads-landingSkill
- ads-mathSkill
- ads-metaSkill
- ads-nextSkill
- ads-photoshootSkill
- ads-planSkill
- ads-publishSkill
- ads-startSkill
- ads-testSkill
- ads-tiktokSkill
- ads-updateSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 5 are common, 7 are distinctive, and 3 are very specific to this project.
5
Common
Most of the 11 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 19
Validate: before evaluating: data covers ≥30 days AND includes the Search Terms Report.
- Common: line 36
Search Terms Report reviewed (last 30 days minimum)
- Distinctive: line 45
NEVER suggest Broad Match negatives unless explicitly justified.
- Very specific: line 46
Default to Exact Match [keyword] for specific irrelevant queries
- Very specific: line 47
Use Phrase Match "keyword" for irrelevant intent patterns
- Very specific: line 88
Before analyzing data, read ads/references/gaql-notes.md for known GAQL field incompatibilities, deduplication patterns, and filter scope …
- Distinctive: line 92
Only analyze ENABLED campaigns and ad groups (exclude paused/removed)
- Distinctive: line 95
Only flag wasted spend on terms with >$10 spend AND 0 conversions (G16)
- Distinctive: line 105
Fallback: If MCP is not configured, fall back to manual data export (the default workflow)
- Distinctive: line 107
When MCP is available, use it to pull Search Terms Reports, keyword data, conversion actions, and campaign structure automatically instead …
- Common: line 112
If Performance Max campaigns exist, additionally evaluate:
- Common: line 118
Search themes utilized (2024 feature)
- Common: line 128
If AI Max for Search is available/active:
- Common: line 131
Search term categories reviewed for relevance
- Distinctive: line 141
If Demand Gen campaigns exist, evaluate:
“Common” is measured: kept by at least 6 in 10 of the 11 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
<!-- Portions Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) - see LICENSE for original authors · tododeia.com · id er-fd4fa55b -->Google Ads Deep Analysis
Data Collection (3-tier free-first)
- Capa 1 — MCP (preferred):
cohnen/mcp-google-adsfor GAQL access. Pull Search Terms Report, keyword data, conversion actions, campaign structure automatically. Seemcp-integration.mdfor setup. - Capa 2 — Direct API (free; OAuth + developer-token setup): if
google-data.jsonis present in cwd, read it. The user generates it with:
Full setup (developer token application takes 1-3 business days) inpython3 scripts/api/google_fetch.py --account-id <customer_id> -o google-data.jsonscripts/api/README.md. - Capa 3 — Manual fallback: Google Ads account export including Change History and Search Terms Report.
- Validate before evaluating: data covers ≥30 days AND includes the Search Terms Report. If not, stop and request a fresh export.
Then follow the standard 7-step audit process in ads/references/audit-methodology.md using google-audit.md as the check list. Before any GAQL analysis, read gaql-notes.md for known field incompatibilities and deduplication rules. Emit dual output (google-audit-results.json against audit-output-schema.json, plus google-audit-results.md).
What to Analyze
Conversion Tracking (25% weight)
- Google tag (gtag.js) installed and firing on all pages
- Enhanced Conversions active (hashed first-party data)
- Consent Mode v2 implemented (required for EU/EEA)
- Conversion actions mapped correctly (primary vs secondary)
- Offline conversion import configured (for lead gen)
- Server-side tagging via GTM (recommended for accuracy)
- Attribution model: data-driven preferred (last-click as fallback only)
- Conversion lag analysis (are conversions still trickling in?)
Wasted Spend (20% weight)
- Search Terms Report reviewed (last 30 days minimum)
- Negative keyword coverage adequate (shared lists + campaign-level)
- Display placement audit (exclude low-quality sites)
- Invalid click rate within norms (<10%)
- Broad Match only used with Smart Bidding (NEVER without it)
- Brand/non-brand campaigns separated
- Geographic targeting precise (no wasted international spend)
Negative Keyword Rules (critical: bad negatives kill campaigns):
- NEVER suggest Broad Match negatives unless explicitly justified; they block too broadly
- Default to Exact Match
[keyword]for specific irrelevant queries - Use Phrase Match
"keyword"for irrelevant intent patterns - Source negatives from actual Search Terms Report irrelevant queries, NOT guesses
- Group into themed lists: Informational (how-to, DIY, what is), Job-seeker (jobs, careers, salary), Competitor (only if intentionally excluded), Free-intent (free, crack, torrent)
- Recommend Shared Negative Lists at the account level, not just campaign-level
- Review existing negatives for over-blocking (are any negatives accidentally blocking converting queries?)
Account Structure (15% weight)
- Campaign-level organization follows business logic
- Ad groups themed tightly (15-20 keywords max per group)
- RSA ad groups have ≥3 active ads
- PMax campaigns structured correctly (asset groups, signals)
- SKAGs evaluated (migrate to themed groups if present)
- Campaign labels/naming conventions consistent
Keywords (15% weight)
- Match type strategy appropriate (Exact → Phrase → Broad progression)
- Quality Score distribution (aim ≥7 average)
- Low QS keywords flagged (<5 = FAIL, 5-6 = WARNING)
- Keyword cannibalization check (same keywords in multiple campaigns)
- Impression share tracked for top keywords
- Keyword bid adjustments set for devices/locations/audiences
Ads (15% weight)
- RSA: ≥8 unique headlines, ≥3 descriptions per ad group
- RSA: ad strength "Good" or "Excellent" (not "Poor" or "Average")
- Pin usage minimal and strategic (over-pinning reduces RSA flexibility)
- Ad extensions: sitelinks (≥4), callouts (≥4), structured snippets, image
- Dynamic keyword insertion used appropriately
- Ad copy includes CTA, value proposition, differentiators
Settings (10% weight)
- ECPC (Enhanced CPC) flagged as deprecated. Migrate to full Smart Bidding (tCPA/tROAS/Maximize)
- Bid strategy appropriate for campaign maturity and goals
- Budget pacing: no campaigns limited by budget (unless intentional)
- Ad schedule aligned with business hours/conversion patterns
- Device bid adjustments set based on performance data
- Location targeting: "Presence" not "Presence or Interest"
- Network settings: Search Partners reviewed, Display opt-out for Search
GAQL & Data Accuracy
Before analyzing data, read ads/references/gaql-notes.md for known GAQL field incompatibilities,
deduplication patterns, and filter scope best practices. Key rules:
- Deduplicate keywords by
(ad_group_id + keyword_text + match_type)before any analysis - Only analyze ENABLED campaigns and ad groups (exclude paused/removed)
- Filter to keywords with impressions > 0 for theme coherence checks (G03)
- Apply legacy BMM heuristic: BROAD + Manual CPC = legacy BMM, not intentional broad (G17)
- Only flag wasted spend on terms with >$10 spend AND 0 conversions (G16)
- Count shared negative keyword lists alongside campaign-level negatives (G14/G15)
Google Ads MCP Integration (Optional)
For automated data collection, connect the Google Ads MCP server:
- Tools available:
search(GAQL queries),list_accessible_customers - Setup: Configure in
.mcp.jsonor Claude Code MCP settings - Customer ID: Extract from CLAUDE.md under Accounts > Google Ads, or ask the user
- Fallback: If MCP is not configured, fall back to manual data export (the default workflow)
When MCP is available, use it to pull Search Terms Reports, keyword data, conversion actions, and campaign structure automatically instead of requiring manual exports.
PMax Deep Dive
If Performance Max campaigns exist, additionally evaluate:
- Asset group diversity (text, images, video, feeds)
- Audience signals configured (custom segments, lists, demographics)
- URL expansion settings reviewed (opt-out of irrelevant pages)
- Brand exclusions applied (prevent cannibalizing brand search), available for all advertisers
- Campaign-level negative keywords now available for ALL advertisers
- Search themes utilized (2024 feature)
- Final URL expansion: enabled or disabled with justification
- Insights tab reviewed (search categories, audience segments)
AI Max for Search (2026)
AI Max layers broad match + keywordless targeting on existing Search campaigns. 14% avg conversion lift. DSA likely consolidated into AI Max Q2 2026. Requires strong negative keyword lists.
If AI Max for Search is available/active:
- Broad Match + AI Max integration evaluated
- Auto-generated headline performance monitored
- Search term categories reviewed for relevance
- Budget impact assessed (AI Max can shift spend)
- Negative keyword lists reviewed for completeness (AI Max broadens reach significantly)
- DSA migration path assessed (consolidation expected Q2 2026)
Demand Gen Campaigns
Replaced Video Action Campaigns (April 2026). Video + image = 20% more conversions. Frequency capping NOT supported.
If Demand Gen campaigns exist, evaluate:
- Video + image asset mix present (combined format drives 20% more conversions)
- Audience signals configured (custom segments, lookalikes)
- Conversion tracking aligned with upper/mid-funnel goals
- Note: frequency capping is not available. Monitor reach vs frequency manually
Key Thresholds
| Metric | Pass | Warning | Fail |
| Quality Score (avg) | ≥7 | 5-6 | <5 |
| CTR (Search) | ≥6.66% | 3-6.66% | <3% |
| CVR (Search) | ≥7.52% | 3-7.52% | <3% |
| CPC (Search) | ≤$5.26 | $5.26-8.00 | >$8.00 |
| Wasted Spend | <10% | 10-20% | >20% |
| Ad Strength | Good+ | Average | Poor |
| Invalid Clicks | <5% | 5-10% | >10% |
Output
Google Ads Health Score
Google Ads Health Score: XX/100 (Grade: X)
Conversion Tracking: XX/100 ████████░░ (25%)
Wasted Spend: XX/100 ██████████ (20%)
Account Structure: XX/100 ███████░░░ (15%)
Keywords: XX/100 █████░░░░░ (15%)
Ads: XX/100 ████████░░ (15%)
Settings: XX/100 ██████████ (10%)Deliverables
GOOGLE-ADS-REPORT.md: Full 80-check findings with pass/warning/fail- Wasted spend estimate (monthly $ value)
- Quick Wins sorted by impact
- PMax-specific recommendations (if applicable)
- Keyword health matrix with QS, CTR, CVR per keyword group
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

