Transaction ID on CTV Explained
DSPs, SSPs, and publishers still need to work through certain issues before Transaction ID can become a default on CTV. Here’s why.
Transaction ID is a unique identifier assigned to a programmatic transaction meant to persist as the transaction flows through potentially multiple platforms. The identifier gives DSPs or buyers a signal to identify unique or duplicate opportunities across the programmatic ecosystem.
Transaction ID stood as a lightning rod for debate in the display world last year after Prebid chose to modify its open-source header bidding tech to start creating unique IDs per bidder. This was a change from a global Transaction ID shared with each bidder participating in a transaction and immediately crushed a DSP’s ability to use the signal to identify duplicative opportunities.
The signal has not received the same uptake from CTV publishers as display, but if it is present in the bid stream, it could give DSPs a more surgical way to audit the origin of the inventory hitting their platform. If implemented as intended in the ORTB specification, Transaction ID serves as a deterministic way for buying platforms to identify duplicative supply.
So how do DSPs use Transaction ID to audit SPO?
It’s a simple concept: if we are talking about a single SSP making a bid request to a DSP — the SSP creates a unique identifier per transaction and includes it in the bid request. But programmatic is never simple, and any given transaction can include multiple SSPs and diverging supply paths.
Check out the flowchart below:

The Origin SSP creates a Transaction ID (1234) and transmits this in a bid request straight to a DSP. However, the origin SSP also issues requests to two other SSPs for the same transaction (publishers do this for multiple reasons, such as curation agreements with agencies, sales strategies, and more).
Let’s say the request to SSP A does not include a Transaction ID for whatever reason. If this happens, then SSP A has no choice but to generate a new Transaction ID (3456) and include that in a bid request to the DSP.
SSP B receives the Origin SSP’s Transaction ID, so their job is only to forward it on in their bid request to the DSP.
All in all, the DSP receives three separate bid requests. It knows that both Origin SSP and SSP B are sending a bid request for the same transaction since they have a matching Transaction ID. However, it receives a separate Transaction ID for SSP A and therefore cannot use the Transaction ID to determine that this is the same transaction.
The DSP knows that Origin SSP is the most efficient supply path between Origin SSP and SSP B for the same transaction since it does not include any additional hops (auditable assuming it has a complete SupplyChain object), and it can choose to bid on Origin SSP’s request over SSP B’s request for this reason.
But since SSP A has a different Transaction ID, the DSP could unknowingly bid on that transaction even though it is the same (duplicate) opportunity.
It’s no secret that less-than-scrupulous publishers inundate DSPs with bid requests from many separate SSPs to increase bid density. While this is not the status quo for many, it is a known strategy to grab as many bid responses as possible to create the best opportunity to garner the highest bid possible on any given opportunity.
But DSPs serve buyers, and buyers want the most amount of their spend going toward working media rather than unnecessary fees or arbitrary markups for the same inventory that they can find cheaper elsewhere. Transaction ID provides a path to achieve this goal.
Transaction ID on CTV
But in CTV, there are valid concerns about sending a Transaction ID for two distinct bid requests even if it is technically the same transaction. I can provide two examples.
1. Metadata enrichment
Publishers can create unique sales strategies based on the inclusion of or exclusion of specific metadata.
Let’s say a publisher wanted to charge a $5 CPM markup for sharing content metadata such as Genre or Channel.
A publisher can configure its SSP to withhold these fields on lower-cost deals. If the SSP is sending two distinct bid requests (one with the metadata and one without), and they both have the same Transaction ID, the DSP could correlate the requests and enrich the lower-cost deal opportunity with the same content metadata present in the higher-cost deal opportunity — circumventing the publisher’s price markup.
2. Inventory Shares
CTV publishers are often required to split their inventory with another entity to satisfy distribution deals. If a publisher wants its app on a certain platform, that platform can demand a percentage of inventory sent over to its SSP to monetize as part of the deal.
If the publisher’s and the platform’s separate SSPs are sending the same Transaction ID for the same opportunity, a DSP could choose to buy from one entity for whatever reason over the other.
The inventory appears duplicative, so the DSP is free to choose whatever suits its strategy the best, whether it be due to lower price, shortest supply path, or other strategic partnership reasons.
But even if a DSP bids on both opportunities from both publisher and platform, they could run in the same pod — so shouldn’t they have distinct Transaction IDs? Or is this the same transaction? These are the types of kinks that need to be worked out and prevent Transaction ID from universal uptake.
Who wins?
DSPs, SSPs, and publishers still need to work through these use cases and more before Transaction ID can become a default on CTV. But if it eventually becomes the norm, who benefits the most?
We’ve already reviewed why DSPs and buyers stand to benefit from a deterministic SPO signal, but premium publishers also stand to gain if the ecosystem adopts a global per-transaction Transaction ID.
This is because DSPs would have a much easier time filtering out inventory from publishers intentionally duplicating or gaming the system. Buying platforms could push more spend away from duplicative inventory and toward unique opportunities, thus rewarding premium publishers that have massive amounts of unique inventory and clean supply paths.
However, this only works if every SSP in the ecosystem adopts Transaction ID on CTV and agrees to the same view of how it should work in every situation, such as inventory shares and metadata enrichment. The whole concept starts to break down if some SSPs, publishers, or distributors choose not to send a Transaction ID or implement the signal in different ways.

Christmas in July has LANDED. Tear off that wrapping paper, here’s what we’re gifting:
🎁 $100 Off Registration
Like Saint Nick, this deal is making a one-night appearance. Save $100 on your ticket by registering before 11:59 p.m. ET on July 29.
Already registered? There’s no shame in the re-gifting game. Send that discount over to a friend, colleague, or client you want to join you in the Windy City.
🎁 First Look at the Agenda
Featuring the industry’s top voices, we’ll go deep on the new realities of brand building in an AI- and creator-led world. Scroll through for a first look at the conversations coming to Chicago.
🎁 AdTechGod® Confessional
The AdTechGod® Confessional is a dedicated space for attendees to anonymously share their boldest predictions, cutting commentary, and biggest advertising confessions.