Stock-Triggered Advertising: Pause Ads When Products Sell Out, Restart When They Are Back
Stock-triggered advertising means your ads switch off when a product sells out and switch back on when it is available again — automatically, from your inventory data, without anyone logging into Google Ads. The same idea applies to anything with limited availability: appointment slots, event tickets, rental units, a subscription box that can only ship so many orders a week. When there is nothing left to sell, the ads stop. When there is, they run.
This guide covers why out-of-stock ads cost more than the clicks, what Google already does for you (and where it stops), and four rules you can copy to run your own campaigns off stock and availability.
Why out-of-stock ads cost more than the clicks
The obvious cost is the click itself. A product with a $2 CPC and a 3% conversion rate needs roughly 33 clicks per sale — about $66 of media per order. Keep that ad live for two days after the last unit ships and you pay for every one of those clicks with zero chance of an order. Across a catalog, "sold out but still advertised" is one of the largest controllable leaks in an e-commerce account.
The second cost is quieter. Clicks that land on an out-of-stock page don't convert, so the ad's conversion rate falls, Smart Bidding learns from the bad data, and the campaign's efficiency drifts down for everything else it serves. The third cost is the mirror image: the product comes back in stock on Tuesday and nobody re-enables the ads until the Friday review. That is three days of demand handed to a competitor.
What Google does on its own — and where it stops
If you run Shopping or Performance Max with a Merchant Center feed, Google already stops showing a product's listing ads once the feed marks it out of stock. That covers a lot, and you should keep it. But it stops short in four places:
- Search, Display, and YouTube keep running. Feed availability only governs listing ads. The text ad for "black hoodie", the remarketing banner, the product video — those serve until you pause them.
- It only knows "out". There is no native rule for "slow the ads when I'm down to my last five units" or "stop pushing the hero SKU while a restock is six days out."
- It waits for the feed. A feed fetched once a day can advertise a product for most of a day after the warehouse count hit zero.
- It knows nothing about availability that isn't a product. Booking capacity, roles filled, listings under offer, classes at capacity — none of that lives in a product feed.
Stock-triggered advertising fills those gaps with a rule that reads your own numbers, on your own schedule, and acts on whichever campaign, ad group, or ad you point it at.
How stock-triggered advertising works
Every version of it has three parts:
- A signal — a number or flag from the system that knows the truth: your store platform, ERP, warehouse system, booking calendar, or a nightly script that checks them.
stock_level: 4,in_stock: false,slots_available: 0. - A rule — the threshold and the target. "When
stock_levelis below 5, pause the Black Hoodie ad group." - An action that reverses itself — the part most setups forget. Pausing is easy; the money is in the restart. The rule should re-enable the ads the moment the condition clears, without a second rule or a calendar reminder.
One practical detail: use two numbers, not one. Pause at "fewer than 5", but don't rely on "5 or more" to resume if your stock hovers around the threshold — a shipment of three units would flip the ads on and off all week. Pause on the low number and treat a genuine restock (say, 25+) as the resume signal, either by making the threshold generous or by having your inventory system only report in_stock: true once the restock has landed.
Four rules you can copy
Each of these is a single rule in AdTrigger. The action is pause or enable at the campaign, ad group, or ad level, and every rule re-enables automatically when its condition stops being true.
- 1. The hard stop. When
in_stockequalsfalse→ pause the product's ad group. Resumes on its own when the next payload saystrue. This is the rule to start with; it catches the expensive case. - 2. The low-stock throttle. When
stock_levelis below 10 → pause the hero ad for that SKU while the category campaign keeps running. You stop spending to sell the last few units you'd sell anyway, without going dark on the range. - 3. The restock relaunch. Nothing to build — it is rule 1 running in reverse. Because the rule tracks the condition rather than firing once, "back in stock" means "ads back on" at the next check, whether that's a Tuesday night or a Sunday morning.
- 4. The availability version. When
slots_availableis 0 or whencapacity_used_pctis 90 or above → pause the sign-up campaign. Same mechanics, different noun: a clinic, a gym, a tour operator, a recruiter with enough applicants, a letting agent with a property under offer.
Setting it up in AdTrigger
AdTrigger's custom data engine takes a JSON payload from any system and lets you write rules against its fields. It is included on the Enterprise plan — see the pricing page — and works like this:
- Create a data source. Under Data Sources, add a webhook source and define the fields you'll send — for example
sku(string),stock_level(number),in_stock(boolean). One source per feed; you can reference it from as many rules as you like. - POST your inventory. AdTrigger gives you a private endpoint and an API key. Send the latest values whenever they change, or on a schedule from a cron job, Shopify Flow, a Zapier/Make step, or your ERP:
POST https://api.adtrigger.io/webhooks/<your-source-id>
x-api-key: <your-api-key>
Content-Type: application/json
{
"sku": "HOODIE-BLK-M",
"stock_level": 4,
"in_stock": true
}- Write the rule. Pick the data source, add a condition —
stock_levelless than5, orin_stockequalsfalse— combine conditions with AND/OR if you need to, choose the campaign, ad group, or ad to pause, and set how often to check. Rules are evaluated on the interval you set, as often as every hour. - Test it with Trigger Now. Every rule has a Trigger Now button that evaluates it against the latest payload immediately, so you can watch the ad group pause, POST a restock, and watch it come back before you trust it with a live catalog.
- Let the audit log do the reporting. Each action records what changed, from what to what, and the exact values that triggered it, and you get an email when a rule fires. When someone asks why the hoodie ads were off on Thursday, the answer is one row.
If you'd rather see it worked through end to end for a Shopify store, the out-of-stock products guide walks the full setup; the capacity guide does the same for the availability version.
Pair it with a ROAS floor
Stock tells you whether an ad can sell; performance tells you whether it is. The two rules that get asked for together most often are "pause when it sells out" and "pause when weekly ROAS drops below a level I choose." AdTrigger's ad metrics engine handles the second one from your own campaign data — the ROAS floor guide and the guardrails post cover it. Run both on the same campaign and you have covered the two ways a product ad wastes money: no stock, and no return.
Rules vs. feed settings vs. scripts
- Merchant Center availability — free, automatic, Shopping and PMax listings only, no thresholds, only as fresh as your feed. Keep it on regardless.
- Google Ads scripts — can do anything, including this, if someone writes and maintains the JavaScript, hosts the inventory lookup, and remembers the script exists when the intern who wrote it leaves.
- Rules-based automation — you describe the condition and the action once in plain fields, it runs on a schedule, and every action is logged. No code, no feed dependency, and it covers Search, Display, and YouTube as well as Shopping.
The bottom line
Advertising a product you can't ship is the one form of wasted spend that is entirely predictable — your own systems know the stock count before the first click is paid for. Stock-triggered advertising closes that loop: the inventory number decides whether the ad runs, the rule checks it on a schedule, and the restart is automatic. Start with the hard stop on your best-selling SKU, watch one restock come and go, and then extend it to the rest of the catalog.
Ready to automate your ads?
AdTrigger lets you pause, enable, and adjust campaigns automatically based on weather, events, and real-time data.
Start Free