SupplyFinder

    Guide ·

    Supply Path Optimization: How to Map and Shorten Your Paths

    Supply path optimization means routing your spend through the shortest, most transparent route to the publisher. To do it you need three things: a map of who touches your impressions, a way to spot the redundant hops, and the discipline to act on what you find.

    The map is free. Three open standards make it: ads.txt lists which accounts a publisher authorises to sell its inventory, sellers.json identifies who those accounts belong to, and the SupplyChain object records every intermediary an impression passed through on the way to your DSP.

    Cross-reference the three and you can trace an impression from the bid request back to its origin, checking at each step that the seller is authorised and identifiable.

    Why it's worth the effort

    The ANA's programmatic transparency research put a number on it: roughly 36 cents of every dollar entering a DSP reaches the consumer. The gap between what you commit and what buys attention concentrates in long, opaque paths.

    But the framing of "cutting fees" undersells the problem, and it's why a lot of SPO work disappoints. Three separate costs sit in a bad path, and only one of them is a fee.

    Fee stacking. Every intermediary takes a cut before your money buys anything. Obvious, quantifiable, and the one everybody talks about.

    Duplication. The same impression reaches your DSP through several paths, so your own bids compete against each other in the same auction. You inflate the clearing price you pay, and nothing in your reporting labels it as such. This is frequently the larger cost.

    Signal degradation. Every hop is an opportunity for metadata to be dropped, rewritten or truncated. Longer paths deliver thinner bid requests, which means your DSP's models are deciding on less information. You pay for that in performance, not in fees.

    Cut a hop and you address all three at once. Cut it for fee reasons alone and you'll undervalue the change.

    Mapping your paths with what you actually have

    Most SPO write-ups assume you can read bid requests. You can't, and neither can most buying teams. What follows uses your DSP reporting, a browser, and a request to your partners.

    Start from spend, not from partners. Pull your top domains by spend. This is your working list, and it's short: the concentration in programmatic means a couple of dozen domains usually carry the majority of the budget worth examining.

    Find your own duplication. In your DSP, break those domains down by supply source. Any domain appearing under several SSPs is reaching you more than one way, which means your bids have been competing with each other. You don't need the supply chain object to see this, your placement reporting shows it, and it's the finding that pays for the exercise.

    Compare sources on the same domain. For each duplicated domain, put the sources side by side on win rate, effective CPM and whatever downstream metric the campaign is judged on. Same inventory, different routes, different results. This is where you find out whether the shorter route is actually the better one, which is not a given.

    Check authorisation by hand. Open the publisher's ads.txt, which sits at the root of their domain and is public. It lists the account IDs authorised to sell their inventory, and which of those are direct rather than reseller relationships. Ten seconds per domain, no tooling, and it tells you whether the path you're buying was sanctioned by the publisher at all.

    Ask your partners for the rest. The full chain resolution, seller identities, hop counts, directness classification, is work your SSPs and your DSP can do and increasingly will if asked. Request a supply path or directness report for your top domains. How specific the answer is tells you something in itself.

    Note what nobody can resolve. Some seller identities are withheld in sellers.json, marked confidential. Neither you nor your DSP can verify who sits at that point in the chain. That isn't automatically bad faith, but it is unverifiable, and buyers have been pricing it down accordingly.

    Why multiple SSPs is not the problem

    There's an implicit assumption in most SPO advice that fewer paths is better, full stop. It isn't, and acting on it costs you inventory.

    A publisher does not expose the same thing everywhere. Premium formats are often held back for one platform. First-party segments may only be attached on the seller's own SSP. Some markets are covered by one exchange and thinly by everyone else. And a number of publishers sell certain inventory only through direct relationships, which means there is exactly one route to it and no amount of consolidation changes that.

    So duplication and coverage are two different things and they pull in opposite directions. Duplication is the same inventory reaching you twice, which costs money. Coverage is different inventory reaching you at all, which is the point of having partners.

    Cutting an SSP because it overlaps 80% with another is reasonable. Cutting it without checking what sits in the remaining 20% is how teams quietly lose access to the inventory they were being paid to find.

    The direct path is not always the cheapest

    This one runs against the standard advice, and it's worth saying plainly: buying through an intermediary is sometimes cheaper than buying direct.

    There are ordinary reasons. A reseller may have negotiated rates you don't have, on volume you can't match. It may sit higher in a publisher's priority stack than your direct connection does. It may be clearing at a floor that was set for a different market. None of that requires anything improper to be happening.

    Which means the shortest path is a good default and a bad rule. The correct comparison is not path length, it's what the same inventory actually costs and delivers through each route available to you. Sometimes the direct route wins on both. Sometimes it wins on transparency and loses on price, and then you have an actual decision to make rather than a principle to apply.

    The teams that get burned here are the ones that consolidated on doctrine and never measured whether the outcome improved.

    What people get wrong

    Confusing partner reduction with path optimisation. Cutting your SSP list from twelve to six is an administrative decision. It may reduce duplication as a side effect, but a short list of partners can still carry long, indirect paths, and a longer list can be entirely direct. The route is the object, not the contract count.

    Applying the direct-is-better rule without testing it. See above. It holds often enough to be a sensible starting point and not often enough to be a policy.

    Treating the files as the work. Ads.txt, sellers.json and schain expose the chain. They optimise nothing. Publishing and reading them is table stakes, and a lot of SPO programmes stop at the reading.

    Optimising on CPM alone. The cheapest path to a domain is often the one with the least signal attached and the most intermediaries between you and the publisher. Efficiency measured only on cost is how you end up buying the same impression more expensively through a route that looks cheaper per unit.

    Doing it once. Paths change. Publishers add sellers, platforms change relationships, resellers appear. A path audit done in January describes January. This is the same failure mode as a supply pool assembled once and never refreshed: the analysis was right when it was made and quietly stopped being true.

    Assuming curation solves it for you. A curated deal can genuinely shorten the path, and often does. But it also moves the routing decision to someone else, so the question shifts rather than disappears: which paths did they choose, and on what basis.

    What to do next

    Pick your ten highest-spend domains. Break them down by supply source in your DSP, note which ones reach you through more than one, and compare those sources on outcome rather than on CPM. Check ads.txt for each to see which paths the publisher actually authorised as direct. That afternoon usually surfaces more than a quarter of tooling would.

    Then decide what you actually want to fix. Fee stacking, duplication and signal loss all improve with shorter paths, but they show up differently in your numbers, and knowing which one you're chasing tells you whether the change worked.

    And keep the goal straight. Good supply path work is not about having fewer paths. It's about knowing which ones you're using, why, and whether they're earning their place, which occasionally means keeping a longer route because it delivers better.

    And put a date on doing it again. The map goes out of date faster than the effort suggests.

    Questions people actually ask

    What is supply path optimization?
    Supply path optimization is the practice of routing programmatic spend through the shortest, most transparent route between your DSP and the publisher. In practice it means mapping every intermediary that touches an impression, identifying redundant or unauthorised hops, and concentrating budget on the paths that reach the publisher most directly.
    What are ads.txt, sellers.json and the SupplyChain object?
    They are the three transparency standards that make supply paths auditable. Ads.txt is a file on the publisher's domain listing which account IDs are authorised to sell its inventory. Sellers.json is published by each platform and identifies who those account IDs actually belong to. The SupplyChain object, carried in the bid request, records each intermediary the impression passed through. Together they let a buyer trace an impression back to its origin.
    Why does buying the same inventory through several SSPs cost money?
    Because you end up bidding against yourself. When the same impression is offered to your DSP through multiple paths, your own bids compete in the same auction, which inflates the clearing price you pay. Duplication is often a larger cost than the fees on any individual hop, and it is harder to see in reporting.
    What does a confidential entry in sellers.json mean for a buyer?
    It means the platform has withheld the seller's name and domain, so you cannot verify who sits at that point in the chain. Since the path cannot be fully resolved, many buyers apply lower bids to that inventory or exclude it. The practical effect is that confidentiality tends to cost the seller money.
    How can I check my supply paths without access to bid requests?
    Break your top domains down by supply source in your DSP reporting: any domain arriving through several sources is duplicated, and you can compare those sources on win rate and outcome. Read the publisher's ads.txt, which is public, to see which sellers are authorised and which relationships are direct rather than reseller. For full chain resolution, ask your SSP or DSP for a supply path report on your top domains.
    Why buy through multiple SSPs at all?
    Because coverage requires it. Publishers do not expose the same inventory everywhere: premium formats, first-party segments and certain markets are often available on one platform only, and some inventory is sold exclusively through direct relationships. Reducing partners can cut duplication, but it can also cut access to inventory that has only one route to you.
    Is buying direct always cheaper than buying through an intermediary?
    No. A reseller may hold negotiated rates you cannot match on your volume, or sit higher in a publisher's priority stack than your direct connection. The direct path is a sensible default because it is shorter and more transparent, but the only reliable test is comparing what the same inventory costs and delivers through each available route.
    Is reducing the number of SSPs the same as supply path optimization?
    No, though the two are often confused. Cutting partners reduces administrative overhead and may reduce duplication, but a shorter list of SSPs can still contain long, indirect paths. Optimisation is about the route an impression takes to reach you, not the number of contracts you hold.

    Related reading