Stop paying for clicks to pages nobody can buy from.
Google Ads read next to each client's store. When a product sells out, a page breaks or a search term never converts, the campaign gets paused, the budget trimmed, the negative keyword added — per client, on policy, with the change on record.
Already have an account? Set this up on a client store →
All 3 products in this ad group are out of stock in Shopify since 06:10. €84 spent on 212 clicks to sold-out pages this morning.
Every client's account leaks the same way, overnight.
The ads account and the store don't talk to each other. The leak starts the moment stock or a page changes, and stops when someone across the agency happens to look — usually after the morning spend is gone.
Sold out, still advertised
A bestseller sells out at midnight. The campaign keeps buying clicks to a page with a greyed-out button until someone opens that client's account.
Broken page, full budget
A product 404s or loses its content after a catalogue change. The campaign pointing at it burns its budget on bounces, and the bounce rate is the only clue.
Junk search terms, paid for
Broad-match keywords pull in searches that never convert. Across a dozen accounts nobody reads every search-terms report every week — so the junk stays paid.
One rule per client account. It runs while you sleep.
Each client's Google Ads account is paired with their store. The deterministic part — product sold out, campaign still enabled — pauses directly. Budget trims and negative keywords go through the Ad Waste agent, which asks unless you've allowed autopilot for that client.
- Scoped to one client — a Bluefin rule never pauses anything in Northwind's account.
- Direct step for the deterministic part: stock hits zero, the campaign pointing at it pauses.
- Agent step for the rest: trim the budget on an ad group that isn't converting, add negatives from the search-terms report — ask me, or autopilot per client.
- Scheduled checks too: spend against conversions weekly, so the next leak is flagged before it drains the month.
Event → policy → agent → ledger.
The store wakes it
An inventory or product update fires the store's webhook. No waiting for a report — the policy for that client runs within minutes of the stockout.
Deterministic first
Conditions are checked against the product and the campaigns targeting its URL. Fixed actions run straight away: pause the campaign or ad group pointing at a dead page.
The rest, with your sign-off
The Ad Waste agent reads campaign performance, search terms and keyword performance next to the store's sales, then proposes the exact change — a daily budget, a list of negatives — and waits unless autopilot is on for that client.
Every change on record
Which campaign, which client, how much it was spending, who approved the pause. When stock returns, the un-pause shows up in the same inbox. The month's changes export per client.
Typed Google Ads actions — not a bot with account access.
You approve “pause campaign 1829304411 — all SKUs sold out”, never “let the AI manage the account”. Reads are free. Every spend-affecting write asks by default; autopilot is a per-client choice.
- toolPause a campaign or ad group sending clicks to a dead page
- toolRaise or lower a campaign's daily budget
- toolAdd negative keywords from the search-terms report
- toolPause or re-bid individual keywords
- toolRead campaign, keyword & search-term performance next to store sales
- toolNotify Slack or the client when a campaign is paused
Put every client's ad account on policy.
Connect the store and its Google Ads account, attach the ad-waste policy, approve the first pause. Free for one store; agency plans from the second.
Free for one store · 14-day trial on paid plans · no card · bring your own AI key