Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Cross-channel alert for spend on Microsoft Shopping ads that point at SKUs your commerce store reports as out of stock. This is pure leakage: you are paying for clicks to product pages that cannot be bought, so the click converts at near zero and the shopper leaves frustrated. The fix is simple and immediate, pause the product group and hold the budget for SKUs that can actually sell. This card only exists because Vortex IQ joins your Microsoft Shopping feed against live commerce inventory, something neither system can see on its own.
What it countsMicrosoft Shopping ad spend on product offers whose matching commerce-platform SKU currently has zero sellable quantity.
How the join worksEach live Shopping offer is matched to its commerce SKU, then checked against the inventory quantity from the connected store (Shopify, BigCommerce, or Adobe Commerce). A quantity of zero with an active ad is the trigger.
Why it is cross-channelMicrosoft Advertising does not know your real-time stock level; the commerce platform does not know which SKUs are being advertised. Only the join surfaces the conflict.
Cost basisGross Microsoft Shopping media cost, post Click Quality filter.
CurrencyAccount currency for spend; inventory quantity is a count, not a value.
Inventory definitionSellable quantity from the commerce store. Items on backorder or with continue-selling-when-out-of-stock enabled may legitimately keep selling; see the FAQs.
Bot / invalid trafficSpend is post-Click-Quality-filter. The waste here is real clicks landing on unbuyable products.
Time windowReal-time. The card surfaces active ads on currently out-of-stock SKUs so you can act the same day.
Alert triggerAny active Shopping ad mapped to a commerce SKU with zero sellable quantity.
Rolesowner, marketing, operations

Calculation

Calculated automatically from your Microsoft Ads (Bing) data joined to your connected commerce store. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

Worked example

A UK homeware brand runs Microsoft Shopping alongside Shopify. The card reads on 22 Apr 26.
SKUProductAd statusCommerce quantity7-day Shopping spendFlagged?
HW-204Stoneware dinner setActive0£180Yes
HW-117Linen throw, naturalActive0£95Yes
HW-330Brass table lampActive42£210No
HW-051Wool rug, greyActive3 (low)£140No (in stock)
HW-209Stoneware mug, singleActive0 (backorder on)£60See note
The card flags £275 of clearly wasted spend (HW-204 and HW-117), with HW-209 needing a judgement call. Reading it:
  1. The dinner set at £180 is the priority pause. It is fully out of stock with no backorder, so every one of those clicks hit a “sold out” page. Pause the product group now; the budget will redistribute to sellable SKUs.
  2. The linen throw is the same story at smaller scale. Pause it too, and set a restock reminder so the ad can be re-enabled rather than forgotten.
  3. The brass lamp and wool rug are correctly unflagged. The rug is low but not zero; advertising a low-stock item is a strategy choice, not waste.
  4. The mug needs operations input. It is at zero quantity but has backorder selling enabled, so the click can still convert into a deferred order. If your fulfilment can honour backorders cleanly, leave it; if backorders cause cancellations and complaints, treat it like the dinner set.
The structural point: this is recoverable budget. Pausing out-of-stock product groups does not reduce your ability to sell, it moves spend onto products that can actually ship. On a feed with frequent stockouts, this card often recovers a steady few percent of Shopping budget every week.

Sibling cards merchants should reference together

CardWhy pair it with Active Shopping Ads on Out-of-Stock SKUs
Spend on Campaigns with Active Feed RejectionsThe other feed-health leak. Out-of-stock and rejected offers both waste Shopping budget for reasons the ad platform cannot see alone.
Microsoft Ads Wasted SpendThe account-wide waste total. This card is the inventory-specific slice of it.
Microsoft Ads Spend by CampaignShows which Shopping campaign carries the flagged SKUs so you can act at the right level.
Microsoft Ads Revenue by CampaignConfirms the flagged product groups are returning near-zero revenue, as expected.
Shopify Total RevenueThe commerce side of the join. The same inventory feed that powers this card.

Reconciling against Microsoft Advertising

Where to look in Microsoft Advertising: Microsoft Advertising → Campaigns → your Shopping campaign → Product groups, with the Spend column visible. To see offer-level status, open Microsoft Merchant Center and review the product catalog. Microsoft will show an offer as serving even when the destination product is out of stock on your store, because Microsoft reads availability from the feed, not your live inventory. Why Microsoft cannot show this on its own:
  • Microsoft Merchant Center availability reflects what your feed last said, which can lag real stock by hours or a full feed cycle.
  • The Shopping report shows spend per product group but does not check live commerce quantity, so an out-of-stock SKU keeps spending until the feed updates and Microsoft re-reviews.
Why our number may legitimately differ from a manual check:
ReasonDirection of divergence
Feed refresh timing. Microsoft availability lags live stock by a feed cycle.Ours flags it sooner than Microsoft marks it unavailable
Backorder / continue-selling SKUs. Zero quantity but still sellable.Ours can over-count unless backorder logic is set
Multi-variant offers. One ad may cover several variants where only some are out of stock.Partial matches may differ
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
shopify.total_revenueFlagged SKUs should show near-zero commerce revenue while their ads ranA flagged SKU with revenue means it was sellable via backorder or the stock feed lagged.
google_ads.gads_wasted_spendThe same SKUs are usually advertised on Google Shopping too; both feeds share the stockoutDifferent feed schedules mean the two platforms may flag the same SKU at slightly different times.

Known limitations / merchant FAQs

Microsoft says the offer is still available. Why does this card flag it as out of stock? Because Microsoft reads availability from your feed, which it refreshes on a schedule, while this card reads live quantity from your commerce store. When a SKU sells out, your store knows immediately but the feed and Microsoft’s review lag behind, sometimes by a full cycle. During that gap the ad keeps spending on an unbuyable product, which is exactly the leak this card catches early. I sell on backorder. Will this card flag SKUs that can still be ordered? It can, unless backorder handling is configured. A SKU at zero quantity with continue-selling-when-out-of-stock enabled is genuinely sellable, so advertising it is fine. If your store uses backorders cleanly, those SKUs should be excluded from the alert; if backorders cause cancellations, treat them as out of stock. Should I delete the ad or just pause it? Pause the product group, do not delete it. The SKU will restock, and a paused group can be re-enabled instantly with its history and learning intact. Deleting forces a rebuild. Better still, set a restock trigger so the group re-enables automatically when inventory returns. Why does this matter more on Shopping than on Search? Shopping ads show the product image and price directly, so a shopper clicks expecting to buy that specific item. Landing on a sold-out page is a sharper disappointment and a near-guaranteed non-conversion. Search ads are more forgiving because the shopper expects to browse. Out-of-stock Shopping spend is therefore close to pure waste. Does pausing out-of-stock SKUs hurt my Shopping campaign? No, it helps it. The budget redistributes to product groups that can actually sell, which lifts campaign-level ROAS and conversion rate. Smart Shopping and Performance-style campaigns also benefit because the algorithm stops spending learning budget on offers that cannot convert. The same SKU is flagged on both Microsoft and Google. Which do I fix first? Both, and the root fix is the same: pause the product group on each platform and correct the stock or feed. The shared cause is the stockout, so once inventory returns and the feeds refresh, re-enable on both. Fixing only one platform leaves half the leak running.

Tracked live in Vortex IQ Nerve Centre

Active Shopping Ads on Out-of-Stock SKUs is one of hundreds of KPI pulses Vortex IQ tracks across Microsoft Ads (Bing) and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English. Start for free or book a demo to see this metric running on your own data.