[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M718MZVCWXQ08P4BYQ50PNMJ":3,"skill-same:01M718MZVCWXQ08P4BYQ50PNMJ":60},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":44,"updatedAt":45,"install":46,"resources":59},"01M718MZVCWXQ08P4BYQ50PNMJ","google-ads-account-audit",null,"Systematic 70+ checkpoint audit covering tracking, structure, keywords, ads, bidding, budgets, audiences, and competitive positioning — with ICE-prioritized recommendations.","narayan-metaflow\u002Fmetaflow-marketing-skills","narayan-metaflow","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F181216517?v=4","01M718MB0Y27AYKTC9ZKT16V86","narayan","01M718MB209XRYRTS3ZZFK0JXS",19,"MIT","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fgoogle-ads-account-audit\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"google ads account audit","ads","audit","google ads","google","competitive","checkpoint","competitive positioning","positioning","with","structure","recommendations","systematic","tracking","2026-11-10 10:12:30",false,"---\nname: google-ads-account-audit\ndescription: \"Systematic 70+ checkpoint audit covering tracking, structure, keywords, ads, bidding, budgets, audiences, and competitive positioning — with ICE-prioritized recommendations.\"\n---\n\n## Process\n\n1. **Collect data** — Request or gather: campaign data export, search term report (90 days), Quality Score report, auction insights, change history (90 days), conversion tracking status, and account-level settings\n2. **Run the audit checklist** — Work through each section below, flagging issues as Critical (red), Optimization (yellow), or Working Well (green)\n3. **Score account health** — Calculate overall health score based on findings\n4. **ICE-prioritize recommendations** — Score each finding: Impact (1-10) x Confidence (1-10) x Ease (1-10)\n5. **Deliver action plan** — Structured output with prioritized fixes and expected impact\n\n## Audit Checklist\n\n### Section 1: Tracking & Measurement\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Google Tag active | gtag.js or GTM container firing on all pages | Missing or intermittent |\n| GA4 linked | GA4 property connected to Google Ads | Not linked |\n| Conversion actions | List all conversion actions — are they meaningful? | Counting micro-conversions as primary |\n| Enhanced conversions (web) | Hashing email\u002Fphone at tag level for better matching | Not implemented |\n| Enhanced conversions (leads) | GCLID-based offline import for lead gen accounts | Not implemented for lead gen |\n| Attribution model | Data-driven attribution is default and recommended | Still on last-click without reason |\n| Conversion windows | Windows match actual sales cycle | Default windows for long sales cycle |\n| Cross-account conversion tracking | Using manager-level conversion tracking if MCC | Duplicate conversion counting across accounts |\n| Offline conversion import | Uploading CRM data back to Google Ads | Lead gen account with no offline import |\n| Meta tracking | Is the client also running Meta? Check if CAPI is set up | Meta tracking gaps — refer to **meta-ads-tracking-setup** skill |\n\n### Section 2: Account Structure\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Campaign-to-objective alignment | Each campaign has a clear strategic purpose | Campaigns mixing objectives |\n| Campaign count | 6-10 campaigns with clear distinctions for complex accounts | Over-segmented (20+ campaigns diluting budget) or under-segmented (1-2 campaigns for diverse products) |\n| Search + Display mixing | Search and Display should be separate campaigns | Mixed in same campaign |\n| PMax asset groups | Segmented by product\u002Fservice line with distinct audiences | Single asset group for diverse products |\n| AI Max setup | Text guidelines configured, Smart Bidding Exploration monitored | AI Max running without text guidelines (launched September 2025, avg 34% conversion improvement) |\n| Demand Gen campaigns | Present if awareness\u002Fconsideration is a goal | Missing from full-funnel accounts (Power Pack strategy: Demand Gen + AI Max + PMax) |\n| Naming conventions | Consistent, parseable naming taxonomy | Inconsistent or absent naming system |\n| Ad group theming | Tight keyword-to-ad-group mapping by intent | Bloated ad groups mixing unrelated keywords |\n\n### Section 3: Keywords & Match Types\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Match type distribution | Balance of broad, phrase, exact appropriate for account maturity | 100% broad match without Smart Bidding, or 100% exact match limiting reach |\n| Broad match readiness | Broad match requires Smart Bidding + 50+ conversions\u002Fmonth | Broad match with manual bidding or \u003C50 conversions\u002Fmonth |\n| Search term waste | N-gram analysis on search term report | N-grams with $50+ spend and 0 conversions |\n| Negative keyword coverage | Themed negative lists: competitors, jobs, free\u002FDIY, irrelevant industries | No shared negative lists, or lists not updated in 90+ days |\n| Keyword conflicts | Keywords in different campaigns competing against each other | Same keyword in multiple campaigns without clear priority |\n| PMax search term cannibalization | PMax stealing queries that Search campaigns should serve | High-value queries showing in PMax search term insights instead of Search |\n| Low search volume keywords | Keywords flagged as low search volume | >20% of keywords with low search volume status |\n| Fractional conversion distortion | Data-driven attribution splits conversions into fractions | Evaluating keyword CPA on conversions \u003C 1 — filter to conversions > 1 before judging CPA |\n\n**N-gram analysis quick method:** Break search queries into 1-grams, 2-grams, 3-grams. Aggregate clicks, spend, conversions, and CPA by n-gram. Action framework:\n- N-gram with $50+ spend, 0 conversions → Add as negative keyword\n- N-gram with strong CPA → Promote to exact-match keyword in dedicated ad group\n- N-gram with high impressions, low CTR → Investigate intent mismatch\n\nFor automated n-gram analysis, use the **google-ads-scripts** skill (Brainlabs Search Query Mining Script updated for GAQL by Nils Rooijmans, March 2025).\n\n### Section 4: Ads & Creative\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| RSA completeness | 15 headlines + 4 descriptions per RSA | Under-filled RSAs (\u003C10 headlines) |\n| RSA asset performance | Asset-level reporting (2025 feature) | Multiple \"Low\" rated headlines\u002Fdescriptions not replaced |\n| Ad strength | Google's ad strength indicator | \"Poor\" or \"Average\" — target \"Good\" or \"Excellent\" |\n| Headline diversity | Headlines cover different angles (features, benefits, urgency, social proof) | All headlines say the same thing with minor variations |\n| Pin strategy | High-intent or brand headlines pinned to position 1 | No pins and key messages buried, or over-pinning limiting combinations |\n| Extensions\u002Fassets | Sitelinks (4-6), callouts, structured snippets, images, price, call | Missing extension types — each adds CTR |\n| Landing page relevance | Ad message matches landing page headline and CTA | Message mismatch between ad and landing page |\n| Mobile optimization | Landing pages load \u003C3 seconds, mobile-friendly | Slow load or poor mobile experience |\n\n### Section 5: Bidding & Budget\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Bid strategy appropriateness | Strategy matches campaign maturity and conversion volume | See Bid Strategy Maturity table below |\n| ECPC check | **ECPC deprecated March 31, 2025** — campaigns not migrated now run on Manual CPC | Any campaign still showing ECPC status |\n| tCPA\u002FtROAS targets | Targets realistic vs actual performance | Target CPA set 50%+ below actual CPA (algorithm can't deliver) |\n| Smart Bidding readiness | Minimum conversion volume for strategy tier | tCPA with \u003C30 conversions\u002Fmonth, tROAS with \u003C50 conversions\u002Fmonth |\n| Portfolio bid strategies | Shared strategies across related campaigns | Related campaigns on individual strategies that could benefit from pooling (typical lift: 19-27% ROAS improvement) |\n| Budget sufficiency | Daily budget adequate for bid strategy | PMax budget \u003C 3x target CPA daily, or \u003C $50-100\u002Fday |\n| Budget capping | Campaigns limited by budget | Impression share lost to budget > 20% on profitable campaigns |\n| AI Max learning phase | 7-14 days for new AI Max campaigns | Changes made during learning phase (September 2025 global beta) |\n| Impression share analysis | Search impression share vs targets | \u003C30% = likely underbidding; >95% with low ROI = likely overspending |\n| Impression share lost (rank) | Lost to ad rank specifically | High % lost to rank = Quality Score or bid issue |\n| Impression share lost (budget) | Lost to budget specifically | High % lost to budget = increase budget or reduce targeting |\n\n**Bid Strategy Maturity Table:**\n\n| Monthly Conversions | Recommended Strategy | Notes |\n|--------------------|---------------------|-------|\n| 0-15 | Manual CPC or Maximize Clicks (with bid cap) | Not enough data for automation |\n| 15-30 | Maximize Conversions | Building data, algorithm learning |\n| 30-50 | Maximize Conversions or tCPA | Enough for tCPA if CPA is stable |\n| 50+ | tCPA or tROAS | Full Smart Bidding — tROAS needs 50+, ideally 100+ |\n| 50+ with broad match | Broad match + tCPA\u002FtROAS | Recommended 2025 default for mature accounts |\n\n### Section 6: Quality Score Deep Dive\n\nQuality Score = expected CTR + ad relevance + landing page experience. Analyze at component level, not just the composite number.\n\n| Component | What Drives It | Fix If Below Average |\n|-----------|---------------|---------------------|\n| Expected CTR | Historical CTR vs competitors for same query | Improve ad copy relevance, test new headlines, add negative keywords to filter irrelevant impressions |\n| Ad Relevance | How closely ad matches search intent | Tighten ad group themes, write intent-specific headlines, use keyword insertion where appropriate |\n| Landing Page Experience | Page relevance, speed, mobile-friendliness, navigation ease | Improve message match, speed (\u003C3 sec), mobile UX, add relevant content |\n\n**Action priority:** Landing page experience has the widest impact (affects all keywords pointing to that page). Fix landing pages first, then ad relevance, then expected CTR.\n\n### Section 7: Audiences\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Remarketing lists | Active, properly sized, segmented by recency | No remarketing lists, or lists expired |\n| Customer match | CRM lists uploaded and refreshed | No customer match lists for accounts with CRM data |\n| Audience segments | In-market, affinity, custom segments applied | No audience signals on PMax\u002FDemand Gen campaigns |\n| Observation vs targeting | Audiences in correct mode per campaign goal | Observation mode where targeting is intended (or vice versa) |\n| Audience performance | Segment-level performance review | Segments with high spend and no conversions not excluded |\n\n### Section 8: Competitive & Change History\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Auction Insights trends | Impression share, overlap rate, position above rate over 90 days | New competitor gaining significant share |\n| Change history correlation | Last 90 days of account changes vs performance shifts | Performance drop aligns with a specific change (bid strategy switch, new campaign, budget cut) |\n| Competitor ad copy | Google Ads Transparency Center review | Competitors testing offers or messaging you're not responding to |\n\n## Health Score Calculation\n\nScore each section 0-10 based on findings:\n\n| Section | Weight | Score |\n|---------|--------|-------|\n| Tracking & Measurement | 20% | \u002F10 |\n| Account Structure | 10% | \u002F10 |\n| Keywords & Match Types | 20% | \u002F10 |\n| Ads & Creative | 10% | \u002F10 |\n| Bidding & Budget | 20% | \u002F10 |\n| Quality Score | 10% | \u002F10 |\n| Audiences | 5% | \u002F10 |\n| Competitive | 5% | \u002F10 |\n| **Weighted Total** | | **\u002F10** |\n\n**Interpretation:** 8-10 = Healthy, 6-7.9 = Needs optimization, 4-5.9 = Significant issues, \u003C4 = Critical — major restructuring needed.\n\n## Output Format\n\n```\n## Google Ads Account Audit\n\n### Health Score: [X.X \u002F 10] — [Healthy \u002F Needs Optimization \u002F Significant Issues \u002F Critical]\n\n### Critical Issues (fix immediately)\n1. **[Issue]** — [What's wrong, specific data] — ICE: [I×C×E = score]\n   - Action: [Specific fix]\n   - Expected impact: [Estimated improvement]\n2. ...\n\n### Optimization Opportunities (fix within 2 weeks)\n1. **[Issue]** — [What's wrong, specific data] — ICE: [score]\n   - Action: [Specific fix]\n   - Expected impact: [Estimated improvement]\n2. ...\n\n### Working Well (maintain)\n- [What's working and why]\n- ...\n\n### Priority Action Plan (next 30 days)\n| Priority | Action | ICE Score | Timeline | Owner |\n|----------|--------|-----------|----------|-------|\n| 1 | [Highest ICE action] | [score] | Week 1 | [who] |\n| 2 | ... | ... | Week 1-2 | ... |\n| 3 | ... | ... | Week 2-4 | ... |\n\n### 2025 Platform Change Flags\n- [ ] ECPC migration status (deprecated March 2025)\n- [ ] AI Max for Search adoption opportunity (September 2025)\n- [ ] PMax negative keywords enabled (January 2025)\n- [ ] PMax search term reporting reviewed\n- [ ] Enhanced conversions implemented\n- [ ] Power Pack strategy evaluated (Demand Gen + AI Max + PMax)\n```\n\n## Example\n\n**Input:** \"Here's my Google Ads data for last 30 days. I'm spending $15K\u002Fmonth across 4 Search campaigns and 1 PMax campaign. CPA went from $45 to $72 over the past 6 weeks. Help me figure out what's wrong.\"\n\n**Output:**\n\n## Google Ads Account Audit\n\n### Health Score: 5.2 \u002F 10 — Significant Issues\n\n### Critical Issues\n1. **ECPC still active on 2 Search campaigns** — ECPC was deprecated March 31, 2025. These campaigns reverted to Manual CPC, losing Smart Bidding optimization. — ICE: 9×9×9 = 729\n   - Action: Migrate to Maximize Conversions (both campaigns have 35+ conversions\u002Fmonth — sufficient for tCPA)\n   - Expected impact: 15-25% CPA reduction once algorithm re-learns (7-14 day learning phase)\n\n2. **Search term waste: $2,340\u002Fmonth on zero-conversion n-grams** — N-gram analysis shows \"jobs,\" \"salary,\" and \"careers\" 2-grams account for $1,800 in wasted spend. \"Free\" modifier adds another $540. — ICE: 9×10×10 = 900\n   - Action: Add negative keyword lists: jobs\u002Fcareers, free\u002FDIY. Review remaining zero-conversion n-grams with $50+ spend\n   - Expected impact: ~$2,340\u002Fmonth savings = 15.6% of total spend recovered\n\n3. **PMax campaign budget at $25\u002Fday with $72 CPA** — Below minimum threshold (daily budget should be 3x target CPA = $135+\u002Fday minimum). Algorithm can't optimize with insufficient budget. — ICE: 8×8×7 = 448\n   - Action: Increase PMax daily budget to $150\u002Fday or pause PMax and consolidate into Search campaigns\n   - Expected impact: PMax either performs as designed or stops wasting budget at sub-scale\n\n### Optimization Opportunities\n1. **No enhanced conversions** — Missing 10-15% of conversion attribution. — ICE: 7×8×8 = 448\n   - Action: Implement enhanced conversions for web (tag-level email\u002Fphone hashing)\n   - Expected impact: Better attribution → better Smart Bidding decisions → lower CPA\n\n2. **Quality Score: 4 ad groups with avg QS \u003C 5** — Landing page experience \"Below Average\" on 3 groups, ad relevance \"Below Average\" on 1. — ICE: 7×7×5 = 245\n   - Action: Audit landing pages for message match and page speed. Rewrite ads in low-relevance group\n   - Expected impact: QS improvement from 4→6 typically reduces CPC 15-25%\n\n3. **No audience signals on PMax** — PMax running without remarketing lists or customer match. — ICE: 6×7×8 = 336\n   - Action: Add remarketing audiences and customer match list as audience signals\n   - Expected impact: Faster PMax learning, better targeting accuracy\n\n### Working Well\n- Campaign naming conventions are consistent and parseable\n- Sitelink and callout extensions present on all Search campaigns\n- GA4 properly linked with data-driven attribution active\n\n### Priority Action Plan (next 30 days)\n| Priority | Action | ICE Score | Timeline | Owner |\n|----------|--------|-----------|----------|-------|\n| 1 | Add negative keyword lists (jobs, free\u002FDIY) | 900 | Day 1-2 | Media buyer |\n| 2 | Migrate ECPC campaigns to Maximize Conversions | 729 | Day 1-3 | Media buyer |\n| 3 | Implement enhanced conversions | 448 | Week 1-2 | Developer + media buyer |\n| 4 | Fix PMax budget or consolidate | 448 | Week 1 | Media buyer |\n| 5 | Add audience signals to PMax | 336 | Week 2 | Media buyer |\n| 6 | Landing page QS improvements | 245 | Week 2-4 | Dev + media buyer |\n\n### 2025 Platform Change Flags\n- [x] ECPC migration status — **NOT MIGRATED on 2 campaigns (Critical)**\n- [ ] AI Max for Search — not yet adopted, evaluate after fixing current issues\n- [x] PMax negative keywords — enabled but no negatives added\n- [ ] PMax search term reporting — not yet reviewed (do this week)\n- [ ] Enhanced conversions — not implemented\n- [ ] Power Pack strategy — evaluate after stabilizing current campaigns\n\n## Guidelines\n\n- **Don't audit without search term data.** Search term reports are the single richest source of waste identification. If the user only provides campaign-level data, request the search term report before completing the audit.\n- **Don't recommend tROAS with \u003C50 conversions\u002Fmonth.** The algorithm needs volume. Recommending it prematurely leads to delivery collapse.\n- **Don't panic over PMax opacity.** PMax now has campaign-level negatives, full search term reporting, and channel performance reports (all 2025). Use them before concluding PMax is wasteful.\n- **Don't ignore change history.** A CPA spike that coincides with a bid strategy change or budget cut has a different fix than one caused by competitive pressure or seasonality.\n- **Flag ECPC immediately.** Any campaign still showing ECPC was deprecated March 31, 2025. This is always a Critical finding.\n- **Flag AI Max opportunity.** If the account has 50+ monthly conversions and isn't testing AI Max for Search (global beta September 2025, avg 34% conversion improvement), note it as an optimization opportunity.\n- **Account for learning phases.** Don't flag bid strategy performance during the 7-14 day learning period after changes.\n- **Fractional conversion trap.** Data-driven attribution creates fractional conversions. A keyword showing 0.3 conversions isn't necessarily bad — it contributed to a conversion. Filter to conversions > 1 before evaluating keyword-level CPA.\n- **Cross-references:** For Meta tracking issues, use the **meta-ads-tracking-setup** skill. For Meta account auditing, use the **meta-ads-audit** skill. For automated audit scripts, use the **google-ads-scripts** skill.\n- **Confidence:** If audit data is incomplete (missing search terms, no QS data, limited date range), state what conclusions are reliable and what needs more data. Never fabricate findings to fill gaps.\n","## Process\n\n1. **Collect data** — Request or gather: campaign data export, search term report (90 days), Quality Score report, auction insights, change history (90 days), conversion tracking status, and account-level settings\n2. **Run the audit checklist** — Work through each section below, flagging issues as Critical (red), Optimization (yellow), or Working Well (green)\n3. **Score account health** — Calculate overall health score based on findings\n4. **ICE-prioritize recommendations** — Score each finding: Impact (1-10) x Confidence (1-10) x Ease (1-10)\n5. **Deliver action plan** — Structured output with prioritized fixes and expected impact\n\n## Audit Checklist\n\n### Section 1: Tracking & Measurement\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Google Tag active | gtag.js or GTM container firing on all pages | Missing or intermittent |\n| GA4 linked | GA4 property connected to Google Ads | Not linked |\n| Conversion actions | List all conversion actions — are they meaningful? | Counting micro-conversions as primary |\n| Enhanced conversions (web) | Hashing email\u002Fphone at tag level for better matching | Not implemented |\n| Enhanced conversions (leads) | GCLID-based offline import for lead gen accounts | Not implemented for lead gen |\n| Attribution model | Data-driven attribution is default and recommended | Still on last-click without reason |\n| Conversion windows | Windows match actual sales cycle | Default windows for long sales cycle |\n| Cross-account conversion tracking | Using manager-level conversion tracking if MCC | Duplicate conversion counting across accounts |\n| Offline conversion import | Uploading CRM data back to Google Ads | Lead gen account with no offline import |\n| Meta tracking | Is the client also running Meta? Check if CAPI is set up | Meta tracking gaps — refer to **meta-ads-tracking-setup** skill |\n\n### Section 2: Account Structure\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Campaign-to-objective alignment | Each campaign has a clear strategic purpose | Campaigns mixing objectives |\n| Campaign count | 6-10 campaigns with clear distinctions for complex accounts | Over-segmented (20+ campaigns diluting budget) or under-segmented (1-2 campaigns for diverse products) |\n| Search + Display mixing | Search and Display should be separate campaigns | Mixed in same campaign |\n| PMax asset groups | Segmented by product\u002Fservice line with distinct audiences | Single asset group for diverse products |\n| AI Max setup | Text guidelines configured, Smart Bidding Exploration monitored | AI Max running without text guidelines (launched September 2025, avg 34% conversion improvement) |\n| Demand Gen campaigns | Present if awareness\u002Fconsideration is a goal | Missing from full-funnel accounts (Power Pack strategy: Demand Gen + AI Max + PMax) |\n| Naming conventions | Consistent, parseable naming taxonomy | Inconsistent or absent naming system |\n| Ad group theming | Tight keyword-to-ad-group mapping by intent | Bloated ad groups mixing unrelated keywords |\n\n### Section 3: Keywords & Match Types\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Match type distribution | Balance of broad, phrase, exact appropriate for account maturity | 100% broad match without Smart Bidding, or 100% exact match limiting reach |\n| Broad match readiness | Broad match requires Smart Bidding + 50+ conversions\u002Fmonth | Broad match with manual bidding or \u003C50 conversions\u002Fmonth |\n| Search term waste | N-gram analysis on search term report | N-grams with $50+ spend and 0 conversions |\n| Negative keyword coverage | Themed negative lists: competitors, jobs, free\u002FDIY, irrelevant industries | No shared negative lists, or lists not updated in 90+ days |\n| Keyword conflicts | Keywords in different campaigns competing against each other | Same keyword in multiple campaigns without clear priority |\n| PMax search term cannibalization | PMax stealing queries that Search campaigns should serve | High-value queries showing in PMax search term insights instead of Search |\n| Low search volume keywords | Keywords flagged as low search volume | >20% of keywords with low search volume status |\n| Fractional conversion distortion | Data-driven attribution splits conversions into fractions | Evaluating keyword CPA on conversions \u003C 1 — filter to conversions > 1 before judging CPA |\n\n**N-gram analysis quick method:** Break search queries into 1-grams, 2-grams, 3-grams. Aggregate clicks, spend, conversions, and CPA by n-gram. Action framework:\n- N-gram with $50+ spend, 0 conversions → Add as negative keyword\n- N-gram with strong CPA → Promote to exact-match keyword in dedicated ad group\n- N-gram with high impressions, low CTR → Investigate intent mismatch\n\nFor automated n-gram analysis, use the **google-ads-scripts** skill (Brainlabs Search Query Mining Script updated for GAQL by Nils Rooijmans, March 2025).\n\n### Section 4: Ads & Creative\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| RSA completeness | 15 headlines + 4 descriptions per RSA | Under-filled RSAs (\u003C10 headlines) |\n| RSA asset performance | Asset-level reporting (2025 feature) | Multiple \"Low\" rated headlines\u002Fdescriptions not replaced |\n| Ad strength | Google's ad strength indicator | \"Poor\" or \"Average\" — target \"Good\" or \"Excellent\" |\n| Headline diversity | Headlines cover different angles (features, benefits, urgency, social proof) | All headlines say the same thing with minor variations |\n| Pin strategy | High-intent or brand headlines pinned to position 1 | No pins and key messages buried, or over-pinning limiting combinations |\n| Extensions\u002Fassets | Sitelinks (4-6), callouts, structured snippets, images, price, call | Missing extension types — each adds CTR |\n| Landing page relevance | Ad message matches landing page headline and CTA | Message mismatch between ad and landing page |\n| Mobile optimization | Landing pages load \u003C3 seconds, mobile-friendly | Slow load or poor mobile experience |\n\n### Section 5: Bidding & Budget\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Bid strategy appropriateness | Strategy matches campaign maturity and conversion volume | See Bid Strategy Maturity table below |\n| ECPC check | **ECPC deprecated March 31, 2025** — campaigns not migrated now run on Manual CPC | Any campaign still showing ECPC status |\n| tCPA\u002FtROAS targets | Targets realistic vs actual performance | Target CPA set 50%+ below actual CPA (algorithm can't deliver) |\n| Smart Bidding readiness | Minimum conversion volume for strategy tier | tCPA with \u003C30 conversions\u002Fmonth, tROAS with \u003C50 conversions\u002Fmonth |\n| Portfolio bid strategies | Shared strategies across related campaigns | Related campaigns on individual strategies that could benefit from pooling (typical lift: 19-27% ROAS improvement) |\n| Budget sufficiency | Daily budget adequate for bid strategy | PMax budget \u003C 3x target CPA daily, or \u003C $50-100\u002Fday |\n| Budget capping | Campaigns limited by budget | Impression share lost to budget > 20% on profitable campaigns |\n| AI Max learning phase | 7-14 days for new AI Max campaigns | Changes made during learning phase (September 2025 global beta) |\n| Impression share analysis | Search impression share vs targets | \u003C30% = likely underbidding; >95% with low ROI = likely overspending |\n| Impression share lost (rank) | Lost to ad rank specifically | High % lost to rank = Quality Score or bid issue |\n| Impression share lost (budget) | Lost to budget specifically | High % lost to budget = increase budget or reduce targeting |\n\n**Bid Strategy Maturity Table:**\n\n| Monthly Conversions | Recommended Strategy | Notes |\n|--------------------|---------------------|-------|\n| 0-15 | Manual CPC or Maximize Clicks (with bid cap) | Not enough data for automation |\n| 15-30 | Maximize Conversions | Building data, algorithm learning |\n| 30-50 | Maximize Conversions or tCPA | Enough for tCPA if CPA is stable |\n| 50+ | tCPA or tROAS | Full Smart Bidding — tROAS needs 50+, ideally 100+ |\n| 50+ with broad match | Broad match + tCPA\u002FtROAS | Recommended 2025 default for mature accounts |\n\n### Section 6: Quality Score Deep Dive\n\nQuality Score = expected CTR + ad relevance + landing page experience. Analyze at component level, not just the composite number.\n\n| Component | What Drives It | Fix If Below Average |\n|-----------|---------------|---------------------|\n| Expected CTR | Historical CTR vs competitors for same query | Improve ad copy relevance, test new headlines, add negative keywords to filter irrelevant impressions |\n| Ad Relevance | How closely ad matches search intent | Tighten ad group themes, write intent-specific headlines, use keyword insertion where appropriate |\n| Landing Page Experience | Page relevance, speed, mobile-friendliness, navigation ease | Improve message match, speed (\u003C3 sec), mobile UX, add relevant content |\n\n**Action priority:** Landing page experience has the widest impact (affects all keywords pointing to that page). Fix landing pages first, then ad relevance, then expected CTR.\n\n### Section 7: Audiences\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Remarketing lists | Active, properly sized, segmented by recency | No remarketing lists, or lists expired |\n| Customer match | CRM lists uploaded and refreshed | No customer match lists for accounts with CRM data |\n| Audience segments | In-market, affinity, custom segments applied | No audience signals on PMax\u002FDemand Gen campaigns |\n| Observation vs targeting | Audiences in correct mode per campaign goal | Observation mode where targeting is intended (or vice versa) |\n| Audience performance | Segment-level performance review | Segments with high spend and no conversions not excluded |\n\n### Section 8: Competitive & Change History\n\n| Checkpoint | What to Check | Flag If |\n|-----------|--------------|---------|\n| Auction Insights trends | Impression share, overlap rate, position above rate over 90 days | New competitor gaining significant share |\n| Change history correlation | Last 90 days of account changes vs performance shifts | Performance drop aligns with a specific change (bid strategy switch, new campaign, budget cut) |\n| Competitor ad copy | Google Ads Transparency Center review | Competitors testing offers or messaging you're not responding to |\n\n## Health Score Calculation\n\nScore each section 0-10 based on findings:\n\n| Section | Weight | Score |\n|---------|--------|-------|\n| Tracking & Measurement | 20% | \u002F10 |\n| Account Structure | 10% | \u002F10 |\n| Keywords & Match Types | 20% | \u002F10 |\n| Ads & Creative | 10% | \u002F10 |\n| Bidding & Budget | 20% | \u002F10 |\n| Quality Score | 10% | \u002F10 |\n| Audiences | 5% | \u002F10 |\n| Competitive | 5% | \u002F10 |\n| **Weighted Total** | | **\u002F10** |\n\n**Interpretation:** 8-10 = Healthy, 6-7.9 = Needs optimization, 4-5.9 = Significant issues, \u003C4 = Critical — major restructuring needed.\n\n## Output Format\n\n```\n## Google Ads Account Audit\n\n### Health Score: [X.X \u002F 10] — [Healthy \u002F Needs Optimization \u002F Significant Issues \u002F Critical]\n\n### Critical Issues (fix immediately)\n1. **[Issue]** — [What's wrong, specific data] — ICE: [I×C×E = score]\n   - Action: [Specific fix]\n   - Expected impact: [Estimated improvement]\n2. ...\n\n### Optimization Opportunities (fix within 2 weeks)\n1. **[Issue]** — [What's wrong, specific data] — ICE: [score]\n   - Action: [Specific fix]\n   - Expected impact: [Estimated improvement]\n2. ...\n\n### Working Well (maintain)\n- [What's working and why]\n- ...\n\n### Priority Action Plan (next 30 days)\n| Priority | Action | ICE Score | Timeline | Owner |\n|----------|--------|-----------|----------|-------|\n| 1 | [Highest ICE action] | [score] | Week 1 | [who] |\n| 2 | ... | ... | Week 1-2 | ... |\n| 3 | ... | ... | Week 2-4 | ... |\n\n### 2025 Platform Change Flags\n- [ ] ECPC migration status (deprecated March 2025)\n- [ ] AI Max for Search adoption opportunity (September 2025)\n- [ ] PMax negative keywords enabled (January 2025)\n- [ ] PMax search term reporting reviewed\n- [ ] Enhanced conversions implemented\n- [ ] Power Pack strategy evaluated (Demand Gen + AI Max + PMax)\n```\n\n## Example\n\n**Input:** \"Here's my Google Ads data for last 30 days. I'm spending $15K\u002Fmonth across 4 Search campaigns and 1 PMax campaign. CPA went from $45 to $72 over the past 6 weeks. Help me figure out what's wrong.\"\n\n**Output:**\n\n## Google Ads Account Audit\n\n### Health Score: 5.2 \u002F 10 — Significant Issues\n\n### Critical Issues\n1. **ECPC still active on 2 Search campaigns** — ECPC was deprecated March 31, 2025. These campaigns reverted to Manual CPC, losing Smart Bidding optimization. — ICE: 9×9×9 = 729\n   - Action: Migrate to Maximize Conversions (both campaigns have 35+ conversions\u002Fmonth — sufficient for tCPA)\n   - Expected impact: 15-25% CPA reduction once algorithm re-learns (7-14 day learning phase)\n\n2. **Search term waste: $2,340\u002Fmonth on zero-conversion n-grams** — N-gram analysis shows \"jobs,\" \"salary,\" and \"careers\" 2-grams account for $1,800 in wasted spend. \"Free\" modifier adds another $540. — ICE: 9×10×10 = 900\n   - Action: Add negative keyword lists: jobs\u002Fcareers, free\u002FDIY. Review remaining zero-conversion n-grams with $50+ spend\n   - Expected impact: ~$2,340\u002Fmonth savings = 15.6% of total spend recovered\n\n3. **PMax campaign budget at $25\u002Fday with $72 CPA** — Below minimum threshold (daily budget should be 3x target CPA = $135+\u002Fday minimum). Algorithm can't optimize with insufficient budget. — ICE: 8×8×7 = 448\n   - Action: Increase PMax daily budget to $150\u002Fday or pause PMax and consolidate into Search campaigns\n   - Expected impact: PMax either performs as designed or stops wasting budget at sub-scale\n\n### Optimization Opportunities\n1. **No enhanced conversions** — Missing 10-15% of conversion attribution. — ICE: 7×8×8 = 448\n   - Action: Implement enhanced conversions for web (tag-level email\u002Fphone hashing)\n   - Expected impact: Better attribution → better Smart Bidding decisions → lower CPA\n\n2. **Quality Score: 4 ad groups with avg QS \u003C 5** — Landing page experience \"Below Average\" on 3 groups, ad relevance \"Below Average\" on 1. — ICE: 7×7×5 = 245\n   - Action: Audit landing pages for message match and page speed. Rewrite ads in low-relevance group\n   - Expected impact: QS improvement from 4→6 typically reduces CPC 15-25%\n\n3. **No audience signals on PMax** — PMax running without remarketing lists or customer match. — ICE: 6×7×8 = 336\n   - Action: Add remarketing audiences and customer match list as audience signals\n   - Expected impact: Faster PMax learning, better targeting accuracy\n\n### Working Well\n- Campaign naming conventions are consistent and parseable\n- Sitelink and callout extensions present on all Search campaigns\n- GA4 properly linked with data-driven attribution active\n\n### Priority Action Plan (next 30 days)\n| Priority | Action | ICE Score | Timeline | Owner |\n|----------|--------|-----------|----------|-------|\n| 1 | Add negative keyword lists (jobs, free\u002FDIY) | 900 | Day 1-2 | Media buyer |\n| 2 | Migrate ECPC campaigns to Maximize Conversions | 729 | Day 1-3 | Media buyer |\n| 3 | Implement enhanced conversions | 448 | Week 1-2 | Developer + media buyer |\n| 4 | Fix PMax budget or consolidate | 448 | Week 1 | Media buyer |\n| 5 | Add audience signals to PMax | 336 | Week 2 | Media buyer |\n| 6 | Landing page QS improvements | 245 | Week 2-4 | Dev + media buyer |\n\n### 2025 Platform Change Flags\n- [x] ECPC migration status — **NOT MIGRATED on 2 campaigns (Critical)**\n- [ ] AI Max for Search — not yet adopted, evaluate after fixing current issues\n- [x] PMax negative keywords — enabled but no negatives added\n- [ ] PMax search term reporting — not yet reviewed (do this week)\n- [ ] Enhanced conversions — not implemented\n- [ ] Power Pack strategy — evaluate after stabilizing current campaigns\n\n## Guidelines\n\n- **Don't audit without search term data.** Search term reports are the single richest source of waste identification. If the user only provides campaign-level data, request the search term report before completing the audit.\n- **Don't recommend tROAS with \u003C50 conversions\u002Fmonth.** The algorithm needs volume. Recommending it prematurely leads to delivery collapse.\n- **Don't panic over PMax opacity.** PMax now has campaign-level negatives, full search term reporting, and channel performance reports (all 2025). Use them before concluding PMax is wasteful.\n- **Don't ignore change history.** A CPA spike that coincides with a bid strategy change or budget cut has a different fix than one caused by competitive pressure or seasonality.\n- **Flag ECPC immediately.** Any campaign still showing ECPC was deprecated March 31, 2025. This is always a Critical finding.\n- **Flag AI Max opportunity.** If the account has 50+ monthly conversions and isn't testing AI Max for Search (global beta September 2025, avg 34% conversion improvement), note it as an optimization opportunity.\n- **Account for learning phases.** Don't flag bid strategy performance during the 7-14 day learning period after changes.\n- **Fractional conversion trap.** Data-driven attribution creates fractional conversions. A keyword showing 0.3 conversions isn't necessarily bad — it contributed to a conversion. Filter to conversions > 1 before evaluating keyword-level CPA.\n- **Cross-references:** For Meta tracking issues, use the **meta-ads-tracking-setup** skill. For Meta account auditing, use the **meta-ads-audit** skill. For automated audit scripts, use the **google-ads-scripts** skill.\n- **Confidence:** If audit data is incomplete (missing search terms, no QS data, limited date range), state what conclusions are reliable and what needs more data. Never fabricate findings to fill gaps.\n",{"name":5,"description":7},"main","c137446804eb85b2cc0ba009c62068253a7c47be","skills\u002Fgoogle-ads-account-audit",2,"https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow","engineer by education, marketer by profession, building rn","2026-09-16 13:41:44",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill google-ads-account-audit",{"tool":52,"command":53},"bunx","bunx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill google-ads-account-audit",{"tool":55,"command":56},"pnpm","pnpm dlx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill google-ads-account-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fgoogle-ads-account-audit\u002FSKILL.md",true,[],[61,94,122,143,172,199],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":77,"publishedAt":33},"01M718Q16XB7D7ZMGNNA1226G5","technical-seo-ai-crawler-audit","Diagnose and prioritize the technical issues blocking a site from being crawled, indexed, ranked, and cited. Modern technical SEO has two audiences: Google's crawler\u002Findexer and AI answer engines (GPTBot, PerplexityBot, ClaudeBot, etc.). Both need HTML-visible content and a clean crawl path.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Ftechnical-seo-ai-crawler-audit\u002FSKILL.md",[67,72],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[78,79,80,81,21,82,83,84,85,86,87,88,23,89,90,91,92,93],"seo","technical","technical seo","technical seo ai crawler audit","crawler","crawl","diagnose","answer","issues","clean","indexer","prioritize","site","content","html","path",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":105,"publishedAt":33},"01M718PY2PKA7BYS5KNJ2A9DRT","seo-reporting-measurement","Build reports that stakeholders trust, rooted in data sources that are actually reliable. Modern SEO measurement has to reckon with a very specific constraint: **the primary data source (GSC) is ~75% incomplete**, and the AI visibility layer is **probabilistic**, not deterministic. Building reports that ignore these realities produces false confidence.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-reporting-measurement\u002FSKILL.md",[100,101,104],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},{"categoryNo":102,"categoryName":103,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000033","数据分析师",{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},[106,107,108,109,78,110,111,112,113,114,115,116,117,118,119,28,120,121],"seo reporting","seo reporting measurement","reporting","measurement","sources","gsc","false","reports","data sources","data","layer","source","deterministic","trust","build","constraint",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":130,"publishedAt":33},"01M718PVF0SP35J6S9EHRGQZQ1","seo-max-kt","Long-form SEO and AEO methodology bundle; read SEO_AND_AEO_KT.md for the full corpus.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-max-kt\u002FSKILL.md",[128,129],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},[131,78,132,133,134,135,136,137,138,139,140,141,142],"kt","seo max kt","max","aeo","long-form","methodology","form","for","bundle","full","read","long",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":154,"publishedAt":33},"01M718PRQNX2JF71GBFTH3MV19","seo-keyword-research-intent-mapping","Build a keyword universe that reflects how both humans *and* AI answer engines search. Traditional keyword research looks at standalone terms; modern research also maps the **fan-out sub-queries** AI tools generate when breaking down a user prompt.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-keyword-research-intent-mapping\u002FSKILL.md",[149,150,153],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},{"categoryNo":151,"categoryName":152,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},[78,155,156,157,158,159,160,161,162,163,85,164,165,166,167,168,169,120,170,171],"seo keyword research","seo keyword research intent mapping","research","intent","keyword research","mapping","ai tools","standalone","down","search","prompt","when","maps","queries","generate","how","at",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":186,"publishedAt":33},"01M718PNDT3A19SV7KVWC9083P","seo-aeo-content-strategy","Design content systems that earn both Google rankings *and* AI citations. The core insight: AI answer engines read content differently than humans — they extract the highest-information-gain sentences and treat H2 headings as prompts. The \"ski ramp\" structure optimizes for both.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fseo-aeo-content-strategy\u002FSKILL.md",[178,181,182,183],{"categoryNo":179,"categoryName":180,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},{"categoryNo":184,"categoryName":185,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000036","内容创作者",[78,134,187,188,189,91,190,191,192,138,85,193,194,195,29,141,196,197,23,198],"strategy","seo aeo content strategy","content strategy","Citations","as","core","design","information","earn","systems","ramp","prompts",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":208,"publishedAt":33},"01M718PJM103BE7581G6NRCC7T","prompt-picker","Build a prompt library that reveals how a brand shows up across the full buyer journey in AI search systems. The library is designed for actual LLM visibility tracking, not theoretical SEO keyword research.","https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fprompt-picker\u002FSKILL.md",[205],{"categoryNo":206,"categoryName":207,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000023","Skill与智能体开发",[209,165,210,211,78,138,155,164,212,213,214,215,157,120,170,196,159,216,32,140],"prompt picker","llm visibility","brand","up","journey","prompt library","across","library"]