What is a buyer seat ID, and why does each deal need the right one?
Part of Curated deals and PMPs
The short answer
A buyer seat ID is the identifier an exchange uses for one buying account, such as an agency or advertiser, inside a demand side platform. Publishers put it on a deal to say which buyers are invited. If the seat on the deal does not match the seat that bids, the exchange will not accept those bids under the deal.
Key takeaways
- OpenRTB defines a seat as an advertising entity, such as an advertiser or agency, that uses a bidder to buy impressions, and says seat IDs must be agreed between bidder and exchange in advance.
- A seat ID is specific to one buying platform's connection with one exchange, so the same agency can have different seat strings on different exchanges.
- The buyer supplies the seat ID; the seller copies it onto the deal, so a wrong or outdated string blocks the deal before any price is considered.
What is a buyer seat ID?
Definition
- Buyer seat ID
- The string an exchange and a buying platform agree on to identify one buying entity, such as an agency, a trading desk or an advertiser, that bids through that platform. Deals and bid responses use it to say who is allowed to buy and on whose behalf a bid is made.
The term comes from the OpenRTB 2.6 specification (opens in a new tab), the IAB Tech Lab protocol for real-time bidding. Its terminology table separates the software from the customer. A bidder competes in auctions. A seat is an advertising entity, for example an advertiser or agency, that wishes to obtain impressions and uses bidders to act on its behalf, described as a customer of a bidder and usually the owner of the advertising budget.
The seat shows up in two places that matter for deals. In the bid response, each SeatBid object carries a seat field, the ID of the buyer seat on whose behalf the bid is made. In the bid request, each deal can carry a wseat array, an allowed list of buyer seats that may bid on that deal. The specification adds a condition behind seat mismatches: IDs of seats and the customers they refer to must be coordinated between bidders and the exchange a priori, meaning before any auction happens.
How is a seat ID different from the other IDs on a deal?
A trader handling one deal can see five or six identifiers. The seat ID is the only one that names the buyer as the exchange knows it; the others name the deal, the platform's own accounts or the brand.
| Identifier | Who issues it | What it names | Does the seller put it on the deal? |
|---|---|---|---|
| Buyer seat ID | Agreed between the buying platform and the exchange | The buying entity the exchange sees in the auction | Yes, in the allowed seats list |
| Deal ID | The selling system | The agreement the impression is offered under | It is the deal's own key |
| Partner, advertiser or account ID in the buying platform | The buying platform | Accounts inside the platform's own interface | Only if the exchange maps it to a seat |
| Advertiser domain | The brand | The brand declared on each bid | Yes, when the deal limits advertisers |
| Billing ID | Some exchanges, for their own bidders | Which account a won impression is billed to | On some exchanges a deal can be limited to listed billing IDs |
The billing ID row is one exchange specific example. Google's Authorized Buyers OpenRTB guide (opens in a new tab) says billing IDs can represent eligible child seats, and that when a deal lists billing IDs, a bid on that deal must use one of them. Ask each exchange which value its deals actually check.
Why does a publisher need a seat ID to set up a deal?
A private marketplace deal is an invitation, and the seat ID is the name on the invitation. A publisher or curator who wants only one agency to bid writes that agency's seat into the deal. When the exchange builds a bid request, the deal carries the allowed seats, and bids from any other seat are not eligible under that deal.
IAB Tech Lab's Deals API specification (opens in a new tab), finalized as version 1.0 on February 6, 2026, lists wseat as a recommended field of the deal sent from the selling system to the buying system, with the same advance coordination rule. The buying system can report status per seat through a BuyerStatus object with a buyerseatid field.
A deal's allowed list can hold more than one seat, so a publisher can invite two agencies under one ID, each listed separately.
How do you find your seat ID?
There is no public directory of seat IDs. Each buying platform and exchange pair sets its own, and the string an exchange uses can differ from the account name shown in the buying platform. The reliable route is to ask the people who run the connection, in writing, for the value the specific exchange expects.
Get the right seat ID for one deal
- Name the exchange first. Ask the seller which exchange or SSP will host the deal, because the seat string is tied to that exchange.
- Ask the buying platform for the seat on that exchange. Request it from the platform's account team or support desk, and ask whether the value is a seat ID, an account ID or a billing ID.
- Check which level it represents. Confirm whether the string identifies the whole agency, one client inside it or one advertiser, since that decides who can use the deal.
- Send it to the seller with the advertiser domain. Put the seat ID, the exchange and the brand's domain in the same written message.
- Ask the seller to confirm what they entered. Request a copy of the deal's allowed seat list from the seller's screen, not a summary, and compare it character by character.
- Record it in the deal register. Store the seat with the exchange and the confirmation date.
What happens when a deal targets the wrong seat?
A wrong seat can fail silently on both sides. The seller sees a live deal. The buyer sees an entry and a line item that look correct. The exchange simply does not accept the buyer's bids under that deal. The OpenRTB 3.0 list of loss reason codes, which OpenRTB 2.6 points to for loss notices, includes code 104, Buyer Seat Blocked, for this case.
| Situation | What the buyer sees | Fix |
|---|---|---|
| Typo in the seat string | No eligible requests or rejected bids from day one | Seller corrects the allowed list from the buyer's written value |
| Seat from another exchange | Same as a typo, though the value looks familiar | Send the seat for the deal's own exchange |
| Agency seat instead of a client level seat | The deal works, but other clients in the seat can use it | Ask whether the exchange offers a narrower seat, or limit use inside the platform |
| Old seat after an account move | A deal that delivered stops with no change on the seller's side | Send the new seat and ask the seller to update every open deal |
| Seat right, advertiser domain wrong | Seat accepted, bids still lose for the brand | Update the domain on the deal or on the bid |
The wrong seat can also be too broad rather than invalid. OpenRTB's implementation guide (opens in a new tab) warns that associating a deal ID with a seat or buyer can apply it to too many active campaigns, and recommends treating the deal ID as a targeting token on orders, line items or campaigns. A seat says who may bid; the line item decides which campaign actually does.
What does a seat ID check look like on a real deal?
Fictional example
A pool supply retailer's first private auction in Florida
An unnamed pool supply and maintenance retailer wants display and online video beside home improvement, backyard living and local weather content in Florida, focused on Tampa, Orlando and Miami, in English, before the spring season. Its agency buys through a holding group's shared desk seat, and a regional lifestyle publisher offers a private auction.
The planner notices that the shared seat would invite every agency in the group. The trading desk asks its buying platform whether an agency level seat exists on that exchange. It does, so the desk sends that string, the exchange name and the retailer's domain in one email, and asks the publisher for a screenshot of the allowed seat list once the deal is built.
The screenshot shows the group seat, copied from an older deal. The publisher replaces it with the agency seat, the desk limits the deal entry to the retailer's advertiser account and records the confirmed seat in its deal register.
How does PlacementGraph help with what goes on the deal?
Frequently asked questions
Is a seat ID the same as a buying platform login or account name?
No. A login gives a person access to the buying platform's interface. An account name is a label inside that interface. The seat ID is the string the exchange and the buying platform agreed on for bidding, and it can look nothing like the account name. Ask for the value the exchange expects.
Does a deal always need a seat ID?
No. OpenRTB says omitting wseat implies no seat restrictions, so a deal can be open to any buyer on the exchange. Sellers add seats to private deals because the point of an invitation is to choose the buyer.
Can a publisher block a seat instead of inviting one?
At the impression level, yes. OpenRTB 2.6 has a bseat block list on the bid request, and says only one of wseat and bseat should be used in the same request. The Deal object in OpenRTB 2.6 has an allowed list only, so a deal invites seats rather than excluding them.
What should change when an agency moves a client to another seat?
Every open deal for that client that names the old seat. Send each seller the new seat string for each exchange, ask them to update the allowed list, and keep the old seat on the deal until the new one is confirmed working, so delivery does not stop between the two.
Sources
- OpenRTB 2.6 specification (opens in a new tab)IAB Tech Lab, OpenRTB repository
- OpenRTB 2.x implementation guide (opens in a new tab)IAB Tech Lab, OpenRTB repository
- OpenRTB 3.0 specification (opens in a new tab)IAB Tech Lab, OpenRTB repository
- Deals API Specification version 1.0 (opens in a new tab)IAB Tech Lab, GitHub
- OpenRTB Integration (opens in a new tab)Google, Authorized Buyers developer documentation
- Programmatic Guaranteed deals (opens in a new tab)Google, Display & Video 360 Help
Researched and written by PlacementGraph Research. Read how we research, source and update these pages. Corrections: diana@placementgraph.com.