> ## 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 Ads on Out-of-Stock SKUs, Shopify

> Spend burning on SKUs that can't convert. The single highest-ROI 'pause' recommendation in the AI OS. How to read it, why it matters, and how to act on it.

**Metrics type:** [Cross-Platform Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Spend burning on SKUs that can't convert. The single highest-ROI 'pause' recommendation in the AI OS.

## At a glance

> The £/\$ ad spend in the last 24h pointed at Shopify variants that are currently out of stock (`Product.totalInventory <= 0 AND Product.status = ACTIVE`). The single highest-ROI "pause" recommendation Vortex IQ ever surfaces, every dollar shown here is wasted CPC.

|                               |                                                                                                                                                                                                                                                                                                                                                 |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**            | `SUM(ad_spend WHERE landing_page_sku IN (Shopify OOS variants) OR shopping_feed_sku IN (Shopify OOS variants))` for the last 24h. Joined live across [Google Ads](/nerve-centre/kpi-cards/google-ads), [Meta Ads](/nerve-centre/facebook), [TikTok Ads](/nerve-centre/tiktok), and [Amazon Ads](/nerve-centre/kpi-cards/amazon-ads) connectors. |
| **What "OOS" means here**     | Same definition as [Inventory Alerts](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock), `Product.totalInventory <= 0 AND Product.status = ACTIVE`. Negative-stock variants count, draft / archived products don't.                                                                                                            |
| **VAT / tax treatment**       | Ad spend is tracked excluding VAT (most ad platforms invoice ex-VAT to merchants). Display matches the platform's billing convention.                                                                                                                                                                                                           |
| **Shipping**                  | Not applicable, this is ad spend, not order revenue.                                                                                                                                                                                                                                                                                            |
| **Discounts**                 | Not applicable.                                                                                                                                                                                                                                                                                                                                 |
| **Refunds**                   | Not applicable to spend; an ad-platform-issued credit (rare) doesn't change historical spend tracked here.                                                                                                                                                                                                                                      |
| **Cancelled / voided orders** | Not applicable, the card measures spend not orders.                                                                                                                                                                                                                                                                                             |
| **Currency**                  | Multi-platform spend in mixed currencies, summed without FX conversion. Display in the workspace's display currency, treated as approximate for multi-platform multi-currency stores.                                                                                                                                                           |
| **Channels / sources**        | All connected ad platforms contribute. Google Ads (Shopping + Performance Max + Search), Meta Ads (Catalogue Sales + DPA), TikTok Shop ads, Amazon Sponsored Products. Affiliate / influencer / email channels are not included (no ad spend data).                                                                                             |
| **SKU matching**              | Match by `gtin`, `mpn`, or `productHandle` between the ad platform's product feed and Shopify's product index. Mismatches due to differing SKU naming are common, treat the figure as an UNDERESTIMATE rather than overestimate.                                                                                                                |
| **Time window**               | `RT` (rolling last 24h, recomputed every 60 minutes)                                                                                                                                                                                                                                                                                            |
| **Alert trigger**             | `>$0/day spend on OOS SKUs`, the card is loud whenever even a small daily spend is detected against OOS variants                                                                                                                                                                                                                                |
| **Roles**                     | owner, marketing, finance                                                                                                                                                                                                                                                                                                                       |

## Calculation

Calculated automatically from your Shopify data. 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 fashion brand on Shopify Plus running Google Shopping, Performance Max, and Meta Catalogue Sales. Reading taken at 11:30 GMT on 12 Apr 26. Total daily ad spend across all platforms is roughly £4,200.

| Platform             | Total daily spend | Spend on OOS SKUs | Share     | Note                                                                |
| -------------------- | ----------------- | ----------------- | --------- | ------------------------------------------------------------------- |
| Google Shopping      | £1,400            | £312              | 22.3%     | Linen-shirt-medium-cream sold through 2 days ago, feed still active |
| Performance Max      | £1,800            | £147              | 8.2%      | PMax automation slow to drop OOS SKUs from rotation                 |
| Meta Catalogue Sales | £750              | £198              | 26.4%     | Meta product feed last synced 18h ago, OOS variants still active    |
| TikTok Shop ads      | £250              | £0                | 0%        | TikTok feed sync is hourly, fast catch-up                           |
| **Total**            | **£4,200**        | **£657**          | **15.6%** | The card reads £657/day burning                                     |

The card reads **£657 / day spend on OOS SKUs**, projected at roughly **£20,000 / month if unchecked**. Six things to notice:

1. **The £657 is upper-bound wasted spend.** Some of those clicks generate "view OOS" tracking events that feed Google's signal layer (improving future bidding), and a fraction of customers click through and buy a different SKU on the same store. So the true wasted figure is closer to £400 to £500. Still material.
2. **Meta is the worst offender.** Meta's catalogue sync frequency is configurable but defaults to every 24 hours; merchants who haven't tuned it down to hourly bleed the most spend on stale OOS data. Setting *Commerce Manager → Catalog → Settings → Update schedule* to "Hourly" closes most of the gap.
3. **Google PMax is structurally hard to fix.** Performance Max is an automated campaign type with limited SKU-level controls. Google's documented best-practice is to remove OOS items from the *Merchant Center feed* (not the campaign), which propagates to PMax within 6 to 12 hours. Manual SKU-level negative bidding doesn't work with PMax.
4. **TikTok Shop's hourly sync is best-in-class.** TikTok's tight integration with Shopify means the feed reflects OOS within 60 minutes. This is increasingly true of the newer ad platforms; legacy Google / Meta integrations lag.
5. **The cross-platform value compounds.** The £657 / day saved here is roughly 15% of total ad spend. Reallocated to in-stock high-velocity SKUs, the same £657 produces incremental £2,000 to £3,500 / day in revenue (typical 3 to 5x ROAS for top SKUs). The total opportunity is closer to £3,000 / day, not £657.
6. **The card is a recommendation, not an automatic pause.** Vortex IQ Mind can auto-pause OOS ads via the Google Ads / Meta Ads connectors if the merchant has opted in (*Settings → Mind → Auto-actions*). Most merchants prefer a manual review step; the auto-pause feature is conservative and only triggers above £100/day waste.

## Sibling cards merchants should reference together

This card is the highest-ROI cross-platform pair. Triage and prevent with these:

| Card                                                                                                   | Why pair it with Active Ads on OOS SKUs                                                                             |
| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- |
| [Products with Zero/Negative Stock](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock) | The OOS source. This card filters that list down to "OOS variants that are currently being advertised".             |
| [Top Products by Revenue](/nerve-centre/kpi-cards/shopify/top-products-by-revenue)                     | Combine: a top-50 revenue SKU on the OOS-with-ads list is the highest priority. Pause + reorder.                    |
| [Stock vs Sales](/nerve-centre/kpi-cards/shopify/stock-vs-sales-velocity)                              | Predicts which non-OOS variants will go OOS in the next 7 days. Pause ads pre-emptively or reorder pre-emptively.   |
| [Catalogue Drift vs Amazon](/nerve-centre/kpi-cards/shopify/catalogue-drift-vs-amazon)                 | The other catalogue-data-quality card. OOS-on-Amazon while in-stock-on-Shopify (or vice versa) is a parallel waste. |
| [Google Ads CPC](/nerve-centre/google_ads/google_avg_cpc)                                              | The unit economics. A high-CPC OOS SKU is more wasteful per impression than a low-CPC one.                          |
| [Meta Ads ROAS](/nerve-centre/facebook/fb_roas)                                                        | The reverse view. A campaign with collapsed ROAS often correlates with OOS landing pages.                           |
| [Conversion Rate](/nerve-centre/shopify/ecommerce_conversion_rate)                                     | When this card is high, conversion rate suffers (clicks landing on OOS PDPs don't convert). The two move together.  |
| [Revenue at Risk (live incident)](/nerve-centre/kpi-cards/shopify/revenue-at-risk)                     | During an outage, ad spend keeps running while revenue stops. Pair to surface compound waste during incidents.      |

## Reconciling against the vendor's own dashboard

**Where to look in Shopify Admin:**

Shopify Admin doesn't surface this cross-platform view, it has no native visibility into ad-platform spend. The closest manual reconstruction is:

* [Products → Inventory](https://admin.shopify.com/products/inventory) → filter *Available: 0 or less, Status: Active*. Cross-reference each SKU manually against Google Merchant Center, Meta Commerce Manager, and TikTok Seller Center.
* [Marketing → Campaigns](https://admin.shopify.com/marketing) (Shopify Marketing) → for ad campaigns set up via Shopify's native ad integrations, the campaign-level dashboard shows status. Doesn't surface OOS-feed warnings.

Other views that look related but aren't:

* **Google Merchant Center → Diagnostics**: shows feed-level errors, including "out of stock" warnings on individual products. This is the upstream source for Google's portion of the figure but doesn't show *spend* implications, only feed health.
* **Meta Commerce Manager → Catalog → Diagnostics**: same as Google Merchant Center but for Meta. Shows OOS warnings; doesn't show £ wasted.
* **Apps like AdScale / NestScale**: show ad performance per SKU. Useful for ROAS analysis but don't cross-reference against live Shopify inventory.

**Why our number may legitimately differ from a manual reconciliation:**

| Reason                   | Direction                  | Why                                                                                                                                                                                                                                            |
| ------------------------ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **SKU matching gaps**    | Ours lower (underestimate) | Match by `gtin` / `mpn` / `productHandle` works for \~90% of catalogues. Brands with non-standard SKU naming, white-label items, or custom feed transformations may have unmatched SKUs that contribute spend but aren't counted on this card. |
| **Sync lag**             | Ours lower (transient)     | Inventory updates webhook into Vortex IQ within 5 to 15 minutes. A SKU that just went OOS in the last hour but is still being advertised may not show on this card yet.                                                                        |
| **Ad platform sync lag** | Ours lower (transient)     | Google / Meta / TikTok feeds sync at platform-determined cadence (1 to 24 hours). Spend continues to accrue against OOS SKUs even after Shopify reflects the OOS state, until the platform's next feed pull.                                   |
| **Multi-currency**       | Approximate                | Spend in mixed currencies summed without FX. The displayed figure is order-of-magnitude correct.                                                                                                                                               |
| **Click-vs-impression**  | Spend basis only           | The card measures spend (clicks × CPC). It doesn't penalise impressions on OOS items beyond what they cost in spend. Brands paying CPM rather than CPC see the spend but not the brand-image cost of OOS impressions.                          |

**Cross-connector reconciliation:**

This card IS a cross-connector reconciliation by design. The relationships:

| Card                                                                                            | Expected relationship                                                        | What causes legitimate divergence                                                                                                                                               |
| ----------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`shopify.inventory_alerts`](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock) | This card is a subset of OOS variants (those that are also being advertised) | Variants on inventory\_alerts but not on this card simply have no active ads, no waste, no concern.                                                                             |
| [`google_ads.google_oos_keywords`](/nerve-centre/google_ads/google_oos_keywords)                | Google portion overlaps                                                      | The Google Ads connector's own OOS view should reconcile with the Google portion of this card. Persistent gaps indicate SKU-mapping issues.                                     |
| [`facebook.fb_oos_products`](/nerve-centre/facebook/fb_oos_products)                            | Meta portion overlaps                                                        | Same as Google.                                                                                                                                                                 |
| [`amazon_ads.amazon_oos_skus`](/nerve-centre/amazon_ads/amazon_oos_skus)                        | Amazon portion overlaps, but distinct inventory                              | Amazon ASINs may be in stock on Amazon while OOS on Shopify; this card uses Shopify's inventory as truth, so Amazon OOS detected by Amazon's own connector may not appear here. |

***

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  The same cross-platform ads-on-OOS pattern lives on other commerce platforms. This is **not a reconciliation**, your Shopify store doesn't have a parallel store on BigCommerce or Adobe Commerce. These cross-links exist so agencies running multi-platform client books can navigate between identical alert definitions.

  * [`bigcommerce.bigcommerce_xc_ads_on_oos`](/nerve-centre/bigcommerce/bigcommerce_xc_ads_on_oos)
  * [`adobe_commerce.adobe_commerce_xc_ads_on_oos`](/nerve-centre/adobe_commerce/adobe_commerce_xc_ads_on_oos)
</details>

## Known limitations / merchant FAQs

**Why is my figure higher than expected?**
Three usual causes:

1. **Meta catalogue sync is on the daily default.** Meta will keep advertising OOS SKUs until the next sync. Change *Commerce Manager → Catalog → Settings → Update schedule* to "Hourly" (or via API for real-time).
2. **Performance Max can't be SKU-paused.** PMax is automated and the only way to stop it advertising an OOS SKU is to remove the SKU from the Merchant Center feed (via Shopify's Google Channel app: *Channels → Google → Manage product status*). Manual campaign-level negative bidding doesn't work.
3. **A long-tail SKU you forgot about.** Brands with 5,000+ active SKUs often have hundreds of low-velocity items being advertised by automated bidding strategies. Most of the £ here is concentrated in 5 to 20 SKUs; sort the breakdown by spend to find them.

**Why is my figure zero when I know products are OOS and ads are running?**
Three causes:

1. **No ad-platform connector connected.** This card needs at least one of Google Ads, Meta Ads, TikTok Ads, or Amazon Ads connected. Connect in *Settings → Connectors*.
2. **SKU mapping gap.** If your ad-platform feed uses different SKU naming than Shopify, Vortex IQ can't join them. Check *Settings → Connectors → Google Ads → SKU mapping* and confirm the join key is correct.
3. **The OOS SKUs aren't in any active campaign.** A SKU OOS in the catalogue may not have an active ad pointing at it (you've already paused). The card correctly shows zero for these.

**Does this include Shopify Audiences spend?**
Shopify Audiences is Shopify's own ad-buying layer (Plus only), it puts spend through Meta and Google on the merchant's behalf. If you have Shopify Audiences enabled, the spend appears in Meta / Google Ads as normal and IS counted by this card.

**My ad platform shows different OOS SKUs to Shopify. Whose truth do I use?**
Shopify is the truth source for inventory; the ad platforms have their own (slightly stale) copy via the product feed. This card uses Shopify as authoritative. If your ad platform thinks something is in stock when Shopify says OOS, the card flags it (because spend is happening on the OOS Shopify variant). The reverse case (ad platform thinks OOS but Shopify says in-stock) suggests a feed sync problem, see [Catalogue Drift vs Amazon](/nerve-centre/kpi-cards/shopify/catalogue-drift-vs-amazon).

**Should I auto-pause OOS ads?**
Conservatively, yes for high-spend SKUs (>$50/day waste). Cautiously for low-spend ones, the auto-pause feature has a small recovery delay when the SKU restocks (typically 5 to 30 minutes), and for fast-moving fashion that can mean missing the back-in-stock buying window. Vortex IQ Mind's auto-action default is "auto-pause OOS SKUs spending >$100/day, manual review for $20 to $100/day". Configurable in *Settings → Mind → Auto-actions*.

**Why does Performance Max keep coming back?**
Because PMax doesn't surface SKU-level controls. The only reliable way to stop PMax advertising an OOS SKU is to remove it from the Merchant Center feed. Vortex IQ Mind will write the SKU's `availability` field to "out\_of\_stock" in the feed (via the Shopify Google Channel app or direct Merchant Center API), which propagates to PMax within 6 to 12 hours. If you've connected the merchant center directly, this happens automatically; if not, the card surfaces the recommendation but you act manually.

**Multi-currency: why is the figure in £/\$ when my ad platforms bill in different currencies?**
Spend across platforms is summed without FX conversion and displayed in the workspace's display-currency setting. Per-platform per-currency views are on the roadmap. For tight reconciliation, drill into each platform's connector dashboard for native-currency figures.

**Action playbook when this card alerts:**

1. Sort the OOS-with-ads list by daily spend (descending). The top 5 to 10 SKUs almost always represent 80% of the waste.
2. For each top SKU: pause manually via the ad platform if spend > £50/day, or accept Vortex IQ Mind's auto-pause recommendation.
3. For Performance Max specifically: edit the Google Merchant Center feed to mark the SKU `out_of_stock` (Shopify Google Channel app does this automatically if connected).
4. For Meta: change Commerce Manager catalog sync to hourly to prevent recurrence.
5. Pair with the OOS SKU's reorder lead time. If reorder is 7 to 14 days out, just pause. If reorder is 1 to 3 days out, consider keeping ads running and accepting the waste, sometimes back-in-stock customer-trust signals are worth more than the wasted CPC.
6. Set up an automatic "back in stock" trigger to resume ads when inventory returns, this is in *Settings → Mind → Auto-actions* and runs by default if auto-pause is enabled.

***

### Tracked live in Vortex IQ Nerve Centre

*Active Ads on Out-of-Stock SKUs* is one of hundreds of KPI pulses Vortex IQ tracks across Shopify 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.
