The challenge
Spend was split across 60 campaigns built up over three years by two previous agencies. Many targeted the same people, and Shopping campaigns pushed low-margin items as hard as best sellers.
Budget changes happened once a month, so losing campaigns ran for weeks before anyone acted.
What we did
- AuditWe found $6,800 a month going to search terms, placements and audiences with no purchases in 90 days, and a third of the budget on products with under 15% margin.
- Restructure60 campaigns became 14, grouped by margin band and buying intent, with Performance Max fed a product feed that excludes low-margin items.
- Automated rulesScripts now pause ad sets that spend twice the target cost per purchase without converting, and add negative keywords from search terms daily.
- Weekly reviewOur specialist reviews every change the rules make, and moves budget between channels each week based on margin, not platform ROAS.
Who does what
Handled by automation
- Daily negative keywords from search term reports
- Pausing ad sets that overspend without sales
- Budget pacing alerts against the monthly target
Owned by our team
- Account structure and bidding strategy
- Weekly budget moves between Google, Meta and Microsoft
- Creative briefs and monthly testing plan
Results
| Measure | Before | After |
|---|---|---|
| Monthly ad spend | $45,200 | $44,600 |
| Revenue from paid media | $94,900 | $127,200 |
| Blended ROAS | 2.1 | 2.85 |
| Spend with no purchases (90 days) | $6,800 / month | $900 / month |
Compared month four with the average of the three months before we started. Seasonality was similar in both periods.
Tools
- Google Ads
- Meta
- Microsoft Ads
- Shopify
- GA4
This is a sample case study, shown while our client studies are approved for publication.