Display.io provides opportunity for publishers to monetize traffic through ad serving via the following integration types:
Platforms: iOS, Android, Web Mobile.
Viewability: supported for all the inventory – certified by IAB.
Mediation platforms adapters (for SDK integration): AdMob, GAM, Max Applovin, ironSource.
Display ad Protocol: MRAID 2.0/ 3.0.
Video ad Protocol support: VAST 2.x/3.x/4/x.
In the table below you will find display.io inventory overview:
Display.io is GDPR, CCPA, COPPA, CalOppa compliant, that’s why it’s required from the publishers to support any certified CMP (Consent Management Platform) to get user’s consent (GDPR consent, US Privacy consent).
What version of openRTB format do you use?
openRTB 2.3, 2.5, 2.6
What do you expect to see in case of no bid?
HTTP Status 204
What auction types do you support?
1st and 2nd price auctions
What is your impression expiry time (Ad TTL)?
2 hours. In case of any specific requirement it should be communicated
What is your average tmax?
800ms
What currency do you support?
USD
Where are you servers located?
US-EAST, US-WEST, EU, ASIA
Are you able to control QPS?
Yes
What’s your potential QPS?
Average 25K QPS.
Note: auto-throttling based on performance and specific targeting potentially adjusting the QPS volume
Do you have an ability to set Blacklist and/or Whitelist?
Yes, per publisher/bundle, ad size, ad format, GEO.
Do you have dashboard or reporting API?
No (only for Publishers)
Can you track invalid bids and check the reason?
Yes
Do you support LURL / NURL / BURL?
Yes
Do you support BURL or adm beacons for impressions tracking?
Both
What VAST version do you support?
VAST 2.0, VAST 3.0
Do you support VPAID?
No
Do you encrypt auction price macro?
No
Do you replace all auction price macros inside adm?
Yes
Do you have any oRTB custom parameters?
Yes,
Bid Response:
bidresponse.seatbid.bid.ext.aname – (string) Advertiser name
bidresponse.seatbid.bid.ext.clickurl – (string) Click URL (equals to ClickThrough url)
bidResponse.seatbid.ext.skadn.skoverlay.present / bidResponse.seatbid.ext.skadn.skoverlay.show
bidResponse.seatbid.ext.skadn.skoverlay.click
bidResponse.seatbid.ext.skadn.skoverlay.dismissible
bidResponse.seatbid.ext.skadn.skoverlay.pos / bidResponse.seatbid.ext.skadn.skoverlay.position
bidresponse.seatbid.bid.ext.aname
bidresponse.seatbid.bid.ext.clickurl
Bid Request:
bidRequest.imp.ext.skadn.skoveraly
bidRequest.ext.placementType / bidRequest.imp.video.ext.rewarded / bidRequest.imp.video.videotype (to signal “Rewarded” inventory)
imp.banner.ext.bannertype
This document specifies SSP OpenRTB 2.5, 2.5 implementation for Demand-Side Platforms (DSPs).
Currently display.io has 1 main data center located in US-EAST and extra DCs located at US-WEST, EU, ASIA.
Each bid request contains only 1 ad format object: “Video”, “Banner” , “Native.
Display ad bids should contain HTML markup. display.io SDKs support MRAID 2.0 and 3.0 standards.
Video ad bids should contain VAST 2.0 or 3.0 InLine tag.
Also Video ad bids support Wrapper tag (up to 4 nesting levels) (https://www.iab.com/wp-content/uploads/2015/06/VASTv3_0.pdf 2.2.2.2, 2.2.3, 2.2.4).
The adm must include the “<?xml” header. VPAID is not supported.
| Ad unit | Ad Format | Ad unit size | Requested Ad Size |
|
|---|---|---|---|---|
![]() |
Interscroller (feed UX) |
Video |
320×480 |
Display: 320×480 |
![]() |
Headline (feed UX) |
Video Display |
300×250 | Display: 300×250 Video: 640×360 |
![]() |
Interstitial | Video Display |
320×480 480×320 |
Display: |
![]() |
Infeed (feed UX) |
Video Display |
300×250 320×250 |
Display: 300×250 |
![]() |
Medium Rectangle |
Display | 300×250 | 300×250 |
![]() |
Banner | Display | 320×50 | 320×50 |
Bid Request:
bidRequest.imp.video.ext.videotype
// (string) – Video placement type:
// "rewarded", "interstitial", "infeed", "interscroller", or "adhesion" (headline video)
bidRequest.imp.banner.ext.bannertype
// (string) – Banner placement type:
// "interstitial", "infeed", "interscroller", "banner", or "mrect"
bidRequest.imp.ext.skadn.skoverlay
// (integer) – Whether an impression is eligible for SKOverlay (1) or not (0)
bidRequest.ext.placementType
// (string) – Custom parameter to signal Rewarded video traffic ("rewarded")
bidRequest.imp.video.ext.rewarded
// (integer) – Custom parameter to signal Rewarded video traffic (1) or not (0)
Bid Response (optional):
bidResponse.seatbid.bid.ext.aname // (string) – Advertiser name bidResponse.seatbid.bid.ext.clickurl // (string) – Click URL (equals to ClickThrough URL)
SKOverlay Bid Response controls (optional):
bidResponse.seatbid.ext.skadn.skoverlay.present // (integer) – Display the overlay (1) or not (0) bidResponse.seatbid.ext.skadn.skoverlay.show // (integer) – Alternative to 'present' for showing the overlay (1) or not (0) bidResponse.seatbid.ext.skadn.skoverlay.click // (integer) – Trigger click tracking when overlay is displayed (1) or not (0) bidResponse.seatbid.ext.skadn.skoverlay.dismissible // (integer) – Allow user to dismiss the overlay (1) or not (0) bidResponse.seatbid.ext.skadn.skoverlay.pos // (integer) – Position of the overlay: // 0 = bottom // 1 = bottom raised bidResponse.seatbid.ext.skadn.skoverlay.position // (integer) – Alternative to 'pos' for setting overlay position
For all ad units and formats, viewability measurement is supported through IAB OM SDK.
Verification for VAST ads is supported through the “AdVerifications” extension as described in the OMSDK onboarding documentation.
Verification for display ads is supported inline in the ad markup.
dispay.io SDKs are compliant with the IAB Open Measurement standards for viewability.
In accordance with the IAB OpenRTB GDPR advisory our RTB API passes consent string and GDPR state in User.ext.consent and Regs.ext.GDPR.
Display.io supports IAB CCPA Compliance Framework and has LSPA (Limited Service Provider Agreement) signed up. In accordance with the IAB CCPA Compliance Framework for Publishers & Technology Companies our RTB API passes US privacy consent string via Regs.ext.us_privacy.
Please, pay attention: if a user is opt-out of sale or a user is from California, but there is no data about his consent, and demand partner hasn’t LSPA signed up – bid request won’t be sent to a such demand partner.
Display ads are cached prior to being displayed to users, when cached they get loaded into a webview in the mobile SDK.
Once cached it may take a short or considerable time before the ad will be displayed to the user, or it may not be displayed to the user at all. Average time to live (TTL) for ad is 2 hours, but it may be limited according to advertiser’s requirements.
The display.io mobile SDKs support the MRAID 3.0 standard. We strongly recommend buyers who rely on beacons in ad markup to serve MRAID ads to support correct ad rendering and tracking of ad lifecycle events or use burl events for impression tracking.
The display.io ad platform will call the provided burl in the bid only on impression.
The ad markup must be provided within adm property.
For billing we support nurl, burl, billing url inside VAST markup.
{
"id":"5f33f1069c436",
"at":1,
"imp":[
{
"id":"1",
"tagid":"placement7070",
"displaymanager":"display.io SDK",
"displaymanagerver":"4.4.4",
"instl":1,
"secure":1,
"banner":
{
"w":320,
"h":480,
"pos":7,
"btype":[3],
"battr":[8,17,10,9],
"ext":{"bannertype":"interscroller"},
"api":[5,6,7]
},
"bidfloor":6.42
}
],
"app":
{
"id":"8347",
"name":"Tumblr_Android",
"storeurl":"https://play.google.com/store/apps/details?id=com.tumblr",
"bundle":"com.tumblr",
"publisher":{"id":"2101","name":"Tumblr, Inc."}
},
"device":
{
"js":1,
"geo":
{
"country":"USA",
"region":"New Mexico",
"type":2,"ipservice":3,
"lat":35.0845,"lon":-106.6511
},
"ip":"174.237.5.16",
"devicetype":4,
"ifa":"00e16d14-01c3-4400-9151-a3e5ca671af1",
"carrier":"Verizon ",
"model":"moto z4",
"make":"motorola",
"h":2168,
"w":1080,
"ua":"Mozilla/5.0 (Linux; Android 10; moto z4 Build/QDFS30.130-42-5-2; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/84.0.4147.111 Mobile Safari/537.36",
"os":"android",
"osv":"10.0.0",
"lmt":0
},
"source":
{
"fd":0,
"tid":"5f33f10695ec3",
"pchain":"display.io:2101",
"ext":
{
"schain":{"ver":"1.0","complete":1,"nodes":[{"asi":"display.io","sid":"2101","rid":"5f33f1069c436","hp":1}]},
"omidpn":"Displayio",
"omidpv":"4.4.4"
}
},
"bcat":["IAB25","IAB26","IAB7-39"],
"regs":
{
"coppa":0,"ext":{"us_privacy":"1---"}
}
}
{
"id":"5f33f1069c436",
"cur":"USD"
"seatbid":[
{
"seat":"1323-1",
"bid":[
{
"id":"1323-1-1",
"impid":"1",
"price":6.42,
"crid":"cr-liv6ymcwulrgv2",
"cid":"c-9ax04m0sv9",
"adm":"<script src='https://test/example/js?excid=test&pickup=523b1bc4a13de843c30dfb308d00dcc5&zrk=8296388b401038f3939fd40ec52ae01b&zds=b6e344396c72343a27ab740162b3fa01&imp=1b82f272620d003e680a52fa5dc3584b&rtbserve=1&pv=1&prc=ZX0.000751074579120603&extra=1'></script>",
"w":320,
"h":480,
"adid":"46_10011483",
"adomain":["shop.mashable.com"]
}
]
}
]
}
{
"id":"5f3407dd5cfaa",
"at":1,
"imp":[
{
"id":"1",
"tagid":"placement5732",
"displaymanager":"display.io",
"displaymanagerver":"1.0.0",
"instl":0,
"video":
{
"w":320,
"h":480,
"pos":3,
"protocols":[2,3,5,6],
"mimes":["video/mp4"],
"minduration":4,
"maxduration":60,
"battr":[8,17,10,9],
"linearity":1,
"ext":{"videotype":"infeed"},
"minbitrate":250,
"maxbitrate":10000
},
"bidfloor":1.55
}],
"app":
{
"id":"8109",
"name":"com.naver.linewebtoon",
"storeurl":"https://play.google.com/store/apps/details?id=com.naver.linewebtoon",
"bundle":"com.naver.linewebtoon",
"publisher":{"id":"2059","name":"NAVER WEBTOON CORP"}},
"device":
{
"js":1,
"geo":
{
"country":"USA",
"region":"Utah",
"type":2,
"city":"Ogden",
"zip":"84401",
"ipservice":3,
"lat":41.2215,
"lon":-111.9621
},
"ip":"24.2.103.230",
"ifa":"7f872bfe-c155-47a8-b5ed-b8e42edb0cd0",
"model":"Samsung SM-G935T",
"carrier":"Comcast Cable",
"connectiontype":2,
"ua":"Mozilla/5.0 (Linux; Android 8.0.0; SM-G935T Build/R16NW; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/84.0.4147.111 Mobile Safari/537.36",
"os":"Android",
"osv":"8.0.0",
"lmt":0
},
"source":
{
"fd":0,
"tid":"5f3407dd58c49",
"pchain":"display.io:2059",
"ext":{"schain":{"ver":"1.0","complete":1,"nodes":[{"asi":"display.io","sid":"2059","rid":"5f3407dd5cfaa","hp":1}]}}},
"user":{"keywords":"gmext"},
"bcat":["IAB25","IAB26","IAB7-39"],
"regs":
{
"coppa":0,"ext":{"us_privacy":"1---"}
}
}
Infeed Video Bid Response Example
{
"id":"5f341cc57b5cb",
"seatbid":[
{
"bid":[
{
"id":"1",
"impid":"1",
"price":1.78,
"adm":"<VAST version=\"3.0\"><Ad><Wrapper><AdSystem><![CDATA[EXAMPLE Go Ad Server]]></AdSystem><VASTAdTagURI><![CDATA[http://example.com/vastd.xml?vid=1597250756_9ea55362d07f3e969dfca26ae61d06d0&aic=${AUCTION_PRICE}&pid=4980f2fde3]]></VASTAdTagURI><Impression><![CDATA[http://example.com/xcp.gif?iid=1597250756_9ea55362d07f3e969dfca26ae61d06d0&v=true&vp=1&aid=1597250756_9ea55362d07f3e969dfca26ae61d06d0]]></Impression><Error></Error><Creatives></Creatives><Extensions></Extensions></Wrapper></Ad></VAST>",
"adomain":["musely.com"],
"iurl":"https://cdn.w55c.net/v/s_XRXELsR2Ld_749145084.xml",
"cid":"Xm24rhHMiP",
"crid":"79_XRXELsR2Ld"
}],
"seat":"7fb78c4d5e"
}],
"bidid":"1597250756_9ea55362d07f3e969dfca26ae61d06d0",
"cur":"USD"
}