Skip to content
PlacementGraph™
Deal setup

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.

Identifiers a trader meets on a deal, and which one the seller needs
IdentifierWho issues itWhat it namesDoes the seller put it on the deal?
Buyer seat IDAgreed between the buying platform and the exchangeThe buying entity the exchange sees in the auctionYes, in the allowed seats list
Deal IDThe selling systemThe agreement the impression is offered underIt is the deal's own key
Partner, advertiser or account ID in the buying platformThe buying platformAccounts inside the platform's own interfaceOnly if the exchange maps it to a seat
Advertiser domainThe brandThe brand declared on each bidYes, when the deal limits advertisers
Billing IDSome exchanges, for their own biddersWhich account a won impression is billed toOn 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.

How a seat ID travels from buyer to deal and back
How a seat ID travels from buyer to deal and backThe seat string the buyer sends must be the one the exchange expects in the bid. Any change in between breaks the match. 1. Buyer sends seat ID: Exact string, per exchange. 2. Seller adds it: Seat goes on the deal's allowed list. 3. Request carries it: Deal lists the seats invited. 4. Bid names a seat: Bid response states its seat. 5. Exchange matches: Bid accepted only if seat is listed01Buyer sendsseat IDExact string, perexchange02Seller addsitSeat goes on thedeal's allowedlist03Requestcarries itDeal lists theseats invited04Bid names aseatBid responsestates its seat05ExchangematchesBid accepted onlyif seat is listed
How a seat ID travels from buyer to deal and backThe seat string the buyer sends must be the one the exchange expects in the bid. Any change in between breaks the match. 1. Buyer sends seat ID: Exact string, per exchange. 2. Seller adds it: Seat goes on the deal's allowed list. 3. Request carries it: Deal lists the seats invited. 4. Bid names a seat: Bid response states its seat. 5. Exchange matches: Bid accepted only if seat is listed01Buyer sends seat IDExact string, per exchange02Seller adds itSeat goes on the deal's allowedlist03Request carries itDeal lists the seats invited04Bid names a seatBid response states its seat05Exchange matchesBid accepted only if seat islisted
The seat string the buyer sends must be the one the exchange expects in the bid. Any change in between breaks the match.

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

  1. Name the exchange first. Ask the seller which exchange or SSP will host the deal, because the seat string is tied to that exchange.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Wrong seat situations and what each one looks like
SituationWhat the buyer seesFix
Typo in the seat stringNo eligible requests or rejected bids from day oneSeller corrects the allowed list from the buyer's written value
Seat from another exchangeSame as a typo, though the value looks familiarSend the seat for the deal's own exchange
Agency seat instead of a client level seatThe deal works, but other clients in the seat can use itAsk whether the exchange offers a narrower seat, or limit use inside the platform
Old seat after an account moveA deal that delivered stops with no change on the seller's sideSend the new seat and ask the seller to update every open deal
Seat right, advertiser domain wrongSeat accepted, bids still lose for the brandUpdate 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.

Can several agencies or advertisers share one seat?

Yes. OpenRTB's own definition gives advertiser or agency as examples of a seat, so a seat can sit at either level. An agency seat can carry several advertisers, and several agencies in one group can buy through a shared desk seat. Sharing has costs a planner should weigh before a deal is set up.

Seat levels and what each means for a deal
Seat levelStrengthWeakness
Shared desk or group seatOne value to send for every deal; simple for sellersA deal invites every agency and client in the seat; the seat tells the seller little
Agency seatMatches the agency's own contract with the buying platformClients inside the agency can reach each other's deals unless the platform limits access
Advertiser seatThe deal is tied to one brand from the startMore seats to manage; not every exchange and platform pair offers this level

When a shared seat is unavoidable, control use inside the buying platform. Google's Display & Video 360 programmatic guaranteed help (opens in a new tab), for example, describes choosing which advertisers have permission to target a deal's products and setting a default advertiser. A wadomain list on the deal adds a brand level check on the seller's side.

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

  1. OpenRTB 2.6 specification (opens in a new tab)IAB Tech Lab, OpenRTB repository
  2. OpenRTB 2.x implementation guide (opens in a new tab)IAB Tech Lab, OpenRTB repository
  3. OpenRTB 3.0 specification (opens in a new tab)IAB Tech Lab, OpenRTB repository
  4. Deals API Specification version 1.0 (opens in a new tab)IAB Tech Lab, GitHub
  5. OpenRTB Integration (opens in a new tab)Google, Authorized Buyers developer documentation
  6. 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.

HOW AGENCIES WORK WITH US

From your first brief.
To your next campaign.

Share a brief in plain language. Get contextual websites and YouTube channels that fit it, with the evidence behind every pick and a deal ready for your usual buying platform.

  1. 01

    Share your brief

    The campaign in plain language.

  2. 02

    Get your shortlist

    The strongest contextual sites and channels, with the evidence behind each.

  3. 03

    We build the deal

    Your shortlist becomes a curated deal through our exchange partners.

  4. 04

    Activate and grow

    Buy in your usual platform. Agencies earn benefits as their investment grows.

LET’S WORK TOGETHER

Your next campaign starts here.

Your details will only be used to respond to your enquiry.

Prefer email? diana@placementgraph.com

YOUR PRIVACY

You choose whether to allow optional analytics. You can use the whole website either way.

Change or withdraw consent at any time using “Cookie preferences” in the footer. Turning analytics off stops future collection and removes this site’s analytics cookies; it does not erase information already sent. The page may refresh to apply withdrawal.