S2S integration

Overview

This document specifies Server to Server (S2S) integration for Demand-Side Platforms (DSPs) interested in buying from our marketplaces

Data Center Location

Currently display.io has 1 data center located in US-EAST.

Ad Formats

S2S integration supports “Video” (through VAST tag) and “Banner” (“Display”) ad format.Banner (Display) Ads

Display Ads

Display ad bids should contain HTML markup. display.io SDKs support MRAID 2.0 and 3.0 standards.

Video Ads

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.

Supported Ad Units/Formats/Sizes

  Ad unit       Ad Format       Ad unit size Requested
Ad Size
mceclip29.png    Interscroller
(feed UX)

Video
Display

320×480

Display: 320×480
Video: 360×640

mceclip33.png
Headline
Video
(feed UX)
Video 300×250 640×360
mceclip34.png    Interstitial Video 320×480
480×320

Display:
320×480 / 480×320
Video:
360×640 / 640×360

mceclip31.png    Infeed
   (feed UX)
Video
Display
300×250
320×250

Display: 300×250
Video: 640×360

mceclip32.png Medium
Rectangle
Display 300×250  300×250
mceclip30.png    Banner Display 320×50 320×50

 

Payment model

S2S payment model is based on fixed price agreement.

Viewability

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.

GDPR

In accordance with the IAB OpenRTB GDPR advisory we can pass passes consent string and GDPR state through certain macroses.

CCPA

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 S2S API passes US privacy consent string via macros 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.

Caching

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.

No Bid

We define S2S ad response as No Bid in one of these cases:
– http code is not 2xx
– http response body is empty

Supported Macroses

– DEVICE –
[IP]
[CACHEBUSTING]
[UA]
[DNT]
[LMT]
[GPID]
[IFA]
[DEVICE_ID]
[DEVICE_MAKE]
[DEVICE_MODEL]
[DEVELOPER_ID]
[DEVELOPER_NAME]
[DEVELOPER_UA]
[DEVELOPER_DOMAIN] (stub)
[DEVICE_LAT]
[DEVICE_LON]


– APP –
[APP_ID]
[APP_NAME]
[APP_PKG_NAME] | [BUNDLE_ID]
[APP_OS]
[APP_PREVIEW_URL]
[APP_CATEGORIES]
[PLACEMENT_ID]
[W]
[H]
[IAB_CONTENT_CATEGORIES]


– USER –
[YOB]
[GENDER]
[AGE]


 

– SCHAIN OBJECT –
[SCHAIN_COMPLETE]
[SCHAIN_ASI]

[SCHAIN_SID]
[SCHAIN_RID]
[SCHAIN_NAME]
[SCHAIN_DOMAIN]
[SCHAIN_HP]


– OTHER-
[TAG_ID]
[COPPA]
[OMIDPN]
[OMIDPV]
[US_PRIVACY] – CCPA consent string

Ad Request/Response examples

Video (VAST tag) Ad Request

https://loopme.me/api/vast/ads?appId=dc13b1ef12&vast=2&vpaid=0&ua=Mozilla%2F5.0+%28Linux%3B+Android+8.0.0%3B+SM-J337T+Build%2FR16NW%3B+wv%29+AppleWebKit%2F537.36+%28KHTML%2C+like+Gecko%29+Version%2F4.0+Chrome%2F81.0.4044.138+Mobile+Safari%2F537.36&lon=-87.7474&lat=41.9453&uid=803ad836-916e-485a-98ac-aa98f4d1fbf7&ip=67.162.74.2&dnt=0&bundleid=com.sega.sprint&appname=Sonic+Forces%3A+Speed+Battle&height=640&width=360&exchange=displayio&clientid=displayio

Video Ad Response – “No Ad”

<?xml version="1.0" encoding="UTF-8"?> <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="2.0"><status></status></VAST>

 

Display Ad Request

https://ads.undertone.com/af?zoneid=189252&s2sinapp=1&tsid=11&deviceid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f&appid=8358&bundleid=com.wallpaper.happyapp&lat=41.17&lon=-73.2&cb=09035779&dnt=0&schain=1.0,1!display.io,1967,1,,Cashbox+Group+Technology%28Hong+Kong%29+Limited,51cashbox.com

Display Ad Response

<html><head><title>Advertisement</title></head><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="background-color:transparent;width:100%;text-align:center;"><script src="mraid.js"></script><script>var ut_pixels = [{type:'image', url:'https://evt.undertone.com/l?bannerid=1466025&campaignid=364815&zoneid=189252&cb=2d7f994ebee14130948498680b45892e&bk=qa5vlw&id=1fhsied8jrpi65inz1vn81ak9&stid=270&uasv=v22&slice=eJyrViooMVCyqlZKTCnNyyyJz0xRslKyMFDSUSrOyUxO9QRxQbySYoiUoSGQU1USn5hSUJSZX5RZUgkUROXX1gIAZREbsg==&tsid=11&deviceid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f&deimp=1&inapp=1&ut_pii_allowed=1&has_capping=0&platform=Mobile&placement_type=Interstitial&time_zone=America/New_York'},{type:'markup', url:'PElNRyBTUkM9Imh0dHBzOi8vYWQuZG91YmxlY2xpY2submV0L2RkbS90cmFja2ltcC9ONjY0My4xMjQ1NDEuVU5ERVJUT05FTkVUV09SS1MvQjIzODQ4NjI4LjI2ODU5NTYzMjtkY190cmtfYWlkPTQ2MzI0NzI5NTtkY190cmtfY2lkPTEyOTM5NTIzMDtvcmQ9MzEwMWE3ODBjYmQwNDk5NTg1MjljMjVmYjgxNjlmNWY7ZGNfbGF0PTtkY19yZGlkPWRkN2Y1M2ZhLWUwN2ItNDUwZS04NmJhLWY2Zjk3YTJkMjkyZjt0YWdfZm9yX2NoaWxkX2RpcmVjdGVkX3RyZWF0bWVudD07dGZ1YT0/IiBCT1JERVI9IjAiIEhFSUdIVD0iMSIgV0lEVEg9IjEiIEFMVD0iQWR2ZXJ0aXNlbWVudCI+'}];var ut_pixel_event = 'ready';</script><script src="https://creative-p.undertone.com/inapp/ut_pixels.min.js"></script><script type="text/javascript">var sf_tag = 1; var ut_extra_data={ut_country:'us',ut_country_name:'united states',ut_state:'ct',ut_state_name:'can tho',ut_city_name:'naugatuck',ut_zip_code:'06770',ut_dma:'533',ut_dma_name:'hartford & new haven',ut_latitude:'41.4900017',ut_longitude:'-73.0500031',ut_today_temp_current:'50',ut_today_temp_high:'60',ut_today_temp_low:'39',ut_today_weather_type:'thunderstorms,rain showers',ut_tomorrow_temp_high:'56',ut_tomorrow_temp_low:'35',ut_tomorrow_weather_type:'Mostly Sunny'}; var ut_udms={udms:{rid:'1fhsied8jrpi65inz1vn81ak9',zid:'189252',cid:'364815',bid:'1466025'},macros:{random:'3101a780cbd049958529c25fb8169f5f',bannerid:'1466025',campaignid:'364815',iolineitemid:'263135',zoneid:'zoneid',dnt:'0',mobile_device_id:'dd7f53fa-e07b-450e-86ba-f6f97a2d292f',coppa:'0'}}; var ut_clickurl = 'https://evt.undertone.com/c?oaparams=2__deviceid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f__bannerid=1466025__campaignid=364815__zoneid=189252__cb=d0ade97b71074dc89a0726f6db799d0e__bk=qa5vlw__id=1fhsied8jrpi65inz1vn81ak9__inapp=1__ut_pii_allowed=1__oadest='; var ut_evtbase = 'https://evt.undertone.com/e?bannerid=1466025&campaignid=364815&zoneid=189252&cb=c6a94b3106dd457889e12a59b91740d3&bk=qa5vlw&id=1fhsied8jrpi65inz1vn81ak9&stid=270&uasv=v22&inapp=1&deviceid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f&ut_pii_allowed=1&time_zone=America/New_York'; var ut_scripts = ["https://pixel.adsafeprotected.com/jload?anId=927944&campId=364815&pubId=189252&chanId=18894&placementId=263135&adsafe_par&bundleId=com.wallpaper.happyapp&impId=1fhsied8jrpi65inz1vn81ak9&ias_adpath=%23div_[SF_UID]_0","https://cdn.doubleverify.com/dvtp_src.js?ctx=43425&cmp=DV310070&sid=undertone&plc=DV-UT_Viewability&adsrv=103&advid=3819603&dvtagver=6.1.src&btreg=div_[SF_UID]_0&DVP_PP_REP=1&DVP_IQM_ID=37&DVP_DV_TT=1&DVP_DV_CT=1&DVP_PP_APP_ID=com.wallpaper.happyapp&DVPX_PP_IMP_ID=1fhsied8jrpi65inz1vn81ak9&DVP_UT_1=1466025&DVP_UT_2=364815&DVP_UT_3=263135&DVP_UT_4=189252&DVP_UT_5=80&turl="];</script> <img src="data:image/png,sparkflow" style="display:none" onerror="(function (a) { if (typeof window._extra === 'undefined') window._extra = ''; if (typeof window.ut_udms === 'object') { if (ut_udms.udms && ut_udms.udms.rid != '{i'+'d}') { _extra = JSON.stringify(ut_udms); } } window._spad = { callbacks:{ ready:function(id){ id='div_'+id+'_0'; var scr0 = document.createElement('script'); scr0.src = 'https://pixel.adsafeprotected.com/rjss/st/412853/43565137/skeleton.js?ias_adpath=%23' + id; document.body.appendChild(scr0); } } }; var s = document.createElement('script'); s.src = 'https://ads.sparkflow.net?g=50462&x=189252&a='+encodeURIComponent(_extra)+'&r='+Math.round(Math.random()*99999); s.async = true; a.parentNode.insertBefore(s, a); })(this);"/> <script type="text/javascript">new Image().src="https://evt.undertone.com/e?bannerid=1466025&campaignid=364815&zoneid=189252&cb=c6a94b3106dd457889e12a59b91740d3&bk=qa5vlw&id=1fhsied8jrpi65inz1vn81ak9&stid=270&uasv=v22&inapp=1&deviceid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f&ut_pii_allowed=1&time_zone=America/New_York&e=render"</script><script type="text/javascript"> try { var adunitBlock = '|80|82|'; var adUnits = {"utPG":19, "utSS":69,"utSSFP":75, "utSSFPS":78, "utBB":58}; var siteBlockList = '|2|69|226|1179|1265|1295|2326|2581|3016|3588|3604|3627|3698|3787|3770|'; var siteBlockCS = '|69|'; var bwGAMCBlock = '|189913|189914|189915|189918|189917|189916|189921|189920|189919|189922|189923|189924|189925|189926|189927|189928|189929|189933|189934|189935|189936|189937|189938|189939|189940|189941|189943|190274|190273|191926|191927|191928|191929|191930|'; var vs={ias:{catchall:"https://pixel.adsafeprotected.com/jload?anId=927944&campId=364815&pubId=189252&chanId=18894&placementId=263135&adsafe_par&bundleId=com.wallpaper.happyapp&impId=1fhsied8jrpi65inz1vn81ak9"}, dv:{catchall:"https://cdn.doubleverify.com/dvtp_src.js?ctx=43425&cmp=DV310070&sid=undertone&plc=DV-UT_Viewability&adsrv=103&advid=3819603&dvtagver=6.1.src&DVP_PP_REP=1&DVP_IQM_ID=37&DVP_DV_TT=1&DVP_DV_CT=1&DVP_PP_APP_ID=[BID_APP-BUNDLE_ID]&DVPX_PP_IMP_ID=1fhsied8jrpi65inz1vn81ak9&DVP_UT_1=1466025&DVP_UT_2=364815&DVP_UT_3=263135&DVP_UT_4=189252&DVP_UT_5=80&turl="} }; var allScripts = document.getElementsByTagName('script'); var myScript = document.currentScript || allScripts[allScripts.length-1]; var renderPixel = function(url, type) { if (type === 'script') { var s = document.createElement('script'); s.src = url; s.async = true; if (myScript) { myScript.parentNode.insertBefore(s, myScript.nextSibling); } else if (document.body){ document.body.appendChild(s); } } else { var img = new Image(); img.src=url; } }; var updatePartnerCookie = function(partnerID, pixelCall){ if(ut_dps.indexOf(partnerID) == -1){ ut_dps.push(partnerID); renderPixel(pixelCall); if (3685 !=2) { ut_dps_changed = true; } } }; try { if((1466025 > 0) && (3685 == 3734)) { var inlineAdList = '|89|90|93|95|96|', PGList = '|75|80|92|', AdhesionList = '|86|97|'; if(inlineAdList.indexOf('|80|') !== -1) { renderPixel('https://play.nglmedia.com/track/index.php?referer_url=&ad_impression=1&order_id=1892&cb=3101a780cbd049958529c25fb8169f5f'); } if(AdhesionList.indexOf('|80|') !== -1) { renderPixel('https://play.nglmedia.com/track/index.php?referer_url=&ad_impression=1&order_id=1889&cb=3101a780cbd049958529c25fb8169f5f'); } if((PGList.indexOf('|80|') !== -1) && !1) { renderPixel('https://play.nglmedia.com/track/index.php?referer_url=&ad_impression=1&order_id=1891&cb=3101a780cbd049958529c25fb8169f5f'); } if((PGList.indexOf('|80|') !== -1) && 1) { renderPixel('https://play.nglmedia.com/track/index.php?referer_url=&ad_impression=1&order_id=1890&cb=3101a780cbd049958529c25fb8169f5f'); } } } catch(err) {} try { if ((1466025 > 0) && (3685 != 2581)){ if('|163600|'.indexOf('|263135|')==-1) { if (typeof sf_tag === 'undefined' || sf_tag != 1) { renderPixel(vs.ias.catchall, 'script'); renderPixel(vs.dv.catchall, 'script'); } } } } catch(err) {} var ut_dps=[], ut_dps_changed=false; for(var i=0,ck=document.cookie.split(';');i<ck.length;i++) { try { var c=ck[i].split('=',2); if(c[0].replace(/^\s+|\s+$/g,'')=='UTDP') { ut_dps=unescape(c[1]).split(','); break; } } catch(err) {} } if(('us' == 'us'||'us' == 'ca'||'us' == 'mx') && ''.indexOf('link')!=0 && ''!='OPTOUT' && siteBlockList.indexOf('|3685|')==-1 && '0'!='1' &&'0'=='0' && '189252'!='188790' && !(adunitBlock.indexOf('|80|') !== -1 && ('0'=='1'||'0'=='1'))) { if ('dd7f53fa-e07b-450e-86ba-f6f97a2d292f' != '0' && adunitBlock.indexOf('|80|')==-1){ updatePartnerCookie('4','https://loadm.exelator.com/load/?p=204&g=1145&j=0&utid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f'); } renderPixel('https://ib.adnxs.com/getuidnb?https://usr.undertone.com/userPixel/sync?partner=appnexus&uid=$UID'); renderPixel('https://us-u.openx.net/w/1.0/cm?id=fba3d144-1026-4d31-a758-943b9545e305&r=https://usr.undertone.com/userPixel/sync?partnerId=39&uid='); renderPixel('https://match.adsrvr.org/track/cmf/generic?ttd_pid=sirnsvg&ttd_tpi=1&gdpr=0&gdpr_consent='); renderPixel('https://cw.addthis.com/t.gif?pid=46&pdid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f'); updatePartnerCookie('33','https://ads.scorecardresearch.com/b?c1=9&c2=2113&c3=2&cs_xi=dd7f53fa-e07b-450e-86ba-f6f97a2d292f'); updatePartnerCookie('1','https://tags.bluekai.com/site/15597?id=dd7f53fa-e07b-450e-86ba-f6f97a2d292f&redir=https://ads.undertone.com/u?dp=1%26uid=$BK_UUID'); updatePartnerCookie('44','https://ads.undertone.com/u?dp=44&url=https%3A%2F%2Fpx.tvadsync.com%2Fcom.snowplowanalytics.iglu%2Fv1%3Fschema%3Diglu%3Acom.tvadsync.poc%2Fad_impression%2Fjsonschema%2F1-2-0%26aid%3DUndertone-sync%26partnercookieID%3D'); if(bwGAMCBlock.indexOf('|189252|') == -1) { updatePartnerCookie('3','https://aa.agkn.com/adscores/g.pixel?sid=9211197038&_cb=1589190980&puid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f'); updatePartnerCookie('32','https://dpm.demdex.net/ibs:dpid=152416&dpuuid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f'); updatePartnerCookie('31','https://idsync.rlcdn.com/403716.gif?partner_uid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f'); updatePartnerCookie('30','https://beacon.krxd.net/usermatch.gif?partner=undertone&partner_uid=dd7f53fa-e07b-450e-86ba-f6f97a2d292f'); } } if(''.indexOf('link')!=0 && ''!='OPTOUT' && siteBlockList.indexOf('|3685|')==-1 && '0'=='1'&& '0'=='0' && !(adunitBlock.indexOf('|80|') !== -1 && ('0'=='1'||'0'=='1'))) { renderPixel('https://us-u.openx.net/w/1.0/cm?id=fba3d144-1026-4d31-a758-943b9545e305&r=https://usr.undertone.com/userPixel/sync?partnerId=39&gdpr=0&gdpr_consent=&uid='); } if (siteBlockCS.indexOf('|3685|')==-1 && '0'!='1' &&'0'=='0' && bwGAMCBlock.indexOf('|189252|') == -1 && !(adunitBlock.indexOf('|80|') !== -1 && ('0'=='1'||'0'=='1'))) { if (1 == 1 && adunitBlock.indexOf('|80|')==-1 && 1466025>0) { renderPixel('https://sb.scorecardresearch.com/p?c1=8&amp;c2=2113&amp;c3=9&amp;ns_ap_it=b&amp;ns_ap_pn=Android&amp;ns_ap_device='+'Samsung'+'_'+'SM-J330G'+'_'+'7.0'+'&amp;rn=3101a780cbd049958529c25fb8169f5f'); } } if(ut_dps_changed && bwGAMCBlock.indexOf('|189252|') == -1) { var d=new Date(); d.setDate(d.getDate()+1); if ('0'!= '1') { document.cookie='UTDP='+escape(ut_dps.join(','))+'; SameSite=None; Secure; expires='+d.toUTCString(); } } } catch(err) {} </script></body></html>

Still have Questions?

Contact Us