Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Real-time alert: spend on any Criteo campaign that is older than 7 days and has zero attributed conversions in the trailing 30 days. Companion to Wasted Spend (which surfaces line-item / segment / product-set granularity); this card surfaces campaign-level offenders, the top of the hierarchy. The 7-day age threshold respects Criteo’s view-through lookback: campaigns younger than 7 days haven’t had their attribution window settle, so a “zero” reading is meaningless. Above 7 days, zero conversions is a real signal.
What it countsSum of metrics.spend on Criteo campaigns where (a) campaign age >= 7 days, (b) trailing 30D attributed conversions = 0 (post-click + post-view). Reports the campaign list and total spend in the bucket.
Cost basisMostly CPC; sums billable cost.
CurrencySingle advertiser-account currency.
Conversion attribution30-day post-click + 7-day post-view. The view-through lookback is why we require >7 days campaign age before this card triggers.
Attribution window30D click + 7D view default.
Bot / invalid trafficExcluded from numerator (filtered pre-billing).
iOS 14.5+ ATT impact on the cardMaterial false-positive risk. ATT can produce zero-conversion reads on iOS-heavy campaigns where conversions are happening but unmeasurable. Audit Conversions API health before treating any campaign as truly wasted.
Catalogue-feed dependencyCatalogue-driven campaigns can flicker into and out of this bucket as feed health changes. A feed re-sync can rescue a “wasted” campaign within hours.
Time windowTrailing 30 days at any point in time. The card refreshes daily; alert fires the moment a campaign crosses 7 days old with zero conversions.
Alert trigger>$0 on any campaign >7D old. Fires once per qualifying campaign (de-duplicates on the same campaign for a 30-day cooldown).
Rolesowner, marketing, finance

Calculation

Calculated automatically from your Criteo 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 French electronics DTC retailer running 6 active Criteo campaigns. Today is 02 May 26. Account currency EUR.
CampaignSpend (€, trailing 30D)Days liveConversions (trailing 30D)Status
Lower-funnel retargeting (PDP visitors)14,2004121,420Healthy
Mid-funnel consideration (basket abandoners)6,800288510Healthy
Commerce Media (publisher prospecting)4,400156124Healthy
Sponsored product (priority SKUs)1,6009278Healthy
Spring fashion clearance push1,420280In list
New audience test: 365-day lapsed32090In list (just qualified)
Account total in zero-conversion bucket€1,740-06.4% of spend
What the alert is telling you:
  1. Two campaigns are in the bucket. “Spring fashion clearance push” at €1,420 over 28 days and “New audience test: 365-day lapsed” at €320 over 9 days. Together 6.4% of account spend.
  2. The clearance campaign has had 28 days to convert and produced zero. This is real waste, not measurement noise. The diagnostic order: (a) is the clearance product-set rendering on the right placements? (b) is the audience definition over-broad (clearance buyers are price-sensitive; if the audience is general retargeting it’ll click but not convert)? (c) is the landing page set to a clearance category page or to the storefront homepage (storefront homepage tanks clearance conversion).
  3. The 365-day-lapsed test has only 9 days; the alert just qualified it. Recommended action: wait another 7 days (cumulative 16 days) to give view-through credit a chance; if still zero, this audience is too cold for retargeting (lapsed users beyond 90 days rarely retarget effectively).
  4. The clearance campaign should be paused or restructured by week 5 (35 days). Restructure options: tighten audience to “viewed clearance category”, switch landing page to the clearance category, A/B test creative against a discount-percentage hero. If after restructure it remains zero, pause.
  5. Compared to the same merchant’s cri_wasted_spend which shows €4,260 wasted at line-item / segment / product-set level, the campaign-level read here (€1,740) is a subset. The difference (€2,520) is line-item / segment / product-set-level waste within otherwise-healthy campaigns. Both reads are valuable: this card tells you which campaigns to pause; the line-item card tells you which sub-elements to surgically fix.
Action playbook when the alert fires:
  • Day 0 (alert fires): log it; do not act yet.
  • Day 0 to 7: audit Conversions API health, attribution-tag firings, and catalogue-feed health. False positives are usually visible by day 3.
  • Day 7 to 14: if the campaign is still zero, restructure (audience, landing page, creative, bid strategy).
  • Day 14 to 30: if restructure didn’t recover, pause.
  • Cooldown: paused campaigns that previously triggered this alert can be re-launched after 60+ days with new structure; the 30-day deduplication cooldown prevents the alert re-firing the moment a re-launched campaign crosses 7 days old.

Sibling cards merchants should reference together

CardWhy pair it with Criteo Zero-Conversion SpendWhat the combination tells you
Wasted SpendLine-item / segment / product-set granularity.This card surfaces campaigns; Wasted Spend surfaces sub-campaign offenders. Pair to see both layers.
Total SpendDenominator for the percentage.Whether €1k zero-conversion on a €100k account matters or whether €1k on a €5k account is a fifth of spend.
ROASAccount efficiency.If account ROAS is healthy despite zero-conv campaigns, the working campaigns are subsidising the dead weight.
Conversion LagLate-arriving conversions can rescue a campaign from this list.Don’t pause until the lookback has settled (allow 7 days minimum, 14 for Commerce Media).
Spend by CampaignFull per-campaign view.Where the alert sits in the broader spend distribution.
Conversion Rate TrendAccount-wide CR signal.If CR collapsed everywhere, the zero-conv campaigns are victims of a measurement issue, not real failures.
AdRoll Zero-Conversion SpendCross-retargeting peer.If similar audience definitions are zero on both, the audience is the problem.
Google Ads Zero-Conversion KeywordsDifferent funnel-position peer.Google’s keyword-level zero-conv is a different shape from Criteo’s audience / catalogue-level.

Reconciling against the vendor’s own dashboard

Where to look in Criteo’s own dashboard:
Criteo Management Centre → Campaigns → All Campaigns view, sort Conversions ASC, then filter to campaign age >= 7 days.
Criteo’s UI doesn’t badge “zero-conversion campaigns” explicitly; reconcile by sorting the campaign list ascending by conversions. Campaigns with 0 conversions and >7 days live should match this card’s list exactly. Why our number may legitimately differ from Criteo:
ReasonDirectionWhy
Time zoneBoundary days offCriteo uses advertiser-account TZ; this card uses UTC. Campaigns that crossed the 7-day age threshold yesterday in advertiser TZ may not have crossed it yet in UTC.
View-through lookbackOurs undercounts on recent daysA 9-day-old campaign with zero conversions may pick up view-through credits over the next 5 days. The 7-day age threshold was set deliberately to match the view-through window; older campaigns are reliable.
Conversions API healthOurs undercounts iOS conversionsIf CAPI is broken, iOS conversions silently disappear. The campaign reads zero in both this card and Criteo’s UI; the fix is restoring CAPI, not adjusting the threshold.
Custom conversion typesDifferent scopingIf the merchant added new conversion types (e.g. “newsletter signup”) mid-period, the campaign may have those conversions but no purchase conversions. This card sums all conversion types Criteo tracks; the UI breakdown shows per-type.
CurrencyNone expectedBoth use account currency.
Archived campaignsSame in bothArchived campaigns are excluded from both views.
Cross-connector reconciliation:
SourceExpected relationshipWhat causes legitimate divergence
adroll.adr_zero_conversion_spendCross-retargeting peer; campaign-level zero-conv.If matching audience definitions are zero on both, the audience layer is the issue.
facebook_ads.fac_zero_conversion_spendCross-platform peer; ad-set level zero-conv.Meta’s failure modes are usually creative-fatigue or audience-saturation; Criteo’s are catalogue and audience-fit. Different fixes.
google_ads.gads_zero_conversion_spendCross-channel zero-conv pattern.Google is keyword-level; Criteo is campaign-level. The shape of “wasted” is different.
Shopify / BC / Adobe Out-of-Stock SKU reportCatalogue-feed root-cause check.Many zero-conv Criteo campaigns are catalogue-driven and pointing at out-of-stock SKUs.

Known limitations / merchant FAQs

A campaign just qualified for the alert (8 days old, zero conversions); what’s the first thing to check? Conversions API health, in this exact order: (1) is the Criteo CAPI receiving events for this campaign’s audience? (2) is the client-side pixel firing? (3) is the catalogue feed serving valid product IDs to this campaign? (4) is the landing page resolving (no 404s, redirects, broken UTMs)? Usually one of these is the cause; about 60% of “zero-conversion” 8-day-old alerts on Criteo turn out to be technical, not strategic. Why does the alert wait 7 days? Criteo’s view-through window is 7 days. A campaign that’s 5 days old may have view-through conversions still backfilling against impressions delivered on day 1. Triggering before day 7 produces frequent false positives, especially on retargeting where view-through credit is a meaningful share of total credit. Day 7+ is the post-lookback floor, conversions that could have credited already have. My new test campaign just qualified; I expected zero conversions during testing. Is this a false positive? The alert is doing its job: any campaign older than 7 days with zero conversions deserves human attention, even if the merchant intentionally launched it as a low-volume test. Acknowledge the alert, mark the campaign as “experimental” if your alert tooling supports tags, and re-evaluate after 30 days. If you don’t expect conversions for 60+ days (truly long-cycle B2B-ish use cases), Criteo isn’t the right platform; this card’s threshold is calibrated to consumer-grade conversion windows. The same campaign keeps re-entering the alert; how do I stop the noise? A 30-day deduplication cooldown applies: once a campaign triggers, it won’t re-alert for 30 days even if it stays in the bucket. After 30 days without a conversion, the alert refires; this is intentional, the campaign is genuinely stuck and should be paused or restructured. If you’ve already restructured and are awaiting results, suppress the alert manually for 30 to 60 days via the alert configuration. Why is the alert spend small (€1,740) but Wasted Spend is much bigger (€4,260)? Different granularity. This card alerts on whole campaigns where every line item is zero-converting. Wasted Spend reaches into otherwise-healthy campaigns to surface zero-converting line items, audience segments, and catalogue product-sets nested inside them. Wasted Spend will always be greater than or equal to Zero-Conversion Spend by definition (it’s a strict superset). Should I just pause every campaign in the alert? No. The right order: audit (CAPI, tag, feed) → restructure (audience, landing page, creative) → pause as last resort. Pausing loses learning data; restructure preserves it. If a campaign has been in the alert for 60+ days through multiple restructures, pause is appropriate. If 14 days, restructure first. My Commerce Media campaign just qualified at day 8; should I treat it the same as retargeting? No. Commerce Media users have longer consideration windows (10 to 14 days from first impression to conversion). For Commerce Media campaigns, treat the day-8 alert as informational and re-evaluate at day 21. If still zero at day 21, then audit and restructure. The default 7-day threshold is calibrated to retargeting; Commerce Media tolerance should extend. Can I exclude specific campaign types from the alert? Yes, via the manifest configuration. Common exclusions: brand-defence campaigns (where the goal is impression share, not conversion), creative-test campaigns (where the alert intentionally shouldn’t fire during the test), low-stakes evergreen brand campaigns. Exclusions are case-by-case; default is “alert on everything” because most cases benefit from human review. My iOS-share is 65%; is this alert reliable? Less reliable than on Android-heavy accounts. ATT post-opt-out users are essentially invisible to Criteo, so a campaign serving disproportionately to opted-out iOS users may have real conversions Criteo can’t see. Two checks before treating as real waste: (a) is your Conversions API and Identity Graph rollout audited? (b) is the campaign’s iOS impression share >70% (vs account average ~65%)? If yes to both, discount the alert by 20 to 30%; the campaign may be working but unmeasurable. Does Vortex IQ flag campaigns that recover after a restructure? Yes, the alert auto-clears the next 30D refresh after the campaign records its first conversion. The alert UI shows recovered campaigns with a “recovered” tag for 14 days post-recovery so the merchant can see which restructures worked.

Tracked live in Vortex IQ Nerve Centre

Zero-Conversion Spend is one of hundreds of KPI pulses Vortex IQ tracks across Criteo 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.