> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Active Catalogue Ads on Out-of-Stock SKUs, Snapchat Ads

> Active Catalogue Ads on Out-of-Stock SKUs for Snapchat Ads stores. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Card class:** [Hero](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ad Platform](/nerve-centre/connectors#connectors-by-type)

## At a glance

> The count of SKUs served by active Snapchat Dynamic Ads (catalogue-driven campaigns) that are currently out of stock on the connected commerce platform, so spend is driving swipe-ups to products that cannot be bought. Every SKU shown here is an in-app swipe-up that lands a Gen-Z shopper on a sold-out product page, which burns budget and trains Snapchat's optimiser on the wrong signals. Because the join runs live against the commerce inventory feed, the card names the catalogue product and the SKU so you can pause delivery, hold the budget, and recover the spend within minutes. **Caveat**: the Snapchat product catalogue syncs on a delay, so a SKU that just sold out can keep serving in Dynamic Ads until the next feed pull. Treat the figure as the floor of the waste, not the ceiling.

|                                          |                                                                                                                                                                                                                                                                                                          |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**                       | The number of out-of-stock SKUs that are still being served by active Snapchat Dynamic Ads, joined live across the Snapchat Ads connector and the connected ecommerce connector. Each counted SKU has at least one active dynamic ad pointing at it and zero (or negative) available stock on the store. |
| **What "out of stock" means**            | Inherited from the commerce platform's own definition (for example zero or negative available inventory on an active, published product). Draft, hidden, or archived products do not count.                                                                                                              |
| **SKU matching**                         | Matched between the Snapchat product catalogue and the commerce product index by a shared identifier such as GTIN, MPN, or product handle. Naming mismatches are common, so treat the figure as an underestimate rather than an overestimate.                                                            |
| **Why Snapchat Dynamic Ads are exposed** | Dynamic Ads pull from a product catalogue that is either uploaded to Snapchat or synced from the store feed on a schedule. Until the next catalogue refresh, Snapchat keeps serving items the store has already marked out of stock. Tightening the catalogue update cadence closes most of the gap.     |
| **Catalogue campaign opacity**           | Dynamic Ads auto-select which catalogue items to show per impression, so you cannot reliably pause a single SKU from inside the campaign. The durable fix is to mark the item out of stock in the catalogue feed, which propagates to delivery on Snapchat's schedule.                                   |
| **Why mobile makes it worse**            | Snapchat runs only inside the mobile app, so every swipe-up opens an in-app browser on a phone. A sold-out landing page is a dead end with no desktop alternative, and the bounced session still cost a swipe-up plus a CPM impression.                                                                  |
| **Chart type**                           | Alert table. Each row names the ad set or dynamic ad, the out-of-stock SKU, and the spend at risk.                                                                                                                                                                                                       |
| **Currency**                             | Account currency on the Snapchat side. For multi-platform stores, spend is shown in the workspace display currency and treated as approximate.                                                                                                                                                           |
| **Time window**                          | `RT` (real-time, recomputed on the standard refresh).                                                                                                                                                                                                                                                    |
| **Roles**                                | owner, marketing, operations                                                                                                                                                                                                                                                                             |

## Calculation

Calculated automatically from your Snapchat Ads data joined to your commerce inventory. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

Aurelia Active, a UK athleisure brand on Shopify, runs a Snapchat Dynamic Ads prospecting campaign and a Dynamic Ads retargeting ad set, both fed from the same product catalogue. Reading taken at 11:30 on 14 Apr 26. Account currency GBP. All figures are illustrative.

| Ad set                    | Mapped SKU               | Stock state                        | Daily spend (£) | Flagged |
| ------------------------- | ------------------------ | ---------------------------------- | --------------- | ------- |
| Dynamic Ads (prospecting) | seamless-legging-black-S | Out of stock (sold through 13 Apr) | 142             | Yes     |
| Dynamic Ads (prospecting) | cropped-hoodie-sage-M    | In stock                           | 188             | No      |
| Dynamic Ads (retargeting) | sports-bra-coral-L       | Out of stock                       | 71              | Yes     |
| Dynamic Ads (retargeting) | run-short-navy-M         | In stock                           | 96              | No      |

1. **The card reads about £213/day at risk** across the two out-of-stock SKUs, projecting to roughly £1,490 a week if left running. On Snapchat the auction can accelerate this if the sold-out item was a recent swipe-up winner that the optimiser keeps favouring.
2. **The black seamless legging is the worst offender.** It sold through the previous evening, but the Snapchat catalogue last synced 16 hours ago, so the prospecting campaign is still serving it to cold Gen-Z audiences. The store already marked it out of stock; the lag is entirely on the feed-sync side.
3. **Dynamic Ads cannot always be paused at the SKU level.** The fix is to confirm the item is marked out of stock in the Snapchat catalogue feed and let delivery drop it on the next sync, or to switch the catalogue update schedule to a tighter cadence so the gap shrinks from hours to minutes.
4. **The retargeting case is more urgent than it looks.** A shopper who already swiped up once on the coral sports bra is now hitting a sold-out page on the second touch, which sours the warmest audience you have. That is reputational waste on top of the raw spend.
5. **The reclaimed budget compounds.** Roughly £213/day moved off dead SKUs onto in-stock high-velocity items earns several times its value back at a typical Snapchat Dynamic Ads ROAS, so the real opportunity is larger than the raw waste figure.

Quick reads:

* Out-of-stock SKU still spending = pause or exclude, then check the catalogue sync schedule.
* Spend persists after marking out of stock = feed-sync lag. Tighten the catalogue update schedule.
* Whole campaign affected = Dynamic Ads auto-selection; fix at the feed level, not the campaign level.

## Sibling cards merchants should reference together

| Card                                                                                                                                  | Why pair it with Active Catalogue Ads on Out-of-Stock SKUs            | What the combination tells you                                                                                       |
| ------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| [Shopify Products with Zero/Negative Stock](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock)                        | The out-of-stock source list.                                         | This card is that list filtered to "out of stock AND being advertised in Snapchat Dynamic Ads".                      |
| [Shopify Active Ads on Out-of-Stock SKUs](/nerve-centre/kpi-cards/shopify/active-ads-on-out-of-stock-skus)                            | The commerce-platform view of the same join, across all ad platforms. | The store-wide total; this Snapchat card is the Snapchat slice of it.                                                |
| [Shopify OOS Spike Alert](/nerve-centre/kpi-cards/shopify/oos-spike-alert)                                                            | Predicts which SKUs are about to go out of stock.                     | Pause or de-prioritise dynamic ads pre-emptively before the waste starts.                                            |
| [Spend on Campaigns with Active Feed Rejections](/nerve-centre/kpi-cards/snapchat-ads/spend-on-campaigns-with-active-feed-rejections) | The other catalogue-health alert.                                     | A feed that rejects items and a feed that serves sold-out items are two sides of the same catalogue hygiene problem. |
| [Mobile Landing Pages with Poor Web Vitals](/nerve-centre/kpi-cards/snapchat-ads/mobile-landing-pages-with-poor-web-vitals)           | The destination-quality view.                                         | A sold-out page is the extreme case; a slow mobile page is the everyday case. Both waste the swipe-up.               |
| [Wasted-Spend Burst (3-day spike)](/nerve-centre/kpi-cards/snapchat-ads/wasted-spend-burst-3-day-spike)                               | The general wasted-spend alert.                                       | Out-of-stock dynamic ads are one common cause of a zero-conversion burst.                                            |
| [ROAS by Campaign](/nerve-centre/kpi-cards/snapchat-ads/roas-by-campaign)                                                             | Where the catalogue campaigns sit on efficiency.                      | A Dynamic Ads campaign with collapsing ROAS often has out-of-stock landing products behind it.                       |
| [Spend by Campaign](/nerve-centre/kpi-cards/snapchat-ads/spend-by-campaign)                                                           | The budget context.                                                   | How much of total Snapchat spend is exposed to the out-of-stock catalogue.                                           |

## Reconciling against Snapchat Ads Manager

**Where to look in Snapchat Ads Manager:**

Snapchat Ads Manager itself has no native "ads on out-of-stock SKUs" view, because it has no live link to commerce inventory. The closest reconstruction is across two surfaces:

* In Snapchat Ads Manager at ads.snapchat.com, open Assets, then Catalogues, and review the product set diagnostics. This shows items flagged unavailable or out of stock in the catalogue feed. It is the upstream signal but reports feed health, not the spend at risk.
* Back in the campaigns view at ads.snapchat.com, the ad set table shows spend per Dynamic Ads ad set but does not cross-reference live commerce stock.

You would have to read the unavailable items from the catalogue diagnostics, then match them by hand to the spending ad sets in Ads Manager. This card does that join automatically and continuously. Snap Pixel and Conversions API health, which determines whether the lost conversions are even being measured, lives separately again in Snapchat Events Manager.

**Why our number may legitimately differ from Snapchat:**

| Reason                          | Direction                  | Why                                                                                                                                                                                    |
| ------------------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **SKU matching gaps**           | Ours lower (underestimate) | Matching by GTIN, MPN, or handle covers most catalogues. Non-standard naming or custom feed transforms leave some SKUs unmatched, so they spend without being counted.                 |
| **Commerce sync lag**           | Ours lower (transient)     | An item that just went out of stock on the store webhooks into Vortex IQ within minutes; in the gap before that, spend may not yet be flagged.                                         |
| **Snapchat catalogue sync lag** | Drives the waste           | Snapchat keeps serving an out-of-stock item until its next catalogue pull. Spend accrues against the out-of-stock SKU during that gap.                                                 |
| **Attribution window**          | Context only               | Snapchat commonly reports on a 7-day-click and 1-day-view basis, so a sold-out SKU may still show late-arriving conversions from before it sold out. Those do not undo the live waste. |
| **Multi-currency**              | Approximate                | Multi-platform spend summed without FX is order-of-magnitude correct, not exact.                                                                                                       |

**Cross-connector reconciliation:**

| Card                                                                                                             | Expected relationship                                                       | What causes legitimate divergence                                                                       |
| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [`shopify.products_with_zero_negative_stock`](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock) | This card is a subset (out of stock AND advertised in Snapchat Dynamic Ads) | Items on that list with no active Snapchat dynamic ad simply do not appear here.                        |
| [`shopify.active_ads_on_out_of_stock_skus`](/nerve-centre/kpi-cards/shopify/active-ads-on-out-of-stock-skus)     | This Snapchat card is the Snapchat portion of the store-wide total          | The store-wide card also includes Google, Meta, TikTok, and Amazon ad spend.                            |
| [`snapchat_ads.wasted_spend`](/nerve-centre/kpi-cards/snapchat-ads/wasted-spend)                                 | A related, broader waste signal                                             | Wasted Spend counts any zero-conversion ad set; this card isolates the out-of-stock cause specifically. |

***

<details>
  <summary><em>Documentation cross-reference (Snapchat product catalogue and the feed-level fix)</em></summary>

  Because Snapchat Dynamic Ads select products from the catalogue automatically, you cannot reliably stop an out-of-stock SKU by editing the campaign. The durable fix is at the feed level: mark the item out of stock in the Snapchat catalogue (directly in Assets at business.snapchat.com, or via the commerce platform's Snapchat channel app or feed-management tool) and tighten the catalogue update schedule so Snapchat drops it from delivery quickly. Where the feed is synced from the store, fixing the cadence at the source fixes it everywhere. Vortex Mind can surface or, where opted in, action this recommendation; the manual review default is conservative because a fast-restocking viral item can be worth keeping live.
</details>

## Known limitations / merchant FAQs

**Why is spend still showing on a SKU I already marked out of stock?**
The Snapchat product catalogue syncs on a schedule. Until the next sync, Snapchat keeps serving the item in Dynamic Ads even though the store has it marked out of stock. Tighten the update schedule on the catalogue (or the feed-management tool feeding it) to shrink the gap from hours to minutes.

**Why can't I just pause the SKU in the Dynamic Ads campaign?**
Dynamic Ads choose which catalogue items to show per impression automatically, so there is not always a per-SKU pause inside the campaign. The reliable lever is the catalogue feed: mark the item out of stock there and it drops from delivery on the next sync.

**Why might my figure be lower than I expect?**
SKU matching depends on a shared identifier between the Snapchat catalogue and the commerce index. Brands with non-standard SKU naming, white-label items, or custom feed transforms will have unmatched SKUs that spend but are not counted, so the card underestimates rather than overestimates.

**Why is the figure zero when I know items are out of stock and ads are running?**
Either no commerce connector is linked (the join needs live inventory), or the out-of-stock items have no active Snapchat dynamic ad pointing at them, or the SKU mapping key is not matching. Check the connector link and the mapping configuration.

**Does this include non-catalogue Snapchat campaigns?**
No. The card is about Snapchat Dynamic Ads (catalogue-driven) spend pointed at specific out-of-stock SKUs. A Single Image, Story, Collection, Spotlight, or AR Lens campaign that does not serve a specific out-of-stock product is not the target here; pair with Wasted-Spend Burst for the broader zero-conversion case.

**Does the high iOS audience on Snapchat affect this card?**
Not the count itself, which is driven by inventory, not attribution. But it matters for the consequence: because so many Snapchat conversions arrive through the Conversions API on a delay under a 1-day-view window, a sold-out SKU can keep looking like a recent winner to the optimiser even after it stops converting, which is exactly why it keeps spending. Fix the stock signal at the feed, do not wait for the metrics to catch up.

**Should I auto-pause out-of-stock dynamic ads?**
For high daily spend, pausing or excluding promptly is almost always right. The conservative default is to surface the recommendation for a manual review step, because a fast-restocking item can be worth keeping live to capture the back-in-stock buying window, which on Snapchat can be substantial if the item was a viral seller with a young, impulse-driven audience.

**My commerce platform and Snapchat disagree on stock. Whose truth wins?**
The commerce platform is the inventory truth source; Snapchat holds a slightly stale copy via the catalogue feed. This card treats commerce stock as authoritative and flags Snapchat spend that runs against it.

***

### Tracked live in Vortex IQ Nerve Centre

*Active Catalogue Ads on Out-of-Stock SKUs* is one of hundreds of KPI pulses Vortex IQ tracks across Snapchat Ads 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](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
