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
A4G
Aardvark
AAX
ablida
Aceex
AcuityAds
adWMG
Adagio
Adasta Media
Adbite
AdBlender
AdBookPSP
AdButler
AdDefend
AdformOpenRTB
Adfinity
Adform
Ad Generation
AdGlare Ad Server
AdHash
Adhese
AdKernel
AdKernelAdn
Adlivetech
ADman Media
Admaru
AdMedia
AdMixer
AdNow
Adnuntius
AdOcean
adOmega
Adoppler
Adot
AdPartner
AdPlus
Adpone
Adprime
Adquery
Adrelevantis
Adrino
adriver
adsolut
AdSparc
AdSpend
AdSpirit
AdsYield
Adtarget
Adtelligent
Adtarget.me
AdTrue
AdUp Technology
Advangelists
Advenue
advertly
AdView
adxcg
Adyoulike
AFP
AJA
AlgoriX
Alkimi
AMX RTB
Compass
ANIVIEW
AOL
Apacdex
Appier
AppierBR
AppierExt
AppierGM
Applogy
AppNexus
AP Stream
Arteebee
Aseal
Adserver.Online
AstraOne
Atomx
Audience Network
Audience Media
AudienceRun
Automatad OpenRTB Bid Adapter
Avantis Video
Avocet
Axonix
BCM
Beachfront
Beintoo
BeOp
Between
Biddo
Bidfluence
Bid Glass
Bidlab
Bidmachine
BidMyAdz
BidPhysics
BidsCube
Bidsxchange
BigRichMedia
BizzClick
BLIINK
Blue
Blue Billywig
Bright Mountain Media
Boldwin
brainy
Brave
Bridgewell
Brightcom
Brightroll
Bucksense
Buzzoola
ByPlay
C1X
CatapultX
Clickonometrics
Cedato
Clickforce
Clicktripz
CodeFuel
Cointraffic
Coinzilla
Collectcent
COLOMBIA
Colossus
Colossus
Compass
Concert
ConnectAd
Consumable
ContentExchange
Content Ignite
Converge-Digital
Conversant
COSMOS
Cox
CPMStar
craft
Criteo
C-WIRE
Dailyhunt
DAN Marketplace
DataBlocks
Datawrkz
DecenterAds
Deepintent
Defy Media
Delta Projects
Denakop
dgads
Dianomi
diDNA Video
Displayio
DisplayioAds
DistrictM
DistrictmDMX
DistroScale
DivReach
DJAX
DistrictM DMX
Doceree
DSPx
Duration Media
E-volution tech
EngageBDR
Edge Query X
Emoteev
EMX Digital
EngageADX
Engage BDR
Engageya
envivo
E-Planning
Epom
eRGADX
Etarget
Eywamedia
FairTrade
Feature Forward
FeedAd
felixads
Fidelity Media
Finative
fluct
FreeWheel-ssp
FutureAds
Fyber
Gambid
Gamma
Gamoshi
GetIntent
IPAX
Gjirafa
Glimpse Protocol
Glomex
GMOSSP
Gnet
Go2Net
Goldbach
gothamads
Gourmet Ads
TheMediaGrid
TheMediaGridNM
GroupM
GrowAdvertising
GumGum
GXOne
H12 Media
Haxmedia
Head Bidding
HouseOfPubs
HPMD Network
HuaweiAds
Huddled Masses
Hybrid.ai
Integral Ad Science (IAS)
IDX bidder adapter
Imonomy
Impactify
Improve Digital
IncrementX
InfyTV
Inmar
InMobi
Innity
Inskin
Insticator
Integr8
InteractiveOffers
Invamia
Invibes
iPROM
iQM
IQzone
IronSource
Index Exchange
JANet
J Carter Marketing
Jixie
Justpremium
Kargo
Kidoz
Kobler
Komoona
Krushmedia
Kubient
Kueez
Kumma
Lasso
LEMMA
Lifestreet
Limelight Digital
Livewrapped
LKQD
LockerDome
Logan
Logicad for Publishers
LOGLY lift
LoopMe
Luna Media
LunamediaHB
LuponMedia
mabidder
Madvertise
MallTv
MANTIS Ad Network
Marsmedia
MathildeAds
Matomy
Meazy
MediaForce
MediaFuse
MediaGo
Mediakeys
Media.net
Mediasniper
MediaSquare
Mgid
MicroAd
MinuteMedia
Missena
MobFox
Mobfox_PB
MobileFuse
Mobsmart
Motionspots
My6Sense
myTarget
NAF Digital
Nano Interactive
Nasmedia Admixer
Nativo
newborntownWeb
Newspass ID
NextMillennium
NextRoll
Nexx360
NinthDecimal
Nobid
Orangeclickmedia
One Fifty Two Media
One Fifty Two Media Server
ogury
ONE by AOL Display
ONE by AOL Mobile
Oneplanetonly
OneTag
Onomagic
OPEN8
OpenWeb
OpenWeb Video
OpenX
OpenX Outstream
OperaAds
Optimatic
Optimera
Opt Out Advertising
Orbidder
Orbitsoft
OTM
ottadvisors Video
Outbrain
Outbrain - Old
Outcon
Ozone Project
Padsquad
Page Science
Pangle
Peak226
Performax
PGAM
PGAM MEDIA
PilotX
PixFuture
Piximedia
Platform.io
Playwire
Pollux Network
Polymorph
Prisma
Project Limelight
Proxistore
pubGENIUS
PubMatic
PubNative
Pub-X
PulsePoint
PubWise
Playground XYZ
Quantcast
Quantum
Quantumdex
Qwarry
Rads
Rakuten
RingierAxelSpringer
Readpeak
ReklamStore
Relaido
Reload
ResetDigital
ResultsMedia
RevContent
REXRTB
RhythmOne
Rich Audience
Rise
RockYou
Roundel
RtbAnalytica
Rtbdemand bidder
Rtbdemandadk
RTBHouse
RtbSape
RTB Solutions
Rubicon Project
rxrtb
SA Lunamedia
Saambaa
SARA
Seeding Alliance
seedtag
Segmento
SekindoUM
Select Media Display
SelectMedia Video
Sharethrough
Shinez
ShowHeroes
SilverMob
Slimcut
Smaato
Smart AdServer
SmartHub
smartico
SmartRTB
smartx
SmartyAds
Smile Wanted
SMMS
Snigel
Somo Audience
Somo Audience
Sonic Twist Media
Sonobi
Sovrn
SpotX
sspBC
StickyAdsTv
Streamkey
StroeerCore
Stv
Sublime
Supply2
Synacor Media
Taboola
Talkads
TapHype
tappx
TargetVideo
Teads
Telaria
TE Medya
TheAdx
Tim Media
TOPRTB
TPMN
TrafficGate
Trafficroots
Tremor
Trendqube
Trion Interactive
TripleLift
TripleLift Native
TrueReach
TrustX
TrustX (standalone)
The Trade Desk
Türk Telekom
ucfunnel
Underdog Media
Undertone
Unibots
UNICORN
Unruly
UOL
Valueimpression
VDO.AI
ventes
VerizonMedia
Vertamedia
vi
Vibrant Media
Vidazoo
VidCrunch
VideoByte
Videofy
VideoHeroes
videonow
Video Reach
Vidoomy
Viewdeos Server
ViewdeosDX Client
YOC VIS.X
VLYBY
VMG
VOX
VRTCAL Markets, Inc.
Vuble
Vuukle
waardex
WaardeX
Welect
Widespace
Windtalker
WINR
WIPES
Xendiz
Xaxis
Yahoo SSP
Yandex
YeahMobi
Yieldbot
Yieldlab
YieldLift
Yieldmo
Yield Nexus
YieldOne
ZEDO
ZeroClickFraud
Zeta Global
Zeta Global Ssp


Further Reading