You’ll Never Believe What Netflix Had to Do to Track a Simple Ad View
From overloaded tokens to a centralized publisher and metadata registry, how Netflix reengineered ad telemetry.
Tracking an ad sounds simple. Serve the video. Log the event. Done.
But scaling that across millions of devices, dozens of vendors, and ever-changing ad formats? That takes real architecture.
Netflix launched its ad-supported plan in 2022 with a partner-managed backend. Microsoft handled serving; Netflix handled playback. Events were pushed back to vendors through a minimal feedback loop. It worked. But over time, the demands got more complex, and the gaps became clear.
So Netflix rethought the system.
The Focus Tool Devs Actually Use
I am always testing tools that make deep work easier. That’s why we’re excited to partner with Forget.work the #1 productivity tool designed for focused, distraction-free work.
We are partnering with the team at Forget Work to exclusively give Byte-Sized design subscribers 20% off! Just use the promo code BYTESIZED20 at checkout.
Forget.work is purpose-built for single-tasking. It helps you beat time blindness and stay anchored to what you’re doing right now. Always visible on your screen, it gently reminds you to stay on task, no context switching, no endless tab juggling.
Whether you’re writing a design doc, neck-deep in code, or tracing a bug across five services, Forget keeps you locked in, no tab-hopping, no context-switching, just pure focus.
Use the promo code BYTESIZED20 at checkout for 20% off!
🧱 Act I: The Lightweight Setup
Netflix started with a pragmatic MVP.
When a device needed an ad:
The Ads Manager appended device and session metadata to the request.
Microsoft returned a VAST response with tracking URLs.
Netflix generated a structured protobuf carrying ad metadata.
The protobuf was encrypted and handed to the client as a single opaque token.
Clients sent the token back as part of playback events.
A server-side Ads Event Handler decrypted it, parsed out the tracking URLs, and called vendor endpoints.
It was fast. Efficient. But brittle.
That opaque token became a crutch. It had to carry everything: ad ID, pricing info, vendor callback URLs, policy flags, impression caps, privacy bits, and more.
As Netflix added more formats and vendors (e.g., IAS, Nielsen), token size exploded. Mobile devices (already memory-constrained) started to show signs of stress. Worse, debugging became painful. Every change required tight coordination between client and server teams. The payloads weren’t just heavy; they were a liability.
📦 Act II: Decoupling with Metadata Registry
The core shift? Moving from "carry everything in the token" to "reference it server-side."
Netflix introduced a key-value metadata registry. Here’s the new flow:
The client sends a compact token with:
A hashed ad ID
A metadata record ID
The event type (e.g., start, quartile, complete)
The event handler retrieves full ad metadata from the registry.
Events are enriched server-side with tracking URLs, campaign info, and policy context.
Suddenly, the client didn’t need to know anything about downstream requirements. It just had to say what happened and when.
This unlocked faster changes, safer rollouts, and leaner device workloads. It also paved the way for a shared data contract across teams.
🚀 30% Off Byte Sized Design Premium This Memorial Day Weekend
This Memorial Day Weekend, get 30% off Byte-Sized Design Premium, your shortcut to real-world breakdowns, architecture deep dives, and exclusive case studies.
Deal ends Monday. Don’t miss it!!!
🧠 Act III: Centralizing with Ads Event Publisher
Keep reading with a 7-day free trial
Subscribe to Byte-Sized Design to keep reading this post and get 7 days of free access to the full post archives.