What this audit checks
Authentication & access
- OAuth refresh token valid and not expired against /amplify/api/oauth/token
- Marketer ID resolves and account status is ACTIVE on /amplify/api/v0.1/marketers/
- Required scopes present (read_marketer, read_campaigns, read_reports)
Spend & budget pacing
- Daily budget utilisation per campaign vs budget_amount (under-pacing or runaway burst)
- Wasted-spend burst: zero-conversion spend in last 72h on campaigns dropping below premium-publisher tier
- Smart Bidding bid-floor breaches causing under-delivery on premium placements
Campaign performance (ROAS/CTR/CPC)
- ROAS per campaign vs prior 7D same-DOW (>25% drop flagged) from reports/marketers//campaigns
- CTR per campaign and per promotedLink against account-average band
- CPC drift vs campaign cpc target on premium vs long-tail publisher placements
- Disabled or rejected promotedLinks still attributed spend
Conversion & attribution
- Outbrain Pixel firing-rate decay across the multi-step conversion funnel
- Conversion rate per campaign vs account-average for CONVERSIONS-objective campaigns
- AUTOMATIC_CONVERSIONS optimisation campaigns training on stale or missing pixel data
Creative & audience health
- Active promotedLinks with broken or redirecting landing URLs
- Premium publisher placements drifting into less-vetted long-tail (brand-safety filter override needed)
- International (EU + Latam) campaign delivery parity vs US baseline
Cross-channel revenue at risk
- Active product-feed native ads on out-of-stock commerce-sibling SKUs (qty=0)
- Spend on product-feed campaigns whose Feedonomics feed has active rejections
- Landing pages with LCP >4s and conversion rate <0.5x account-average
Severity thresholds
| Signal | Warn | Critical |
|---|---|---|
roas | - | < 1.0 |
ctr | - | < 0.10% |
conversion_rate | - | < 0.5% |
cpc | - | > 2.0x account_avg |
wasted_spend_pct | - | > 25% |
budget_pacing | - | < 60% or > 130% of planned daily budget |
Data sources
GET https://my.outbrain.com/amplify/api/v0.1/marketers/{marketer_id}- Resolve marketer account, currency, and statusGET https://my.outbrain.com/amplify/api/v0.1/marketers/{marketer_id}/campaigns- List campaigns with budget, cpc, objective, optimisationGET https://my.outbrain.com/amplify/api/v0.1/campaigns/{campaign_id}/promotedLinks- List creatives (promotedLinks) with status and landing URLsPOST https://my.outbrain.com/amplify/api/v0.1/reports/marketers/{marketer_id}/campaigns- Pull campaign performance metrics (spend, clicks, conversions, ROAS)POST https://my.outbrain.com/amplify/api/oauth/token- Refresh OAuth access token