--- name: google-ads-deep-audit description: Expert level Google Ads account audit with 77+ GAQL queries across 31 categories. Uses adloop MCP (primary, API v23) and google-ads MCP (fallback, API v20). ALWAYS invoke when the user says 'Google Ads audit', 'audit Google', 'check my Google account', 'Google Ads health check', 'PMax audit', 'search campaign audit', 'Google performance review', or any request to deeply analyze a Google Ads account. Also invoke as part of full audit orchestration. This project-level skill takes priority over any global ads skill. Use this skill when MCP data access is available. model: opus context: fork argument-hint: "[client-name] [customer-id]" allowed-tools: Read, Grep, Glob, Bash, Write, Agent, mcp__adloop__run_gaql, mcp__adloop__get_campaign_performance, mcp__adloop__get_ad_performance, mcp__adloop__get_keyword_performance, mcp__adloop__get_search_terms, mcp__adloop__analyze_campaign_conversions, mcp__adloop__landing_page_analysis, mcp__adloop__attribution_check, mcp__adloop__get_negative_keywords, mcp__adloop__health_check, mcp__google-ads__list_accounts, mcp__google-ads__get_campaign_performance, mcp__google-ads__get_ad_performance, mcp__google-ads__get_ad_creatives, mcp__google-ads__run_gaql, mcp__google-ads__execute_gaql_query, mcp__google-ads__get_image_assets, mcp__google-ads__get_asset_usage, mcp__google-ads__get_account_currency, mcp__google-ads__list_resources, mcp__google-analytics__run_report, mcp__google-analytics__get_account_summaries --- # Google Ads Deep Audit Expert level account audit that goes far beyond surface metrics. This skill produces findings and strategies that a senior Google Ads practitioner with 20 years of platform experience would find genuinely useful and time saving. ## MCP Tool Strategy **Primary: adloop MCP (mcp__adloop__*)** — API v23, 29 tools, read+write with safety guardrails. Use this for all queries by default. Key tools: - `mcp__adloop__run_gaql` — Raw GAQL queries against API v23 (supports newest fields and resources) - `mcp__adloop__get_campaign_performance` — Campaign metrics with built in date range handling - `mcp__adloop__get_ad_performance` — Ad level creative performance data - `mcp__adloop__get_keyword_performance` — Keyword metrics including quality score components - `mcp__adloop__get_search_terms` — Search term report with spend and conversion data - `mcp__adloop__analyze_campaign_conversions` — Conversion action breakdown per campaign - `mcp__adloop__landing_page_analysis` — Landing page performance metrics - `mcp__adloop__attribution_check` — Attribution model and conversion path analysis - `mcp__adloop__get_negative_keywords` — Negative keyword lists and coverage - `mcp__adloop__health_check` — Quick account health snapshot **Fallback: google-ads MCP (mcp__google-ads__*)** — API v20, read only. Use when adloop is unavailable or for cross verification of results. The v20 API may lack some newer fields (conversion value rules, demand gen campaigns, brand restrictions) that v23 exposes. **API Version Differences (v23 vs v20):** - v23 adds conversion_value_rule resource for querying active value rules - v23 supports demand_gen_campaign fields and metrics - v23 includes brand restriction and brand guideline fields on PMax - v23 has expanded ad_schedule_view resource - v23 supports asset_group_top_combination_asset for PMax creative combos - When a query fails on one MCP, try the other before reporting empty data ## Mandatory Audit Rules (V2) Load these rules BEFORE any analysis. They apply to every agent and every finding: 1. `.claude/rules/period-comparison-protocol.md` (every metric shows 30d vs prev 30d AND 14d vs prev 14d) 2. `.claude/rules/change-history-first.md` (pull change_event BEFORE performance analysis) 3. `.claude/rules/recommendation-depth-standard.md` (from/to/rationale/impact/risk for every recommendation) 4. `.claude/rules/exact-entity-names.md` (verbatim API names for campaigns, keywords, audiences, products) 5. `~/.claude/skills/google-ads-expertise/SKILL.md` (Layer 1 knowledge base: load relevant files per the index before analysis to understand WHY behind audit findings. This is universal Google Ads knowledge. OFM methodology is Layer 2. When Layer 1 and Layer 2 conflict, Layer 2 takes precedence.) 6. `.claude/frameworks/ppc-analysis-framework.md` (MASTER methodology: full census, campaign classification into 5 buckets, lever identification and sequencing, budget eligibility criteria, secondary analysis layers, monitoring rule generation, and 8-section report structure. Load the client config from `.claude/rules/client-configs/` for margin tiers, breakeven ROAS, targets, and account-specific constraints before any analysis.) **Cross Platform Note:** For blended ROAS calculation across Google Ads and Meta Ads, reference Phase 6 of `.claude/rules/meta-ads-analysis-framework.md`. The Google Ads audit should include the blended ROAS table in its Executive Summary but does NOT load the full Meta analysis methodology. ## Core Principles 1. **Depth over breadth.** Every finding must include specific data, dollar impact, and actionable next steps. "Quality scores are low" is not a finding. "Keyword 'blessed performance coupon code' [BROAD] has QS 6 with Below Average ad relevance, costing $139/month. Fix: add 'coupon' to headline. Expected QS improvement to 8+ saves 20% CPC." is a finding. 2. **Verification first.** Every data point must be verified per `.claude/rules/data-verification.md`. Never report empty API data as a finding. Always use the correct GAQL fields per `.claude/rules/gaql-field-reference.md`. 3. **POAS over ROAS.** When margin data is available (campaign labels, product categories), calculate Profit on Ad Spend, not just Revenue on Ad Spend. A campaign with 20x ROAS on 5% margin products is worse than 5x ROAS on 50% margin products. 4. **Cross reference everything.** Does the device data explain the geo data? Does the time of day data explain the day of week data? Does the search term data explain the keyword data? Isolated findings are less valuable than connected insights. 5. **Campaign level optimization.** Every enabled campaign must have its own mini-audit subsection covering: settings, bidding (current vs recommended with rationale), budget (IS lost to budget), audiences (which are assigned and how), and specific recommendations. 6. **Product level depth.** For ecommerce accounts with 1,000+ SKUs, use the queries in `references/product-deep-analysis.md` for brand-level rollups, category analysis, zombie detection, and margin tier performance. Do not limit to top 50 samples. ## Arguments $ARGUMENTS should include: - Client name (required) - Google Ads Customer ID (required, 10 digits no dashes) - Date range (optional, defaults to last 90 days) - Known margin tiers or labels (optional, will be discovered from account labels) - Specific concerns (optional, e.g., "ROAS declining", "PMax cannibalizing search") - Business model (ecommerce, lead gen, etc.) ## Instructions ### Step 1: Load Client Context Read `clients/{client-name}/` for existing profile, history, open items. Read `.claude/rules/gaql-field-reference.md` before writing ANY GAQL queries. ### Step 2: Change History and Period Data Collection BEFORE running performance queries, pull change history for the last 60 days: ```sql SELECT change_event.change_date_time, change_event.user_email, change_event.change_resource_type, change_event.changed_fields, change_event.resource_change_operation, campaign.name, ad_group.name FROM change_event WHERE change_event.change_date_time DURING LAST_60_DAYS AND change_event.change_resource_type IN ('CAMPAIGN', 'AD_GROUP', 'AD_GROUP_CRITERION', 'AD_GROUP_AD', 'CAMPAIGN_BUDGET', 'BIDDING_STRATEGY', 'CONVERSION_ACTION', 'CAMPAIGN_CRITERION', 'SHARED_SET', 'SHARED_CRITERION', 'ASSET', 'ASSET_GROUP', 'ASSET_GROUP_LISTING_GROUP_FILTER') ORDER BY change_event.change_date_time DESC LIMIT 200 ``` Calculate explicit date ranges for period comparison (use yesterday as end date): - Current 30D and Previous 30D - Current 14D and Previous 14D Pass these date ranges and the change history summary to every agent prompt. ### Step 3: Account Discovery Run these queries first to understand account structure: **Labels and margin tiers:** ```sql SELECT label.name, label.id FROM label ``` **Conversion actions (which are included in bidding):** ```sql SELECT conversion_action.name, conversion_action.id, conversion_action.status, conversion_action.type, conversion_action.category, conversion_action.include_in_conversions_metric FROM conversion_action WHERE conversion_action.status = 'ENABLED' ``` **Campaign structure with CORRECT bidding fields:** ```sql SELECT campaign.name, campaign.status, campaign.advertising_channel_type, campaign.bidding_strategy_type, campaign.maximize_conversion_value.target_roas, campaign.maximize_conversions.target_cpa_micros, campaign.labels, campaign_budget.amount_micros FROM campaign WHERE campaign.status = 'ENABLED' ORDER BY campaign.name ``` ### Step 3: Deploy Parallel Agents Deploy agents simultaneously using the GAQL query templates in `references/gaql-queries.md`. **Standard 6 Agent Swarm (default for most audits):** 1. **Account Health Agent:** Conversion actions, change history (last 30 days), bidding strategy verification, budget analysis 2. **PMax Specialist Agent:** Asset group performance, listing group efficiency, audience signals, search themes, placement insights 3. **Search Specialist Agent:** Keywords with QS+impression share, search terms with N gram analysis, auction insights, ad copy performance, negative keyword coverage 4. **Shopping Specialist Agent:** Product performance, product group efficiency, feed issues, disapprovals 5. **Audience & Geo Agent:** Demographics (age x gender), state level geography, audience performance, device x time breakdowns 6. **Wasted Spend Agent:** Zero conversion keywords/terms/placements/audiences, budget waste quantification with dollar amounts **Deep Audit 9 Agent Swarm (for comprehensive engagements or large accounts):** Extends the standard 6 agents with 3 additional specialists: 7. **Conversion Value Rules Agent:** Queries conversion_value_rule resource (v23), maps active rules to campaigns, quantifies value rule impact on reported ROAS vs true ROAS, checks for missing margin based rules 8. **Demand Gen and Video Agent:** Demand gen campaign performance, YouTube placement efficiency, video completion rates, audience expansion effectiveness 9. **Ad Schedule and Brand Agent:** Ad schedule performance by hour and day, brand restriction compliance on PMax, brand guideline adherence, scheduling opportunity analysis **Emergency Triage (for urgent performance drops):** Compressed 3 agent pattern for rapid diagnosis: 1. **Change + Attribution Agent:** Change history correlated with performance shifts, attribution model comparison, conversion lag analysis 2. **Budget + Bidding Agent:** Budget constraint detection, bidding strategy status, tROAS/tCPA target vs actual, learning period identification 3. **Wasted Spend Agent:** Immediate waste identification, negative keyword gaps, placement exclusion opportunities ### Step 4: Synthesize Findings After all agents return: 1. Cross reference findings across agents (tracking issues explain attribution gaps, device data explains geo data) 2. Deduplicate overlapping findings 3. Calculate POAS where margin data is available 4. Quantify dollar impact for every finding 5. Apply priority tiers (Critical/High/Medium/Low) per OFM audit order 6. Check every finding against `.claude/rules/data-verification.md` ### Step 5: Generate Deliverable Per `.claude/frameworks/deliverable-recipes.md`: - Executive Summary with account health score - Score Snapshot (0 to 100) - Issue Inventory by Priority Tier - Detailed Findings with data tables - Action Plan (Immediate / Short Term / Medium Term / Ongoing) - POAS Analysis by margin tier (if applicable) Format as Word doc (.docx) per Michael's preferences. ## Query Categories (31 total) ### Original 14 Categories 1. Labels and margin tiers 2. Conversion actions and bidding inclusion 3. Campaign structure and bidding strategy 4. PMax asset group performance 5. PMax listing groups and product structure 6. PMax audience signals 7. Keyword quality scores and impression share 8. Search term analysis and N grams 9. Auction insights and competitive landscape 10. Geographic performance (state level) 11. Device and time of day breakdowns 12. Demographics (age x gender) 13. Change history (last 30 days) 14. Wasted spend quantification ### New v23 Categories (17 additional) 15. Conversion value rules (active rules, conditions, value adjustments) 16. Brand restrictions on PMax campaigns 17. Brand guidelines compliance 18. Demand gen campaign performance 19. Video campaign completion and view rates 20. Ad schedule performance by hour 21. Ad schedule performance by day of week 22. Asset group top combination analysis 23. Negative keyword list coverage and gaps 24. Landing page experience metrics 25. Attribution model comparison 26. Conversion path and lag analysis 27. Campaign level conversion action breakdown 28. Budget pacing and constraint detection 29. Audience segment performance 30. Placement exclusion opportunities 31. Search theme overlap across PMax campaigns ## Expert Level Analysis Checklist Beyond the basic metrics, verify these expert areas: - [ ] PMax vs Search cannibalization (brand terms showing in PMax instead of Search) - [ ] PMax channel level spend distribution (Shopping vs Search vs Display vs Video) - [ ] tROAS targets vs actual ROAS by campaign (is the target too low/high?) - [ ] Conversion lag analysis (how many days between click and conversion?) - [ ] Budget constraint analysis (which campaigns hit cap before end of day?) - [ ] Audience signal effectiveness in PMax (are signals helping or not?) - [ ] Search theme overlap across PMax campaigns - [ ] Product group structure efficiency (catch all vs granular) - [ ] Ad schedule vs actual conversion times - [ ] Geographic bid adjustment opportunities - [ ] Placement exclusion opportunities (Display/YouTube placements in PMax) - [ ] Conversion value rules usage (are they leveraged?) - [ ] Change history correlation (did recent changes cause performance shifts?) - [ ] Smart Bidding learning state and strategy health - [ ] RSA combination serving patterns and ad strength distribution - [ ] Negative keyword conflicts (positives blocked by negatives) - [ ] Customer Match list health (size, match rate, freshness) - [ ] Policy disapprovals blocking impressions on active ads - [ ] Seasonality adjustments and data exclusions - [ ] Cross segment analysis (device x hour, geo x device, audience x campaign type) - [ ] Bid simulator opportunities for scaling - [ ] Active experiments and their statistical significance - [ ] PMax asset performance labels (BEST/GOOD/LOW) across asset types - [ ] Brand exclusion lists in PMax (preventing cannibalization) - [ ] QS trending over time (improving or degrading?) - [ ] Conversion value rule impact on reported vs true ROAS - [ ] Demand gen campaign incrementality (if applicable) - [ ] Brand restriction adherence on PMax (if brand guidelines exist)