Skip to main content
Nerve Centre KPIs · Audit Profile · Sentiment Settings Audits Criteo retargeting and Commerce Growth campaigns - spend pacing, ROAS/CTR/CPC efficiency, conversion and attribution integrity, dynamic-creative feed health, first-party audience decay, and cross-channel revenue at risk.

What this audit checks

Authentication & access

  • OAuth2 client_credentials token mints from /oauth2/token and is cached under the 1-hour TTL
  • advertiser_id resolves to an active advertiser via /2024-07/advertisers
  • client_secret age within rotation window (warn beyond 90 days)

Spend & budget pacing

  • Daily spend vs dailyBudget per campaign from /2024-07/statistics/report (flag under-pacing <0.5x and over-pacing >1.5x)
  • Spend approaching spendLimit on capped campaigns (warn at >0.9x)
  • Zero-conversion spend burst on any dynamic campaign in the trailing 72h
  • Active campaigns with spend but status Paused or Archived mismatch

Campaign performance (ROAS / CTR / CPC)

  • ROAS per campaign from /2024-07/statistics/report vs roas threshold band
  • CTR per campaign and creative against ctr threshold band
  • CPC drift vs prior 7D same-day-of-week (flag >25% rise)
  • Retargeting ROAS drop >25% vs prior 7D same-DOW (cookie/ITP signal)

Conversion & attribution

  • Conversion rate per campaign vs conversion_rate threshold band
  • Criteo One Tag firing without cookie set (ITP / cross-site) on >20% of sessions
  • First-party audience segment population below 500 algorithmic floor
  • Attributed revenue present in statistics report for spending campaigns (zero-revenue-with-spend alert)

Creative & audience health

  • Dynamic creatives in error/disapproved status from /2024-07/marketing-solutions/creatives
  • Campaigns with catalogId set but catalog has feed rejections (dynamic creative cannot render)
  • Audience segments under the 500-population floor degrading bids
  • Creative format coverage - dynamic campaigns missing a Dynamic-format creative

Cross-channel revenue at risk

  • Active dynamic ads on commerce-sibling SKUs with qty=0 (ads on out-of-stock)
  • Spend on dynamic campaigns whose linked catalog has active feed rejections
  • Landing pages with LCP p75 >4000ms and conversion rate below half account average
  • Retargeted audiences overlapping email subscribers (branded/owned-channel cannibalisation)

Severity thresholds

SignalWarnCritical
roas2.0 - 3.99< 2.0
ctr0.20% - 0.44%< 0.20%
conversion_rate0.8% - 1.99%< 0.8%
cpc0.61 - 1.20> 1.20
wasted_spend_pct6% - 15%> 15%
budget_pacing0.5x - 0.79x or 1.21x - 1.5x< 0.5x or > 1.5x of dailyBudget

Data sources

  • POST https://api.criteo.com/oauth2/token - Mint OAuth2 client_credentials access token (cache for 1 hour)
  • GET https://api.criteo.com/2024-07/advertisers - Resolve advertiser account, currency, country, status
  • GET https://api.criteo.com/2024-07/marketing-solutions/campaigns - List campaigns - status, objective, dailyBudget, spendLimit, catalogId
  • GET https://api.criteo.com/2024-07/marketing-solutions/creatives - List creatives - format and approval status for dynamic-creative health
  • POST https://api.criteo.com/2024-07/statistics/report - Pull spend, ROAS, CTR, CPC, conversions, revenue per campaign/period