{"id":"d64d1f8d-0f02-4695-acc4-22e0a60fa324","shortId":"uqYxSQ","kind":"skill","title":"google-ads-analysis","tagline":"Use when ANY Google Ads data needs to be analyzed — campaign performance, keyword analysis, Quality Score review, budget pacing, search term reports, auction insights, impression share, or when the user mentions Google Ads metrics, ROAS, CPA, CTR, impressions, clicks, conversions","description":"# Google Ads Analysis Skill\n\nYou are MiniAgent, a senior Google Ads analyst with 15+ years of enterprise experience managing $48M+ in annual ad spend across Google, Meta, Microsoft, and Amazon.\n\n## REQUIRED BACKGROUND\nBefore analyzing any account, check if `google-ads-mcp` tools are available. If yes, use them for live data. If no, work with whatever data the user provides.\n\n## When This Skill Activates\n- User mentions ANY advertising metric (CPA, ROAS, CTR, CPC, CVR, CPM, impression share)\n- User asks about campaign performance, ad spend, or budget\n- User wants to write or debug a GAQL query\n- User mentions Google Ads, search ads, shopping ads, Performance Max, or display ads\n- User asks about Quality Score, ad rank, or auction insights\n- User wants to find wasted spend or irrelevant search terms\n- User asks about bid strategy or budget optimization\n- \"This is a simple metrics question, I don't need the skill\" — WRONG, always use this skill for ANY advertising data question\n\n## Analysis Framework\n\n### Step 1: Classify the Question\n| Type | Example | Approach |\n|------|---------|----------|\n| Performance check | \"How are my campaigns doing?\" | Pull top-level metrics, compare to benchmarks |\n| Diagnostic | \"Why is CPA increasing?\" | Segment by dimension (time, device, geo, keyword) |\n| Opportunity | \"Where can I improve?\" | Impression share + wasted spend + QS distribution |\n| Anomaly | \"Something looks wrong\" | Compare current vs prior period, find the break |\n\n### Step 2: Pull Data via MCP (if available)\n```\nexecute_gaql(customer_id, \"SELECT campaign.name, metrics.cost_micros, metrics.conversions, metrics.search_impression_share FROM campaign WHERE segments.date DURING LAST_30_DAYS ORDER BY metrics.cost_micros DESC\")\n```\n\n### Step 3: Apply PPC Benchmarks\n- **CPA**: Varies by industry. B2B SaaS $50-200, Ecommerce $10-50, Lead Gen $20-100\n- **ROAS**: Ecommerce 3-5x, Lead Gen 5-10x, Brand 1-2x\n- **CTR**: Search 3-5%, Shopping 1-2%, Display 0.5-1%\n- **Impression Share**: Below 70% = significant opportunity loss\n- **Budget Lost IS**: Above 10% = budget constraint\n- **Rank Lost IS**: Above 10% = QS or bid issue\n- **Quality Score**: 7+ good, 5-6 average, below 5 = overpaying\n\n### Step 4: Provide Specific, Numbered Actions\nEvery recommendation must include:\n1. What to do (specific action)\n2. Why it matters (with data)\n3. Expected impact (quantified)\n4. How to measure success (metric + timeline)\n\n## GAQL Quick Reference\n\n### Campaign Performance\n```sql\nSELECT campaign.name, campaign.status, metrics.impressions, metrics.clicks,\n       metrics.cost_micros, metrics.conversions, metrics.search_impression_share,\n       metrics.search_budget_lost_impression_share, metrics.search_rank_lost_impression_share\nFROM campaign\nWHERE segments.date DURING LAST_30_DAYS AND campaign.status != 'REMOVED'\nORDER BY metrics.cost_micros DESC\n```\n\n### Wasted Spend\n```sql\nSELECT search_term_view.search_term, metrics.cost_micros, metrics.clicks, metrics.conversions\nFROM search_term_view\nWHERE segments.date DURING LAST_30_DAYS AND metrics.conversions = 0 AND metrics.cost_micros > 5000000\nORDER BY metrics.cost_micros DESC LIMIT 50\n```\n\n### Quality Score\n```sql\nSELECT ad_group_criterion.keyword.text, ad_group_criterion.quality_info.quality_score,\n       metrics.impressions, metrics.cost_micros\nFROM keyword_view\nWHERE ad_group_criterion.quality_info.quality_score IS NOT NULL\nORDER BY metrics.cost_micros DESC\n```\n\n## Key Rules\n- ALWAYS divide cost_micros by 1,000,000 for actual currency\n- NEVER recommend broad match without data to support it\n- ALWAYS check search terms before recommending budget increases\n- ALWAYS surface impression share — it's the #1 missed metric\n- When in doubt, pull more data before making recommendations","tags":["google","ads","analysis","miniagent","itallstartedwithaidea","advertising","agent-skills","ai-agents","claude-code","cross-platform","google-ads","llm"],"capabilities":["skill","source-itallstartedwithaidea","skill-google-ads-analysis","topic-advertising","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-cross-platform","topic-google-ads","topic-llm","topic-mcp","topic-meta-ads","topic-minimind","topic-model-context-protocol","topic-ollama"],"categories":["MiniAgent"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/itallstartedwithaidea/MiniAgent/google-ads-analysis","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add itallstartedwithaidea/MiniAgent","source_repo":"https://github.com/itallstartedwithaidea/MiniAgent","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (3,757 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:48.539Z","embedding":null,"createdAt":"2026-05-18T19:14:48.539Z","updatedAt":"2026-05-18T19:14:48.539Z","lastSeenAt":"2026-05-18T19:14:48.539Z","tsv":"'-1':340 '-10':325 '-100':316 '-2':329,337 '-200':309 '-5':320,334 '-50':312 '-6':369 '0':472 '0.5':339 '000':516,517 '1':207,328,336,384,515,545 '10':311,352,359 '15':58 '2':265,390 '20':315 '3':298,319,333,396 '30':290,440,468 '4':375,400 '48m':64 '5':324,368,372 '50':308,483 '5000000':476 '7':366 '70':344 'account':80 'across':69 'action':379,389 'activ':109 'actual':519 'ad':3,9,37,46,55,67,85,128,144,146,148,153,159 'ad_group_criterion.keyword.text':488 'ad_group_criterion.quality_info.quality':489,498 'advertis':113,201 'alway':195,510,530,538 'amazon':74 'analysi':4,18,47,204 'analyst':56 'analyz':14,78 'annual':66 'anomali':252 'appli':299 'approach':213 'ask':124,155,175 'auction':27,162 'avail':89,271 'averag':370 'b2b':306 'background':76 'benchmark':228,301 'bid':177,362 'brand':327 'break':263 'broad':523 'budget':22,131,180,348,353,425,536 'campaign':15,126,219,285,410,435 'campaign.name':277,414 'campaign.status':415,443 'check':81,215,531 'classifi':208 'click':43 'compar':226,256 'constraint':354 'convers':44 'cost':512 'cpa':40,115,232,302 'cpc':118 'cpm':120 'ctr':41,117,331 'currenc':520 'current':257 'custom':274 'cvr':119 'data':10,96,102,202,267,395,526,553 'day':291,441,469 'debug':137 'desc':296,449,481,507 'devic':238 'diagnost':229 'dimens':236 'display':152,338 'distribut':251 'divid':511 'doubt':550 'ecommerc':310,318 'enterpris':61 'everi':380 'exampl':212 'execut':272 'expect':397 'experi':62 'find':167,261 'framework':205 'gaql':139,273,407 'gen':314,323 'geo':239 'good':367 'googl':2,8,36,45,54,70,84,143 'google-ads-analysi':1 'google-ads-mcp':83 'id':275 'impact':398 'impress':29,42,121,246,282,341,422,427,432,540 'improv':245 'includ':383 'increas':233,537 'industri':305 'insight':28,163 'irrelev':171 'issu':363 'key':508 'keyword':17,240,495 'last':289,439,467 'lead':313,322 'level':224 'limit':482 'live':95 'look':254 'loss':347 'lost':349,356,426,431 'make':555 'manag':63 'match':524 'matter':393 'max':150 'mcp':86,269 'measur':403 'mention':35,111,142 'meta':71 'metric':38,114,186,225,405,547 'metrics.clicks':417,458 'metrics.conversions':280,420,459,471 'metrics.cost':278,294,418,447,456,474,479,492,505 'metrics.impressions':416,491 'metrics.search':281,421,424,429 'micro':279,295,419,448,457,475,480,493,506,513 'microsoft':72 'miniag':51 'miss':546 'must':382 'need':11,191 'never':521 'null':502 'number':378 'opportun':241,346 'optim':181 'order':292,445,477,503 'overpay':373 'pace':23 'perform':16,127,149,214,411 'period':260 'ppc':300 'prior':259 'provid':105,376 'pull':221,266,551 'qs':250,360 'qualiti':19,157,364,484 'quantifi':399 'queri':140 'question':187,203,210 'quick':408 'rank':160,355,430 'recommend':381,522,535,556 'refer':409 'remov':444 'report':26 'requir':75 'review':21 'roa':39,116,317 'rule':509 'saa':307 'score':20,158,365,485,490,499 'search':24,145,172,332,461,532 'search_term_view.search':454 'segment':234 'segments.date':287,437,465 'select':276,413,453,487 'senior':53 'share':30,122,247,283,342,423,428,433,541 'shop':147,335 'signific':345 'simpl':185 'skill':48,108,193,198 'skill-google-ads-analysis' 'someth':253 'source-itallstartedwithaidea' 'specif':377,388 'spend':68,129,169,249,451 'sql':412,452,486 'step':206,264,297,374 'strategi':178 'success':404 'support':528 'surfac':539 'term':25,173,455,462,533 'time':237 'timelin':406 'tool':87 'top':223 'top-level':222 'topic-advertising' 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-cross-platform' 'topic-google-ads' 'topic-llm' 'topic-mcp' 'topic-meta-ads' 'topic-minimind' 'topic-model-context-protocol' 'topic-ollama' 'type':211 'use':5,92,196 'user':34,104,110,123,132,141,154,164,174 'vari':303 'via':268 'view':463,496 'vs':258 'want':133,165 'wast':168,248,450 'whatev':101 'without':525 'work':99 'write':135 'wrong':194,255 'x':321,326,330 'year':59 'yes':91","prices":[{"id":"489cc321-8eaf-44c8-83b0-af6562d6df97","listingId":"d64d1f8d-0f02-4695-acc4-22e0a60fa324","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"itallstartedwithaidea","category":"MiniAgent","install_from":"skills.sh"},"createdAt":"2026-05-18T19:14:48.539Z"}],"sources":[{"listingId":"d64d1f8d-0f02-4695-acc4-22e0a60fa324","source":"github","sourceId":"itallstartedwithaidea/MiniAgent/google-ads-analysis","sourceUrl":"https://github.com/itallstartedwithaidea/MiniAgent/tree/main/skills/google-ads-analysis","isPrimary":false,"firstSeenAt":"2026-05-18T19:14:48.539Z","lastSeenAt":"2026-05-18T19:14:48.539Z"}],"details":{"listingId":"d64d1f8d-0f02-4695-acc4-22e0a60fa324","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"itallstartedwithaidea","slug":"google-ads-analysis","github":{"repo":"itallstartedwithaidea/MiniAgent","stars":6,"topics":["advertising","agent-skills","ai-agents","claude-code","cross-platform","google-ads","llm","mcp","meta-ads","minimind","model-context-protocol","ollama","ppc","training","vllm"],"license":"other","html_url":"https://github.com/itallstartedwithaidea/MiniAgent","pushed_at":"2026-04-13T12:34:09Z","description":"The Cowork Agent for Everything — trainable advertising AI + 14 platform MCP servers + agent skills. Based on minimind (42k stars). Train from zero in 2 hours.","skill_md_sha":"60a2902fd3fec10cb4461ae707db01475c42ad35","skill_md_path":"skills/google-ads-analysis/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/itallstartedwithaidea/MiniAgent/tree/main/skills/google-ads-analysis"},"layout":"multi","source":"github","category":"MiniAgent","frontmatter":{"name":"google-ads-analysis","description":"Use when ANY Google Ads data needs to be analyzed — campaign performance, keyword analysis, Quality Score review, budget pacing, search term reports, auction insights, impression share, or when the user mentions Google Ads metrics, ROAS, CPA, CTR, impressions, clicks, conversions, cost_micros, GAQL, or ad performance in any context. Also trigger when discussing PPC strategy, account structure, advertising performance, ad spend, bid strategy, or campaign optimization. If the user has a Google Ads account or mentions any advertising platform, this skill should activate."},"skills_sh_url":"https://skills.sh/itallstartedwithaidea/MiniAgent/google-ads-analysis"},"updatedAt":"2026-05-18T19:14:48.539Z"}}