[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M718NB985ZTKDZPR8360R3ER":3,"skill-same:01M718NB985ZTKDZPR8360R3ER":77},{"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":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M718NB985ZTKDZPR8360R3ER","google-ads-scripts",null,"Select, implement, and manage Google Ads scripts to automate PPC tasks at scale — n-gram analysis, bid management, budget pacing, anomaly detection, and performance reporting.","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-scripts\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000040","财务","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"scripts","google","google ads scripts","google ads","ads","scale","detection","anomaly detection","implement","ppc","manage","anomaly","automate","Budget","reporting","at","tasks","analysis","performance","select","2026-11-10 10:12:30",false,"---\nname: google-ads-scripts\ndescription: \"Select, implement, and manage Google Ads scripts to automate PPC tasks at scale — n-gram analysis, bid management, budget pacing, anomaly detection, and performance reporting.\"\n---\n\n## Process\n\n1. **Identify the repetitive task** — What are you doing manually that a script could handle?\n2. **Match to script category** — Use the decision tree below\n3. **Select specific script** — Read `references\u002Fscripts-catalog.md` for detailed options\n4. **Understand prerequisites** — API access, spreadsheet setup, email notifications\n5. **Install and configure** — Follow the standard installation process\n6. **Test in preview mode** — Always preview before authorizing\n7. **Schedule and monitor** — Set appropriate frequency, check logs regularly\n\nRead `references\u002Fscripts-catalog.md` for the complete catalog of 50+ top scripts with sources, use cases, and implementation notes.\n\n## Script Category Decision Tree\n\n**What problem are you solving?**\n\n| Problem | Category | Example Scripts |\n|---------|---------|----------------|\n| Finding wasted spend on bad search terms | N-gram \u002F Search term mining | Brainlabs Search Query Mining, PEMAVOR Search Term Miner |\n| Bid changes based on rules | Bid management | Day-of-week bid modifiers, weather-based bidders |\n| Budget overspend\u002Funderspend | Budget pacing | Optmyzr-style pacing scripts, redistribution scripts |\n| Catching broken URLs or disapprovals | Monitoring \u002F Anomaly detection | Link checker, Vallaeys anomaly detector |\n| Automated reporting | Reporting | Monthly deck generators, heat map scripts |\n| Profit-based product bidding | Ecommerce | Jack Felsted's revenue maximizer |\n| Finding best-performing ad copy language | Ad copy analysis | Vallaeys RSA n-gram analyzer |\n| Tracking competitor movement | Competitive monitoring | Auction insights trend scripts |\n\n## Top Categories & Use Cases\n\n### 1. Search Term \u002F N-Gram Analysis\n\n**Purpose:** Mine search query reports to find negative keyword candidates and promotion opportunities at scale.\n\n**Top pick:** Brainlabs Search Query Mining Script (updated for GAQL by Nils Rooijmans, March 2025)\n\n**What it does:**\n- Breaks queries into 1-grams, 2-grams, 3-grams\n- Aggregates performance by n-gram\n- Highlights high-spend \u002F zero-conversion patterns\n- `checkNegatives` parameter: verifies new negatives don't block existing keywords\n\n**When to run:** Weekly for new campaigns, bi-weekly for stable ones.\n\n**Output:** Google Sheet with n-gram breakdown, sorted by spend and CPA.\n\n### 2. Bid Management\n\n**Purpose:** Adjust bids automatically based on performance patterns or external signals.\n\n**Common scripts:**\n- Day-of-week bid modifiers — Apply bid adjustments based on historical day-of-week conversion rates\n- Hour-of-day bid modifiers — Same for hour of day\n- Weather-based bid adjusters — Modify bids based on local weather (umbrella sales → increase on rainy days)\n- Impression share targeting scripts — Dynamically adjust bids to hit target impression share\n\n**Warning:** These scripts predate Smart Bidding. For accounts running tCPA\u002FtROAS, most bid scripts are unnecessary — Smart Bidding handles these optimizations automatically. Use bid scripts mainly for:\n- Accounts with \u003C30 conversions\u002Fmonth (pre-Smart Bidding)\n- Specific signals Smart Bidding doesn't know (weather, inventory, external factors)\n\n### 3. Budget Pacing & Redistribution\n\n**Purpose:** Prevent overspend\u002Funderspend. Automatically shift budget between campaigns.\n\n**Common scripts:**\n- Budget pacing monitors — Alert when a campaign will overspend or underspend by month-end\n- Budget redistribution — Shift unused budget from underperformers to high-performers\n- Seasonal budget automation — Adjust budgets based on expected seasonal demand\n\n**ECPC deprecation note (March 2025):** Some older budget scripts reference ECPC. If you encounter one, update or replace — ECPC is gone.\n\n### 4. Performance Monitoring & Anomaly Detection\n\n**Purpose:** Catch problems before they waste money.\n\n**Top scripts:**\n- **Anomaly detection** (Frederick Vallaeys) — Alerts on sudden metric changes (CTR, CPC, conversion rate deviations from baseline)\n- **Zero-impression keyword pause** — Pause keywords with zero impressions over X days\n- **Quality Score tracking** — Historical QS tracking (Google doesn't store QS history natively)\n- **Broken landing page URL monitor** — Tests all landing page URLs, alerts on 404s or slow loads\n- **Emergency stop button** — Pauses account if website is down (integrates with uptime monitors)\n\n**When to run:** Daily for anomaly detection, weekly for URL checks and QS tracking.\n\n### 5. Reporting Automation\n\n**Purpose:** Generate client-ready reports without manual grind.\n\n**Common scripts:**\n- Monthly presentation deck generator (Optmyzr-style)\n- Client performance heat maps (Kratu)\n- Hourly performance trend heat maps (Daniel Gilbert)\n- Change history reports\n- Custom metric dashboards\n\n### 6. Ecommerce-Specific\n\n**Purpose:** Profit-based optimization beyond ROAS.\n\n**Top pick:** Jack Felsted's Revenue Maximizer Tiering\n\n**What it does:**\n- Tiers products by gross profit margin using custom labels\n- Applies different tROAS targets per tier\n- High-margin products get lower tROAS target (more volume), low-margin get higher (tighter efficiency)\n- 7\u002F14\u002F28\u002F90-day ROI lookback for dynamic tier updates\n\n**Requires:** Merchant Center feed with custom labels (use the **google-merchant-center** skill to set these up).\n\n### 7. Ad Copy Analysis\n\n**Purpose:** Find winning language patterns in ads.\n\n**Top pick:** Frederick Vallaeys' RSA n-gram analyzer\n\n**What it does:** Analyzes which words\u002Fphrases in your ad copy correlate with higher CTR and conversion rates. Applies n-gram analysis methodology to ad copy instead of search terms.\n\n### 8. Competitive Monitoring\n\n**Purpose:** Track competitor movement in auctions.\n\n**Common scripts:**\n- Auction Insights trend tracker — Stores historical impression share, overlap rate, position above rate\n- Competitor ad copy change alerts (requires Google Ads Transparency Center)\n\n## Installation Process (Standard)\n\nEvery Google Ads script follows this installation pattern:\n\n| Step | Action |\n|------|--------|\n| 1 | In Google Ads, navigate to Tools → Bulk Actions → Scripts |\n| 2 | Click \"+\" to create a new script |\n| 3 | Paste the script code |\n| 4 | Update configuration variables (email, spreadsheet URL, thresholds) |\n| 5 | Click \"Authorize\" (script needs account access) |\n| 6 | Click \"Preview\" to test without making changes |\n| 7 | Review preview logs for errors |\n| 8 | Click \"Run\" for one-time execution |\n| 9 | Click \"Schedule\" for recurring runs |\n\n**Always preview before running.** Scripts that make changes (pause keywords, adjust bids, change budgets) can cause damage if misconfigured.\n\n## Script Selection Framework\n\nBefore installing a script, answer these questions:\n\n| Question | Why |\n|----------|-----|\n| What's the business problem this solves? | Avoid installing scripts for theoretical value |\n| Is there a manual check-in step or fully automated? | Start with notification-only, graduate to auto-action |\n| What's the fallback if the script fails? | Scripts can break (API changes, errors) |\n| Who maintains it? | Open-source scripts may have stale code |\n| Does Smart Bidding already handle this? | Don't reinvent what the platform does natively |\n| What's the preview showing? | Always review before authorizing destructive actions |\n\n## Scheduling Guidelines\n\n| Script Type | Recommended Frequency |\n|------------|----------------------|\n| Anomaly detection | Daily (early morning) |\n| Budget pacing | Daily or 2x daily (morning + midday) |\n| Search term mining | Weekly (new campaigns), bi-weekly (stable) |\n| Ad copy analysis | Monthly |\n| Quality Score tracking | Weekly |\n| Ecommerce product tiering | Weekly or bi-weekly |\n| Broken URL checker | Weekly |\n| Reporting automation | Monthly (for reports) |\n| Competitive monitoring | Weekly |\n| Emergency stop | Continuous (integrated with uptime monitor) |\n\n**Don't over-schedule.** More frequent ≠ better. Some scripts have API rate limits or cost real time\u002Fmoney to run.\n\n## Script Libraries & Sources\n\n| Source | Specialty | Access |\n|--------|----------|--------|\n| **Nils Rooijmans** | GAQL-updated scripts, search term mining, bid management | nilsrooijmans.com — maintained and current |\n| **Frederick Vallaeys** | Anomaly detection, ad copy analysis, account management | optmyzr.com, searchengineland.com contributions |\n| **Brainlabs** | Search query mining, budget tools (Nils maintains updates) | brainlabsdigital.com\u002Fscripts |\n| **Jack Felsted** | Ecommerce revenue maximizer, gross profit scripts | jackfelsted.com |\n| **Daniel Gilbert (Brainlabs)** | Hourly heat maps, competitive monitoring | brainlabsdigital.com |\n| **Optmyzr** | Monthly presentation decks, pacing scripts | optmyzr.com (paid platform) |\n| **Sarah Stemen** | Practitioner scripts, account auditing | sarahstemen.com |\n| **Google Developers** | Official script samples and documentation | developers.google.com\u002Fgoogle-ads\u002Fscripts |\n\n## Output Format\n\nWhen recommending scripts, produce this deliverable:\n\n```\n## Google Ads Script Recommendations\n\n### Business Problem\n[What the user is trying to solve or automate]\n\n### Recommended Scripts\n\n#### Script 1: [Name]\n- **Source:** [Author\u002Forganization]\n- **Purpose:** [What it does]\n- **Why this script:** [How it solves the user's specific problem]\n- **Prerequisites:** [API access, spreadsheets, email setup]\n- **Configuration variables:** [Key settings to customize]\n- **Schedule:** [Recommended frequency]\n- **Expected outcome:** [What you'll see after it runs]\n\n#### Script 2: [Name]\n[Same structure]\n\n### Installation Order\n1. [First script to install and why]\n2. [Second script]\n\n### Monitoring Plan\n- Check logs after [time period]\n- Success criteria: [what good looks like]\n- Warning signs: [what to watch for]\n\n### Smart Bidding Compatibility\n[Note which scripts are redundant if using Smart Bidding, and which remain useful]\n```\n\n## Example\n\n**Input:** \"I manage 8 Google Ads accounts for ecommerce clients. Spending $4K-$30K\u002Fmonth each. Most are on PMax + Search with Smart Bidding. I'm spending hours every week manually checking search terms, monitoring for anomalies, and building reports. What scripts should I set up?\"\n\n**Output:**\n\n## Google Ads Script Recommendations\n\n### Business Problem\nAgency workload from manual search term review, anomaly monitoring, and reporting across 8 accounts. Time savings from automation compounds across multiple accounts.\n\n### Recommended Scripts\n\n#### Script 1: Brainlabs Search Query Mining (Nils Rooijmans GAQL update)\n- **Source:** Nils Rooijmans (updated March 2025 for GAQL)\n- **Purpose:** Automated n-gram analysis on search term reports. Identifies high-spend \u002F zero-conversion patterns and promotion candidates\n- **Why this script:** Replaces manual search term review across 8 accounts. Biggest immediate time saver\n- **Prerequisites:** Google Sheet for output, email for notifications\n- **Configuration variables:** Date range (last 30 days recommended), spend threshold ($50+), `checkNegatives` parameter (set to true to verify no conflicts with existing keywords)\n- **Schedule:** Weekly for new campaigns, bi-weekly for stable ones. Run Sunday night so Monday morning starts with fresh data\n- **Expected outcome:** Sheet per account showing n-gram waste candidates + promotion opportunities\n\n#### Script 2: Anomaly Detection (Frederick Vallaeys)\n- **Source:** Frederick Vallaeys (Optmyzr \u002F Search Engine Land)\n- **Purpose:** Alerts on sudden metric changes (CTR, CPC, conversion rate, spend deviations from baseline)\n- **Why this script:** Across 8 accounts, catching issues early prevents wasted spend. Replaces manual daily pulse checks\n- **Prerequisites:** Email notification setup, baseline calculation period (14-30 days)\n- **Configuration variables:** Deviation thresholds (e.g., >20% from 7-day average), metrics to monitor, alert recipients\n- **Schedule:** Daily, early morning (catches overnight issues)\n- **Expected outcome:** Email alert only when anomaly detected. Most days = silent. Action days = immediate visibility\n\n#### Script 3: Jack Felsted's Revenue Maximizer Tiering\n- **Source:** Jack Felsted\n- **Purpose:** Automatically tiers products by gross profit margin using custom labels. Applies differentiated tROAS targets per tier\n- **Why this script:** Ecommerce clients need profit-based bidding (POAS > ROAS). High-margin products tolerate lower tROAS for more volume\n- **Prerequisites:** Merchant Center feed with cost\u002Fmargin data, custom labels set up (use the **google-merchant-center** skill)\n- **Configuration variables:** Margin thresholds per tier, tROAS targets per tier, lookback period (7\u002F14\u002F28\u002F90-day)\n- **Schedule:** Weekly\n- **Expected outcome:** Products re-tiered weekly based on trailing performance, bids automatically adjusted\n\n#### Script 4: Broken Landing Page URL Monitor\n- **Source:** Google Developers \u002F community (multiple open-source versions)\n- **Purpose:** Tests all active landing page URLs. Alerts on 404s, timeouts, slow loads\n- **Why this script:** Broken URLs burn budget silently. Across 8 accounts, this catches issues within 24 hours\n- **Prerequisites:** Email notification setup\n- **Configuration variables:** Timeout threshold (10 sec), alert recipients, ignored URLs\n- **Schedule:** Weekly\n- **Expected outcome:** Alert only when broken URL found\n\n#### Script 5: Monthly Reporting Deck Generator (Optmyzr-style)\n- **Source:** Optmyzr has a paid version; several open-source community versions exist\n- **Purpose:** Pulls performance data and generates monthly client reports\n- **Why this script:** Agency reporting time sink. 8 accounts × manual reporting = many hours per month\n- **Prerequisites:** Google Slides template, data field mapping\n- **Configuration variables:** Template slides, metrics to include, date range\n- **Schedule:** Monthly (1st of month for previous month data)\n- **Expected outcome:** Draft deck per account, ready for analyst review and narrative\n\n### Installation Order\n1. **Week 1: Anomaly Detection** — Install first. Set to notification-only for 7 days. Tighten thresholds after seeing baseline noise\n2. **Week 1: Broken URL Monitor** — Install concurrently. Low risk, high value\n3. **Week 2: Brainlabs Search Query Mining** — Install once anomaly detection is stable. This requires review\u002Faction, so don't stack it until you can manage the output\n4. **Week 3: Revenue Maximizer** — Requires Merchant Center custom label setup first. Do that using the **google-merchant-center** skill, then install this script\n5. **Week 4: Reporting Deck Generator** — Install last. Biggest customization effort but runs monthly so not urgent\n\n### Monitoring Plan\n- **Daily:** Check anomaly detection email alerts\n- **Weekly:** Review search query mining sheet, URL monitor output\n- **Monthly:** Review reporting deck output, tune thresholds based on false positives\u002Fnegatives\n- **Success criteria:** Time spent on manual tasks drops by 50%+ within 30 days. Time to catch issues drops from days to hours\n- **Warning signs:** If anomaly detection alerts too often → raise threshold. If search query mining is flagging wrong n-grams → tighten minimum spend threshold\n\n### Smart Bidding Compatibility\n- **Compatible (use these):** Search query mining, anomaly detection, URL monitor, reporting, Revenue Maximizer (uses Smart Bidding targets as inputs)\n- **Redundant with Smart Bidding (skip):** Day-of-week bid modifiers, hour-of-day bid modifiers, impression share bid targeting — Smart Bidding handles these natively with tCPA\u002FtROAS\n- **Still useful:** Weather-based bidding (Smart Bidding doesn't know weather), inventory-based bid adjustments (needs external data)\n\n## Guidelines\n\n- **Don't install scripts that duplicate Smart Bidding.** Most bid management scripts were built before Smart Bidding existed. If the account runs tCPA\u002FtROAS, skip day-of-week, hour-of-day, and impression share bid scripts.\n- **Don't skip preview mode.** Always run in preview before authorizing. Scripts that pause keywords or change bids can cause damage if misconfigured.\n- **Don't chain scripts without understanding dependencies.** If a search term mining script creates negatives and a QS tracker depends on keyword history, adding negatives can break QS data. Think through interactions.\n- **Don't run scripts more often than needed.** Daily anomaly detection is useful. Daily search term mining is overkill and may hit API limits.\n- **Don't use stale scripts.** Scripts that reference ECPC (deprecated March 2025), older GAQL syntax, or deprecated Google Ads API versions will break. Check publication dates and look for GAQL-updated versions (many were updated in 2024-2025).\n- **Don't ignore the logs.** Scripts fail silently sometimes. Check logs weekly, especially after Google Ads API updates.\n- **Don't authorize scripts you don't understand.** If the code is obfuscated or unclear, don't run it. Scripts have full account access.\n- **Cross-references:** For search term strategy that informs n-gram scripts, use the **google-ads-keyword-engine** skill. For Merchant Center setup required by Revenue Maximizer, use the **google-merchant-center** skill. For account audits that identify automation opportunities, use the **google-ads-audit** skill. For ongoing optimization, use the **google-ads-optimizer** skill.\n- **Confidence:** Script library URLs and maintainer information can change. For the most current version of any script, search the author's current website\u002Fblog rather than relying on older GitHub repos. Read `references\u002Fscripts-catalog.md` for the full categorized catalog.\n","## Process\n\n1. **Identify the repetitive task** — What are you doing manually that a script could handle?\n2. **Match to script category** — Use the decision tree below\n3. **Select specific script** — Read `references\u002Fscripts-catalog.md` for detailed options\n4. **Understand prerequisites** — API access, spreadsheet setup, email notifications\n5. **Install and configure** — Follow the standard installation process\n6. **Test in preview mode** — Always preview before authorizing\n7. **Schedule and monitor** — Set appropriate frequency, check logs regularly\n\nRead `references\u002Fscripts-catalog.md` for the complete catalog of 50+ top scripts with sources, use cases, and implementation notes.\n\n## Script Category Decision Tree\n\n**What problem are you solving?**\n\n| Problem | Category | Example Scripts |\n|---------|---------|----------------|\n| Finding wasted spend on bad search terms | N-gram \u002F Search term mining | Brainlabs Search Query Mining, PEMAVOR Search Term Miner |\n| Bid changes based on rules | Bid management | Day-of-week bid modifiers, weather-based bidders |\n| Budget overspend\u002Funderspend | Budget pacing | Optmyzr-style pacing scripts, redistribution scripts |\n| Catching broken URLs or disapprovals | Monitoring \u002F Anomaly detection | Link checker, Vallaeys anomaly detector |\n| Automated reporting | Reporting | Monthly deck generators, heat map scripts |\n| Profit-based product bidding | Ecommerce | Jack Felsted's revenue maximizer |\n| Finding best-performing ad copy language | Ad copy analysis | Vallaeys RSA n-gram analyzer |\n| Tracking competitor movement | Competitive monitoring | Auction insights trend scripts |\n\n## Top Categories & Use Cases\n\n### 1. Search Term \u002F N-Gram Analysis\n\n**Purpose:** Mine search query reports to find negative keyword candidates and promotion opportunities at scale.\n\n**Top pick:** Brainlabs Search Query Mining Script (updated for GAQL by Nils Rooijmans, March 2025)\n\n**What it does:**\n- Breaks queries into 1-grams, 2-grams, 3-grams\n- Aggregates performance by n-gram\n- Highlights high-spend \u002F zero-conversion patterns\n- `checkNegatives` parameter: verifies new negatives don't block existing keywords\n\n**When to run:** Weekly for new campaigns, bi-weekly for stable ones.\n\n**Output:** Google Sheet with n-gram breakdown, sorted by spend and CPA.\n\n### 2. Bid Management\n\n**Purpose:** Adjust bids automatically based on performance patterns or external signals.\n\n**Common scripts:**\n- Day-of-week bid modifiers — Apply bid adjustments based on historical day-of-week conversion rates\n- Hour-of-day bid modifiers — Same for hour of day\n- Weather-based bid adjusters — Modify bids based on local weather (umbrella sales → increase on rainy days)\n- Impression share targeting scripts — Dynamically adjust bids to hit target impression share\n\n**Warning:** These scripts predate Smart Bidding. For accounts running tCPA\u002FtROAS, most bid scripts are unnecessary — Smart Bidding handles these optimizations automatically. Use bid scripts mainly for:\n- Accounts with \u003C30 conversions\u002Fmonth (pre-Smart Bidding)\n- Specific signals Smart Bidding doesn't know (weather, inventory, external factors)\n\n### 3. Budget Pacing & Redistribution\n\n**Purpose:** Prevent overspend\u002Funderspend. Automatically shift budget between campaigns.\n\n**Common scripts:**\n- Budget pacing monitors — Alert when a campaign will overspend or underspend by month-end\n- Budget redistribution — Shift unused budget from underperformers to high-performers\n- Seasonal budget automation — Adjust budgets based on expected seasonal demand\n\n**ECPC deprecation note (March 2025):** Some older budget scripts reference ECPC. If you encounter one, update or replace — ECPC is gone.\n\n### 4. Performance Monitoring & Anomaly Detection\n\n**Purpose:** Catch problems before they waste money.\n\n**Top scripts:**\n- **Anomaly detection** (Frederick Vallaeys) — Alerts on sudden metric changes (CTR, CPC, conversion rate deviations from baseline)\n- **Zero-impression keyword pause** — Pause keywords with zero impressions over X days\n- **Quality Score tracking** — Historical QS tracking (Google doesn't store QS history natively)\n- **Broken landing page URL monitor** — Tests all landing page URLs, alerts on 404s or slow loads\n- **Emergency stop button** — Pauses account if website is down (integrates with uptime monitors)\n\n**When to run:** Daily for anomaly detection, weekly for URL checks and QS tracking.\n\n### 5. Reporting Automation\n\n**Purpose:** Generate client-ready reports without manual grind.\n\n**Common scripts:**\n- Monthly presentation deck generator (Optmyzr-style)\n- Client performance heat maps (Kratu)\n- Hourly performance trend heat maps (Daniel Gilbert)\n- Change history reports\n- Custom metric dashboards\n\n### 6. Ecommerce-Specific\n\n**Purpose:** Profit-based optimization beyond ROAS.\n\n**Top pick:** Jack Felsted's Revenue Maximizer Tiering\n\n**What it does:**\n- Tiers products by gross profit margin using custom labels\n- Applies different tROAS targets per tier\n- High-margin products get lower tROAS target (more volume), low-margin get higher (tighter efficiency)\n- 7\u002F14\u002F28\u002F90-day ROI lookback for dynamic tier updates\n\n**Requires:** Merchant Center feed with custom labels (use the **google-merchant-center** skill to set these up).\n\n### 7. Ad Copy Analysis\n\n**Purpose:** Find winning language patterns in ads.\n\n**Top pick:** Frederick Vallaeys' RSA n-gram analyzer\n\n**What it does:** Analyzes which words\u002Fphrases in your ad copy correlate with higher CTR and conversion rates. Applies n-gram analysis methodology to ad copy instead of search terms.\n\n### 8. Competitive Monitoring\n\n**Purpose:** Track competitor movement in auctions.\n\n**Common scripts:**\n- Auction Insights trend tracker — Stores historical impression share, overlap rate, position above rate\n- Competitor ad copy change alerts (requires Google Ads Transparency Center)\n\n## Installation Process (Standard)\n\nEvery Google Ads script follows this installation pattern:\n\n| Step | Action |\n|------|--------|\n| 1 | In Google Ads, navigate to Tools → Bulk Actions → Scripts |\n| 2 | Click \"+\" to create a new script |\n| 3 | Paste the script code |\n| 4 | Update configuration variables (email, spreadsheet URL, thresholds) |\n| 5 | Click \"Authorize\" (script needs account access) |\n| 6 | Click \"Preview\" to test without making changes |\n| 7 | Review preview logs for errors |\n| 8 | Click \"Run\" for one-time execution |\n| 9 | Click \"Schedule\" for recurring runs |\n\n**Always preview before running.** Scripts that make changes (pause keywords, adjust bids, change budgets) can cause damage if misconfigured.\n\n## Script Selection Framework\n\nBefore installing a script, answer these questions:\n\n| Question | Why |\n|----------|-----|\n| What's the business problem this solves? | Avoid installing scripts for theoretical value |\n| Is there a manual check-in step or fully automated? | Start with notification-only, graduate to auto-action |\n| What's the fallback if the script fails? | Scripts can break (API changes, errors) |\n| Who maintains it? | Open-source scripts may have stale code |\n| Does Smart Bidding already handle this? | Don't reinvent what the platform does natively |\n| What's the preview showing? | Always review before authorizing destructive actions |\n\n## Scheduling Guidelines\n\n| Script Type | Recommended Frequency |\n|------------|----------------------|\n| Anomaly detection | Daily (early morning) |\n| Budget pacing | Daily or 2x daily (morning + midday) |\n| Search term mining | Weekly (new campaigns), bi-weekly (stable) |\n| Ad copy analysis | Monthly |\n| Quality Score tracking | Weekly |\n| Ecommerce product tiering | Weekly or bi-weekly |\n| Broken URL checker | Weekly |\n| Reporting automation | Monthly (for reports) |\n| Competitive monitoring | Weekly |\n| Emergency stop | Continuous (integrated with uptime monitor) |\n\n**Don't over-schedule.** More frequent ≠ better. Some scripts have API rate limits or cost real time\u002Fmoney to run.\n\n## Script Libraries & Sources\n\n| Source | Specialty | Access |\n|--------|----------|--------|\n| **Nils Rooijmans** | GAQL-updated scripts, search term mining, bid management | nilsrooijmans.com — maintained and current |\n| **Frederick Vallaeys** | Anomaly detection, ad copy analysis, account management | optmyzr.com, searchengineland.com contributions |\n| **Brainlabs** | Search query mining, budget tools (Nils maintains updates) | brainlabsdigital.com\u002Fscripts |\n| **Jack Felsted** | Ecommerce revenue maximizer, gross profit scripts | jackfelsted.com |\n| **Daniel Gilbert (Brainlabs)** | Hourly heat maps, competitive monitoring | brainlabsdigital.com |\n| **Optmyzr** | Monthly presentation decks, pacing scripts | optmyzr.com (paid platform) |\n| **Sarah Stemen** | Practitioner scripts, account auditing | sarahstemen.com |\n| **Google Developers** | Official script samples and documentation | developers.google.com\u002Fgoogle-ads\u002Fscripts |\n\n## Output Format\n\nWhen recommending scripts, produce this deliverable:\n\n```\n## Google Ads Script Recommendations\n\n### Business Problem\n[What the user is trying to solve or automate]\n\n### Recommended Scripts\n\n#### Script 1: [Name]\n- **Source:** [Author\u002Forganization]\n- **Purpose:** [What it does]\n- **Why this script:** [How it solves the user's specific problem]\n- **Prerequisites:** [API access, spreadsheets, email setup]\n- **Configuration variables:** [Key settings to customize]\n- **Schedule:** [Recommended frequency]\n- **Expected outcome:** [What you'll see after it runs]\n\n#### Script 2: [Name]\n[Same structure]\n\n### Installation Order\n1. [First script to install and why]\n2. [Second script]\n\n### Monitoring Plan\n- Check logs after [time period]\n- Success criteria: [what good looks like]\n- Warning signs: [what to watch for]\n\n### Smart Bidding Compatibility\n[Note which scripts are redundant if using Smart Bidding, and which remain useful]\n```\n\n## Example\n\n**Input:** \"I manage 8 Google Ads accounts for ecommerce clients. Spending $4K-$30K\u002Fmonth each. Most are on PMax + Search with Smart Bidding. I'm spending hours every week manually checking search terms, monitoring for anomalies, and building reports. What scripts should I set up?\"\n\n**Output:**\n\n## Google Ads Script Recommendations\n\n### Business Problem\nAgency workload from manual search term review, anomaly monitoring, and reporting across 8 accounts. Time savings from automation compounds across multiple accounts.\n\n### Recommended Scripts\n\n#### Script 1: Brainlabs Search Query Mining (Nils Rooijmans GAQL update)\n- **Source:** Nils Rooijmans (updated March 2025 for GAQL)\n- **Purpose:** Automated n-gram analysis on search term reports. Identifies high-spend \u002F zero-conversion patterns and promotion candidates\n- **Why this script:** Replaces manual search term review across 8 accounts. Biggest immediate time saver\n- **Prerequisites:** Google Sheet for output, email for notifications\n- **Configuration variables:** Date range (last 30 days recommended), spend threshold ($50+), `checkNegatives` parameter (set to true to verify no conflicts with existing keywords)\n- **Schedule:** Weekly for new campaigns, bi-weekly for stable ones. Run Sunday night so Monday morning starts with fresh data\n- **Expected outcome:** Sheet per account showing n-gram waste candidates + promotion opportunities\n\n#### Script 2: Anomaly Detection (Frederick Vallaeys)\n- **Source:** Frederick Vallaeys (Optmyzr \u002F Search Engine Land)\n- **Purpose:** Alerts on sudden metric changes (CTR, CPC, conversion rate, spend deviations from baseline)\n- **Why this script:** Across 8 accounts, catching issues early prevents wasted spend. Replaces manual daily pulse checks\n- **Prerequisites:** Email notification setup, baseline calculation period (14-30 days)\n- **Configuration variables:** Deviation thresholds (e.g., >20% from 7-day average), metrics to monitor, alert recipients\n- **Schedule:** Daily, early morning (catches overnight issues)\n- **Expected outcome:** Email alert only when anomaly detected. Most days = silent. Action days = immediate visibility\n\n#### Script 3: Jack Felsted's Revenue Maximizer Tiering\n- **Source:** Jack Felsted\n- **Purpose:** Automatically tiers products by gross profit margin using custom labels. Applies differentiated tROAS targets per tier\n- **Why this script:** Ecommerce clients need profit-based bidding (POAS > ROAS). High-margin products tolerate lower tROAS for more volume\n- **Prerequisites:** Merchant Center feed with cost\u002Fmargin data, custom labels set up (use the **google-merchant-center** skill)\n- **Configuration variables:** Margin thresholds per tier, tROAS targets per tier, lookback period (7\u002F14\u002F28\u002F90-day)\n- **Schedule:** Weekly\n- **Expected outcome:** Products re-tiered weekly based on trailing performance, bids automatically adjusted\n\n#### Script 4: Broken Landing Page URL Monitor\n- **Source:** Google Developers \u002F community (multiple open-source versions)\n- **Purpose:** Tests all active landing page URLs. Alerts on 404s, timeouts, slow loads\n- **Why this script:** Broken URLs burn budget silently. Across 8 accounts, this catches issues within 24 hours\n- **Prerequisites:** Email notification setup\n- **Configuration variables:** Timeout threshold (10 sec), alert recipients, ignored URLs\n- **Schedule:** Weekly\n- **Expected outcome:** Alert only when broken URL found\n\n#### Script 5: Monthly Reporting Deck Generator (Optmyzr-style)\n- **Source:** Optmyzr has a paid version; several open-source community versions exist\n- **Purpose:** Pulls performance data and generates monthly client reports\n- **Why this script:** Agency reporting time sink. 8 accounts × manual reporting = many hours per month\n- **Prerequisites:** Google Slides template, data field mapping\n- **Configuration variables:** Template slides, metrics to include, date range\n- **Schedule:** Monthly (1st of month for previous month data)\n- **Expected outcome:** Draft deck per account, ready for analyst review and narrative\n\n### Installation Order\n1. **Week 1: Anomaly Detection** — Install first. Set to notification-only for 7 days. Tighten thresholds after seeing baseline noise\n2. **Week 1: Broken URL Monitor** — Install concurrently. Low risk, high value\n3. **Week 2: Brainlabs Search Query Mining** — Install once anomaly detection is stable. This requires review\u002Faction, so don't stack it until you can manage the output\n4. **Week 3: Revenue Maximizer** — Requires Merchant Center custom label setup first. Do that using the **google-merchant-center** skill, then install this script\n5. **Week 4: Reporting Deck Generator** — Install last. Biggest customization effort but runs monthly so not urgent\n\n### Monitoring Plan\n- **Daily:** Check anomaly detection email alerts\n- **Weekly:** Review search query mining sheet, URL monitor output\n- **Monthly:** Review reporting deck output, tune thresholds based on false positives\u002Fnegatives\n- **Success criteria:** Time spent on manual tasks drops by 50%+ within 30 days. Time to catch issues drops from days to hours\n- **Warning signs:** If anomaly detection alerts too often → raise threshold. If search query mining is flagging wrong n-grams → tighten minimum spend threshold\n\n### Smart Bidding Compatibility\n- **Compatible (use these):** Search query mining, anomaly detection, URL monitor, reporting, Revenue Maximizer (uses Smart Bidding targets as inputs)\n- **Redundant with Smart Bidding (skip):** Day-of-week bid modifiers, hour-of-day bid modifiers, impression share bid targeting — Smart Bidding handles these natively with tCPA\u002FtROAS\n- **Still useful:** Weather-based bidding (Smart Bidding doesn't know weather), inventory-based bid adjustments (needs external data)\n\n## Guidelines\n\n- **Don't install scripts that duplicate Smart Bidding.** Most bid management scripts were built before Smart Bidding existed. If the account runs tCPA\u002FtROAS, skip day-of-week, hour-of-day, and impression share bid scripts.\n- **Don't skip preview mode.** Always run in preview before authorizing. Scripts that pause keywords or change bids can cause damage if misconfigured.\n- **Don't chain scripts without understanding dependencies.** If a search term mining script creates negatives and a QS tracker depends on keyword history, adding negatives can break QS data. Think through interactions.\n- **Don't run scripts more often than needed.** Daily anomaly detection is useful. Daily search term mining is overkill and may hit API limits.\n- **Don't use stale scripts.** Scripts that reference ECPC (deprecated March 2025), older GAQL syntax, or deprecated Google Ads API versions will break. Check publication dates and look for GAQL-updated versions (many were updated in 2024-2025).\n- **Don't ignore the logs.** Scripts fail silently sometimes. Check logs weekly, especially after Google Ads API updates.\n- **Don't authorize scripts you don't understand.** If the code is obfuscated or unclear, don't run it. Scripts have full account access.\n- **Cross-references:** For search term strategy that informs n-gram scripts, use the **google-ads-keyword-engine** skill. For Merchant Center setup required by Revenue Maximizer, use the **google-merchant-center** skill. For account audits that identify automation opportunities, use the **google-ads-audit** skill. For ongoing optimization, use the **google-ads-optimizer** skill.\n- **Confidence:** Script library URLs and maintainer information can change. For the most current version of any script, search the author's current website\u002Fblog rather than relying on older GitHub repos. Read `references\u002Fscripts-catalog.md` for the full categorized catalog.\n",{"name":5,"description":7},"main","c137446804eb85b2cc0ba009c62068253a7c47be","skills\u002Fgoogle-ads-scripts",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":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill google-ads-scripts",{"tool":63,"command":64},"bunx","bunx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill google-ads-scripts",{"tool":66,"command":67},"pnpm","pnpm dlx skills add narayan-metaflow\u002Fmetaflow-marketing-skills --skill google-ads-scripts","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fgoogle-ads-scripts\u002FSKILL.md",true,[71],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"references\u002Fscripts-catalog.md","REFERENCE","参考文档",20174,"https:\u002F\u002Fgithub.com\u002Fnarayan-metaflow\u002Fmetaflow-marketing-skills\u002Fblob\u002Fmain\u002Fskills\u002Fgoogle-ads-scripts\u002Freferences\u002Fscripts-catalog.md",[78,110,138,159,187,215],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":92,"publishedAt":44},"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",[84,89],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000035","市场营销",[93,94,95,96,97,98,99,100,101,102,103,104,25,105,106,107,108,109],"seo","technical","technical seo","technical seo ai crawler audit","audit","crawler","crawl","diagnose","answer","issues","clean","indexer","prioritize","site","content","html","path",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":121,"publishedAt":44},"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",[116,117,120],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":118,"categoryName":119,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师",{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},[122,123,38,124,93,125,126,127,128,129,130,131,132,133,134,135,136,137],"seo reporting","seo reporting measurement","measurement","sources","gsc","false","reports","data sources","data","layer","source","deterministic","trust","with","build","constraint",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":146,"publishedAt":44},"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",[144,145],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},[147,93,148,149,150,151,152,153,154,155,156,157,158],"kt","seo max kt","max","aeo","long-form","methodology","form","for","bundle","full","read","long",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":170,"publishedAt":44},"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",[165,166,169],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":167,"categoryName":168,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},[93,171,172,173,174,175,176,177,178,179,101,180,181,182,183,184,185,136,186,39],"seo keyword research","seo keyword research intent mapping","research","intent","keyword research","mapping","ai tools","standalone","down","search","prompt","when","maps","queries","generate","how",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":201,"publishedAt":44},"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",[193,196,197,198],{"categoryNo":194,"categoryName":195,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":199,"categoryName":200,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[93,150,202,203,204,107,205,206,207,154,101,208,209,210,211,157,212,213,25,214],"strategy","seo aeo content strategy","content strategy","Citations","as","core","design","information","earn","structure","systems","ramp","prompts",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":219,"categories":220,"keywords":224,"publishedAt":44},"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",[221],{"categoryNo":222,"categoryName":223,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000023","Skill与智能体开发",[225,181,226,227,93,154,171,180,228,229,230,231,173,136,186,212,175,232,233,156],"prompt picker","llm visibility","brand","up","journey","prompt library","across","library","tracking"]