Programmatic broadsheet · Set in real time
adon3
The Real-Time Bidding Exchange
Integration Docs
Supply side · XML feed · OpenRTB 2.6 / 2.5

Bid Request

The request you post to us is a standard OpenRTB BidRequest. Object names, field names and types follow the IAB specification for the version you declare in x-openrtb-version, and this page does not rename or reshape any of them.

What adon3 adds is a stricter requirement level on four fields. Everything else is optional to us in exactly the way the specification says it is, though the more context you send, the more of our demand can bid.

Fields marked 2.6 exist in OpenRTB 2.6 only and are ignored when you declare 2.5. Fields marked deprecated are still accepted under 2.6 and are read when present. Complete bodies are on Bid Request Samples.

What adon3 requires

FieldRule
idRequired.
impRequired. Exactly one entry.
device.uaRequired, unmodified. device.sua may accompany it under 2.6 but does not replace it.
device.ip or device.ipv6At least one required.
site.domain or app.bundleAt least one required, on whichever object you send.

BidRequest

FieldTypeReq.Notes
idstringyesUnique id of the bid request, generated by you.
impobject[]yesImpressions offered. adon3 accepts exactly one.
siteobjectcond.Present for web inventory. Mutually exclusive with app.
appobjectcond.Present for in-app inventory. Mutually exclusive with site.
doohobjectnoDigital out-of-home inventory. 2.6. Not bid on at launch.
deviceobjectyesDevice the impression will be delivered to.
userobjectnoHuman user of the device.
testintno1 indicates a test auction, which is not billed. Default 0.
atintnoAuction type. 1 first price, 2 second price plus. Default 2.
tmaxintnoMaximum time in milliseconds you will wait for a response.
wseatstring[]noBuyer seats allowed to bid.
bseatstring[]noBuyer seats blocked from bidding.
allimpsintno1 if imp covers all impressions available. Default 0.
curstring[]noAllowed bid currencies, ISO-4217. Default ["USD"].
wlangstring[]noAllowed creative languages, ISO-639-1.
wlangbstring[]noAllowed creative languages, IETF BCP 47. 2.6.
acatstring[]noAllowed advertiser categories. 2.6.
bcatstring[]noBlocked advertiser categories, under cattax.
cattaxintnoCategory taxonomy. 1 IAB 1.0, 2 IAB 2.x. Default 2. 2.6.
badvstring[]noBlocked advertiser domains.
bappstring[]noBlocked app bundles or package names.
sourceobjectnoInventory source and supply chain.
regsobjectnoRegulatory conditions in force.
extobjectnoExchange extensions.

site and app are mutually exclusive. A request carrying both, or neither, is rejected with BOTH_SITE_AND_APP or MISSING_REQUIRED.

Imp

FieldTypeReq.Notes
idstringyesImpression id within the request. "1" when you send one impression.
metricobject[]noMetrics known to you about this impression.
bannerobjectcond.Present for a banner impression.
videoobjectcond.Present for a video impression.
audioobjectcond.Present for an audio impression.
nativeobjectcond.Present for a native impression.
pmpobjectnoPrivate marketplace deals applicable to this impression.
displaymanagerstringnoName of the ad mediation partner or SDK.
displaymanagerverstringnoVersion of the display manager.
instlintno1 if the ad is interstitial or full screen. Default 0.
tagidstringnoYour identifier for the placement.
bidfloorfloatnoMinimum bid CPM in bidfloorcur. Default 0.
bidfloorcurstringnoCurrency of bidfloor, ISO-4217. Default USD.
clickbrowserintno0 embedded browser, 1 native browser.
secureintno1 requires HTTPS markup and assets.
iframebusterstring[]noSupported iframe busters.
rwddintno1 if the user receives a reward for viewing. Default 0. 2.6.
ssaiintnoServer-side ad insertion status. 2.6.
expintnoSeconds between the auction and the expected display.
qtyobjectnoMultiplier for impression counting. 2.6.
dtfloatnoTimestamp the item is estimated to be displayed. 2.6.
refreshobjectnoRefresh behaviour of the placement. 2.6.
extobjectnoExchange extensions.

Send exactly one of banner, video, audio or native. A request carrying none of them, or more than one, is rejected.

Imp.Banner

FieldTypeReq.Notes
formatobject[]noPermitted sizes. Strongly preferred over w and h.
wintnoExact width in device-independent pixels.
hintnoExact height in device-independent pixels.
btypeint[]noBlocked banner creative types.
battrint[]noBlocked creative attributes.
posintnoAd position on screen.
mimesstring[]noContent MIME types supported.
topframeintno0 in an iframe, 1 in the top frame.
expdirint[]noDirections the ad may expand in.
apiint[]noSupported API frameworks.
idstringnoUnique id, relevant when used in Video.companionad.
vcmintnoCompanion rendering mode, relevant in Video.companionad.
extobjectnoExchange extensions.

Format carries w, h, wratio, hratio and wmin. Send format even when only one size is permitted, since it is what most buyers target on.

Imp.Video

FieldTypeReq.Notes
mimesstring[]yesContent MIME types supported, for example video/mp4.
startdelayintno0 pre-roll, -1 generic mid-roll, -2 post-roll.
maxseqintnoMaximum number of ads in a dynamic pod. 2.6.
poddurintnoTotal pod duration in seconds. 2.6.
protocolsint[]noSupported video protocols.
wintnoWidth of the player in device-independent pixels.
hintnoHeight of the player in device-independent pixels.
podidstringnoUnique id of the ad pod. 2.6.
podseqintnoPosition of the pod in the content stream. 2.6.
rqddursint[]noPrecise acceptable durations. 2.6.
placementintnoVideo placement type. Deprecated in 2.6 in favour of plcmt.
plcmtintnoVideo placement type per the 2.6 subtype list. 2.6.
linearityintno1 linear or in-stream, 2 non-linear or overlay.
skipintno1 if the player allows skipping.
skipminintnoVideos longer than this may be skippable. Default 0.
skipafterintnoSeconds before the skip control appears. Default 0.
sequenceintnoPosition in a set of ads. Deprecated in 2.6.
slotinpodintnoSlot position within the pod. 2.6.
mincpmpersecfloatnoMinimum CPM per second for the pod. 2.6.
battrint[]noBlocked creative attributes.
maxextendedintnoMaximum extended video ad duration.
minbitrateintnoMinimum bit rate in Kbps.
maxbitrateintnoMaximum bit rate in Kbps.
boxingallowedintno1 if letterboxing of 4:3 in 16:9 is allowed. Default 1.
playbackmethodint[]noPlayback methods that may be in use.
playbackendintnoEvent that causes playback to end.
deliveryint[]noSupported delivery methods.
posintnoAd position on screen.
companionadobject[]noCompanion banners available.
apiint[]noSupported API frameworks.
companiontypeint[]noSupported VAST companion types.
mindurationintnoMinimum ad duration in seconds. Default 0.
maxdurationintnoMaximum ad duration in seconds.
extobjectnoExchange extensions.

Imp.Audio

FieldTypeReq.Notes
mimesstring[]yesContent MIME types supported, for example audio/mp4.
mindurationintnoMinimum ad duration in seconds.
maxdurationintnoMaximum ad duration in seconds.
poddurintnoTotal pod duration in seconds. 2.6.
protocolsint[]noSupported audio protocols.
startdelayintno0 pre-roll, -1 generic mid-roll, -2 post-roll.
rqddursint[]noPrecise acceptable durations. 2.6.
podidstringnoUnique id of the ad pod. 2.6.
podseqintnoPosition of the pod in the content stream. 2.6.
sequenceintnoPosition in a set of ads. Deprecated in 2.6.
slotinpodintnoSlot position within the pod. 2.6.
mincpmpersecfloatnoMinimum CPM per second for the pod. 2.6.
battrint[]noBlocked creative attributes.
maxextendedintnoMaximum extended ad duration.
minbitrateintnoMinimum bit rate in Kbps.
maxbitrateintnoMaximum bit rate in Kbps.
deliveryint[]noSupported delivery methods.
companionadobject[]noCompanion banners available.
apiint[]noSupported API frameworks.
companiontypeint[]noSupported DAAST companion types.
maxseqintnoMaximum number of ads in a dynamic pod. 2.6.
feedintnoType of audio feed.
stitchedintno1 if the ad is stitched into the audio content.
nvolintnoVolume normalisation mode.
extobjectnoExchange extensions.

Imp.Native

FieldTypeReq.Notes
requeststringyesThe native request payload, as a JSON-encoded string.
verstringnoVersion of the Native specification the request follows.
apiint[]noSupported API frameworks.
battrint[]noBlocked creative attributes.
extobjectnoExchange extensions.

request is a string containing JSON rather than a nested object. That is what the specification says, and it catches people every time.

Imp.Pmp

FieldTypeReq.Notes
private_auctionintno1 restricts the auction to the deals listed. Default 0.
dealsobject[]noThe deals available on this impression.
extobjectnoExchange extensions.

Deal carries id (required), bidfloor, bidfloorcur, at, wseat, wadomain and ext.

Site

FieldTypeReq.Notes
idstringnoYour id for the site.
namestringnoSite name.
domainstringcond.Domain of the site. Required by adon3 when you send site.
cattaxintnoTaxonomy in use for the category fields. 2.6.
catstring[]noContent categories of the site.
sectioncatstring[]noContent categories of the current section.
pagecatstring[]noContent categories of the current page.
pagestringnoURL of the page where the impression will be shown.
refstringnoReferrer URL that led to the page.
searchstringnoSearch string that led to the page.
mobileintno1 if optimised for mobile.
privacypolicyintno1 if the site has a privacy policy.
publisherobjectnoPublisher of the site.
contentobjectnoContent of the site.
keywordsstringnoComma-separated keywords about the site.
kwarraystring[]noKeywords as an array. 2.6.
extobjectnoExchange extensions.

App

FieldTypeReq.Notes
idstringnoYour id for the app.
namestringnoApp name.
bundlestringcond.Platform-specific application identifier. Required by adon3 when you send app.
domainstringnoDomain of the app, from its store listing.
storeurlstringnoApp store URL for an installed app.
cattaxintnoTaxonomy in use for the category fields. 2.6.
catstring[]noContent categories of the app.
sectioncatstring[]noContent categories of the current section.
pagecatstring[]noContent categories of the current page.
verstringnoApplication version.
privacypolicyintno1 if the app has a privacy policy.
paidintno0 free, 1 paid.
publisherobjectnoPublisher of the app.
contentobjectnoContent of the app.
keywordsstringnoComma-separated keywords about the app.
kwarraystring[]noKeywords as an array. 2.6.
extobjectnoExchange extensions.

Publisher carries id, name, cattax, cat, domain and ext. Content follows the specification in full, and the fields our demand reads most are id, title, series, season, genre, cat, livestream, len and language.

Device

FieldTypeReq.Notes
geoobjectnoLocation of the device.
dntintno1 if Do Not Track is enabled.
lmtintno1 if Limit Ad Tracking is enabled.
uastringyesBrowser user agent string. Required by adon3.
suaobjectnoStructured user agent, from client hints. 2.6.
ipstringcond.IPv4 address closest to the device. One of ip or ipv6 required.
ipv6stringcond.IPv6 address closest to the device. One of ip or ipv6 required.
devicetypeintnoGeneral type of device.
makestringnoDevice make.
modelstringnoDevice model.
osstringnoDevice operating system.
osvstringnoDevice operating system version.
hwvstringnoHardware version of the device.
hintnoPhysical height of the screen in pixels.
wintnoPhysical width of the screen in pixels.
ppiintnoScreen size as pixels per linear inch.
pxratiofloatnoRatio of physical pixels to device-independent pixels.
jsintno1 if the device supports JavaScript.
geofetchintno1 if the geolocation API will be available.
flashverstringnoFlash version supported.
languagestringnoBrowser language, ISO-639-1.
langbstringnoBrowser language, IETF BCP 47. 2.6.
carrierstringnoCarrier or ISP.
mccmncstringnoMobile country and network codes.
connectiontypeintnoNetwork connection type.
ifastringnoID sanctioned for advertiser use.
didsha1stringnoHardware device id, SHA1 hashed.
didmd5stringnoHardware device id, MD5 hashed.
dpidsha1stringnoPlatform device id, SHA1 hashed.
dpidmd5stringnoPlatform device id, MD5 hashed.
macsha1stringnoMAC address, SHA1 hashed.
macmd5stringnoMAC address, MD5 hashed.
extobjectnoExchange extensions.

When lmt is 1, we withhold ifa from demand regardless of what you sent.

Geo carries lat, lon, type, accuracy, lastfix, ipservice, country, region, regionfips104, metro, city, zip, utcoffset and ext. country is ISO-3166-1 alpha-3.

User

FieldTypeReq.Notes
idstringnoYour id for the user.
buyeruidstringnoBuyer-specific id for the user, from cookie sync.
yobintnoYear of birth as a four-digit integer. Deprecated in 2.6.
genderstringnoM, F or O. Deprecated in 2.6.
keywordsstringnoComma-separated keywords about the user.
kwarraystring[]noKeywords as an array. 2.6.
customdatastringnoOpaque data useful to bidders.
geoobjectnoLocation of the user's home base.
dataobject[]noAdditional user data, each with id, name and segment.
consentstringnoTCF consent string when regs.gdpr is 1.
eidsobject[]noExtended identifiers, each with source and uids.
extobjectnoExchange extensions.

Source

FieldTypeReq.Notes
fdintno1 if the final decision is made downstream, 0 if upstream.
tidstringnoTransaction id common to all requests for this impression.
pchainstringnoPayment id chain.
schainobjectnoSupply chain object. Send it on every request.
extobjectnoExchange extensions.

SupplyChain carries complete, nodes and ver. Each SupplyChainNode carries asi, sid, rid, name, domain and hp. asi and sid are required on every node and must resolve against sellers.json.

Regs

FieldTypeReq.Notes
coppaintno1 if the request is subject to COPPA.
gdprintno1 if GDPR applies. Read alongside user.consent.
us_privacystringnoUS Privacy string.
gppstringnoGlobal Privacy Platform string. 2.6.
gpp_sidint[]noGPP section ids that apply. 2.6.
extobjectnoExchange extensions.

Validation

We reject a request before it reaches a bidder when the body is not valid JSON, when id or imp is missing, when device.ua is missing, when neither device.ip nor device.ipv6 is present, when neither site.domain nor app.bundle is present, when both site and app are present, or when the supply chain does not resolve.

Every rejection carries a code and a message. See Errors & No-Bids.

Next: Bid Response.

sellers.json · schain enforced · OpenRTB 2.5 / 2.6 / 3.0 · XML
Printed on the Open Exchange
—  Integration Docs  —