
Wasted Spend Finder
- 68 installs
- 93 repo stars
- Updated May 14, 2026
- thatrebeccarae/claude-marketing
Helps with ai & agent building tasks.
About
wasted-spend-finder is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- wasted-spend-finder
- AI & Agent Building
- AI-coding skill
Wasted Spend Finder by the numbers
- 68 all-time installs (skills.sh)
- +9 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #5,858 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/thatrebeccarae/claude-marketing --skill wasted-spend-finderAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 68 |
|---|---|
| repo stars | ★ 93 |
| Last updated | May 14, 2026 |
| Repository | thatrebeccarae/claude-marketing ↗ |
What it does
Helps with ai & agent building tasks.
Files
Wasted Spend Finder
Identify and categorize wasted ad spend across Google Ads and Meta platforms. Produces uploadable exclusion lists with thematic categorization.
Install
git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/wasted-spend-finder ~/.claude/skills/Core Capabilities
Google Ads Waste Detection
1. Search Term Waste — zero-conversion terms above spend threshold 2. Placement Waste — Display Network sites/apps and YouTube channels with no conversions 3. Keyword-Level Waste — low conversion rate keywords relative to spend
Meta Ads Waste Detection
1. Placement Waste — Audience Network apps, low-quality inventory 2. Audience Segment Waste — lookalike/interest targeting with poor performance 3. Creative Waste — high frequency + zero conversions, creative fatigue
Waste Thresholds
Spend Threshold Formula
Waste threshold = Average CPA x Multiplier
Multiplier by campaign type:
- Search (branded): 2x CPA
- Search (non-brand): 3x CPA
- Display: 3x CPA
- Meta (all): 2.5x CPAA search term, placement, or audience segment is flagged as waste when:
- Spend exceeds the threshold AND
- Conversions = 0 AND
- Minimum click threshold is met
Minimum Click Thresholds
| Campaign Type | Min Clicks Before Flagging |
|---|---|
| Search (branded) | 50 |
| Search (non-brand) | 25 |
| Display / GDN | 15 |
| YouTube | 20 |
| Meta Feed | 20 |
| Meta Stories | 15 |
| Meta Audience Network | 10 |
Conversion Rate Minimums
Flag keywords/placements performing below these floors:
| Campaign Type | Min Conversion Rate |
|---|---|
| Search (branded) | 8% |
| Search (non-brand) | 1.5% |
| Display | 0.3% |
| YouTube | 0.2% |
| Meta Feed | 0.5% |
| Meta Stories | 0.3% |
Negative Keyword Categorization
Classify wasted search terms into themes for organized exclusion:
| Theme | Pattern | Match Type |
|---|---|---|
| Competitor terms | Brand names, product names | Exact / Phrase |
| Informational intent | how to, what is, tutorial, guide, definition | Phrase |
| Wrong product/service | Related but non-target products | Phrase / Exact |
| Geographic irrelevance | Wrong cities, states, countries | Exact |
| Job/career searches | jobs, salary, hiring, career, resume | Phrase |
| Free/cheap intent | free, cheap, discount, coupon, deal | Phrase |
| Irrelevant modifiers | DIY, homemade, kids, old, used | Phrase |
Placement Exclusion Categories
Google Display Network
- Low-quality apps (game apps, utility apps, kids apps)
- Parked domains and MFA (made-for-advertising) sites
- Irrelevant content categories
YouTube
- Music videos and lyrics channels
- Kids and animation content
- Gaming content (unless relevant)
- Clickbait and low-quality channels
Meta Audience Network
- Game apps
- Utility and calculator apps
- Foreign language apps
- Apps with under 100 reviews
Workflow
1. Data Collection
Pull data for the analysis period (typically 30-90 days):
Google Ads:
- Search terms report
- Placement report (Display + YouTube)
- Keyword performance report
- Campaign/ad group settings for CPA benchmarks
Meta Ads:
- Placement breakdown report
- Audience breakdown report
- Ad-level report with frequency data
2. Apply Thresholds
Calculate waste threshold per campaign using the formula above. Flag items exceeding thresholds.
3. Categorize
Assign each flagged item to a theme category. Group for batch exclusion.
4. Generate Exclusion Lists
Output CSV files ready for upload:
negative-keywords.csv— with match type and campaign/ad group scopeplacement-exclusions.csv— with reason and spend wastedaudience-exclusions.csv— with segment details and waste amount
5. Validate
- Cross-check that exclusions do not remove converting terms
- Verify match types will not over-exclude
- Estimate savings from the proposed exclusions
Safety Rules
1. Analysis only. Never make live account changes without human review. 2. Projections are estimates. Label all savings projections clearly. 3. Check for false positives. Some high-spend zero-conversion terms may be in a consideration window. 4. Consider attribution. View-through and assisted conversions may justify some "wasted" spend. 5. Preserve data. Export current state before applying any exclusions.
For GAQL query patterns and CSV formats, see REFERENCE.md.
Wasted Spend Finder — Examples
Example 1: Google Ads Search Term Audit
Prompt:
Analyze our Google Ads search terms for the last 60 days. Our average CPA is $45. Find wasted spend and generate a negative keyword list.
Expected output:
- Waste threshold: $90 (2x CPA for branded), $135 (3x CPA for non-brand)
- Findings: 127 search terms flagged, $8,400 total waste (12% of spend)
- Breakdown by theme:
- Competitor terms: 23 terms, $2,100 wasted
- Informational intent: 41 terms, $2,800 wasted
- Job/career: 18 terms, $1,200 wasted
- Geographic irrelevance: 12 terms, $900 wasted
- Free/cheap intent: 33 terms, $1,400 wasted
- CSV output:
negative-keywords.csvwith match types per theme - Estimated monthly savings: $4,200
- False positive check: 3 terms flagged for review (high-ticket consideration window)
---
Example 2: Meta Placement Audit
Prompt:
Check our Meta Ads placements for waste. We're spending $30K/month across Feed, Stories, Reels, and Audience Network. Average CPA is $22.
Expected output:
- Audience Network analysis: 18% of spend, 2% of conversions
- 14 app placements with zero conversions, $3,200 wasted
- Recommendation: exclude Audience Network for conversion campaigns
- Stories placement: $0.38 CPA vs. Feed $0.52 — efficient, keep
- Reels: high impressions, low clicks — brand awareness value, not waste
- Feed: 3 ad sets with frequency >5 and zero conversions, creative fatigue
- CSV output:
placement-exclusions.csvandaudience-exclusions.csv - Estimated savings: $3,200/month from Audience Network exclusion alone
---
Example 3: Cross-Platform Quarterly Cleanup
Prompt:
Run a full wasted spend analysis across Google Ads and Meta for Q4. We spent $120K total. Generate all exclusion lists and estimate total recoverable budget.
Expected output:
- Google Ads ($75K spent):
- Search term waste: $6,800 (9.1%)
- Placement waste (Display): $3,200 (4.3%)
- YouTube waste: $1,100 (1.5%)
- Total Google waste: $11,100 (14.8%)
- Meta Ads ($45K spent):
- Audience Network waste: $4,500 (10%)
- Creative fatigue: $2,800 (6.2%)
- Audience segment waste: $1,900 (4.2%)
- Total Meta waste: $9,200 (20.4%)
- Combined: $20,300 wasted (16.9% of total spend)
- Projected annual savings: ~$81,200 if cleaned monthly
- 4 CSV exclusion files generated
- Priority actions: (1) Exclude Audience Network, (2) Add negative keyword themes, (3) Refresh fatigued creative, (4) Consolidate low-volume ad sets
MIT License
Copyright (c) 2026 Rebecca Rae Barton
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Wasted Spend Finder — Reference
GAQL Queries (Google Ads Query Language)
Search Terms Report
SELECT
search_term_view.search_term,
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value
FROM search_term_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESCPlacement Report (Display + YouTube)
SELECT
detail_placement_view.display_name,
detail_placement_view.target_url,
detail_placement_view.placement_type,
campaign.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions
FROM detail_placement_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESCKeyword Performance
SELECT
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value
FROM keyword_view
WHERE segments.date DURING LAST_30_DAYS
AND metrics.cost_micros > 0
ORDER BY metrics.cost_micros DESCCampaign CPA Benchmark
SELECT
campaign.name,
campaign.id,
metrics.cost_micros,
metrics.conversions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
AND metrics.conversions > 0Meta Ads API Queries
Placement Breakdown
GET /{ad_account_id}/insights
?level=ad
&breakdowns=publisher_platform,platform_position
&fields=spend,impressions,clicks,actions,cost_per_action_type
&time_range={"since":"2026-02-13","until":"2026-03-13"}Audience Breakdown
GET /{ad_account_id}/insights
?level=adset
&fields=spend,impressions,clicks,actions,cost_per_action_type,frequency
&time_range={"since":"2026-02-13","until":"2026-03-13"}Creative Fatigue Detection
GET /{ad_account_id}/insights
?level=ad
&fields=ad_name,spend,impressions,frequency,actions,cost_per_action_type
&filtering=[{"field":"frequency","operator":"GREATER_THAN","value":"3"}]
&time_range={"since":"2026-02-13","until":"2026-03-13"}CSV Output Formats
Negative Keywords CSV
Keyword,Match Type,Campaign,Ad Group,Spend Wasted,Clicks,Theme
"competitor product name",Exact,Search - Non-Brand,General,[cost],[clicks],Competitor
"how to do it yourself",Phrase,Search - Non-Brand,General,[cost],[clicks],Informational
"free alternative",Phrase,Search - Non-Brand,General,[cost],[clicks],Free IntentPlacement Exclusions CSV
Placement,Type,Campaign,Spend Wasted,Impressions,Clicks,Conversions,Category
"game-app.example.com",App,Display - Prospecting,[cost],[impr],[clicks],0,Low-Quality App
"lyrics-channel",YouTube,Video - Awareness,[cost],[impr],[clicks],0,Music/LyricsAudience Exclusions CSV
Audience,Type,Campaign,Spend,Impressions,Conversions,CPA,Recommendation
"Lookalike 5%",Lookalike,Prospecting,[spend],[impr],0,N/A,Exclude or narrow
"Interest: Cooking",Interest,Awareness,[spend],[impr],0,N/A,ExcludeSavings Estimation
Estimated Monthly Savings = Sum of waste spend over analysis period / months
Confidence levels:
- HIGH: Zero conversions, 3x CPA threshold exceeded, 50+ clicks
- MEDIUM: Zero conversions, 2x CPA threshold exceeded, 25+ clicks
- LOW: Low conversion rate but some conversions presentCommon False Positives
| Scenario | Why It Looks Like Waste | Why It Might Not Be |
|---|---|---|
| Brand terms from competitors | Zero direct conversions | May drive brand awareness |
| Broad educational queries | No immediate conversion | Top-of-funnel consideration |
| High-ticket items | Long conversion window | Attribution window too short |
| New campaigns (<14 days) | Insufficient data | Learning phase |
| View-through heavy platforms | Low click conversions | View-through conversions not counted |
Always check assisted conversions and extend the attribution window before excluding.