> ## 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, BigCommerce

> Live ad spend pointed at SKUs that can't convert. Pause immediately, direct $/day waste. 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)

> Live ad spend pointed at SKUs that can't convert. Pause immediately, direct \$/day waste.

## At a glance

> Live ad spend (Google Ads + Meta Ads) currently driving traffic to BigCommerce SKUs that have `inventoryLevel = 0`. Cross-connector view: ad campaigns × product targets × BC catalogue inventory. **Pause immediately** is the only correct response, every dollar spent is direct waste, the customer arrives, finds OOS, leaves.

|                                    |                                                                                                                                                                                                                                                           |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**                 | For each active ad target SKU: `daily_ad_spend WHERE BC.inventoryLevel = 0 AND BC.availability != 'disabled'`. Summed across all paid surfaces (Google Ads Shopping, Meta Ads catalogue / dynamic-product-ads, etc.).                                     |
| **VAT / tax treatment**            | n/a (ad spend, not revenue).                                                                                                                                                                                                                              |
| **Shipping**                       | n/a.                                                                                                                                                                                                                                                      |
| **Discounts**                      | n/a.                                                                                                                                                                                                                                                      |
| **Refunds**                        | n/a.                                                                                                                                                                                                                                                      |
| **Currency**                       | Ad spend in account currency, mixed-currency for multi-account stores. The headline is directional.                                                                                                                                                       |
| **Channels / sources**             | Web only by definition (paid ads drive web traffic).                                                                                                                                                                                                      |
| **`Incomplete` / Declined orders** | n/a, this is a pre-purchase waste view.                                                                                                                                                                                                                   |
| **OOS definition match**           | Same as [BC Channel OOS per Channel](/nerve-centre/kpi-cards/bigcommerce/oos-listings-per-channel), `inventoryLevel = 0 AND availability != 'disabled'`. Items the merchant has hidden don't count; items left visible-but-stocked-out do.                |
| **Why this is double-burn waste**  | Single-burn waste is a paid click that fails at checkout; double-burn waste is a paid click that the merchant is paying for AND can't fulfil regardless. The customer experience also damages brand trust ("they're advertising things they don't have"). |
| **Time window**                    | `RT` (real-time, polled per ad-platform sync; typically every 30-60 minutes)                                                                                                                                                                              |
| **Alert trigger**                  | `>$0/day spend on OOS SKU`, fires on any positive spend. The alert is intentionally aggressive because the cost is direct dollar bleed with no upside.                                                                                                    |
| **Sentiment key**                  | `out_of_stock_count`                                                                                                                                                                                                                                      |
| **Roles**                          | owner, marketing, operations                                                                                                                                                                                                                              |

## Calculation

Calculated automatically from your BigCommerce 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 US homewares brand on BigCommerce Enterprise. Snapshot at 09:00 UTC on 13 Apr 26.

| Active ad campaign            | Target SKU                | BC inventory           | Daily spend | Status     | Wasted \$/day |
| ----------------------------- | ------------------------- | ---------------------- | ----------- | ---------- | ------------- |
| Google Shopping, Bedding      | "Linen 4-piece set, King" | **0** (OOS, available) | \$42        | **Wasted** | \$42          |
| Google Shopping, Bath         | "Towel set 6pk, ivory"    | **0** (OOS, available) | \$24        | **Wasted** | \$24          |
| Meta DPA, Bedding remarketing | "Linen sheets, Queen"     | 38 in stock            | \$18        | Working    | \$0           |
| Meta DPA, Holiday             | "Throw cushion 18inch"    | **0** (OOS, available) | \$12        | **Wasted** | \$12          |
| Google Search, Brand          | (n/a, not SKU-targeted)   | n/a                    | \$85        | n/a        | \$0           |
| **Total active OOS spend**    |                           |                        |             |            | **\$78/day**  |

What's interesting:

1. **$78/day = $2,340/month = \$28,400/year of pure waste.** Not just lost potential revenue, *negative* outcome (the customer arrives, has a bad experience, leaves with worse brand impression than they came with). **The fix is one-click**: pause the OOS-targeting ad set or hide the OOS listing from the catalogue feed.
2. **Google Shopping is the biggest waste category.** Shopping ads target specific SKUs; when the SKU goes OOS, the ad keeps running until either (a) the merchant pauses, (b) Google's automated rules detect the OOS and disapproves the listing, which can take 24-72 hours. **Manual pause is faster than waiting for Google's auto-disapproval.**
3. **Meta Dynamic Product Ads (DPA) auto-update from the merchant feed.** If your Meta product feed is correctly configured to exclude OOS items, this card should show \$0 on Meta. If it's showing positive Meta spend, the feed configuration is wrong, fix that and the Meta wedge collapses.
4. **Brand search is unaffected.** Brand keywords don't target SKUs; they target the merchant name. OOS doesn't affect brand-campaign performance directly, except via the brand-equity erosion of OOS landing experiences.

Action priority order:

1. **Pause ad sets targeting OOS SKUs** within 30 minutes. Most ad platforms support per-SKU pausing without taking down the parent campaign.
2. **Set up automated rules** in Google Shopping Merchant Center: "exclude items where availability = out\_of\_stock". This is a one-time configuration that prevents future occurrences.
3. **Audit Meta product feed** for OOS exclusion logic. Most BC-Meta integrations support this; verify it's configured.
4. **Hide the OOS listings** in BC if they don't have known restock dates (avoids future drift).

## Sibling cards merchants should reference together

| Card                                                                                       | Why pair it with Ads on OOS                                                                      |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ |
| [BC Channel OOS per Channel](/nerve-centre/kpi-cards/bigcommerce/oos-listings-per-channel) | The OOS source-of-truth that this card joins to.                                                 |
| [Inventory Alerts](/nerve-centre/kpi-cards/bigcommerce/products-with-zero-negative-stock)  | The inventory-side headline.                                                                     |
| [BC Top SKUs](/nerve-centre/kpi-cards/bigcommerce/top-skus)                                | If a top SKU is OOS and ad-targeted, that's a five-alarm event.                                  |
| [`google_ads.ga_shopping_disapprovals`](/nerve-centre/google_ads/ga_shopping_disapprovals) | Google Shopping's auto-disapproval signal; correlates with this card.                            |
| [`facebook.fb_dpa_feed_health`](/nerve-centre/facebook/fb_dpa_feed_health)                 | Meta Dynamic Product Ads feed health.                                                            |
| [BC Stock vs Sales](/nerve-centre/kpi-cards/bigcommerce/stock-vs-sales-velocity)           | Velocity context, OOS items with high pre-OOS velocity are the highest-priority restock targets. |
| [BC XC Catalogue Drift](/nerve-centre/kpi-cards/bigcommerce/catalogue-drift)               | Related catalogue-hygiene problem; both flag broken ad surfaces.                                 |

## Reconciling against the vendor's own dashboard

**Where to look in BigCommerce Control Panel:**

BigCommerce **does not surface this metric natively.** Cross-connector view: BC catalogue inventory + Google Ads campaign targeting + Meta Ads catalogue feed. To partially diagnose:

1. [Products → View](https://login.bigcommerce.com/deep-links/manage/products) shows current inventory.
2. Google Ads → Campaigns → Shopping shows active product targeting.
3. Meta Ads Manager → Catalogues → Product feed shows DPA targeting.
4. Manually correlate: any SKU with `inventory_level = 0` and an active ad target is in this card.

**Why our number may legitimately differ from manual computation:**

| Reason                                                                                                                                                 | Direction                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------- |
| **Sync lag**. BC inventory updates take 5-30 minutes to propagate; ad-platform spend reports lag 2-6 hours. The card may show momentary discrepancies. | Marginal                            |
| **Variant-vs-product semantics**. We count at variant level; some merchants target ads at parent-SKU level.                                            | Matching depends on configuration   |
| **Auto-pause rules**. Google Shopping's auto-disapproval can pause OOS items within 24-72 hours; we surface them during that window.                   | Vortex IQ flags transient OOS-spend |
| **Currency**. Ad spend in account currency.                                                                                                            | Mixed for multi-account stores      |

**Cross-connector reconciliation:**

| Card                                                                                       | Expected relationship                                                                 | Notes               |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | ------------------- |
| [`google_ads.ga_shopping_disapprovals`](/nerve-centre/google_ads/ga_shopping_disapprovals) | Google's auto-flagged OOS items; should overlap with the Google portion of this card. | Direct correlation. |
| [`facebook.fb_dpa_feed_health`](/nerve-centre/facebook/fb_dpa_feed_health)                 | Meta's catalogue-feed health.                                                         | Direct correlation. |
| [BC Channel OOS per Channel](/nerve-centre/kpi-cards/bigcommerce/oos-listings-per-channel) | The OOS-side input.                                                                   | Direct dependency.  |

***

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

  * [`shopify.xc_ads_on_oos`](/nerve-centre/shopify/xc_ads_on_oos) (planned)
  * [`adobe_commerce.xc_ads_on_oos`](/nerve-centre/adobe_commerce/xc_ads_on_oos) (planned)
</details>

## Known limitations / merchant FAQs

**Why is this card always non-zero, can I ever get it to zero?**
Yes, with proper automation. Two configurations end up at zero: (1) Google Shopping Merchant Center auto-rule excluding OOS items from the feed. (2) Meta product feed configured to filter `availability != in stock`. Once both are set, OOS items disappear from ad targeting within hours. **The card going to zero is an achievable, sustainable state**; not a fantasy.

**Some OOS items have known restock dates within 7 days; should I keep ads running?**
**No.** Even with a 7-day restock, the customer arriving today has a bad experience. Switch the listing to preorder mode (BC supports per-SKU preorder configuration), then the ad becomes "Order now, ships 19 Apr 26", which is honest and converts. Don't run "in stock" ads on items that aren't.

**My ads are paused but the card still shows them as wasting spend, why?**
Two possibilities: (1) Pause hasn't propagated yet (ad platforms have 1-4 hour ramp-down on paused campaigns). (2) The pause was at the campaign level but individual product targets within the campaign are still active. Pause at the product-target layer for surgical control.

**Why doesn't this card include Pinterest / TikTok Ads?**
Currently we monitor Google Ads and Meta Ads (the dominant ecommerce paid surfaces). Other surfaces are on the roadmap; if you have meaningful spend there, contact Ask Viq to prioritise.

**My BC inventory is wrong, the items aren't actually OOS, why does the card flag them?**
The card uses BC-indexed inventory as truth. If BC says zero and your warehouse says ten, fix the inventory sync first; the card surfaces what BC believes. Once BC reflects accurate inventory, the false-positive flags resolve.

**Should I disable BC's OOS items entirely or just hide them?**
Disable (`availability = disabled`) is the cleanest state, the listing disappears from public view AND from ad targeting. Hidden-but-not-disabled items can still leak into ad feeds depending on configuration. **Disable is preferred for items without near-term restock**; preorder mode is preferred for items with known restock dates.

**My Meta DPA budget is auto-allocating to OOS items, what changed?**
Meta's algorithm sometimes prioritises items with strong recent engagement; if your top-engagement SKU went OOS, Meta may increase spend on that ad even though it can't convert. Configure your Meta product feed to set `availability = out of stock` so Meta auto-excludes; the budget will reallocate to in-stock items.

**Why does Google Shopping take so long to auto-detect OOS?**
Google's automated checks run on a 24-72 hour cadence depending on your account history. New accounts get faster checks; established accounts get slower checks. Don't wait for the auto-detect, manual pause is faster.

**My OOS-on-ads spend is \$200/day, but the SKU has back-orders pre-paid; is that still wasted?**
**Yes**, in the customer-experience sense. The arriving customer doesn't know about back-orders unless your PDP communicates it clearly. They see "out of stock" and bounce. Switch to preorder mode and use BC's preorder UI to communicate the restock date; conversion remains positive and the spend is no longer "wasted".

**Multi-currency Amazon variant: do those count?**
Channel Manager / Amazon-routed traffic doesn't appear in this card (this is a paid-ads-driven card; Channel Manager isn't paid ads). Amazon's own paid surface (Amazon Sponsored Products) on OOS items is a separate problem; the [`amazon_sp.amazon_sponsored_oos`](/nerve-centre/amazon_sp/amazon_sponsored_oos) card covers that.

***

### 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 BigCommerce 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.
