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

1Accord
33Across
9 Media Online
9Dots Media
A1Media
A4G
AAX
ablida
Aceex
AcuityAds
Ad2iction
adWMG
Adagio
Adasta Media
Adbite
AdBlender
AdBookPSP
AdButler
AdDefend
AdElement
AdformOpenRTB
AdFusion
AdFusion
Ad Generation
AdGrid
AdHash
Adhese
AdKernel
AdKernelAdn
Adliveconnect
Adlive Plus
Adlivetech
ADman Media
Admaru
AdMatic
AdMatic GMBH
admedia
AdMixer
AdmixerADX
AdNow
Adnuntius
AdOcean
adOmega
Adoppler
Adot
AdPartner
AdPlus
AdPluto
AdPluto DSP
Adpone
AdPort
Adprime
Adquery
Adrelevantis
Adrino
adriver
Ads Interactive
AdsInteractive
adsolut
AdSparc
AdSpirit
adstir
AdsYield
AdTarget Teknoloji
Adtarget
Adtelligent
AdTonos
Adtarget.me
AdTrue
AdUp Technology
Advangelists
Adverxo
AdView
adxcg
Adyoulike
Adzymic
AFP
AIDEM
AJA
AlgoriX
Alkimi
Ampliffy
AMX RTB
AMX RTB
AndBeyond.Media
Aniview
AnyClip
AOL
Apacdex
Apester
Appier
AppierBR
AppierExt
AppierGM
Applogy
AppNexus
Appstock
Appush
AP Stream
Arteebee
Aseal
Adserver.Online
AstraOne
Audience Network
Audience Media
AudienceRun
Automatad OpenRTB Bid Adapter
Avantis Video
Avocet
Axis
Axonix
BCM
BCM International
Beachfront
BEdigitech
Beintoo
Bematterfull
BeOp
Between
Bidbuddy
Biddo
Bidgency Group
Bid Glass
Bidmachine
Bidmatic
BidMyAdz
BidsCube
Bidsmind
Bidstack
Bidsxchange
Bidtheatre
BigRichMedia
BigoAd
Blasto
BLIINK
Blockthrough
Blue
Blue Billywig
Bluesea
Bright Mountain Media
Boldwin
brainy
Brave
Brid
Bridgewell
Brightroll
Browsi
Bucksense
Buzzoola
BoldwinX
C1X
Cadent Aperture MX
Caroda
Clickonometrics
chtnw
Clean Media Net
Clickforce
CodeFuel
Cointraffic
Coinzilla
Collectcent
Colombia
Colossus
Colossus
Compass
Conceptx
Concert
Connatix
ConnectAd
Consumable
Consumable
ContentExchange
Content Ignite
Contxtful
Converge-Digital
SSP Copper6
Copper6SSP
Cox
CPMStar
craft
Criteo
C-WIRE
Dailymotion
DAN Marketplace
DataBlocks
Datawrkz
Deepintent
DEFINE MEDIA
Defy Media
Delta Projects
Denakop
Dexerto
Dianomi
diDNA Display
diDNA Video
Digiad DMCC
Digital Matter
DiscoveryDsp
Displayio
DisplayioAds
DistrictM
DistrictmDMX
DistroScale
DivReach
Djax
DistrictM DMX
Doceree
Doceree AdManager
driftpixel
Geniee
DSPx
Duration Media
DXKulture
E-volution tech
Easybid
EngageBDR
EClickAds
Edge226
eHealthcareSolutions
eHealthcareSolutions
8pod
Embi Media
emetriq
EMTV
EngageADX
Engage BDR
Engageya
E-Planning
Epom
Epsilon
Equativ
eRGADX
Escalax
Eskimi
Etarget
Evolution Technologies
EXADS
Exco
Eywamedia
FairTrade
Feature Forward
FeedAd
FelixAds
Filmzie
Finative
flipp
fluct
Freedom Ad Network
freepass
FreeWheelssp
FRVR Ad Network
FutureAds
Fyber
Gambid
Gamma
Gamoshi
GetIntent
IPAX
Gjirafa
Glimpse Protocol
Global Sun
Globalsun
Glomex
GMOSSP
Gnet
Go2Net
Goldbach
gothamads
Gourmet Ads
GreedyGame
TheMediaGrid
TheMediaGridNM
GrowAdvertising
GumGum
GXOne
H12 Media
Headbidder.net
Head Bidding
Holid
HouseOfPubs
HuaweiAds
Huddled Masses
Hybrid.ai
HypeLab
HyperBrainz
Integral Ad Science (IAS)
IDX bidder adapter
iion
Illumin
iMedia Digital Services (iMDS)
Impactify
Improve Digital
IncrementX
Indicue
InfyTV
Inmar
InMobi
Innity
Inskin
Insticator
Integr8
InteractiveOffers
intertech
Invamia
Invibes
iPROM
iQM
IQX
IQzone
IVS Bidder Adapter
Index Exchange (Prebid Server)
Index Exchange
JANet
JDPMedia
Jixie
Justpremium
JW Player
Kargo
Kidoz
Kimberlite
Kivi
Kobler
Krushmedia
Kuantyx
Kubient
Kueez
KueezRTB
Kumma
Lasso
LemmaDigital
Lifestreet
Limelight Digital
Livewrapped
LKQD
LM KiviAds
LockerDome
Logan
Logicad for Publishers
LOGLY lift
Loopme
Loyal
Lucead
Lunamedia
LunamediaHB
LuponMedia
mabidder
Madvertise
MallTv
MANTIS Ad Network
MarkApp
Marsmedia
MathildeAds
Matomy
Media Consortium
MediaBrama
MediaForce
MediaFuse
MediaGo
MEDIAIMPACT
Mediakeys
Media.net
Mediasniper
MediaSquare
MeloZen
MetaX
Mgid
MgidX
MicroAd
MinuteMedia
MinuteMediaPlus
Missena
Mobfox_PB
MobileFuse
Mobupps
Monetix
Monetix Ads
Motionspots
Motorik
My6Sense
myTarget
Nativo
NetAddiction
Newspass ID
NextMillennium
NextRoll
Nexverse
Nexx360
NinthDecimal
Nobid
Orangeclickmedia
One Fifty Two Media
ogury
Online Media Solutions
ONE by AOL Display
ONE by AOL Mobile
Oneplanetonly
OneTag
Onomagic
OPEN8
OpenWeb
OpenWeb Video
OpenWebXChange
OpenX
OpenX Outstream
OperaAds
OppaMedia
OpsCo
Optable
Optidigital
Optimatic
Optimera
Opt Out Advertising
Oraki
Orbidder
Orbitsoft
OTM
ottadvisors Video
Outbrain
Outbrain - Old
OwnAdX
Ozone Project
Padsquad
Page Science
Pangle
Peak226
Performax
PGAM
PGAM MEDIA
PGAMSSP
PilotX
Pixad
Pixelpluses
PixFuture
Playdigo
Playwire
Pollux Network
Polymorph
Preciso
Prisma
Programmatica
Project Agora
Proxistore
PStudio
PubCircle
pubGENIUS
Publir
PubMatic
PubNative
Pubrise
Pubtech
Pub-X
PulsePoint
PubWise
Playground XYZ
Qortex
QT
Quantcast
Quantum
Quantumdex
Qwarry
r2b2
Rads
Rakuten
RingierAxelSpringer
Readpeak
Rediads
Redtram
Relaido
Relay
Relevant Digital
RelevateHealth
ResetDigital
RetailSpot
RevBid
RevContent
REXRTB
RhythmOne
Rich Audience
RingierAxelSpringer
Rise
RiseXChange
RixEngine
RockYou
Roundel
RtbAnalytica
RtbDemand.com
RTBHouse
RtbSape
RTB Stack
Rubicon Project
RxNetwork
rxrtb
SA Lunamedia
Saambaa
SARA
Scattered
Screencore
Seeding Alliance
seedtag
Select Media Display
SelectMedia Video
Setupad
Sharethrough
Shinez
ShinezRTB
ShowHeroes
SilverMob
Silverpush
Slimcut
Smaato
smartadline
Smart AdServer
SmartHub
smartico
smartx
SmartyAds
SmartyTech
Smile Wanted
SMN
Smoot
Smrtconnect
Snigel
Somo Audience
Sonic Twist Media
Sonobi
Sovrn
Sparteo
SpinX
SpotX
SSMas
sspBC
Geniee SSP
stailamedia
StellorMedia
StickyAdsTv
STN
Streamkey
Streamlyn
StroeerCore
SMARTSTREAM.TV
Sublime
SUNT Content
Supply2
Synacor Media
Taboola
Tagoras
Talkads
Tapnative
tappx
TargetVideo
Teads
Telaria
TE Medya
TGM
TheAdx
The Moneytizer
TPMN
TrafficGate
Trafficroots
Tredio
Tremor
Trion Interactive
TripleLift
TripleLift Native
TrueReach
TrustedStack
TrustX
TrustX (standalone)
The Trade Desk
Türk Telekom
Twist Digital
ucfunnel
Underdog Media
Undertone
Unibots
UNICORN
Unruly
UOL
Valueimpression
VDO.AI
ventes
Vertamedia
Viant
Vibrant Media
Vidazoo
VidCrunch
VidCrunch LLC
VideoByte
VideoHeroes
videonow
Video Reach
Vidoomy
Viewdeos Server
ViewdeosDX Client
VimayX
Viously
viqeo
VisibleMeasures
YOC VIS.X
VLYBY
Voise Tech
VOX
VRTCAL Markets Inc.
vungle
Vuukle
waardex
WaardeX
Welect
Widespace
WINR
WIPES
xe.works
Xendiz
XTRM QB
Yahoo Advertising
Yandex
YeahMobi
Yieldbot
Yieldlab
YieldLift
Yieldlove
Yieldmo
Yield Nexus
YieldOne
Yobee
ZeroClickFraud
Zeta Global
Zeta Global SSP
zMaticoo


Further Reading