ClickCatalyst
Back to Zombie Products Audit
Authority Layer · 6 metrics · 3 data sources

Inside the Zombie Products Engine

Every metric in your Zombie Products audit uses documented detection logic. This page explains the currency-adaptive threshold, margin eater identification, GA4 cross-reference validation, and the EXCLUDE/FIX/MONITOR classification system.

Data Sources

read-only OAuth · no campaign changes ever

All data is read via Google Ads API and GA4. Derived intelligence tables are pre-computed in our pipeline before your audit runs.

Google Ads API — Shopping Performance

google_ads_shopping_performance

Product-level cost, clicks, units_sold, gross_profit, product attributes for zombie detection and margin analysis

Google Ads API — Shopping Benchmarks

google_ads_shopping_benchmarks

Google's benchmark CPC and CTR for industry comparison

GA4 — Ecommerce Products

ga4_ecommerce_products

GA4 product views, cart adds, purchases for cross-platform zombie validation

01

Zombie Detection Threshold

Currency-adaptive logic that catches every zombie without false positives

A product is flagged as a zombie when three conditions are simultaneously true: zero units_sold, at least 20 clicks (ensuring meaningful traffic), and cost above a dynamic floor. The floor adapts to account economics — it takes the account's average CPC multiplied by 20, which adjusts automatically for high-CPC markets (USD) and low-CPC markets (INR).

⚠️

Why this matters: A static $50 threshold catches zombies in USD accounts but misses them in INR accounts (where ₹50 is negligible) and over-flags in low-CPC accounts. The dynamic threshold ensures every account gets accurate detection regardless of currency or industry CPC.

💡

In plain English: We find products that got at least 20 clicks (enough traffic to judge) and zero sales, AND spent more than a meaningful amount. The 'meaningful amount' adjusts to your account — if your average click costs $2, the threshold is $40. If it costs ₹5, the threshold is ₹100. This prevents flagging products that barely spent anything.

All 3 metConfirmed zombie — exclude from campaigns
Clicks < 20Insufficient data — not flagged yet
02

Daily Burn Rate

How fast each zombie consumes budget per day

Total zombie waste divided by the reporting period for account-level burn. Per product: total cost divided by COUNT(DISTINCT date) with spend. Products with high daily burn are the most urgent exclusion candidates — they waste disproportionately per day of inaction.

⚠️

Why this matters: Total waste is an abstract number. Daily burn makes it visceral: 'This product wastes $12 per day' is immediately actionable. Multiply by 30 for monthly exposure. The burn rate creates urgency that total-waste figures don't.

💡

In plain English: We divide each zombie product's total wasted cost by the number of days it was active with spend. A product wasting $5/day sounds small — but that's $150/month on a product that never sells. The daily number makes the cost of waiting tangible.

High burnExclude immediately — disproportionate daily cost
Low burnLower urgency — batch exclude
03

Margin Eater Detection

Products that sell but destroy profit after ad costs

From google_ads_shopping_performance: products with conversions > 0 (they sell) but gross_profit minus ad spend < 0. Uses the gross_profit field which requires cost_of_goods_sold in your Merchant Center feed. These are more dangerous than zombies because the algorithm sees conversions and scales them.

⚠️

Why this matters: The algorithm optimizes for conversion volume, not profitability. A product with a 5% margin that converts well will receive aggressive budget — making you poorer with every 'successful' sale. The algorithm literally cannot see COGS.

💡

In plain English: We find products that actually sell (unlike zombies) but where advertising costs more than the profit the product generates. You lose money on every sale — and the algorithm keeps pushing more budget to these products because it only sees the sale, not the loss.

Small lossAdjust ROAS target upward
Large lossExclude from paid — sell via organic
04

GA4 Cross-Reference Validation

Confirming zombies across both platforms

Zombie product titles joined with ga4_ecommerce_products on LOWER(item_name) = LOWER(product_title). Checks GA4 cart_adds, purchases, and view-to-purchase rate. If GA4 also shows zero purchases, the zombie is confirmed across both platforms — no attribution gap is creating false positives.

⚠️

Why this matters: A product might show zero sales in Ads due to attribution differences but actually sell through organic or direct channels that GA4 captures. The cross-reference prevents excluding products that DO sell — just not through the tracked ad path.

💡

In plain English: We check each zombie product against your GA4 analytics data. If GA4 also shows zero purchases, the product is genuinely dead across both platforms — safe to exclude with confidence. If GA4 shows cart adds but no purchases, the product has demand but fails at checkout — a different problem.

Confirmed deadBoth platforms agree — exclude with confidence
Cart adds existHas demand — investigate checkout UX
05

Zombie Action Split (EXCLUDE / FIX / MONITOR)

Not every zombie gets the same treatment

Each zombie is classified by combining cost level with feed data completeness. Products with complete attributes (brand + category present) and high cost = EXCLUDE (low demand, not discoverability). Products missing brand or category = FIX FEED FIRST (never had a fair chance). Products with moderate cost = MONITOR. Priority uses average zombie cost as the benchmark.

⚠️

Why this matters: Blindly excluding all zombies wastes the learning on fixable products. A product missing its brand attribute can't be matched to relevant audiences — fixing the feed may resurrect it. The split prevents you from killing products that just need better data.

💡

In plain English: We classify each zombie into three buckets: EXCLUDE (the product has complete data and still doesn't sell — it's a demand problem), FIX FEED (the product is missing brand or category info — Google can't match it properly), or MONITOR (not enough data to decide yet). Priority tells you which to act on first.

EXCLUDEComplete data, no sales — remove from ads
FIX FEEDMissing attributes — update Merchant Center
MONITORInsufficient data — reassess in 2 weeks
06

Recovery Summary & Conversion Simulation

What you get back by excluding zombies

Total recoverable budget (zombie waste), expressed as percentage of total Shopping spend, with a conversion simulation: recovered budget divided by account average CPA = projected additional conversions. This is a conservative estimate — it assumes current CPA holds at higher productive spend.

⚠️

Why this matters: This is the business case for acting on the exclusion list. Stakeholders need a concrete number: 'Excluding N products recovers $X/month and generates Y additional conversions at no extra cost.' The simulation provides exactly that.

💡

In plain English: We add up all zombie waste, calculate what percentage of your Shopping budget it represents, and then project how many additional conversions you'd gain if that money went to products that actually sell (at your current average cost-per-conversion).

< 10% of spendManageable — targeted exclusions
10–30%Significant — prioritize exclusions this week
> 30%Structural — catalog strategy review needed

Proprietary notice: The methodology, scoring models, waste classification logic, and recovery projections are proprietary to ClickCatalyst Digital and provided for informational purposes only. Results are subject to standard market volatility. Recovery projections are estimates, not guarantees. Contact us within 14 days if any metric appears inaccurate.

Zombie Products Methodology — How ClickCatalyst Detects Zombies, Margin Eaters & Feed Gaps