Supply Chain Object Module

Service Providers who manage Prebid wrappers on behalf of multiple publishers and handle payments to the publishers need to declare their intermediary status in the Supply Chain (a.k.a SChain) object. The IAB OpenRTB SupplyChain Object Specification prohibits SSPs from adding upstream intermediaries, so publishers or Prebid.js managed service providers need to specify schain information.

Two modes are supported:

  • Global Supply Chains
    Use this configuration when the Prebid.js implementation is managed by an entity that needs to add an SChain node to every bid request. i.e. payments flow through this entity for all traffic.

  • Bidder-Specific Supply Chains
    Use this configuration when one or more bid adapters is an entity (such as a reseller) that requires an SChain node, but other adapters do not require the node. e.g. payments flow through a bidder that doesn’t add its own schain node.

How to Use the Module

First, build the schain module into your Prebid.js package:

gulp build --modules=schain,...

The module performs validations on the schain data provided and makes it available to bidder adapters on the bidRequest object.

Global Supply Chains

Call setConfig with the schain object to be used:

pbjs.setConfig({
  "schain": {
    "validation": "strict",
    "config": {
      "ver":"1.0",
      "complete": 1,
      "nodes": [
        {
          "asi":"indirectseller.com",
          "sid":"00001",
          "hp":1
        }
      ]
    }
  }
});

Bidder-Specific Supply Chains

This method uses the pbjs.setBidderConfig function, with a syntax similar to the global scenario above.

pbjs.setBidderConfig({
  "bidders": ['bidderA'],   // can list more bidders here if they share the same config
  "config": {
    "schain": {
      "validation": "relaxed",
      "config": {
        "ver":"1.0",
        "complete": 1,
        "nodes": [
          {
            "asi":"bidderA.com",
            "sid":"00001",
            "hp":1
          }
        ]
      }
    }
  }
});

You can find more information about the pbjs.setBidderConfig function in the Publisher API Reference.

Global and Bidder-Specific Together

Yes, you can set both global and bidder-specific SChain configs. When together, the schain config setup via pbjs.setConfig acts as a global config that applies to all your bidders, while pbjs.setBidderConfig overrides the global config for the noted bidder(s).

SChain Config Syntax

SChain Param Scope Type Description Example
validation optional string 'strict': In this mode, schain object will not be passed to adapters if it is invalid. Errors are thrown for invalid schain object. 'relaxed': Errors are thrown for an invalid schain object but the invalid schain object is still passed to adapters. 'off': No validations are performed and schain object is passed as-is to adapters. The default value is 'strict'. ‘strict’
config required object This is the full Supply Chain object sent to bidders conforming to the IAB OpenRTB SupplyChain Object Specification. (See examples above)

Adapter Information

Adapters can read the bidRequest.schain object and pass it through to their endpoint. The adapter does not need to be concerned about whether a bidder-specific schain was provided; the system will provide the relevant one.

Adapters Supporting the schain Module

1ad4good
33Across
7xbid
9 Media Online
advertly
SafeReach
A4G
Aardvark
ablida
Adagio
Adasta Media
AdButler
Adfinity
Adform
AdformOpenRTB
Ad Generation
AdGlare Ad Server
Adhese
AdKernel
AdKernelAdn
Adlive
ADman Media
AdMedia
AdMixer
Adnuntius
AdOcean
Adot
AdPartner
Adpone
Adprime
adsolut
AdSparc
AdSpend
AdSpirit
Adtarget
Adtelligent
AdUp Technology
Advangelists
Advenue
adxcg
Adyoulike
AJA
andbeyond
ANIVIEW
AOL
Appier
AppierBR
AppierExt
AppierGM
AppNexus
Arteebee
AstraOne
Atomx
Audience Network
Audience Media
AudienceRun
Automatad OpenRTB Bid Adapter
Avocet
Beachfront
Beintoo
BetweenDigital
Bidfluence
Bid Glass
Bidlab
BidPhysics
BizzClick
Blue Billywig
brainy
Bridgewell
Brightcom
Bucksense
Buzzoola
ByPlay
C1X
Clickonometrics
Cedato
Clean Media
Clean Media Net
Clickforce
Clicktripz
Coinzilla
Collectcent
COLOMBIA
Colossus
ConnectAd
Consumable
Content Ignite
Converge
Conversant
COSMOS
Cox
CPMStar
craft
Criteo
Dailyhunt
DAN Marketplace
Datablocks
DecenterAds
Deepintent
Defy Media
dgads
DistrictM
DistrictmDMX
DivReach
DJAX
DSPx
EngageBDR
Edge Query X
Emoteev
EMX Digital
envivo
E-Planning
Etarget
E-volution tech
Eywamedia
FairTrade
Feature Forward
FeedAd
Fidelity Media
fluct
FreeWheel-ssp
Fyber
Gambid
Gamma
Gamoshi
GetIntent
IPAX
Glimpse Protocol
GMOSSP
Go2Net
Gourmet Ads
TheMediaGrid
TheMediaGridNM
GumGum
GXOne
H12 Media
Head Bidding
HPMD Network
Huddled Masses
Hybrid.ai
Integral Ad Science (IAS)
Imonomy
Improve Digital
Index Exchange
Innity
Inskin
InteractiveOffers
Invibes
iQM
J Carter Marketing
Justpremium
Kargo
Komoona
Kubient
Kumma
LEMMA
Lifestreet
Livewrapped
LKQD
LockerDome
Logicad for Publishers
LoopMe
Luna Media
LuponMedia
Madvertise
MANTIS Ad Network
Marsmedia
Matomy
Meazy
MediaForce
MediaFuse Lift
Media.net
MediaSquare
Mgid
MicroAd
MobFox
Mobsmart
My6Sense
myTarget
NAF Digital
Nano Interactive
Nasmedia Admixer
newborntownWeb
NextMillennium
NextRoll
Nobid
One Fifty Two Media
152MediaHB
OneVideo
ONE by AOL Display
152 Media 3.0
ONE by AOL Mobile
Oneplanetonly
OneTag
Onomagic
OPEN8
OpenX
OpenX Outstream
Optimatic
Optimera
Orbidder
Orbitsoft
OTM
Outcon
Ozone Project
Padsquad
Page Science
Peak226
Piximedia
Platform.io
Pollux Network
Polymorph
Prebid Server
Project Limelight
Proxistore
pubGENIUS
PubMatic
PubNX
PulsePoint
Playground XYZ
Quantcast
Quantum
Quantumdex
Rads
Rakuten
Readpeak
ReklamStore
Relaido
Reload
ResultsMedia
RevContent
REXRTB
RhythmOne
Rich Audience
RockYou
Rtbdemand bidder
Rtbdemandadk
RTBHouse
RTB Solutions
Rubicon Project
rxrtb
SARA
SeedingAlliance
seedtag
Segmento
SekindoUM
Select Media
SelectMedia Video
Sharethrough
ShowHeroes
Slimcut
Smart AdServer
SmartRTB
SmartyAds
SmileWanted
SMMS
Somo Audience
Somo Audience
Sonobi
Sortable
Sovrn
SpotX
StickyAdsTv
Stv
Sublime
Supply2
Synacor Media
TapHype
Teads
Telaria
TheAdx
Tim Media
TOPRTB
TPMN
Trafficroots
Tremor
Trendqube
tribeOS
Trion Interactive
TripleLift
TrustX
Türk Telekom
ucfunnel
Underdog Media
Undertone
UNICORN
Unruly
UOL
Valueimpression
VDO.AI
Vertamedia
Vertoz
vi
Vidazoo
Videofy
videonow
Video Reach
Viewdeos
ViewDeos DX
VIS.X
VMG
VRTCAL Markets, Inc.
Vuble
WaardeX
Weborama
Widespace
Windtalker
WIPES
Xaxis
Xendiz
Yieldbot
Yieldlab
YieldLift
Yieldmo
Yield Nexus
YIELDONE
ZEDO


Further Reading