Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Spend on campaigns more than 7 days old that have produced zero attributed purchases. Stricter than Wasted Spend because it filters out fresh campaigns still in the Meta learning phase. The “this campaign should be working by now and isn’t” alert.
What it countsSUM(spend) for every campaign where actions[purchase] = 0 AND campaign_start_date < (today - 7 days). Excludes brand-new campaigns.
Insights API levelCampaign-level. The card aggregates across all qualifying zero-conversion campaigns. Drill-down by campaign is in Spend by Campaign sorted by purchases ascending.
The 7-day-old filterMeta’s learning phase requires ~50 conversions in 7 days for an adset to optimise reliably. New campaigns can legitimately spend with no conversions for the first 5, 7 days while the model trains. This card filters those out to focus on campaigns where learning has had time and still isn’t producing.
CurrencyAccount currency.
Attribution modelWhatever the account is configured for (default 7d/1d).
iOS 14.5+ ATT impactSignificant. Same as Wasted Spend, ATT-blocked iOS conversions are invisible to Pixel-only campaigns. A genuinely-converting iOS-heavy campaign can flag here. Without CAPI, expect 15, 30% false-positive rate.
CAPI vs Pixel-onlyPixel-only: false-positives common. CAPI live: cleaner read but still some modeled-conversion ambiguity.
Conversions vs all-conversionsPurchase events only. A campaign with thousands of add-to-carts but zero purchases still flags. Use All Conversions for the broader view.
Frequency cap relevanceA campaign with a tight frequency cap might spend slowly without converting; the cap is throttling delivery. Audit cap config before pausing.
Time window30D (last 30 days, with the 7-day-old campaign filter applied).
Alert trigger>$0 on any campaign >7D old. The default fires on any spend on any qualifying campaign. Tightening to spend >$X reduces noise on small test campaigns.
Rolesowner, marketing, finance

Calculation

Calculated automatically from your Meta Ads (Facebook) 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 home & garden DTC brand. Window: 02 Apr 26 to 01 May 26. Account currency GBP. iOS share 51%. CAPI live since 18 Mar 26. Today is 28 Apr 26. The card surfaces these campaigns:
CampaignStartedDays oldSpend (£)PurchasesStatus
”Spring Sale, Outdoor Furniture”09 Apr 26191,8400Flagged
”Awareness, BBQ Range” (Engagement objective)12 Apr 26166200Flagged (but objective is Engagement, not Sales)
“Lookalike test, gardening enthusiasts 1%“18 Apr 26109800Flagged
”Catalog Sales, full feed”20 Apr 2681,10014Not flagged
”Black Friday teaser, early-warm-up”25 Apr 2632400NOT flagged (under 7d)
Account total flagged£3,4400
Three observations:
  1. The “Spring Sale, Outdoor Furniture” campaign is the priority pause. £1,840 over 19 days with zero attributed purchases is unambiguous waste, even after iOS-gap correction. Possible causes: (a) creative didn’t land (CTR is 0.6%, half the account average), (b) audience is too cold and the optimiser couldn’t find converters, (c) landing page broke (check Landing Page CR). Action: pause today, audit landing page, redesign creative for a re-launch.
  2. The “Awareness, BBQ Range” campaign is a false positive in this card’s logic. The campaign is on Engagement objective, not Sales, so by design Meta isn’t optimising for purchases. Zero attributed purchases is expected. Action: exclude Engagement / Awareness / Reach objectives from this card’s filter, OR ignore the alert for non-Sales campaigns. (Vortex IQ accepts an objective-filter override; ask the team to update the card config.)
  3. The “Lookalike test” campaign is borderline. £980 over 10 days, zero purchases. iOS share on this audience is 58%. Without CAPI this would be a false-positive risk; with CAPI live for 6 weeks, it’s probably real waste. Pause and re-run with a different LAL seed (current seed is “site visitors 90d”; try “purchasers 180d” instead, tighter intent signal).
  4. “Catalog Sales, full feed” is not flagged because it converted (14 purchases) within the window. Healthy. £1,100 / 14 = £78 CPA, fine for this category.
  5. “Black Friday teaser” is excluded because it’s only 3 days old. Even though it’s spent £240 with no conversions, it’s still in learning phase. Re-evaluate at day 7 or later. Don’t pause learning-phase campaigns unless spend has run away or CTR is catastrophically low.
Total actionable wasted-spend after exclusions: £2,820 (£1,840 Spring Sale + £980 LAL test). Pausing both frees up the budget for either a more-converting campaign or a fresh creative test on a different audience.

Sibling cards merchants should reference together

CardWhy pair it with Zero-Conversion SpendWhat the combination tells you
Wasted SpendThe broader bucket (no 7-day-old filter).Total wasted vs only-mature wasted.
Spend by CampaignDrill-down on which specific campaigns are flagged.The actionable list.
Conversions by CampaignIndependent confirmation that the flagged campaigns truly have zero.False-positive check.
CTR by CampaignIf the flagged campaign has very low CTR (<0.7%), the creative or audience is wrong.Diagnose upstream.
Conversion Rate TrendIf the whole account’s CR is dropping, the issue is post-click (landing page, stockouts), not specific to flagged campaigns.Distinguish account-wide vs campaign-specific.
Landing Page CRThe flagged campaign may be sending traffic to a broken or off-topic landing page.Diagnose the post-click experience.
Frequency / Impressions TrendA campaign with low frequency (<2 in 7d) and zero conversions is mostly under-delivering, not failing.Avoid premature pause on under-delivered campaigns.
GA4 Paid Social SessionsIndependent attribution check.If GA4 sees Paid Social sessions and conversions for the flagged campaign’s UTM, the iOS gap is the cause; don’t pause.

Reconciling against the vendor’s own dashboard

Where to look in Meta Ads Manager: Meta Ads Manager → Campaigns → filter “Created date >7 days ago” → sort by “Purchases” ascending. Campaigns at the top of the sorted list with Spend > 0 and Purchases = 0 are the same set this card flags. Sum their “Amount Spent” column to reconcile. Other relevant Ads Manager views:
  • Campaign-level Delivery → Learning Phase status: campaigns stuck in Learning often appear here even past 7 days because they didn’t hit the 50-conversion threshold to exit.
  • Ads Diagnostics: identifies creative-rejection, audience-overlap, low-quality-ranking issues on the flagged campaign.
  • Reports → Predefined → Campaign Performance: same data downloadable for sharing.
Why our number may legitimately differ from Meta:
ReasonDirectionWhy
Time zoneBoundary days offThe 7-day-old filter is on UTC dates; Meta uses ad-account TZ. A campaign launched at 22:00 PT may be “7d old” in Meta’s view but only “6d 14h” in this card’s UTC frame. Edge cases.
Attribution window changesDirection dependsTighter windows (7d/1d vs 28d/1d) shrink the conversion pool; more campaigns flag here.
Modeled conversions inclusionLower flag rate in our cardModeled conversions count toward actions[purchase]. A campaign Meta modeled as having converted (without Pixel-confirmed conversions) won’t be flagged.
Ingest lagEdge cases for “today”Recent (1, 4h) conversions pending. Yesterday and earlier are stable.
Advantage+ opacitySame on the headlineAdvantage+ Shopping campaigns aggregate internally; the campaign-level purchase total is reliable.
Cross-connector reconciliation:
CardExpected relationshipWhat causes legitimate divergence
google_analytics.ga_revenue_by_channelIf the flagged campaign’s UTM tag shows Paid Social conversions in GA4, the iOS gap is the cause. Don’t pause.Real iOS conversions are visible to GA4 (with Consent Mode v2) but not to Meta Pixel.
shopify.total_revenueUTM-tagged Meta-source revenue should account for any “real” conversion the flagged campaign drove.Shopify only knows what UTM tags allow.
google_ads.gads_zero_conversion_spendCross-platform peer (also age-filtered).Different ecosystems, run separate diagnostic loops.

Known limitations / merchant FAQs

Why is the 7-day-old filter important? Meta’s learning phase needs ~50 conversions in 7 days for an adset to leave the unstable training period. Campaigns in learning phase legitimately spend without converting while Meta calibrates. Pausing them prematurely re-starts the learning clock when you re-enable, wasting more spend over time. This card waits for campaigns to mature past the learning window before flagging. iOS 14.5 ATT impact, the structural answer for this card: Same as ROAS and Wasted Spend, ATT-blocked iOS conversions are invisible to Pixel-only campaigns. A campaign serving heavily to iOS may genuinely convert but read as zero-conversion here. Without CAPI, expect 15, 30% false-positive rate. With CAPI live, false positives drop to 5, 10%. Wait for CAPI before paunsing borderline iOS-heavy campaigns. What’s the practical CAPI rollout playbook for fixing this card?
  1. Roll out CAPI for purchase events.
  2. Verify Events Manager shows post-rollout event volume up 20, 40%.
  3. Wait 14 days for Meta’s attribution model to stabilise.
  4. Re-read this card. Several “zero-conversion” campaigns will now show conversions; those were the iOS false positives.
  5. Pause whatever still flags after this rebaseline, those are real failures.
How do I interpret modeled conversions for this card? Meta’s modeling can claim conversions for specific campaigns based on ATT-blocked-iOS user-behaviour models. A flagged campaign with NO modeled conversions is a strong “real waste” signal (Meta’s own model couldn’t justify imputing a conversion). A flagged campaign with high modeled-conversion attempts but still zero attributed is in the gray zone. CAPI plus a re-evaluation is the right next step. Why is Advantage+ Shopping never on the flagged list? Advantage+ campaigns aggregate spend across audiences and placements internally. Even if some inner segment is failing, the campaign total reads as having conversions. Same opacity tradeoff as Google PMax. If you suspect Advantage+ is wasting on certain audiences, run a parallel manual broad campaign with explicit audience targeting for diagnostic visibility. Meta-vs-Google-Ads attribution differences for this card: Google Ads has the same concept (search campaigns with zero conversions after age threshold) but the actuation is different. Google: add zero-converting search terms as negative keywords. Meta: pause the campaign or restructure the audience. Both platforms typically show 2, 5 zero-conversion campaigns at any time on a healthy account. Zero campaigns flagged usually means you’ve stopped testing. Can I trust today’s reading? Less than the 7-day rolling. Recent ingest lag and Pixel/CAPI dedup settling can leave today’s read noisy. Read the rolling weekly count of flagged campaigns, not today’s snapshot. Multi-account / multi-currency, how does this card aggregate? Per-ad-account. A campaign in account A is independent of a campaign in account B. Sum spend (not count) across accounts for a portfolio view; don’t compare counts across accounts of different sizes. **Why is “spend > Xonzeroconversioncampaign>7dold"thetrigger?Thedefaultfiresonanyspend;asmalltestcampaigncanspendX on zero-conversion campaign >7d old" the trigger?** The default fires on any spend; a small test campaign can spend 50 with no conversions and trigger an alert. Most teams tune the threshold to “spend > 200"or"spend>1×dailycap"sothealertfocusesonmateriallywastefulcampaigns.Tunethethresholdtoyouraccountsize:200" or "spend > 1× daily cap" so the alert focuses on materially wasteful campaigns. **Tune the threshold to your account size**: 50 may be material on a 500/dayaccountbutinvisibleona500/day account but invisible on a 50k/day account. Pixel vs CAPI dual-implementation, how does it affect this card? A properly-deduplicated dual setup (both fire, Meta dedupes via event_id) gives the most accurate zero-conversion read. A broken dedup setup (events double-count) under-states this card’s flag count, some really-zero-converting campaigns will appear to have converted because Pixel + CAPI double-fired on a single conversion. Test dedup in Events Manager before trusting either direction of this card. My flagged campaign is on Engagement objective, why is it here? By default this card filters on purchase conversions only, regardless of campaign objective. An Engagement-objective campaign is expected to have zero purchases because Meta isn’t optimising for purchases. Either (a) ignore the alert for non-Sales-objective campaigns, or (b) configure the card to filter on objective. Vortex IQ accepts an objective-filter override; ask the team to set exclude_objectives: [engagement, awareness, reach, video_views, traffic] on the card config.

Tracked live in Vortex IQ Nerve Centre

Zero-Conversion Spend is one of hundreds of KPI pulses Vortex IQ tracks across Meta Ads (Facebook) 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.