At a glance
Gross media spend on StackAdapt, the self-serve programmatic DSP for mid-market advertisers. Sums spend across all campaigns in the window. StackAdapt is multi-channel (display, native, CTV, video, audio, in-game, DOOH); this card aggregates regardless of channel. The platform’s edge is its AI bidding (“BidCore”); on a properly-fed campaign it typically delivers 20, 40% better CPC than manual bidding within 14 days.
| What it counts | Gross spend in account currency from the StackAdapt API reports/campaigns endpoint, summed across all campaigns. Includes the StackAdapt platform fee (typically 15, 25% of working media for mid-market accounts); does not include agency markup. |
| Cost basis | Mostly CPM (cost-per-mille impressions) for display, video, CTV, audio. CPC is supported for native and some display. CPA target bidding is via BidCore optimisation, not a separate cost basis. |
| Currency | Account currency, single-currency per StackAdapt account. Multi-region advertisers run separate accounts. |
| Conversion attribution | Click-through and view-through. Click default 30 days, view default 1 day. Both configurable per campaign. CTV impressions only support view-through (no click events from a TV). |
| Attribution window | 30-day click + 1-day view default. CTV-heavy campaigns benefit from longer view-through (3, 7 days) because TV-driven conversion is not instant. |
| Bot / invalid traffic | Pre-bid IVT filtering via Integral Ad Science (IAS) and DoubleVerify partnerships. Post-bid IVT credits issued on a 7, 14 day delay; spend reads slightly high until credits post. |
| Time window | T/7D/30D vsP (default 30D vs prior 30D). Real-time updates with up to 1-hour ingest lag. |
| Alert trigger | spike >2σ vs 30D baseline. On StackAdapt, sudden spend spikes most often signal (a) BidCore exiting learning phase and ramping, (b) a CTV campaign hitting peak inventory hours (evening prime time), or (c) a manual budget increase that nobody flagged. |
| Roles | owner, marketing, finance |
Calculation
Calculated automatically from your StackAdapt 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 US homeware brand running StackAdapt as part of a mid-market omni-channel programmatic strategy. The 30-day window is 02 Apr 26 to 01 May 26.| Campaign | Channel | Bidding | Spend ($) | Impressions | Clicks | CPM ($) |
|---|---|---|---|---|---|---|
| Display Prospecting | Programmatic Display | BidCore CPA | 12,400 | 4.2M | 6,800 | 2.95 |
| CTV Awareness, “Spring Living” | Connected TV | CPM fixed | 18,200 | 1.4M | n/a (CTV) | 13.00 |
| Native Article Distribution | Native | BidCore CPC | 5,400 | 1.8M | 7,200 | 3.00 |
| Audio Spotify Sponsorship | Programmatic Audio | CPM fixed | 3,200 | 0.8M | 320 | 4.00 |
| Retargeting (cross-channel) | Display + Video | BidCore CPA | 4,800 | 1.1M | 3,400 | 4.36 |
| Total (this card) | $44,000 | 9.3M | 17,720 | $4.73 |
- CTV is 41% of spend at $18,200 but contributes zero clicks (no click events on a TV). View-through attribution is doing the heavy lifting; if your CTV view-through window is set too short (default 1 day vs the 3, 7 day reality), you’ll under-credit CTV and over-credit display. Action: extend CTV view-through to 7 days for honest reads.
- **CTV CPM at 25, 45 CPM. StackAdapt routes through Magnite, Pubmatic, OpenX, etc., for cheaper CTV inventory at slightly lower premium-publisher quality. The trade-off is appropriate for mid-market budgets.
- **Display at 1.50, 2.00 for low-quality remnant; 2.95 is the BidCore sweet spot, brand-safe inventory with efficient targeting.
- **The Native CPC of 0.30, 0.40 typical), but StackAdapt’s audience targeting allows tighter prospecting that compensates.
- The 30-day prior window had spend $36,500 on the same channel mix; 21% rise this window. BidCore exited learning phase on the Display Prospecting campaign on 11 Apr 26 and drove most of the increase. ROAS held flat, so the rise is healthy scaling, not waste.
- **Audio at 15, 25 typical, so $4 CPM here is suspiciously low quality (likely run-of-network audio fill). Check creative placements before scaling.
- Spend up + impressions up + CPM stable = healthy volume scaling, BidCore working.
- Spend up + CPM up = bidding into more expensive inventory; check if it’s BidCore exploring premium publishers.
- Spend up + CPM down + clicks down = inventory degrading; auto-bid won the auction race-to-the-bottom; raise CPM floor.
- Spend flat + CTV CPM rising = peak hours pressure (Q4 / sports finals / awards season).
- Spend down sharply + impressions down sharply = BidCore is failing to find inventory at your bid; raise CPM or expand audience.
Sibling cards merchants should reference together
| Card | Why pair it with Total Spend |
|---|---|
| StackAdapt Total Revenue | The numerator pair for ROAS. Spend rising while revenue stays flat = BidCore is finding clicks/impressions but not conversions. |
| StackAdapt ROAS | Efficiency check. DSP ROAS reads lower than Search but should be comparable to Meta. |
| StackAdapt Spend by Campaign | Channel breakdown. CTV vs display vs native pacing tells you where to expand or trim. |
| StackAdapt Spend vs Budget | Pacing check; BidCore can outrun monthly plan. |
| StackAdapt CPC Trend | If CPC is rising, BidCore is bidding into more expensive inventory; spend rise may not be bringing more reach. |
| The Trade Desk Total Spend | The enterprise DSP peer. If you run both, total programmatic spend is the honest cross-platform number. |
| GA4 Sessions by Source | Independent reach check. StackAdapt clicks should show as utm_source=stackadapt sessions in GA4. |
| Shopify Total Revenue | The truth side. DSP attribution often over-claims; commerce-platform truth is the honest contribution check. |
Reconciling against the vendor’s own dashboard
Where to look in StackAdapt: StackAdapt → Reports → Campaigns → “Spend” column at the account level for the same date range. The footer total should match this card to within sub-percent rounding once ingest catches up (allow 1, 2 hours for “today”). Other StackAdapt views that look similar but are not the same number:- Reports → Channels: spend per channel (display, native, CTV, etc.). Sum across channels matches account spend.
- Reports → Creative: spend per creative. Same total, different cut.
- Working Media: gross spend minus the StackAdapt platform fee. NOT what this card uses; this card uses gross.
| Reason | Direction | Why |
|---|---|---|
| Time zone | Boundary days off | StackAdapt uses account time zone (set at account creation). This card uses UTC. For 30D windows the gap averages out. |
| Real-time ingest lag | Card slightly low for “today” | StackAdapt updates billable spend every 30, 60 minutes; intra-day reads catch up by the next sync. |
| IVT post-correction | Card ≤ StackAdapt initial report by 0, 5% | IVT credits post on a 7, 14 day delay. Both views eventually reflect the correction. |
| Fee inclusion | Both gross | This card uses gross spend (incl. platform fee), matching StackAdapt’s default “Spend” column. If you’ve toggled to “Working Media” view, the difference is the platform fee (15, 25%). |
| Currency conversion | None at single-account level | Multi-account aggregation requires FX at the report layer; this card is per-account. |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
the_trade_desk.the_total_spend | Independent. Many enterprise advertisers run both DSPs; aggregate programmatic spend = sum. | Different inventory pools (StackAdapt is mid-market focus; TTD has more premium inventory deals). |
google_ads.gads_total_spend | Different ecosystem; benchmark only. | Search captures intent; programmatic seeds it. Compare spend mix to channel purpose. |
google_analytics.ga_sessions_by_source | Sessions tagged utm_source=stackadapt ÷ StackAdapt clicks ≈ 0.85, 0.95 | Ad-blocker leakage, bounces before GA4 fire. CTV sessions have no GA4 equivalent (no click). |
shopify.total_revenue | StackAdapt-driven Shopify revenue is a subset; structurally hard to attribute precisely. | DSP attribution is multi-touch by nature; commerce-platform UTM truth captures only the last paid click. |