Skip to content
PlacementGraph™
Supply path

The programmatic supply chain: who sits between the advertiser and the publisher?

Part of Supply path transparency

A reader browsing on a laptop with a coffee.
Photo: Vlada Karpovich, Pexels

The short answer

The programmatic supply chain is every company between an advertiser's budget and a publisher's ad slot: agency or trading desk, DSP, any data or curation partner, SSPs, exchanges or resellers, the header wrapper and the ad server. Each adds a service and can take a fee, but only sellers in the payment flow appear in the SupplyChain object.

Key takeaways

  • An open web impression can pass through a buyer side group (agency, trading desk, DSP) and a seller side group (SSP or exchange, resellers, wrapper, ad server) before it reaches the page.
  • Fees enter at contract points on the buyer side and as revenue shares or margins on the seller side, and no single public file lists them.
  • The SupplyChain object shows only the sellers in the flow of payment, so agencies, DSPs and curators that do not handle payment do not appear in it.
  • A curated deal adds a packaging role that bid requests do not name, which is why curator, seller and origin should be written into the deal paperwork.

Who sits in the programmatic supply chain?

The chain can be drawn as a straight line from advertiser to publisher, and that line is a useful starting point. Money moves from left to right, and the ad request moves the other way, from the page out to bidders. The OpenRTB 3.0 specification (opens in a new tab) adds a warning about reality: header bidding has created a new decision point near the publisher, and it has become common to have more than one supply chain intermediary, such as an exchange that uses another exchange as a demand source.

The usual parties between budget and page
The usual parties between budget and pageMoney flows left to right. A real impression can skip some steps or repeat others, for example two exchanges in a row. 1. Advertiser: Sets the budget, brief and brand rules. 2. Agency or trading desk: Plans, buys and operates the seats. 3. DSP: Bids per impression for the buyer. 4. SSP or exchange: Runs the auction, may chain resellers. 5. Wrapper and ad server: Pick the final ad on the page. 6. Publisher: Owns the content and the ad slot01AdvertiserSets thebudget,brief andbrand rules02Agency ortradingdeskPlans, buysand operatesthe seats03DSPBids perimpressionfor thebuyer04SSP orexchangeRuns theauction, maychainresellers05Wrapperand adserverPick thefinal ad onthe page06PublisherOwns thecontent andthe ad slot
The usual parties between budget and pageMoney flows left to right. A real impression can skip some steps or repeat others, for example two exchanges in a row. 1. Advertiser: Sets the budget, brief and brand rules. 2. Agency or trading desk: Plans, buys and operates the seats. 3. DSP: Bids per impression for the buyer. 4. SSP or exchange: Runs the auction, may chain resellers. 5. Wrapper and ad server: Pick the final ad on the page. 6. Publisher: Owns the content and the ad slot01AdvertiserSets the budget, brief and brandrules02Agency or trading deskPlans, buys and operates theseats03DSPBids per impression for thebuyer04SSP or exchangeRuns the auction, may chainresellers05Wrapper and ad serverPick the final ad on the page06PublisherOwns the content and the ad slot
Money flows left to right. A real impression can skip some steps or repeat others, for example two exchanges in a row.

OpenRTB 3.0 also explains why nobody in the middle sees the whole line. It assumes each entity has a business relationship, within a transaction, only with its directly connected neighbors. A DSP knows the exchange that sent the request, not the reseller two hops back. The public seller files and the SupplyChain object were built to fill that gap.

What does each party in the chain do?

Each party exists because it solves a problem for the party next to it. The table describes the role, what it adds and how it can be paid, without judging whether any role is worth its cost; that depends on the contract and the evidence a buyer can get.

Parties in an open web programmatic impression, what each adds and how it is paid
PartyWhat it addsHow it can be paidWhere a buyer finds it in the record
Agency or trading deskPlanning, buying, reporting and the operation of DSP seatsA fee or commission set in the agency contractThe agency contract and invoices
DSPBidding, targeting, frequency and budget control across many exchangesA platform fee set in its contractThe DSP contract and log-level reports
Data or curation partnerAudience or contextual data, or a packaged set of inventoryA data or curation fee, charged to the buyer or paid by the seller sideDeal paperwork; the Deals API curator field where supported
SSP or exchangeThe auction, floors, blocks, deal setup and payment to the sellerA share of the clearing priceads.txt, sellers.json and the SupplyChain object
Reseller, network or sales houseSales and operations for publishers that do not run their ownA margin or a revenue share agreed with the publisherRESELLER lines, INTERMEDIARY entries and an extra schain node
Header wrapper and ad serverThe page side auction among exchanges and the final choice of adA license or service fee paid by the publisher, where one appliesCan be invisible to the buyer; a wrapper can be listed as an ads.txt system
PublisherThe content, the audience and the ad slotWhat remains of the price after every share aboveThe site's ads.txt and its PUBLISHER entries in sellers.json

The ads.txt 1.1 specification (opens in a new tab) treats the selling roles alike: its first field is the domain of the SSP, exchange, header wrapper or other system bidders connect to. Buyer side roles never appear in the publisher's file. See the ad server and header bidding guides for the publisher side tools.

Where do fees enter the supply chain?

Fees enter in two ways. On the buyer side they are set in contracts: the agency agreement and the DSP agreement say what each keeps. On the seller side they can be shares of the price, taken as money passes each hop. OpenRTB 3.0 notes that latency and successive revenue shares tend to limit how many exchanges can be chained.

Where three IAB Tech Lab and MRC documents describe fees in the chain
Fee pointWhat the document saysDocument
Auction and tech feesSome auctioneers apply deal discounts or tech fees to bids; how they are applied must be consistent and transparent, and applying fees before the auction (net bidding) is encouragedMRC Auction Transparency Standards (opens in a new tab), January 2026
Monetization managerGenerally governed by a revenue sharing agreement in which the manager is paid a percentage of the inventory it sellsads.txt 1.1 implementation guide (opens in a new tab), August 2022
CurationThe deal can report its curation fee type: percentage of spend, flat fee, CPM, no fee or undisclosed; the type, not the amountDeals API 1.0 (opens in a new tab)

Which parties appear in the SupplyChain object?

Only some of them. The SupplyChain object specification (opens in a new tab) says the full chain of nodes represents all entities involved in the direct flow of payment for inventory, and that future versions may also include entities involved in the transaction but not in payment. Each node carries hp, which says whether it handles payment; for version 1.0 the specification says it should always be 1. The last node is the entity sending the bid request.

Which parties get a node in SupplyChain version 1.0
PartyNode in schain?Reason in the specification
Publisher's own seller accountYes, first node in a complete chainThe first node represents the owner of the site, app or other medium
Each SSP, exchange or reseller that resells the requestYes, one node eachA reseller must append its node; copying the chain without it is invalid
Header wrapperOnly when it is the system that sells and is paidThe asi field names the SSP, exchange or header wrapper bidders connect to
Data or curation partnerNo, unless it is also a paid seller in the flowVersion 1.0 lists only entities in the flow of payment
DSP, agency and advertiserNoThey are on the receiving side; the chain ends with the entity sending the request

OpenRTB 2.6 places the chain next to two other fields in the Source object. The OpenRTB 2.6 specification (opens in a new tab) defines fd as the entity responsible for the final impression sale decision, 0 for the exchange and 1 for an upstream source, and tid as a transaction ID that must be common across all participants in the request. Together they show who made the last decision and let a buyer join copies of one impression that arrive through different paths. The supply chain object guide explains each node field.

How does a curated deal change the chain?

A curated deal adds a role, not necessarily a hop. The Deals API separates three parties: the origin, the system where the deal is first entered and which receives bid responses for it, typically an SSP; the curator, the business that packaged the inventory, technology or data; and the seller, the business that contracted with the buyer. One company can hold all three roles, or three companies can. The specification says the API adds transparency into curated deals that is not currently available in the bid stream.

OpenRTB 3.0 adds a rule about how far a deal travels. Each entity brokers and executes deals among its directly connected supply and demand partners, and no other entity has any obligation under OpenRTB to extend or propagate those deals further up or down the chain. If inventory reaches the deal's exchange through a reseller, the deal sits on top of that resold path, and the SupplyChain object still shows it.

Tracing the chain behind a curated deal

  1. Name the three roles. Get the origin system, the curator and the seller in writing, by company and domain.
  2. Ask how the curator is paid. Note the fee type, and whether it comes out of the media price or the publisher's share.
  3. Get the domain list if the deal is static. Compare it with the sites the client approved.
  4. Check the paths for each domain. Confirm each site authorizes the origin system's seller account in ads.txt, directly or through a named reseller.
  5. Read live bid requests. Confirm the deal ID arrives with a complete SupplyChain object and no unexpected nodes.

What does a mapped supply chain look like on a real plan?

Fictional example

A self storage operator in eastern Ontario

A fictional self storage company with sites in Ottawa and Kingston wants display ads beside moving guides, home renovation and local news content, in English and French. Its agency is offered a curated deal by a data partner and asks the planner to map every company between the client's budget and the pages before signing.

On the buyer side the map is short: the agency's trading desk, one DSP seat, and the data partner, which is named as curator and charges a CPM type fee. On the seller side the planner reads the ads.txt file of each site in the deal. Most list the origin SSP as DIRECT. Three local news sites reach that SSP only through a regional sales house, so their requests carry two schain nodes.

The planner keeps the sales house sites, because each site's ads.txt declares the sales house and its sellers.json names the publishers, and notes in the deal sheet which sites run on a resold path. The trading desk will sample bid requests in week one to confirm no other nodes appear.

Frequently asked questions

Is the agency part of the programmatic supply chain?

Yes, as a buyer side party, though it never appears in seller files or in the SupplyChain object, which describe who sold an impression. The agency's role and fees are set out in its contract with the advertiser, which is where a client looks to see what the agency keeps.

Does a shorter supply chain always cost less?

Not always. A reseller hop can take a share, so a direct path can leave more of the price for the publisher. But a direct path can carry its own platform and data fees, and a reseller can be the only route to a site. Compare paths with log-level data, not with node counts alone.

What is the pchain field in a bid request?

In OpenRTB 2.6, pchain sits in the Source object next to schain. The specification defines it as a payment ID chain string containing embedded syntax described in the TAG Payment ID Protocol version 1.0. It is a recommended field, not a required one, so a request can leave it empty.

Does the DSP appear in the SupplyChain object?

No. The specification says the last node represents the entity sending the bid request, a seller side system such as an SSP or exchange. The DSP receives and reads the chain without adding itself, so buyer side parties are traced through contracts and DSP logs.

Sources

  1. OpenRTB 3.0 specification (opens in a new tab)IAB Tech Lab
  2. OpenRTB 2.6 specification (opens in a new tab)IAB Tech Lab
  3. OpenRTB SupplyChain object (opens in a new tab)IAB Tech Lab
  4. ads.txt Specification Version 1.1 (opens in a new tab)IAB Tech Lab
  5. ads.txt 1.1 Implementation Guide (August 2022) (opens in a new tab)IAB Tech Lab
  6. Deals API version 1.0 (opens in a new tab)IAB Tech Lab
  7. Digital Advertising Auction Transparency Standards (January 2026) (opens in a new tab)Media Rating Council
  8. ANA Programmatic Transparency Benchmark Reveals Widening Gap Between Top and Bottom Advertisers (Q1 2026) (opens in a new tab)ANA, May 27, 2026

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.