Home / Guides / Stock & ads

Stock & ads

Pause ads when out of stock on Shopify: 5 methods

The search is 'pause ads when out of stock shopify'. The honest answer is that pausing is rarely the right verb, and there are five different things people mean by it.

Updated 9 Sep 2026 · ~1352 words · David Smith

People type "pause ads when out of stock Shopify" and get a list of apps. What they actually need is a list of mechanisms, because "pause" covers five different things, and the free one at the top solves most of the problem before you buy anything.

Direct answer: First, make catalogue availability true at variant level through Shopify's Meta and Google channels; a sold-out size then stops being shopped on its own. Second, use Shopify Flow to tag the situations availability cannot see (a broken core size run, cover under a threshold) and push those tags to custom labels. Third, build product sets and listing groups that exclude the labels. Fourth, exclude individual SKUs at campaign level when they waste spend. Fifth, put stock next to spend every morning, by hand or with a desk, because none of the rules tell you what the stockout cost. Pausing the ad set by hand is the sixth option and it is usually wrong.

Method 1: variant-level availability (free, automatic, do it first)

Shopify's Meta channel and Google channel send each variant as its own catalogue item with its own availability. When the size 10 hits zero, the size 10 item flips to out of stock and the platforms stop serving it, while the other sizes keep going. This is the layer everyone is actually asking for and it costs nothing.

The catches: the flip lags the warehouse by minutes to hours, some feed tools send parents instead of variants, and a parent stays available while any size remains. Prove yours works with a controlled stockout: verify a tool's variant-level stock sync.

Method 2: Shopify Flow tags into feed labels

Flow watches inventory and can tag a product when a condition is met: a named variant below a threshold, or total units below a number. That tag can be mapped into a custom label in the Meta and Google feeds. Now you have a signal availability cannot produce: "core size run broken" or "under five days of cover". Flow cannot pause ads itself; it is the trigger, not the switch.

Method 3: product sets and listing groups that exclude the label

Meta product sets can be built with a rule that excludes items carrying the label. Google product groups and PMax listing groups can exclude the label too. The campaigns keep running, the flagged styles are simply not in the shop window. Restock, tag clears, style returns. No human touched an ad set. Building sets that resolve to real variants is in Meta product sets and catalog ads from Shopify, and the way sets go stale without this is product set rot.

Method 4: campaign-level exclusions for the waste, not the stock

Some products are in stock and still burning money in one particular campaign. That is a performance decision, and it belongs at campaign level: exclude the SKU there, record why, put a date on the revert. Do not fix it by editing a shared product set, because five other campaigns are using it. The model is in exclude one product from a Meta or Google campaign.

Stock (per variant)Harris jacket · 10 · 3 days coverHarris jacket · 12 · sold outLinen shirt · M · 41 days coverSpend (per campaign)Bestsellers ASC · £412 yesterdayRetarget 30d · £96 yesterdayMorning list, ranked by £ at risk1. Harris jacket 12: sold out, 2 campaigns, £180/day → exclude in Bestsellers ASC (revert on restock)2. Harris jacket 10: 3 days cover, withhold last 4 units3. Linen shirt M: fine, leave it
A stock alert says what is low. A spend report says what is expensive. The morning list is the join, per variant, ranked by money at risk.

Method 5: stock next to spend, every morning

Methods one to four are rules. None of them tell you that the jacket ad set spent £340 yesterday against a broken size run, or that the buffer on your bestseller should move from two units to five, or that the UGC ad still shows the sold-out colour. That is a daily join of stock and spend, and either a person does it in a spreadsheet or software stages it for approval. This is the layer Ralph is built for: how Ralph handles out-of-stock sizes and SKUs.

Method 6: pause the ad set by hand (usually wrong)

A catalogue ad set serves dozens or hundreds of products. Pausing it because one bestseller sold out stops all of them and resets learning when you turn it back on. It is the right call only when the ad set is single-product, or the creative itself is now a lie. The decision tree, with the cases where pausing is right, is in should I pause these ads.

The six, side by side

MethodSeesCostLagFails when
Variant availabilityUnits per variantFreeMinutes to hoursParent-level feeds; broken size runs
Flow tags to labelsRules you write on inventoryFree on plans with FlowFeed refreshNobody maintains the rules by season
Sets and listing groupsThe labelsFreeSet refreshSets shared across campaigns get edited for one
Campaign exclusionsWhatever you decidedFreeImmediateNo revert date; forgotten exclusions
Operator deskStock and spend togetherFree tier to see; paid to applyMorningSold as a silent auto-pauser
Manual pauseYour judgementYour timeWhen you noticeAlmost always. Learning resets, siblings stop
Availability handles the sold-out size for free. The expensive problems are the ones availability cannot see, and they need a rule, then a person.

The order matters

Do method one, test it, then add two and three. Only then think about four and five. Brands that start with a tool and skip the availability check end up paying for a rule engine that is reading a feed that only knows about parents. Every layer, and who sells each one, is in which platforms pause ads for out-of-stock variants.

Set it up yourself, in this order

0 of 6 done. Ticks stay on this device. When they are all ticked you know exactly what a desk would be doing for you.

Set up stock-aware ads on Shopify, in order

  1. Get availability right at variant level. Use Shopify's Meta channel and Google channel so each variant is its own catalogue item with its own availability. Test with a controlled stockout.
  2. Tag the situations availability cannot see. In Shopify Flow, tag products when a named core size hits a threshold, or when total cover drops below a number of days. Push tags to a custom label in the feeds.
  3. Build sets and listing groups on the labels. Meta product sets and Google listing groups that exclude the label. Now the rule is enforced in the campaigns without touching availability.
  4. Add campaign-level exclusions for waste. For the SKU that is in stock but burning spend in one campaign, exclude it there, with a note and a date to revert.
  5. Put stock next to spend every morning. None of the above tells you what it cost. Something, or someone, has to join spend to stock daily and stage the exceptions.

Questions people actually ask

How do I pause Facebook ads when a product goes out of stock on Shopify?

For catalogue ads you usually do not need to pause anything: with the Shopify Meta channel sending variant-level availability, a sold-out variant stops being shopped once the catalogue refreshes. What needs a rule is the style whose core sizes are gone, and the static ad that features a dead size. For those, tag in Shopify Flow, exclude by label in the product set, and check creatives by hand.

Can Shopify Flow pause my ads?

Not directly. Flow can tag products, send notifications and call some apps when inventory changes. The tag can then drive a custom label in your Meta and Google feeds, and product sets or listing groups exclude on that label. Flow to tag to label to set is the standard chain.

Do Meta automated rules see Shopify stock?

No. Automated rules see ad metrics: spend, results, cost per result. They cannot see inventory, which is why a performance rule will pause a good product that simply ran out of its converting sizes. Stock rules have to come from the feed side.

Should I pause the whole ad set when a bestseller sells out?

Rarely. A catalogue ad set serves many products and the siblings can still ship. Pause the ad set and you stop everything. Exclude the product, or let availability handle it, and keep the ad set running.

What is the fastest method with no tools at all?

Correct variant availability through the Shopify channels, plus a weekly check of static ads against stock. That covers most of the loss for a small catalogue. Everything else on this page is for when the catalogue, or the spend, is too big to eyeball.

If a sold-out size is the problem: Ralph reads every size against every campaign overnight, finds the ones still paying for an empty shelf, and stages the exclusion with a revert for restock day. You say yes. See Ralph · How Ralph handles out-of-stock sizes · Docs