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
| Signal | Warn | Critical |
|---|---|---|
roas | 2.0 - 3.99 | < 2.0 |
ctr | 0.20% - 0.44% | < 0.20% |
conversion_rate | 0.8% - 1.99% | < 0.8% |
cpc | 0.61 - 1.20 | > 1.20 |
wasted_spend_pct | 6% - 15% | > 15% |
budget_pacing | 0.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, statusGET https://api.criteo.com/2024-07/marketing-solutions/campaigns- List campaigns - status, objective, dailyBudget, spendLimit, catalogIdGET https://api.criteo.com/2024-07/marketing-solutions/creatives- List creatives - format and approval status for dynamic-creative healthPOST https://api.criteo.com/2024-07/statistics/report- Pull spend, ROAS, CTR, CPC, conversions, revenue per campaign/period