Skip to main content
Card class: HeroCategory: Ad Platform

At a glance

Pacing of Criteo media spend against the configured budget cap for the current period: SUM(metrics.spend) / budget_cap for in-flight campaigns or the account-level monthly budget, expressed as a percentage with a target line at 100% × (days_elapsed / days_in_period). Catches auto-bidder runaway, catalogue-feed re-syncs that unlock previously-stalled inventory, and budget exhaustion before month-end surprises. Especially important on Criteo because Commerce Yield’s optimiser can front-load spend by 30 to 60% on high-conversion-probability days.
What it countsPeriod-to-date spend as a percentage of the period’s budget cap. Defaults to monthly cap at the campaign-group level, with rollup to the advertiser-account total when the merchant runs an account-level master budget. Includes lower-funnel retargeting, mid-funnel consideration, Commerce Media Network, and sponsored-product retail-media.
Cost basisMostly CPC-priced spend on Criteo; the card sums billable cost regardless of bid type.
CurrencySingle advertiser-account currency. Multi-currency advertisers run separate accounts per currency and pace each independently.
Conversion attributionNot relevant for pacing. (For ROAS pairing on Criteo, default 30D click + 7D view.)
Attribution windowN/A for pacing.
Pacing targetLinear by default: a 30-day campaign should be at ~50% of cap on day 15. Commerce Yield-optimised campaigns may pace 30 to 60% above linear on high-conversion days, this is by design and self-corrects over the campaign’s flight.
Catalogue-feed dependencyPacing reads can flicker around feed events. A feed re-sync that unlocks previously-stalled SKUs lifts spend within hours; a feed outage drops spend by 30 to 60% within 24 hours. Pace alerts are most reliable averaged over 3 to 7 day windows.
iOS 14.5+ ATT impact on the cardNone on the pacing math. Indirectly, ATT-driven CPC inflation can push spend 15 to 30% higher per unit-volume than pre-ATT, so the same campaign hits cap sooner. Plan budgets accordingly.
Time windowT/30D (today vs 30D plan). For weekly or quarterly budgets, the card scales the target line to the period.
Alert trigger>90% used before 80% of period. Fires when spend has consumed more than 90% of the budget before 80% of the period has elapsed, signal that the campaign will exhaust before period-end without intervention.
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 Criteo across catalogue retargeting and Commerce Media. Monthly Criteo budget €30,000, period 01 Apr 26 to 30 Apr 26. Today’s date 18 Apr 26 (day 18 of 30, 60% elapsed). Commerce Yield bidding enabled.
Campaign groupPeriod budget (€)Spend MTD (€)% of capLinear targetVariance from target
Lower-funnel retargeting16,00011,20070%60%+10pp ahead
Mid-funnel consideration8,0004,40055%60%-5pp behind
Commerce Media (publisher prospecting)5,0001,40028%60%-32pp behind
Sponsored product (retail media)1,00060060%60%0pp on target
Account total (this card)€30,000€17,60059%60%-1pp on target
What this pacing pattern says:
  1. Account-level pacing is on target (-1pp). Headline number is fine; do not act on it as-is.
  2. Per-campaign-group variance is the real signal. Lower-funnel retargeting is 10 percentage points ahead (will hit cap on day 24, ~6 days early). Commerce Media is 32 percentage points behind (will only spend 47% of allocated cap by period-end without intervention).
  3. Commerce Yield is doing what it’s supposed to. It’s pulled spend out of Commerce Media (low ROAS, ~3×) and into lower-funnel retargeting (high ROAS, ~10×). This is the right behaviour if you trust the bidder’s ROAS read. If the merchant intentionally allocated €5,000 to Commerce Media for incremental reach reasons, this re-allocation is silently undermining strategy; manually cap the lower-funnel daily budget and lift Commerce Media’s bid floor.
  4. Lower-funnel retargeting hitting cap on day 24 triggers two follow-on issues: (a) revenue cliff for the last 6 days of the month as retargeting goes dark, (b) finance-side under-spend on Commerce Media that won’t carry over to next month. Decision needed by day 22: lift retargeting cap by €1,500 (if marginal ROAS still beats break-even), or reallocate €1,500 from Commerce Media to retargeting.
  5. The 90%-before-80% alert hasn’t fired yet because account-level pacing is on target. Per-campaign-group alerts (configured separately) would have fired on retargeting at day 16 when it hit 90% × 16/30 = 48% of target consumed. Always run pace alerts at campaign-group level, not just account level, the rolled-up number masks the underlying redistribution.
Quick sanity checks for pacing:
  • Pacing on target on day 15: business-as-usual; do not act.
  • Pacing 5 to 10 percentage points ahead on day 15: monitor; common after a feed re-sync unlocks new SKUs. Self-corrects in 3 to 7 days.
  • Pacing 15+ percentage points ahead on day 15: investigate. Check (a) was a manual budget lift made? (b) did Commerce Yield front-load? (c) is there a competitive auction-pressure spike?
  • Pacing 10+ percentage points behind on day 15: investigate. Check (a) feed health, (b) bid-strategy regression, (c) Commerce Yield throttling against a CPA target that’s now too tight, (d) audience saturation reducing fillable inventory.
  • Pacing flat (no movement) for 48 hours: campaign paused, audience exhausted, or feed outage. Most common is feed outage; check Criteo Feed Manager → Diagnostics first.
  • Pacing >100% before period-end: budget cap was lifted mid-period, or Criteo over-delivered (Commerce Yield can over-deliver up to 20% on any single day; corrects within the flight).

Sibling cards merchants should reference together

CardWhy pair it with Criteo Spend vs BudgetWhat the combination tells you
Total SpendThe numerator in absolute terms.Whether absolute spend rose or pacing target is unusually low.
ROASPacing-decision context.Pacing ahead at high ROAS is a green light to expand cap; pacing ahead at low ROAS is a stop signal.
Spend by CampaignPer-campaign-group pacing.Account-level on-target masks per-group variance.
Wasted SpendDrag on pacing.Zero-conversion line items still count toward cap; pause them to free pacing capacity.
Conversion LagLag between spend pacing and revenue settling.Lets you avoid pacing-based cuts that ignore late-arriving view-through revenue.
Total RevenueThe “is it worth pacing?” check.Spend ahead but revenue flat = pacing into ineffective inventory.
Shopify / BC / Adobe Total RevenueCommerce-platform truth-side check on Criteo-attributed revenue.The reality check before requesting a cap lift.
Google Ads Spend vs BudgetCross-channel pacing peer.If Criteo is on-target but Google is exhausted, reallocate cross-channel for the rest of the period.

Reconciling against the vendor’s own dashboard

Where to look in Criteo’s own dashboard:
Criteo Management Centre → Campaigns → Budget Pacing Report (filter to the same advertiser-account, campaign group, and budget period used in this card).
The Budget Pacing Report shows per-campaign-group consumption against cap with a target line. The header summary shows account-level pacing. This card pulls the same underlying spend and cap data via the Management API and computes the percentage; reconciles within sub-percent rounding. Why our number may legitimately differ from Criteo:
ReasonDirectionWhy
Time zoneBoundary days offCriteo’s pacing target uses the advertiser-account time zone day-of-month boundary; this card uses UTC. For most accounts the gap is sub-percent; for US Pacific accounts on a calendar-month period the boundary can shift the figure 2 to 4%.
Mid-period cap changesEither directionIf the merchant lifted or cut the budget cap mid-period via Criteo Management Centre, the card’s percentage recalculates against the latest cap. Historical screenshots in Criteo may show pre-change percentages.
Commerce Yield over-deliverySame in bothUp to 20% over-delivery on a single day is normal under Commerce Yield; corrects within the flight. Both views show the over-delivery.
Ingest lagOurs lower for “today”2 to 4 hour lag means today’s spend (and pacing percentage) is incomplete until catchup.
CurrencyNone expectedBoth views use account currency.
Multi-budget rollupsCard defaults to account-totalIf multiple campaign groups have separate budgets and the merchant wants per-group pacing, configure separate budget IDs in the card config. The default rollup view sums them.
Cross-connector reconciliation: Pacing is single-platform by definition; cross-connector reconciliation is portfolio-level only.
SourceExpected relationshipWhat causes legitimate divergence
adroll.adr_spend_vs_budgetIndependent retargeting platform pacing.Use to rebalance cross-platform retargeting allocation in mid-period.
facebook_ads.fac_spend_vs_budgetIndependent platform pacing.Cross-channel allocation decision: if Criteo is on-target and Meta is exhausted, redirect new budget to Criteo; vice versa.
google_ads.gads_spend_vs_budgetIndependent platform pacing.Same as Meta.
Accounting / GL system (Xero, QuickBooks, NetSuite)Period budget here should match the budget-line in the GL planning module.If the GL says €30k allocated to Criteo for April but this card shows a €25k cap, the cap was set incorrectly in Criteo Management Centre. Fix the cap.

Known limitations / merchant FAQs

My Criteo budget says I’m at 95% on day 22; will I exhaust before month-end? Probably yes without intervention. At 95% on day 22 of 30, daily run-rate of (95% / 22) × (30 / 100%) projects to ~129% of cap by day 30, you’ll exhaust around day 23 to 24. Decision tree: (a) is marginal ROAS still beating break-even? If yes, lift the cap by 25 to 30% to maintain delivery. (b) If marginal ROAS is below break-even, let it exhaust early; the channel goes dark for the last week, accept it. (c) Reallocate from a behind-pacing campaign group like Commerce Media if that’s running below 50% pace. Why is my Criteo pacing 25% ahead of linear even though I haven’t changed anything? Three usual causes:
  1. Commerce Yield front-loading, the bidder identified a high-conversion-probability window (often Sunday evening or a known high-traffic day) and spent more. Self-corrects across the flight.
  2. Catalogue feed re-sync unlocked stalled SKUs, dynamic ads can now render against more inventory, auction wins increased, spend rose accordingly.
  3. Competitor pulled back, your auction win-rate jumped because a competing bidder dropped out (often visible after a competitor’s quarter-end budget exhaustion).
Check (1) via Spend by Hour, (2) via Criteo Feed Manager → Diagnostics, (3) via the auction-insights side of Criteo Management Centre. Why is my Criteo pacing 30% behind linear? Three usual causes:
  1. Catalogue feed health degradation, top SKUs out-of-stock or image-rejected. Most common cause; check Feed Manager first.
  2. Commerce Yield throttling against a CPA target, the bidder hit your configured CPA ceiling and pulled back delivery to maintain efficiency. Loosen the CPA target if you want more volume.
  3. Bid-strategy regression, an audit log change in the past 14 days altered the bid logic. Check Settings → Activity Log.
Should I cap budgets at the campaign-group level or account level? Both, with the right hierarchy. Account-level cap as the hard ceiling (finance discipline). Campaign-group caps as soft floors that let the bidder reallocate within the account but prevent any single group from absorbing more than its allocation. Without group-level caps, Commerce Yield will silently drain prospecting budgets into retargeting, this is what the bidder is supposed to do for ROAS, but it undermines the merchant’s strategic allocation. Set group-level caps at 110 to 130% of strategic allocation to give the bidder some slack. My Commerce Media budget hasn’t moved in 5 days; what’s wrong? Commerce Media campaigns can stall when the publisher inventory pool runs dry (rare) or when Criteo’s bid floor for the publisher network is too high (common). The bidder won’t enter auctions where it can’t beat the floor. Lift the bid by 15 to 25% in Campaign Settings → Bid Strategy and observe; if delivery resumes, the floor was the issue. If not, check audience size, prospecting audiences need at least 100k profiles to fill at scale. My pacing alert fired but the campaign hasn’t actually exhausted, why? The alert is forward-looking. >90% used before 80% of period projects exhaustion before period-end based on current trajectory. The campaign hasn’t physically exhausted yet, but it will if you don’t intervene. The alert is the early warning, not the failure event. My Criteo monthly budget rolled over because the campaign didn’t fully spend; how does that look here? Criteo doesn’t roll over unspent budget; each period’s cap is fresh. If your March cap was €30k and you spent €27k, the unspent €3k is forfeit; April starts at €30k regardless. For roll-over discipline, manage roll-over at your finance / GL layer, not in Criteo. This card shows the cap as configured in Criteo Management Centre, which doesn’t know about your accounting roll-over policy. Can I forecast next period’s required budget from this card? Yes, with two adjustments: (1) take this period’s actual spend as a baseline; (2) overlay any planned bursts (sale events, product launches, seasonal pulses); (3) add 10 to 15% for CPC inflation if your account is iOS-heavy (post-ATT CPC drift) or in a high-competition vertical. Forecasts further than one period out are unreliable; Criteo’s auction dynamics shift quarterly with broader programmatic market trends. Why does the pacing percentage sometimes go down day-over-day? Almost always because the budget cap was lifted by the merchant or by a Criteo client-services rep mid-period. The numerator (spend) keeps rising but the denominator (cap) rose more, so the percentage dropped. Check Settings → Activity Log for cap changes. The other (rare) case is a credit applied retroactively, lowering the spend; this happens for IVT credits or catalogue-rejection refunds. Does the alert account for Commerce Yield front-loading? The default alert fires on the simple rule (>90% before 80% of period) without learning the front-loading pattern. On Commerce Yield accounts the alert can be noisy in the first 7 days of a period. Best practice for Commerce Yield: tune the alert to fire only after day 7 of a 30-day period (skip the front-load window), or switch to a 7-day rolling pacing comparison rather than period-to-date.

Tracked live in Vortex IQ Nerve Centre

Spend vs Budget 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.