Segments vs. Embeddings: How Audiences Actually Travel in a Bid Request
The context economy does not replace segments with embeddings. It runs both, and the interesting questions are about model agreement, audit, and set logic.
Nate Woodman ยท July 24, 2026
The shift from the audience economy to the context economy is usually told as a replacement story: segments out, embeddings in. That is not what the plumbing says. An OpenRTB bid request can carry both segment IDs and audience vectors at the same time, describing the same user two different ways, and the IAB Tech Lab specs deliberately keep both first-class. The migration that matters is not a swap. It is a widening of what the bid request can express, with buyers choosing per use case.
To see why that matters, you have to look at how each representation actually works.
How segments work
A segment is an ID. Someone defines an audience in advance, gives it a code in a taxonomy, with IAB Tech Lab's Audience Taxonomy as the reference example, and ships the list of which users carry that code. At bid time the request lists the IDs the user has, the campaign lists the IDs it wants, and either they intersect or they do not. The match is a set operation, yes or no, sub-microsecond per impression.
Segments earned their dominance. Set logic is native: include A, exclude C, require both. The audit trail is human-readable, because when legal asks why an ad served, a segment name is an answer. Dedup across providers is automatic when they share a taxonomy.
They break in predictable places. If nobody defined your audience in advance, it does not exist, and new micro-audiences require taxonomy work before a campaign can ask for them. Naming does not line up across providers, so one company's luxury auto intender is not another's auto premium shopper even when the populations match. And building against one provider's IDs locks you to their taxonomy and their update schedule.
How embeddings work
An embedding starts as a description in plain language. A model turns that description into a vector, typically a few hundred to a thousand dimensions in the current agentic specs. At bid time the user side carries its own vector, the campaign side carries its frozen audience vector, and the match is a similarity score against a cutoff. You get a number, not a yes or no.
The strengths are the inverse of segments. Any audience you can describe in a sentence exists the moment you embed it, with no taxonomy committee in the path. Different wordings of the same audience match cleanly as long as both sides use the same model. And the performance ceiling is higher: the personalization stacks behind search, recommendations, and feed ranking all run on embeddings, and the reported lifts over label-based ranking are real.
The costs are structural. Two sides using different models cannot compare vectors at all, so they have to agree on a model first. Version migrations are coordinated events, because old vectors stop matching new ones. There is no clean equivalent of set logic, you cannot simply subtract one audience from another. Each match costs more compute than a lookup, which adds up at bid-stream volume. And the audit trail is two arrays of numbers and a score, which satisfies an engineer and nobody else.
The distinction that matters
Both representations describe the same person. The differences are in how you use them, and that framing, which I owe to a practitioner conversation this spring, is the cleanest I have seen. Segments are the right tool for compliance-sensitive activation, planner set logic, and audiences that already exist in a taxonomy. Vectors are the right tool for plain-language audiences, ranking by closeness, and the nuance a taxonomy cannot encode. Teams will pay the operational cost of embeddings where the performance lift covers it, and not before.
Four implications follow, and they are where I would put attention and capital.
First, the migration is additive, use case by use case. Nobody has to abandon working segment infrastructure for the context economy to arrive. That makes the thesis stronger, not weaker: adoption does not wait on an industry-wide rip and replace, it compounds quietly wherever the numbers clear.
Second, model agreement is the actual battlefield. The technical constraint that both sides must share a model turns the model into a control point. Whoever owns the dominant embedding model owns the terms of matching, which is why neutrality questions around holdco-owned identity and audience infrastructure matter more in the embedding era, not less. Embeddings without trusted neutrality is a tough sell, and the industry knows it.
Third, the audit gap is the speed limiter for regulated money. Health, financial services, political, alcohol: no privacy regulator or brand counsel accepts two arrays and a score as an explanation for a sensitive-audience decision. Until someone builds an explanation layer that translates vector matches into reviewable reasons, regulated verticals will keep routing through segments, and architectures that can route inventory down either path depending on regulatory posture will win those budgets.
Fourth, planners think in set logic, and embeddings do not. Include this, exclude that, is how media plans are written. Exclusion has no native vector equivalent. The bridge interface that translates planner intent into similarity thresholds and reject regions does not exist yet. Whoever builds it controls the adoption ramp, because segments will keep doing planning-tool duty until it exists, even where embeddings drive the activation underneath.
The bid request keeping both representations open is not indecision from the standards bodies. It is the honest shape of the transition: a decade of segment infrastructure staying useful while an embedding layer grows alongside it, one cleared use case at a time. The winners will be the teams building the connective pieces, the shared models with credible neutrality, the explanation layers, the planner bridges, rather than the ones waiting for a clean switchover that is not coming.