Skip to content

Programmatic Flow

Beta

A schematic of how an ad dollar moves through the open programmatic stack: advertisers route spend through agencies and DSPs to SSPs / exchanges, which auction inventory to publishers. Built for teaching, not for measurement.

← swipe horizontally to see all layers →

Illustrative — not measured volumes. Flow widths are uniform/equal; they show structure and direction, not market share or spend. Use this chart to teach the moving parts, then dig into individual vendors for actual share data.
1. Advertisers

Brands buying attention.

2. Agencies

Holding cos that plan + execute the buy.

3. DSPs

Buy-side tech — places bids on behalf of the advertiser.

4. SSPs / Exchanges

Sell-side marketplaces — run the auction, route winning bids.

5. Publishers

Supply-side — own the inventory the bids compete for.

Walled gardens — the other half of digital advertising

The Sankey above shows the open programmatic stack. But more than half of digital ad spend never touches it. Walled gardens are platforms where the same company runs the DSP, the exchange, and the supply — there's no third-party auction. Each card below is one closed ecosystem.

~$160B/yr ad revenue
AdvertiserMetaInventory

Inventory: FB + IG news feed, Reels, Stories, Audience Network

Why “walled”: No third-party DSPs. Ads Manager is the only buy. No cookie-based ID exchange outside Meta's graph.

~$240B/yr ad revenue
AdvertiserGoogleInventory

Inventory: Search results, YouTube video, Discover, Gmail Promotions

Why “walled”: Google Ads / DV360 are the buy-side; the auction is closed to outside DSPs. Distinct from Google Ad Manager (which IS in the open Sankey above).

~$50B/yr retail-media revenue
AdvertiserAmazonInventory

Inventory: Sponsored Products, Sponsored Brands, Amazon DSP for Prime Video

Why “walled”: On-Amazon inventory only auctioned via Amazon Ads. Sponsored placements live entirely inside Amazon's retail funnel.

~$23B/yr ad revenue
AdvertiserTikTokInventory

Inventory: For You feed, Spark Ads, TopView

Why “walled”: TikTok Ads Manager is the only DSP. Limited third-party measurement (mostly internal Pixel + a few approved verification vendors).

~$10B/yr ad revenue
AdvertiserAppleInventory

Inventory: App Store search results

Why “walled”: Apple Search Ads platform is the only buy. SKAdNetwork attribution replaces traditional measurement.

Cross-cut layers — vendors that touch every step

The Sankey above shows the SPATIAL flow — where the dollar moves. These three layers are different: they're services that observe or feed every step in the chain. Adding them to the chart would make it unreadable; naming them as a separate category teaches the full shape.

Identity & Data

touches 3 layers
DSPsSSPs / ExchangesPublishers

What: Resolves users across devices + sessions; supplies audience segments to bidders.

Where: Feeds into both buy-side (DSPs match audiences for targeting) and sell-side (SSPs enrich bid requests with first-party signals).

Verification & Brand Safety

touches 3 layers
DSPsSSPs / ExchangesPublishers

What: Pre-bid filtering (don't buy this URL) and post-bid measurement (was the ad actually viewable, was the page brand-safe, was the impression human?).

Where: Pre-bid: integrated into DSP bid logic. Post-bid: measures every served impression across the supply chain.

Attribution & Measurement

touches 3 layers
AdvertisersAgenciesDSPs

What: Connects ad exposure to outcomes — purchases, app installs, store visits, brand lift. Multi-touch attribution, media-mix modeling, incrementality.

Where: Lives on the buy side. Pulls clean-room or hashed-ID data from DSPs + walled gardens + clickstream sources to attribute conversions back to specific ad placements.

Future iterations: share-weighted flow widths if/when measured market-share data is ingested, and an interactive toggle to overlay the cross-cut and walled-garden layers on the main Sankey. Currently they sit as separate sections to keep the chart readable.