prebid.js 7.52.0 → 7.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/1plusXRtdProvider.js +1 -1
  2. package/dist/33acrossBidAdapter.js +1 -1
  3. package/dist/33acrossIdSystem.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adgenerationBidAdapter.js +1 -1
  7. package/dist/adkernelBidAdapter.js +1 -1
  8. package/dist/adqueryBidAdapter.js +1 -1
  9. package/dist/adrelevantisBidAdapter.js +1 -1
  10. package/dist/adtrgtmeBidAdapter.js +1 -1
  11. package/dist/adxcgBidAdapter.js +1 -1
  12. package/dist/adyoulikeBidAdapter.js +1 -1
  13. package/dist/airgridRtdProvider.js +1 -1
  14. package/dist/ajaBidAdapter.js +1 -1
  15. package/dist/amxBidAdapter.js +1 -1
  16. package/dist/amxIdSystem.js +1 -1
  17. package/dist/appierAnalyticsAdapter.js +1 -1
  18. package/dist/appnexusBidAdapter.js +1 -1
  19. package/dist/asoBidAdapter.js +1 -1
  20. package/dist/axonixBidAdapter.js +1 -1
  21. package/dist/beopBidAdapter.js +1 -1
  22. package/dist/bidglassBidAdapter.js +1 -1
  23. package/dist/big-richmediaBidAdapter.js +1 -1
  24. package/dist/bridgewellBidAdapter.js +1 -1
  25. package/dist/brightMountainMediaBidAdapter.js +1 -1
  26. package/dist/carodaBidAdapter.js +1 -1
  27. package/dist/chtnwBidAdapter.js +1 -1
  28. package/dist/conceptxBidAdapter.js +1 -0
  29. package/dist/concertBidAdapter.js +1 -1
  30. package/dist/connectadBidAdapter.js +1 -1
  31. package/dist/consumableBidAdapter.js +1 -1
  32. package/dist/conversantAnalyticsAdapter.js +1 -1
  33. package/dist/conversantBidAdapter.js +1 -1
  34. package/dist/craftBidAdapter.js +1 -1
  35. package/dist/criteoBidAdapter.js +1 -1
  36. package/dist/cwireBidAdapter.js +1 -1
  37. package/dist/dspxBidAdapter.js +1 -1
  38. package/dist/eplanningBidAdapter.js +1 -1
  39. package/dist/eskimiBidAdapter.js +1 -1
  40. package/dist/euidIdSystem.js +1 -0
  41. package/dist/feedadBidAdapter.js +1 -1
  42. package/dist/finativeBidAdapter.js +1 -1
  43. package/dist/freepassIdSystem.js +1 -0
  44. package/dist/freewheel-sspBidAdapter.js +1 -1
  45. package/dist/glimpseBidAdapter.js +1 -1
  46. package/dist/gmosspBidAdapter.js +1 -1
  47. package/dist/goldbachBidAdapter.js +1 -1
  48. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  49. package/dist/greenbidsRtdProvider.js +1 -1
  50. package/dist/gridBidAdapter.js +1 -1
  51. package/dist/gumgumBidAdapter.js +1 -1
  52. package/dist/h12mediaBidAdapter.js +1 -1
  53. package/dist/id5IdSystem.js +1 -1
  54. package/dist/improvedigitalBidAdapter.js +1 -1
  55. package/dist/inmarBidAdapter.js +1 -1
  56. package/dist/insticatorBidAdapter.js +1 -1
  57. package/dist/ixBidAdapter.js +1 -1
  58. package/dist/justpremiumBidAdapter.js +1 -1
  59. package/dist/kargoBidAdapter.js +1 -1
  60. package/dist/konduitAnalyticsAdapter.js +1 -1
  61. package/dist/kueezBidAdapter.js +1 -1
  62. package/dist/kueezRtbBidAdapter.js +1 -1
  63. package/dist/kulturemediaBidAdapter.js +1 -1
  64. package/dist/lassoBidAdapter.js +1 -1
  65. package/dist/lifestreetBidAdapter.js +1 -1
  66. package/dist/limelightDigitalBidAdapter.js +1 -1
  67. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  68. package/dist/logicadBidAdapter.js +1 -1
  69. package/dist/loglyliftBidAdapter.js +1 -1
  70. package/dist/magniteAnalyticsAdapter.js +1 -1
  71. package/dist/malltvAnalyticsAdapter.js +1 -1
  72. package/dist/marsmediaBidAdapter.js +1 -1
  73. package/dist/mediafuseBidAdapter.js +1 -1
  74. package/dist/mediasquareBidAdapter.js +1 -1
  75. package/dist/mgidBidAdapter.js +1 -1
  76. package/dist/minutemediaBidAdapter.js +1 -1
  77. package/dist/minutemediaplusBidAdapter.js +1 -1
  78. package/dist/nexx360BidAdapter.js +1 -1
  79. package/dist/not-for-prod/prebid.js +146 -142
  80. package/dist/oguryBidAdapter.js +1 -1
  81. package/dist/onetagBidAdapter.js +1 -1
  82. package/dist/ooloAnalyticsAdapter.js +1 -1
  83. package/dist/optidigitalBidAdapter.js +1 -1
  84. package/dist/outbrainBidAdapter.js +1 -1
  85. package/dist/pairIdSystem.js +1 -1
  86. package/dist/parrableIdSystem.js +1 -1
  87. package/dist/pixfutureBidAdapter.js +1 -1
  88. package/dist/prebid-core.js +1 -1
  89. package/dist/proxistoreBidAdapter.js +1 -1
  90. package/dist/publinkIdSystem.js +1 -1
  91. package/dist/pubmaticBidAdapter.js +1 -1
  92. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  93. package/dist/pxyzBidAdapter.js +1 -1
  94. package/dist/quantcastBidAdapter.js +1 -1
  95. package/dist/readpeakBidAdapter.js +1 -1
  96. package/dist/relaidoBidAdapter.js +1 -1
  97. package/dist/retailspotBidAdapter.js +1 -1
  98. package/dist/rhythmoneBidAdapter.js +1 -1
  99. package/dist/richaudienceBidAdapter.js +1 -1
  100. package/dist/riseBidAdapter.js +1 -1
  101. package/dist/rubiconAnalyticsAdapter.js +1 -1
  102. package/dist/rubiconBidAdapter.js +1 -1
  103. package/dist/schain.js +1 -1
  104. package/dist/seedingAllianceBidAdapter.js +1 -1
  105. package/dist/seedtagBidAdapter.js +1 -1
  106. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  107. package/dist/sharethroughBidAdapter.js +1 -1
  108. package/dist/shinezBidAdapter.js +1 -1
  109. package/dist/sirdataRtdProvider.js +1 -1
  110. package/dist/smaatoBidAdapter.js +1 -1
  111. package/dist/smartadserverBidAdapter.js +1 -1
  112. package/dist/smartxBidAdapter.js +1 -1
  113. package/dist/smilewantedBidAdapter.js +1 -1
  114. package/dist/sonobiBidAdapter.js +1 -1
  115. package/dist/sovrnAnalyticsAdapter.js +1 -1
  116. package/dist/sovrnBidAdapter.js +1 -1
  117. package/dist/sspBCBidAdapter.js +1 -1
  118. package/dist/stroeerCoreBidAdapter.js +1 -1
  119. package/dist/stvBidAdapter.js +1 -1
  120. package/dist/sublimeBidAdapter.js +1 -1
  121. package/dist/synacormediaBidAdapter.js +1 -1
  122. package/dist/targetVideoBidAdapter.js +1 -1
  123. package/dist/teadsBidAdapter.js +1 -1
  124. package/dist/trionBidAdapter.js +1 -1
  125. package/dist/tripleliftBidAdapter.js +1 -1
  126. package/dist/ttdBidAdapter.js +1 -1
  127. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  128. package/dist/uid2IdSystem.js +1 -1
  129. package/dist/uid2IdSystem_shared.js +1 -0
  130. package/dist/underdogmediaBidAdapter.js +1 -1
  131. package/dist/undertoneBidAdapter.js +1 -1
  132. package/dist/userId.js +1 -1
  133. package/dist/vidazooBidAdapter.js +1 -1
  134. package/dist/videobyteBidAdapter.js +1 -1
  135. package/dist/viouslyBidAdapter.js +1 -1
  136. package/dist/visxBidAdapter.js +1 -1
  137. package/dist/vuukleBidAdapter.js +1 -1
  138. package/dist/weboramaRtdProvider.js +1 -1
  139. package/dist/widespaceBidAdapter.js +1 -1
  140. package/dist/winrBidAdapter.js +1 -1
  141. package/dist/yahoosspBidAdapter.js +1 -1
  142. package/dist/yieldlabBidAdapter.js +1 -1
  143. package/dist/yieldmoBidAdapter.js +1 -1
  144. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  145. package/dist/zeta_global_sspBidAdapter.js +1 -1
  146. package/integrationExamples/gpt/userId_example.html +20 -6
  147. package/modules/.submodules.json +3 -1
  148. package/modules/1plusXRtdProvider.js +31 -60
  149. package/modules/adagioBidAdapter.js +86 -24
  150. package/modules/adkernelBidAdapter.js +2 -2
  151. package/modules/airgridRtdProvider.js +11 -12
  152. package/modules/asoBidAdapter.js +2 -1
  153. package/modules/beopBidAdapter.js +6 -0
  154. package/modules/conceptxBidAdapter.js +70 -0
  155. package/modules/conceptxBidAdapter.md +36 -0
  156. package/modules/criteoBidAdapter.js +9 -2
  157. package/modules/eskimiBidAdapter.js +171 -41
  158. package/modules/eskimiBidAdapter.md +35 -16
  159. package/modules/euidIdSystem.js +121 -0
  160. package/modules/euidIdSystem.md +131 -0
  161. package/modules/freepassIdSystem.js +61 -0
  162. package/modules/freepassIdSystem.md +47 -0
  163. package/modules/greenbidsAnalyticsAdapter.js +1 -1
  164. package/modules/id5IdSystem.js +3 -5
  165. package/modules/ixBidAdapter.js +12 -1
  166. package/modules/limelightDigitalBidAdapter.js +1 -1
  167. package/modules/logicadBidAdapter.js +14 -1
  168. package/modules/mediasquareBidAdapter.js +13 -5
  169. package/modules/nexx360BidAdapter.js +1 -0
  170. package/modules/pairIdSystem.js +10 -5
  171. package/modules/proxistoreBidAdapter.js +11 -14
  172. package/modules/richaudienceBidAdapter.js +10 -1
  173. package/modules/riseBidAdapter.js +1 -1
  174. package/modules/schain.js +2 -2
  175. package/modules/sirdataRtdProvider.js +73 -146
  176. package/modules/sovrnBidAdapter.js +4 -1
  177. package/modules/stroeerCoreBidAdapter.js +55 -6
  178. package/modules/uid2IdSystem.js +27 -210
  179. package/modules/uid2IdSystem.md +104 -23
  180. package/modules/uid2IdSystem_shared.js +232 -0
  181. package/modules/userId/eids.js +8 -0
  182. package/modules/userId/userId.md +2 -1
  183. package/modules/viouslyBidAdapter.js +2 -2
  184. package/modules/weboramaRtdProvider.js +25 -95
  185. package/modules/weboramaRtdProvider.md +4 -4
  186. package/modules/yieldlabBidAdapter.js +23 -14
  187. package/modules/zeta_global_sspBidAdapter.js +27 -22
  188. package/package.json +1 -1
  189. package/src/adloader.js +1 -0
  190. package/test/spec/modules/1plusXRtdProvider_spec.js +98 -149
  191. package/test/spec/modules/adagioBidAdapter_spec.js +46 -17
  192. package/test/spec/modules/airgridRtdProvider_spec.js +2 -0
  193. package/test/spec/modules/beopBidAdapter_spec.js +24 -0
  194. package/test/spec/modules/conceptxBidAdapter_spec.js +136 -0
  195. package/test/spec/modules/criteoBidAdapter_spec.js +1 -1
  196. package/test/spec/modules/eids_spec.js +15 -0
  197. package/test/spec/modules/eskimiBidAdapter_spec.js +264 -112
  198. package/test/spec/modules/euidIdSystem_spec.js +130 -0
  199. package/test/spec/modules/freepassIdSystem_spec.js +186 -0
  200. package/test/spec/modules/id5IdSystem_spec.js +10 -3
  201. package/test/spec/modules/ixBidAdapter_spec.js +30 -0
  202. package/test/spec/modules/logicadBidAdapter_spec.js +122 -2
  203. package/test/spec/modules/mediasquareBidAdapter_spec.js +4 -0
  204. package/test/spec/modules/richaudienceBidAdapter_spec.js +44 -0
  205. package/test/spec/modules/schain_spec.js +9 -0
  206. package/test/spec/modules/sirdataRtdProvider_spec.js +110 -17
  207. package/test/spec/modules/sovrnBidAdapter_spec.js +13 -0
  208. package/test/spec/modules/stroeerCoreBidAdapter_spec.js +151 -6
  209. package/test/spec/modules/uid2IdSystem_helpers.js +70 -0
  210. package/test/spec/modules/uid2IdSystem_spec.js +131 -86
  211. package/test/spec/modules/userId_spec.js +16 -12
  212. package/test/spec/modules/weboramaRtdProvider_spec.js +331 -205
  213. package/test/spec/modules/yieldlabBidAdapter_spec.js +42 -2
  214. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +200 -4
@@ -1 +1 @@
1
- (self.pbjsChunk=self.pbjsChunk||[]).push([[15337],{55511:function(e,r,t){var n=t(71002),i=t(78640),a=t(64358),o=t(20265),d=t(96475),c=t(24679),u=t(14699),s=t(35706),p=t(34614),f="USD",m=300,l=!0,v="https://ads.yieldmo.com/pbcas",g="https://prebid-outstream.yieldmo.com/bundle.js",y=["mimes","startdelay","placement","startdelay","skipafter","protocols","api","playbackmethod","maxduration","minduration","pos","skip","skippable"],h=["name","domain","cat","keywords"],b=(0,a.getWindowTop)(),I=["description","title","pr","page_url"],x={code:"yieldmo",supportedMediaTypes:[c.Mk,c.pX],gvlid:173,isBidRequestValid:function(e){return!!(e&&e.adUnitCode&&e.bidId&&(w(e)||Z(e))&&function(e){if(!Z(e))return!0;var r=function(e,r,t){var n='"'.concat(e,'" is required');throw t&&(n+=" when "+t),new Error(n)},t=function(e,r,t){throw t=t?", expected: "+t:"",r=JSON.stringify(r),new Error('"'.concat(e,'"=').concat(r," is invalid").concat(t))},n=function(e){return void 0!==e},i=function(r,t,n,i){if(0===r.indexOf("video")){var a="params."+r,d="mediaTypes."+r,c=(0,o.Z)(e,a),u=(0,o.Z)(e,d),s=t(c),p=t(u);return s?c:p||(s?p||n(d,u,i):n(a,c,i),c||u)}var f=(0,o.Z)(e,r);return t(f)||n(r,f,i),f};try{i("video.context",(function(e){return!(0,a.isEmpty)(e)}),r),i("params.placementId",(function(e){return!(0,a.isEmpty)(e)}),r),i("video.playerSize",(function(e){return(0,a.isArrayOfNums)(e,2)||(0,a.isArray)(e)&&e.every((function(e){return(0,a.isArrayOfNums)(e,2)}))}),t,"array of 2 integers, ex: [640,480] or [[640,480]]"),i("video.mimes",(function(e){return n(e)}),r),i("video.mimes",(function(e){return(0,a.isArray)(e)&&e.every((function(e){return(0,a.isStr)(e)}))}),t,'array of strings, ex: ["video/mp4"]');var d=i("video.placement",(function(e){return n(e)}),r);return i("video.placement",(function(e){return e>=1&&e<=5}),t),1===d&&(i("video.startdelay",(function(e){return n(e)}),(function(e,t){return r(e,t,"placement == 1")})),i("video.startdelay",(function(e){return(0,a.isNumber)(e)}),t,"number, ex: 5")),i("video.protocols",(function(e){return n(e)}),r),i("video.protocols",(function(e){return(0,a.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),t,"array of numbers, ex: [2,3]"),i("video.api",(function(e){return n(e)}),r),i("video.api",(function(e){return(0,a.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),t,"array of numbers, ex: [2,3]"),i("video.playbackmethod",(function(e){return!n(e)||(0,a.isArrayOfNums)(e)}),t,"array of integers, ex: [2,6]"),i("video.maxduration",(function(e){return n(e)}),r),i("video.maxduration",(function(e){return(0,a.isInteger)(e)}),t),i("video.minduration",(function(e){return!n(e)||(0,a.isNumber)(e)}),t),i("video.skippable",(function(e){return!n(e)||(0,a.isBoolean)(e)}),t),i("video.skipafter",(function(e){return!n(e)||(0,a.isNumber)(e)}),t),i("video.pos",(function(e){return!n(e)||(0,a.isNumber)(e)}),t),i("params.badv",(function(e){return!n(e)||(0,a.isArray)(e)}),t,'array of strings, ex: ["ford.com","pepsi.com"]'),i("params.bcat",(function(e){return!n(e)||(0,a.isArray)(e)}),t,'array of strings, ex: ["IAB1-5","IAB1-6"]'),!0}catch(e){return(0,a.logError)(e.message),!1}}(e))},buildRequests:function(e,r){var t=function(e){var r,t;return!(null===(r=e.refererInfo)||void 0===r||null===(t=r.referer)||void 0===t||!t.includes("pb_force_a"))}(r),n=_("/exchange/prebid",t),i=_("/exchange/prebidvideo",t),u=e.filter((function(e){return w(e)})),s=e.filter((function(e){return Z(e)})),f=[],m=function(e){if((0,o.Z)(e,"userIdAsEids"))return e.userIdAsEids||[]}(e[0])||[];if(u.length>0){var l={pbav:"7.52.0",p:[],page_url:r.refererInfo.page,bust:(new Date).getTime().toString(),dnt:"1"===window.doNotTrack||"1"===window.navigator.doNotTrack||!1,description:k(),userConsent:JSON.stringify({gdprApplies:(0,o.Z)(r,"gdprConsent.gdprApplies")||"",cmp:(0,o.Z)(r,"gdprConsent.consentString")||"",gpp:(0,o.Z)(r,"gppConsent.gppString")||"",gpp_sid:(0,o.Z)(r,"gppConsent.applicableSections")||[]}),us_privacy:(0,o.Z)(r,"uspConsent")||""};(function(){try{if((0,a.getWindowTop)().location.href)return!0}catch(e){return!1}})()&&(l.pr=b.document&&b.document.referrer||"",l.scrd=b.devicePixelRatio||0,l.title=b.document.title||"",l.w=b.innerWidth,l.h=b.innerHeight);var v=window.navigator.maxTouchPoints;v&&(l.mtp=v),u.forEach((function(e){l.p.push(function(e){var r=(0,o.Z)(e,"ortb2Imp.ext.data.pbadslot"),t={placement_id:e.adUnitCode,callback_id:e.bidId,sizes:e.mediaTypes.banner.sizes};if(e.params){e.params.placementId&&(t.ym_placement_id=e.params.placementId);var n=S(e,c.Mk);n&&(t.bidFloor=n)}r&&(t.gpid=r);var i=(0,o.Z)(e,"ortb2Imp.ext.tid");i&&(t.tid=i);e.auctionId&&(t.auctionId=e.auctionId);return JSON.stringify(t)}(e));var r=N(e,"pubcid");r?l.pubcid=r:e.crumbs&&e.crumbs.pubcid&&(l.pubcid=e.crumbs.pubcid);var t=N(e,"tdid");t&&(l.tdid=t);var n=N(e,"criteoId");n&&(l.cri_prebid=n),e.schain&&(l.schain=JSON.stringify(e.schain)),(0,o.Z)(e,"params.lr_env")&&(l.ats_envelope=e.params.lr_env)})),l.p="["+l.p.toString()+"]",m.length&&(l.eids=JSON.stringify(m));var g="".concat(n,"?").concat((0,a.parseQueryStringParameters)(l)).length-8e3;if(g>0)for(var h=0;h<I.length&&!((g=T(g,l,I[h]))<=0);h++);f.push({method:"GET",url:n,data:l})}if(s.length>0){var x=function(e,r){var t=e[0].schain,n={id:e[0].bidderRequestId,tmax:r.timeout||400,at:1,imp:e.map((function(e){return function(e){var r=(0,o.Z)(e,"ortb2Imp.ext.data.pbadslot"),t=function(e){var r=(0,o.Z)(e,"mediaTypes.video.playerSize");if((0,a.isArrayOfNums)(r,2))return r;if((0,a.isArray)(r)&&(0,a.isArrayOfNums)(r[0],2))return r[0];return null}(e),n={id:e.bidId,tagid:e.adUnitCode,bidfloor:S(e,c.pX),ext:{placement_id:e.params.placementId,tid:(0,o.Z)(e,"ortb2Imp.ext.tid")},video:{w:t[0],h:t[1],linearity:1}},i=(0,o.Z)(e,"mediaTypes.video");Object.keys(i).filter((function(e){return(0,p.q9)(y,e)})).forEach((function(e){return n.video[e]=i[e]}));var d=(0,o.Z)(e,"params.video");Object.keys(d).filter((function(e){return(0,p.q9)(y,e)})).forEach((function(e){return n.video[e]=d[e]})),n.video.skippable&&(n.video.skip=1,delete n.video.skippable);1!==n.video.placement&&(n.video.startdelay=0,n.video.playbackmethod=[2]);r&&(n.ext.gpid=r);return n}(e)})),site:A(e[0],r),device:(0,o.Z)(r,"ortb2.device"),badv:e[0].params.badv||[],bcat:(0,o.Z)(r,"bcat")||e[0].params.bcat||[],ext:{prebid:"7.52.0"},ats_envelope:e[0].params.lr_env};t&&(n.schain=t);e[0].auctionId&&(n.auctionId=e[0].auctionId);return function(e,r){var t=r.gdprConsent,n=(0,o.Z)(r,"gppConsent.gppString"),i=(0,o.Z)(r,"gppConsent.applicableSections");n?(0,d.N)(e,"regs.ext.gpp",n):((0,d.N)(e,"regs.ext.gdpr",t&&t.gdprApplies?1:0),(0,d.N)(e,"user.ext.consent",t&&t.consentString?t.consentString:""));i&&i.length>0&&(0,d.N)(e,"regs.ext.gpp_sid",i);var a=(0,o.Z)(r,"uspConsent");!n&&a&&(0,d.N)(e,"regs.ext.us_privacy",a)}(n,r),n}(s,r);m.length&&(x.user={eids:m}),f.push({method:"POST",url:i,data:x})}return f},interpretResponse:function(e,r){var t=[],n=e.body;(n.length>0&&n.forEach((function(e){e.cpm>0&&t.push(function(e){return{dealId:e.publisherDealId,requestId:e.callback_id,cpm:e.cpm,width:e.width,height:e.height,creativeId:e.creative_id,currency:f,netRevenue:l,ttl:300,ad:e.ad,meta:{advertiserDomains:e.adomain||[],mediaType:c.Mk}}}(e))})),n.seatbid)&&n.seatbid.reduce((function(e,r){return e.concat(r.bid)}),[]).forEach((function(e){return t.push(function(e,r){var t=(0,p.sE)((0,o.Z)(r,"data.imp")||[],(function(r){return r.id===e.impid})),n={dealId:e.dealid,requestId:t.id,cpm:e.price,width:t.video.w,height:t.video.h,creativeId:e.crid||e.adid,currency:f,netRevenue:l,mediaType:c.pX,ttl:m,vastXml:e.adm,meta:{advertiserDomains:e.adomain||[],mediaType:c.pX}};if(t.video.placement&&1!==t.video.placement){var i=s.Th.install({url:g,config:{width:n.width,height:n.height,vastTimeout:15e3,maxAllowedVastTagRedirects:5,allowVpaid:!0,autoPlay:!0,preload:!0,mute:!0},id:t.tagid,loaded:!1});i.setRender((function(e){e.renderer.push((function(){var r=e.renderer,t=r.id,n=r.config;window.YMoutstreamPlayer(e,t,n)}))})),n.renderer=i}return n}(e,r))}));return t},getUserSyncs:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=[],a="&gdpr=".concat(t.gdprApplies?1:0),o="&gdpr_consent=".concat(encodeURIComponent(t.consentString||"")),d="us_privacy=".concat(encodeURIComponent(n)),c="".concat(v,"?").concat(d).concat(a).concat(o);return e.iframeEnabled?i.push({type:"iframe",url:c+"&type=iframe"}):e.pixelEnabled&&i.push({type:"image",url:c+"&type=image"}),i}};function w(e){return!!(0,o.Z)(e,"mediaTypes.banner")}function Z(e){return!!(0,o.Z)(e,"mediaTypes.video")}function k(){return document.querySelector('meta[name="description"]')&&document.querySelector('meta[name="description"]').getAttribute("content")||""}function N(e,r){return"object"===(0,n.Z)((0,o.Z)(e,"userId"))?e.userId[r]:void 0}function S(e,r){var t={};return"function"==typeof e.getFloor&&(t=e.getFloor({currency:f,mediaType:r,size:"*"})),t.floor||e.params.bidfloor||e.params.bidFloor||0}function A(e,r){var t,n={},i=(0,a.parseUrl)((0,o.Z)(r,"refererInfo.page"));(0,a.isEmpty)(i)||(n.page="".concat(i.protocol,"://").concat(i.hostname).concat(i.pathname)),null!==(t=r.refererInfo)&&void 0!==t&&t.ref&&(n.ref=r.refererInfo.ref);var d=document.getElementsByTagName("meta").keywords;d&&d.content&&(n.keywords=d.content);var c=(0,o.Z)(e,"params.site");return c&&Object.keys(c).filter((function(e){return(0,p.q9)(h,e)})).forEach((function(e){return n[e]=c[e]})),n}function T(e,r,t){if(r[t].length>e)return r[t]=r[t].substring(0,r[t].length-e),0;var n=e-r[t].length;return r[t]="",n}function _(e,r){return"".concat(r?"https://ads-stg.yieldmo.com":"https://ads.yieldmo.com").concat(e)}(0,u.dX)(x),(0,i.z)("yieldmoBidAdapter")}},function(e){var r;r=55511,e(e.s=r)}]);
1
+ (self.pbjsChunk=self.pbjsChunk||[]).push([[15337],{55511:function(e,r,t){var n=t(71002),i=t(78640),a=t(64358),o=t(20265),d=t(96475),c=t(24679),u=t(14699),s=t(35706),p=t(34614),f="USD",m=300,l=!0,v="https://ads.yieldmo.com/pbcas",g="https://prebid-outstream.yieldmo.com/bundle.js",y=["mimes","startdelay","placement","startdelay","skipafter","protocols","api","playbackmethod","maxduration","minduration","pos","skip","skippable"],h=["name","domain","cat","keywords"],b=(0,a.getWindowTop)(),I=["description","title","pr","page_url"],x={code:"yieldmo",supportedMediaTypes:[c.Mk,c.pX],gvlid:173,isBidRequestValid:function(e){return!!(e&&e.adUnitCode&&e.bidId&&(w(e)||Z(e))&&function(e){if(!Z(e))return!0;var r=function(e,r,t){var n='"'.concat(e,'" is required');throw t&&(n+=" when "+t),new Error(n)},t=function(e,r,t){throw t=t?", expected: "+t:"",r=JSON.stringify(r),new Error('"'.concat(e,'"=').concat(r," is invalid").concat(t))},n=function(e){return void 0!==e},i=function(r,t,n,i){if(0===r.indexOf("video")){var a="params."+r,d="mediaTypes."+r,c=(0,o.Z)(e,a),u=(0,o.Z)(e,d),s=t(c),p=t(u);return s?c:p||(s?p||n(d,u,i):n(a,c,i),c||u)}var f=(0,o.Z)(e,r);return t(f)||n(r,f,i),f};try{i("video.context",(function(e){return!(0,a.isEmpty)(e)}),r),i("params.placementId",(function(e){return!(0,a.isEmpty)(e)}),r),i("video.playerSize",(function(e){return(0,a.isArrayOfNums)(e,2)||(0,a.isArray)(e)&&e.every((function(e){return(0,a.isArrayOfNums)(e,2)}))}),t,"array of 2 integers, ex: [640,480] or [[640,480]]"),i("video.mimes",(function(e){return n(e)}),r),i("video.mimes",(function(e){return(0,a.isArray)(e)&&e.every((function(e){return(0,a.isStr)(e)}))}),t,'array of strings, ex: ["video/mp4"]');var d=i("video.placement",(function(e){return n(e)}),r);return i("video.placement",(function(e){return e>=1&&e<=5}),t),1===d&&(i("video.startdelay",(function(e){return n(e)}),(function(e,t){return r(e,t,"placement == 1")})),i("video.startdelay",(function(e){return(0,a.isNumber)(e)}),t,"number, ex: 5")),i("video.protocols",(function(e){return n(e)}),r),i("video.protocols",(function(e){return(0,a.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),t,"array of numbers, ex: [2,3]"),i("video.api",(function(e){return n(e)}),r),i("video.api",(function(e){return(0,a.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),t,"array of numbers, ex: [2,3]"),i("video.playbackmethod",(function(e){return!n(e)||(0,a.isArrayOfNums)(e)}),t,"array of integers, ex: [2,6]"),i("video.maxduration",(function(e){return n(e)}),r),i("video.maxduration",(function(e){return(0,a.isInteger)(e)}),t),i("video.minduration",(function(e){return!n(e)||(0,a.isNumber)(e)}),t),i("video.skippable",(function(e){return!n(e)||(0,a.isBoolean)(e)}),t),i("video.skipafter",(function(e){return!n(e)||(0,a.isNumber)(e)}),t),i("video.pos",(function(e){return!n(e)||(0,a.isNumber)(e)}),t),i("params.badv",(function(e){return!n(e)||(0,a.isArray)(e)}),t,'array of strings, ex: ["ford.com","pepsi.com"]'),i("params.bcat",(function(e){return!n(e)||(0,a.isArray)(e)}),t,'array of strings, ex: ["IAB1-5","IAB1-6"]'),!0}catch(e){return(0,a.logError)(e.message),!1}}(e))},buildRequests:function(e,r){var t=function(e){var r,t;return!(null===(r=e.refererInfo)||void 0===r||null===(t=r.referer)||void 0===t||!t.includes("pb_force_a"))}(r),n=_("/exchange/prebid",t),i=_("/exchange/prebidvideo",t),u=e.filter((function(e){return w(e)})),s=e.filter((function(e){return Z(e)})),f=[],m=function(e){if((0,o.Z)(e,"userIdAsEids"))return e.userIdAsEids||[]}(e[0])||[];if(u.length>0){var l={pbav:"7.53.0",p:[],page_url:r.refererInfo.page,bust:(new Date).getTime().toString(),dnt:"1"===window.doNotTrack||"1"===window.navigator.doNotTrack||!1,description:k(),userConsent:JSON.stringify({gdprApplies:(0,o.Z)(r,"gdprConsent.gdprApplies")||"",cmp:(0,o.Z)(r,"gdprConsent.consentString")||"",gpp:(0,o.Z)(r,"gppConsent.gppString")||"",gpp_sid:(0,o.Z)(r,"gppConsent.applicableSections")||[]}),us_privacy:(0,o.Z)(r,"uspConsent")||""};(function(){try{if((0,a.getWindowTop)().location.href)return!0}catch(e){return!1}})()&&(l.pr=b.document&&b.document.referrer||"",l.scrd=b.devicePixelRatio||0,l.title=b.document.title||"",l.w=b.innerWidth,l.h=b.innerHeight);var v=window.navigator.maxTouchPoints;v&&(l.mtp=v),u.forEach((function(e){l.p.push(function(e){var r=(0,o.Z)(e,"ortb2Imp.ext.data.pbadslot"),t={placement_id:e.adUnitCode,callback_id:e.bidId,sizes:e.mediaTypes.banner.sizes};if(e.params){e.params.placementId&&(t.ym_placement_id=e.params.placementId);var n=S(e,c.Mk);n&&(t.bidFloor=n)}r&&(t.gpid=r);var i=(0,o.Z)(e,"ortb2Imp.ext.tid");i&&(t.tid=i);e.auctionId&&(t.auctionId=e.auctionId);return JSON.stringify(t)}(e));var r=N(e,"pubcid");r?l.pubcid=r:e.crumbs&&e.crumbs.pubcid&&(l.pubcid=e.crumbs.pubcid);var t=N(e,"tdid");t&&(l.tdid=t);var n=N(e,"criteoId");n&&(l.cri_prebid=n),e.schain&&(l.schain=JSON.stringify(e.schain)),(0,o.Z)(e,"params.lr_env")&&(l.ats_envelope=e.params.lr_env)})),l.p="["+l.p.toString()+"]",m.length&&(l.eids=JSON.stringify(m));var g="".concat(n,"?").concat((0,a.parseQueryStringParameters)(l)).length-8e3;if(g>0)for(var h=0;h<I.length&&!((g=T(g,l,I[h]))<=0);h++);f.push({method:"GET",url:n,data:l})}if(s.length>0){var x=function(e,r){var t=e[0].schain,n={id:e[0].bidderRequestId,tmax:r.timeout||400,at:1,imp:e.map((function(e){return function(e){var r=(0,o.Z)(e,"ortb2Imp.ext.data.pbadslot"),t=function(e){var r=(0,o.Z)(e,"mediaTypes.video.playerSize");if((0,a.isArrayOfNums)(r,2))return r;if((0,a.isArray)(r)&&(0,a.isArrayOfNums)(r[0],2))return r[0];return null}(e),n={id:e.bidId,tagid:e.adUnitCode,bidfloor:S(e,c.pX),ext:{placement_id:e.params.placementId,tid:(0,o.Z)(e,"ortb2Imp.ext.tid")},video:{w:t[0],h:t[1],linearity:1}},i=(0,o.Z)(e,"mediaTypes.video");Object.keys(i).filter((function(e){return(0,p.q9)(y,e)})).forEach((function(e){return n.video[e]=i[e]}));var d=(0,o.Z)(e,"params.video");Object.keys(d).filter((function(e){return(0,p.q9)(y,e)})).forEach((function(e){return n.video[e]=d[e]})),n.video.skippable&&(n.video.skip=1,delete n.video.skippable);1!==n.video.placement&&(n.video.startdelay=0,n.video.playbackmethod=[2]);r&&(n.ext.gpid=r);return n}(e)})),site:A(e[0],r),device:(0,o.Z)(r,"ortb2.device"),badv:e[0].params.badv||[],bcat:(0,o.Z)(r,"bcat")||e[0].params.bcat||[],ext:{prebid:"7.53.0"},ats_envelope:e[0].params.lr_env};t&&(n.schain=t);e[0].auctionId&&(n.auctionId=e[0].auctionId);return function(e,r){var t=r.gdprConsent,n=(0,o.Z)(r,"gppConsent.gppString"),i=(0,o.Z)(r,"gppConsent.applicableSections");n?(0,d.N)(e,"regs.ext.gpp",n):((0,d.N)(e,"regs.ext.gdpr",t&&t.gdprApplies?1:0),(0,d.N)(e,"user.ext.consent",t&&t.consentString?t.consentString:""));i&&i.length>0&&(0,d.N)(e,"regs.ext.gpp_sid",i);var a=(0,o.Z)(r,"uspConsent");!n&&a&&(0,d.N)(e,"regs.ext.us_privacy",a)}(n,r),n}(s,r);m.length&&(x.user={eids:m}),f.push({method:"POST",url:i,data:x})}return f},interpretResponse:function(e,r){var t=[],n=e.body;(n.length>0&&n.forEach((function(e){e.cpm>0&&t.push(function(e){return{dealId:e.publisherDealId,requestId:e.callback_id,cpm:e.cpm,width:e.width,height:e.height,creativeId:e.creative_id,currency:f,netRevenue:l,ttl:300,ad:e.ad,meta:{advertiserDomains:e.adomain||[],mediaType:c.Mk}}}(e))})),n.seatbid)&&n.seatbid.reduce((function(e,r){return e.concat(r.bid)}),[]).forEach((function(e){return t.push(function(e,r){var t=(0,p.sE)((0,o.Z)(r,"data.imp")||[],(function(r){return r.id===e.impid})),n={dealId:e.dealid,requestId:t.id,cpm:e.price,width:t.video.w,height:t.video.h,creativeId:e.crid||e.adid,currency:f,netRevenue:l,mediaType:c.pX,ttl:m,vastXml:e.adm,meta:{advertiserDomains:e.adomain||[],mediaType:c.pX}};if(t.video.placement&&1!==t.video.placement){var i=s.Th.install({url:g,config:{width:n.width,height:n.height,vastTimeout:15e3,maxAllowedVastTagRedirects:5,allowVpaid:!0,autoPlay:!0,preload:!0,mute:!0},id:t.tagid,loaded:!1});i.setRender((function(e){e.renderer.push((function(){var r=e.renderer,t=r.id,n=r.config;window.YMoutstreamPlayer(e,t,n)}))})),n.renderer=i}return n}(e,r))}));return t},getUserSyncs:function(e,r){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=[],a="&gdpr=".concat(t.gdprApplies?1:0),o="&gdpr_consent=".concat(encodeURIComponent(t.consentString||"")),d="us_privacy=".concat(encodeURIComponent(n)),c="".concat(v,"?").concat(d).concat(a).concat(o);return e.iframeEnabled?i.push({type:"iframe",url:c+"&type=iframe"}):e.pixelEnabled&&i.push({type:"image",url:c+"&type=image"}),i}};function w(e){return!!(0,o.Z)(e,"mediaTypes.banner")}function Z(e){return!!(0,o.Z)(e,"mediaTypes.video")}function k(){return document.querySelector('meta[name="description"]')&&document.querySelector('meta[name="description"]').getAttribute("content")||""}function N(e,r){return"object"===(0,n.Z)((0,o.Z)(e,"userId"))?e.userId[r]:void 0}function S(e,r){var t={};return"function"==typeof e.getFloor&&(t=e.getFloor({currency:f,mediaType:r,size:"*"})),t.floor||e.params.bidfloor||e.params.bidFloor||0}function A(e,r){var t,n={},i=(0,a.parseUrl)((0,o.Z)(r,"refererInfo.page"));(0,a.isEmpty)(i)||(n.page="".concat(i.protocol,"://").concat(i.hostname).concat(i.pathname)),null!==(t=r.refererInfo)&&void 0!==t&&t.ref&&(n.ref=r.refererInfo.ref);var d=document.getElementsByTagName("meta").keywords;d&&d.content&&(n.keywords=d.content);var c=(0,o.Z)(e,"params.site");return c&&Object.keys(c).filter((function(e){return(0,p.q9)(h,e)})).forEach((function(e){return n[e]=c[e]})),n}function T(e,r,t){if(r[t].length>e)return r[t]=r[t].substring(0,r[t].length-e),0;var n=e-r[t].length;return r[t]="",n}function _(e,r){return"".concat(r?"https://ads-stg.yieldmo.com":"https://ads.yieldmo.com").concat(e)}(0,u.dX)(x),(0,i.z)("yieldmoBidAdapter")}},function(e){var r;r=55511,e(e.s=r)}]);
@@ -1 +1 @@
1
- (self.pbjsChunk=self.pbjsChunk||[]).push([[54572],{83519:function(e,t,n){var a=n(78640),i=n(64358),o=n(48928),r=n(64563),d=n(5644),s=n(51039),c=n(18621),u=n(78653),v={},g={},f={},l={};l[d.FP.BID_ADJUSTMENT]=!0,l[d.FP.BIDDER_DONE]=!0,l[d.FP.AUCTION_END]=!0;var p="",b="https://pool.tsukiji.iponweb.net/hba",I="";function S(e,t){e.adUnitCode&&t[e.adUnitCode]&&(e.adUnitName=t[e.adUnitCode]),(0,i.isArray)(e.adUnits)&&e.adUnits.forEach((function(e){e.code&&t[e.code]&&(e.name=t[e.code])})),(0,i.isArray)(e.adUnitCodes)&&(e.adUnitNames=e.adUnitCodes.map((function(e){return t[e]}))),["bids","bidderRequests","bidsReceived","noBids"].forEach((function(n){!function(e,t){(0,i.isArray)(e)&&e.forEach((function(e){S(e,t)}))}(e[n],t)}))}var h=Object.assign((0,r.ZP)({analyticsType:"endpoint"}),{getUrl:function(){return b},track:function(e){var t=e.eventType,n=e.args,a=void 0===n?{}:n;if(t===d.FP.BID_REQUESTED){var o="".concat(a.bidderCode,"_").concat(a.auctionId);v[o]=(0,i.deepClone)(a),v[o].bids=[],a.bids.forEach((function(e){g["".concat(e.bidId,"_").concat(e.auctionId)]=e}))}if(t===d.FP.BID_TIMEOUT&&(0,i.isArray)(a)){var r=h.eventsStorage,s={};a.forEach((function(e){var n="".concat(e.bidId,"_").concat(e.auctionId),a="".concat(e.bidder,"_").concat(e.auctionId);r[e.auctionId]||(r[e.auctionId]={events:[]}),(v[a]||s[e.bidder])&&g[n]&&(s[e.bidder]||(s[e.bidder]=v[a],r[e.auctionId].events.push({eventType:t,params:s[e.bidder]}),delete v[a]),s[e.bidder].bids.push(g[n]),delete g[n])}))}else if(p=a.auctionId||p){var b=h.eventsStorage;b[p]||(b[p]={events:[]});var y=a.refererInfo&&a.refererInfo.page;y&&f[p]!==y&&(f[p]=y);var E=Object.assign({},a);if(delete E.ad,E.bidsReceived&&(E.bidsReceived=E.bidsReceived.map((function(e){var t=Object.assign({},e);return delete t.ad,t}))),l[t]||b[p].events.push({eventType:t,params:E}),t===d.FP.AUCTION_END||t===d.FP.BID_WON){if(E.adServerTargeting=c.q0.getAllTargeting(u.K.getAdUnitCodes(),u.K.getBidsReceived()),h.eventsStorage[p]&&h.eventsStorage[p].events.length){h.eventsStorage[p].page={url:f[p]},h.eventsStorage[p].pubId=I,h.eventsStorage[p].wrapper_version="7.52.0";var A=function(){if(window.googletag&&window.googletag.pubads){var e=googletag.pubads();if(e&&e.getSlots){var t=e.getSlots();if(t&&t.length){var n={};return t.forEach((function(e){var t=e.getSlotElementId(),a=(e.getAdUnitPath()||"").split("/").pop();n[t]=a})),n}}}}();A&&h.eventsStorage[p].events.forEach((function(e){S(e.params,A)}))}h.sendStat(h.eventsStorage[p],p)}}},sendStat:function(e,t){e&&e.events&&e.events.length&&(delete h.eventsStorage[t],(0,o.h)(b,{success:function(){},error:function(){}},JSON.stringify(e),{method:"POST"}))}});h.eventsStorage={},h.originEnableAnalytics=h.enableAnalytics,h.enableAnalytics=function(e){var t=e&&e.options;t&&("string"==typeof t.url&&(b=t.url),t.pubId&&(I=t.pubId.toString())),h.originEnableAnalytics(e)},s.ZP.registerAnalyticsAdapter({adapter:h,code:"yieldone"});(0,a.z)("yieldoneAnalyticsAdapter")}},function(e){e.O(0,[14861],(function(){return t=83519,e(e.s=t);var t}));e.O()}]);
1
+ (self.pbjsChunk=self.pbjsChunk||[]).push([[54572],{83519:function(e,t,n){var a=n(78640),i=n(64358),o=n(48928),r=n(64563),d=n(5644),s=n(51039),c=n(18621),u=n(78653),v={},g={},f={},l={};l[d.FP.BID_ADJUSTMENT]=!0,l[d.FP.BIDDER_DONE]=!0,l[d.FP.AUCTION_END]=!0;var p="",b="https://pool.tsukiji.iponweb.net/hba",I="";function S(e,t){e.adUnitCode&&t[e.adUnitCode]&&(e.adUnitName=t[e.adUnitCode]),(0,i.isArray)(e.adUnits)&&e.adUnits.forEach((function(e){e.code&&t[e.code]&&(e.name=t[e.code])})),(0,i.isArray)(e.adUnitCodes)&&(e.adUnitNames=e.adUnitCodes.map((function(e){return t[e]}))),["bids","bidderRequests","bidsReceived","noBids"].forEach((function(n){!function(e,t){(0,i.isArray)(e)&&e.forEach((function(e){S(e,t)}))}(e[n],t)}))}var h=Object.assign((0,r.ZP)({analyticsType:"endpoint"}),{getUrl:function(){return b},track:function(e){var t=e.eventType,n=e.args,a=void 0===n?{}:n;if(t===d.FP.BID_REQUESTED){var o="".concat(a.bidderCode,"_").concat(a.auctionId);v[o]=(0,i.deepClone)(a),v[o].bids=[],a.bids.forEach((function(e){g["".concat(e.bidId,"_").concat(e.auctionId)]=e}))}if(t===d.FP.BID_TIMEOUT&&(0,i.isArray)(a)){var r=h.eventsStorage,s={};a.forEach((function(e){var n="".concat(e.bidId,"_").concat(e.auctionId),a="".concat(e.bidder,"_").concat(e.auctionId);r[e.auctionId]||(r[e.auctionId]={events:[]}),(v[a]||s[e.bidder])&&g[n]&&(s[e.bidder]||(s[e.bidder]=v[a],r[e.auctionId].events.push({eventType:t,params:s[e.bidder]}),delete v[a]),s[e.bidder].bids.push(g[n]),delete g[n])}))}else if(p=a.auctionId||p){var b=h.eventsStorage;b[p]||(b[p]={events:[]});var y=a.refererInfo&&a.refererInfo.page;y&&f[p]!==y&&(f[p]=y);var E=Object.assign({},a);if(delete E.ad,E.bidsReceived&&(E.bidsReceived=E.bidsReceived.map((function(e){var t=Object.assign({},e);return delete t.ad,t}))),l[t]||b[p].events.push({eventType:t,params:E}),t===d.FP.AUCTION_END||t===d.FP.BID_WON){if(E.adServerTargeting=c.q0.getAllTargeting(u.K.getAdUnitCodes(),u.K.getBidsReceived()),h.eventsStorage[p]&&h.eventsStorage[p].events.length){h.eventsStorage[p].page={url:f[p]},h.eventsStorage[p].pubId=I,h.eventsStorage[p].wrapper_version="7.53.0";var A=function(){if(window.googletag&&window.googletag.pubads){var e=googletag.pubads();if(e&&e.getSlots){var t=e.getSlots();if(t&&t.length){var n={};return t.forEach((function(e){var t=e.getSlotElementId(),a=(e.getAdUnitPath()||"").split("/").pop();n[t]=a})),n}}}}();A&&h.eventsStorage[p].events.forEach((function(e){S(e.params,A)}))}h.sendStat(h.eventsStorage[p],p)}}},sendStat:function(e,t){e&&e.events&&e.events.length&&(delete h.eventsStorage[t],(0,o.h)(b,{success:function(){},error:function(){}},JSON.stringify(e),{method:"POST"}))}});h.eventsStorage={},h.originEnableAnalytics=h.enableAnalytics,h.enableAnalytics=function(e){var t=e&&e.options;t&&("string"==typeof t.url&&(b=t.url),t.pubId&&(I=t.pubId.toString())),h.originEnableAnalytics(e)},s.ZP.registerAnalyticsAdapter({adapter:h,code:"yieldone"});(0,a.z)("yieldoneAnalyticsAdapter")}},function(e){e.O(0,[14861],(function(){return t=83519,e(e.s=t);var t}));e.O()}]);
@@ -1 +1 @@
1
- (self.pbjsChunk=self.pbjsChunk||[]).push([[25995],{716:function(e,t,r){var i=r(71002),n=r(4942),a=r(78640),s=r(64358),o=r(96475),p=r(20265),d=r(14699),c=r(24679),u=r(3193),m=r(25102),l=r(48928);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var g="https://ssp.disqus.com/bid/prebid",f=new RegExp(/VAST\s+version/),v="number",h="string",O="boolean",w="array",S={mimes:w,minduration:v,maxduration:v,startdelay:v,playbackmethod:w,api:w,protocols:w,w:v,h:v,battr:w,linearity:v,placement:v,plcmt:v,minbitrate:v,maxbitrate:v,skip:v},T={code:"zeta_global_ssp",supportedMediaTypes:[c.Mk,c.pX],isBidRequestValid:function(e){return!!(e&&e.bidId&&e.params)||((0,s.logWarn)("Invalid bid request - missing required bid data"),!1)},buildRequests:function(e,t){var r,i=e[0].params,n=e.map((function(e){var t={id:e.bidId,secure:1};if(i.tagid&&(t.tagid=i.tagid),e.mediaTypes)for(var r in e.mediaTypes)switch(r){case c.Mk:t.banner=I(e);break;case c.pX:t.video=j(e)}if(t.banner||t.video||(t.banner=I(e)),"function"==typeof e.getFloor){var n=e.getFloor({currency:"USD",mediaType:t.video?"video":"banner",size:[t.video?t.video.w:t.banner.w,t.video?t.video.h:t.banner.h]});n&&n.floor&&(t.bidfloor=n.floor)}return!t.bidfloor&&i.bidfloor&&(t.bidfloor=i.bidfloor),t})),a={id:t.auctionId,cur:["USD"],imp:n,site:i.site?i.site:{},device:y(y({},(null===(r=t.ortb2)||void 0===r?void 0:r.device)||{}),i.device),user:i.user?i.user:{},app:i.app?i.app:{},ext:{tags:i.tags?i.tags:{},sid:i.sid?i.sid:void 0}},s=t.refererInfo;return a.site.page=s.page||s.topmostLocation,a.site.domain=(0,m.hh)(a.site.page,{noLeadingWww:!0}),a.device.ua=navigator.userAgent,a.device.language=navigator.language,i.test&&(a.test=i.test),t&&t.gdprConsent&&((0,o.N)(a,"user.ext.consent",t.gdprConsent.consentString),(0,o.N)(a,"regs.ext.gdpr",t.gdprConsent.gdprApplies?1:0)),t&&t.uspConsent&&(0,o.N)(a,"regs.ext.us_privacy",t.uspConsent),e[0].schain&&(a.source={ext:{schain:e[0].schain}}),null!=t&&t.timeout&&(a.tmax=t.timeout),function(e,t){Array.isArray(e.userIdAsEids)&&e.userIdAsEids.length>0&&(0,o.N)(t,"user.ext.eids",e.userIdAsEids)}(e[0],a),{method:"POST",url:i.shortname?g.concat("?shortname=",i.shortname):g,data:JSON.stringify(a)}},interpretResponse:function(e,t){var r=[],i=(e||{}).body;return i&&i.seatbid&&i.seatbid[0].bid&&i.seatbid[0].bid.length&&i.seatbid.forEach((function(e){e.bid.forEach((function(e){var t={requestId:e.impid,cpm:e.price,currency:i.cur,width:e.w,height:e.h,ad:e.adm,ttl:200,creativeId:e.crid,netRevenue:true};e.adomain&&e.adomain.length&&(t.meta={advertiserDomains:e.adomain}),function(e,t){e.ext&&e.ext.bidtype?e.ext.bidtype===c.pX?(t.mediaType=c.pX,t.vastXml=t.ad):t.mediaType=c.Mk:f.test(t.ad)?(t.mediaType=c.pX,t.vastXml=t.ad):t.mediaType=c.Mk}(e,t),r.push(t)}))})),r},getUserSyncs:function(e,t,r,i){var n="";return r&&(n+="&gdpr="+(r.gdprApplies?1:0),n+="&gdpr_consent="+encodeURIComponent(r.consentString||"")),i&&(n+="&us_privacy="+encodeURIComponent(i)),!0===u.vc.getConfig("coppa")&&(n+="&coppa=1"),e.iframeEnabled?[{type:"iframe",url:"https://ssp.disqus.com/sync?type=iframe"+n}]:[{type:"image",url:"https://ssp.disqus.com/sync?type=image"+n}]},onTimeout:function(e){e&&(0,l.h)("https://ssp.disqus.com/timeout/prebid",null,JSON.stringify(e),{method:"POST",options:{withCredentials:!1,contentType:"application/json"}})}};function I(e){var t=e.sizes;return e.mediaTypes&&e.mediaTypes.banner&&e.mediaTypes.banner.sizes&&(t=e.mediaTypes.banner.sizes),{w:t[0][0],h:t[0][1]}}function j(e){var t={},r=(0,p.Z)(e,"mediaTypes.video",{});for(var i in S)r.hasOwnProperty(i)&&(t[i]=k(i,r[i],S[i]));return r.playerSize&&((0,s.isArray)(r.playerSize[0])?(t.w=parseInt(r.playerSize[0][0],10),t.h=parseInt(r.playerSize[0][1],10)):(0,s.isNumber)(r.playerSize[0])&&(t.w=parseInt(r.playerSize[0],10),t.h=parseInt(r.playerSize[1],10))),t}function k(e,t,r){var n;switch(r){case O:n=s.isBoolean;break;case v:n=s.isNumber;break;case h:n=s.isStr;break;case w:n=s.isArray}if(n(t))return t;(0,s.logWarn)("Ignoring param key: "+e+", expects "+r+", found "+(0,i.Z)(t))}(0,d.dX)(T),(0,a.z)("zeta_global_sspBidAdapter")}},function(e){var t;t=716,e(e.s=t)}]);
1
+ (self.pbjsChunk=self.pbjsChunk||[]).push([[25995],{716:function(e,t,r){var i=r(71002),n=r(4942),a=r(78640),s=r(64358),o=r(96475),p=r(20265),d=r(14699),c=r(24679),u=r(3193),m=r(25102),b=r(48928);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,i)}return r}function g(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){(0,n.Z)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y="https://ssp.disqus.com/bid/prebid",f="number",v="string",h="boolean",w="array",O={mimes:w,minduration:f,maxduration:f,startdelay:f,playbackmethod:w,api:w,protocols:w,w:f,h:f,battr:w,linearity:f,placement:f,plcmt:f,minbitrate:f,maxbitrate:f,skip:f},S={code:"zeta_global_ssp",supportedMediaTypes:[c.Mk,c.pX],isBidRequestValid:function(e){return!!(e&&e.bidId&&e.params)||((0,s.logWarn)("Invalid bid request - missing required bid data"),!1)},buildRequests:function(e,t){var r,i=e[0].params,n=e.map((function(e){var t={id:e.bidId,secure:1};if(i.tagid&&(t.tagid=i.tagid),e.mediaTypes)for(var r in e.mediaTypes)switch(r){case c.Mk:t.banner=I(e);break;case c.pX:t.video=T(e)}if(t.banner||t.video||(t.banner=I(e)),"function"==typeof e.getFloor){var n=e.getFloor({currency:"USD",mediaType:t.video?"video":"banner",size:[t.video?t.video.w:t.banner.w,t.video?t.video.h:t.banner.h]});n&&n.floor&&(t.bidfloor=n.floor)}return!t.bidfloor&&i.bidfloor&&(t.bidfloor=i.bidfloor),t})),a={id:t.auctionId,cur:["USD"],imp:n,site:i.site?i.site:{},device:g(g({},(null===(r=t.ortb2)||void 0===r?void 0:r.device)||{}),i.device),user:i.user?i.user:{},app:i.app?i.app:{},ext:{tags:i.tags?i.tags:{},sid:i.sid?i.sid:void 0}},s=t.refererInfo;return a.site.page=s.page||s.topmostLocation,a.site.domain=(0,m.hh)(a.site.page,{noLeadingWww:!0}),a.device.ua=navigator.userAgent,a.device.language=navigator.language,i.test&&(a.test=i.test),t&&t.gdprConsent&&((0,o.N)(a,"user.ext.consent",t.gdprConsent.consentString),(0,o.N)(a,"regs.ext.gdpr",t.gdprConsent.gdprApplies?1:0)),t&&t.uspConsent&&(0,o.N)(a,"regs.ext.us_privacy",t.uspConsent),e[0].schain&&(a.source={ext:{schain:e[0].schain}}),null!=t&&t.timeout&&(a.tmax=t.timeout),function(e,t){Array.isArray(e.userIdAsEids)&&e.userIdAsEids.length>0&&(0,o.N)(t,"user.ext.eids",e.userIdAsEids)}(e[0],a),{method:"POST",url:i.shortname?y.concat("?shortname=",i.shortname):y,data:JSON.stringify(a)}},interpretResponse:function(e,t){var r=[],i=(e||{}).body;return i&&i.seatbid&&i.seatbid[0].bid&&i.seatbid[0].bid.length&&i.seatbid.forEach((function(e){e.bid.forEach((function(e){var n={requestId:e.impid,cpm:e.price,currency:i.cur,width:e.w,height:e.h,ad:e.adm,ttl:300,creativeId:e.crid,netRevenue:true};e.adomain&&e.adomain.length&&(n.meta={advertiserDomains:e.adomain}),function(e,t,r){e.ext&&e.ext.prebid&&e.ext.prebid.type?t.mediaType=e.ext.prebid.type===c.pX?c.pX:c.Mk:t.mediaType=r.imp[0].video?c.pX:c.Mk}(e,n,t.data),n.mediaType===c.pX&&(n.vastXml=n.ad),r.push(n)}))})),r},getUserSyncs:function(e,t,r,i){var n="";return r&&(n+="&gdpr="+(r.gdprApplies?1:0),n+="&gdpr_consent="+encodeURIComponent(r.consentString||"")),i&&(n+="&us_privacy="+encodeURIComponent(i)),!0===u.vc.getConfig("coppa")&&(n+="&coppa=1"),e.iframeEnabled?[{type:"iframe",url:"https://ssp.disqus.com/sync?type=iframe"+n}]:[{type:"image",url:"https://ssp.disqus.com/sync?type=image"+n}]},onTimeout:function(e){e&&(0,b.h)("https://ssp.disqus.com/timeout/prebid",null,JSON.stringify(e),{method:"POST",options:{withCredentials:!1,contentType:"application/json"}})}};function I(e){var t=e.sizes;if(e.mediaTypes&&e.mediaTypes.banner&&e.mediaTypes.banner.sizes&&(t=e.mediaTypes.banner.sizes),t.length>1){var r=t.map((function(e){return{w:e[0],h:e[1]}}));return{w:t[0][0],h:t[0][1],format:r}}return{w:t[0][0],h:t[0][1]}}function T(e){var t={},r=(0,p.Z)(e,"mediaTypes.video",{});for(var i in O)r.hasOwnProperty(i)&&(t[i]=j(i,r[i],O[i]));return r.playerSize&&((0,s.isArray)(r.playerSize[0])?(t.w=parseInt(r.playerSize[0][0],10),t.h=parseInt(r.playerSize[0][1],10)):(0,s.isNumber)(r.playerSize[0])&&(t.w=parseInt(r.playerSize[0],10),t.h=parseInt(r.playerSize[1],10))),t}function j(e,t,r){var n;switch(r){case h:n=s.isBoolean;break;case f:n=s.isNumber;break;case v:n=s.isStr;break;case w:n=s.isArray}if(n(t))return t;(0,s.logWarn)("Ignoring param key: "+e+", expects "+r+", found "+(0,i.Z)(t))}(0,d.dX)(S),(0,a.z)("zeta_global_sspBidAdapter")}},function(e){var t;t=716,e(e.s=t)}]);
@@ -251,17 +251,31 @@
251
251
  {
252
252
  "name": "uid2",
253
253
  "params": {
254
+ "uid2ApiBase": "https://operator-integ.uidapi.com", // Omit this setting for production
254
255
  "uid2Token": {
255
- "advertising_token": "example token",
256
- "refresh_token": "aslkdjaslkjdaslkhj",
257
- "identity_expires": Date.now() + 60*1000,
256
+ "advertising_token": "advertising token goes here",
257
+ "refresh_token": "refresh token goes here",
258
+ "identity_expires": Date.now() + 60*1000, // These timestamps should be from the token generate response
258
259
  "refresh_from": Date.now() - 10*1000,
259
260
  "refresh_expires": Date.now() + 12*60*60*1000,
260
- "refresh_response_key": null
261
+ "refresh_response_key": "refresh key goes here"
261
262
  }
262
263
  }
263
- }
264
- ,
264
+ },
265
+ {
266
+ "name": "euid",
267
+ "params": {
268
+ "euidApiBase": "https://integ.euid.eu", // Omit this setting for production
269
+ "euidToken": {
270
+ "advertising_token": "advertising token goes here",
271
+ "refresh_token": "refresh token goes here",
272
+ "identity_expires": Date.now() + 60*1000, // These timestamps should be from the token generate response
273
+ "refresh_from": Date.now() - 10*1000,
274
+ "refresh_expires": Date.now() + 12*60*60*1000,
275
+ "refresh_response_key": "refresh key goes here"
276
+ }
277
+ }
278
+ },
265
279
  {
266
280
  "name": "imuid",
267
281
  "params": {
@@ -40,11 +40,13 @@
40
40
  "tncIdSystem",
41
41
  "trustpidSystem",
42
42
  "uid2IdSystem",
43
+ "euidIdSystem",
43
44
  "unifiedIdSystem",
44
45
  "verizonMediaIdSystem",
45
46
  "zeotapIdPlusIdSystem",
46
47
  "adqueryIdSystem",
47
- "gravitoIdSystem"
48
+ "gravitoIdSystem",
49
+ "freepassIdSystem"
48
50
  ],
49
51
  "adpod": [
50
52
  "freeWheelAdserverVideo",
@@ -1,10 +1,9 @@
1
1
  import { submodule } from '../src/hook.js';
2
- import { config } from '../src/config.js';
3
2
  import { ajax } from '../src/ajax.js';
4
3
  import {
5
4
  logMessage, logError,
6
- deepAccess, mergeDeep,
7
- isNumber, isArray, deepSetValue
5
+ deepAccess, deepSetValue, mergeDeep,
6
+ isNumber, isArray,
8
7
  } from '../src/utils.js';
9
8
 
10
9
  // Constants
@@ -14,7 +13,6 @@ const ORTB2_NAME = '1plusX.com'
14
13
  const PAPI_VERSION = 'v1.0';
15
14
  const LOG_PREFIX = '[1plusX RTD Module]: ';
16
15
  const OPE_FPID = 'ope_fpid'
17
- const LEGACY_SITE_KEYWORDS_BIDDERS = ['appnexus'];
18
16
  export const segtaxes = {
19
17
  // cf. https://github.com/InteractiveAdvertisingBureau/openrtb/pull/108
20
18
  AUDIENCE: 526,
@@ -151,18 +149,7 @@ const getTargetingDataFromPapi = (papiUrl) => {
151
149
  * @param {string[]} topics Represents the topics of the page
152
150
  * @returns {Object} Object describing the updates to make on bidder configs
153
151
  */
154
- export const buildOrtb2Updates = ({ segments = [], topics = [] }, bidder) => {
155
- // Currently appnexus bidAdapter doesn't support topics in `site.content.data.segment`
156
- // Therefore, writing them in `site.keywords` until it's supported
157
- // Other bidAdapters do fine with `site.content.data.segment`
158
- const writeToLegacySiteKeywords = LEGACY_SITE_KEYWORDS_BIDDERS.includes(bidder);
159
- if (writeToLegacySiteKeywords) {
160
- const site = {
161
- keywords: topics.join(',')
162
- };
163
- return { site };
164
- }
165
-
152
+ export const buildOrtb2Updates = ({ segments = [], topics = [] }) => {
166
153
  const userData = {
167
154
  name: ORTB2_NAME,
168
155
  segment: segments.map((segmentId) => ({ id: segmentId }))
@@ -172,81 +159,64 @@ export const buildOrtb2Updates = ({ segments = [], topics = [] }, bidder) => {
172
159
  segment: topics.map((topicId) => ({ id: topicId })),
173
160
  ext: { segtax: segtaxes.CONTENT }
174
161
  }
175
- return { userData, siteContentData };
162
+ // Currently appnexus bidAdapter doesn't support topics in `site.content.data.segment`
163
+ // Therefore, writing them in `site.keywords` until it's supported
164
+ // Other bidAdapters do fine with `site.content.data.segment`
165
+ const siteKeywords = topics.map(topic => `1plusX=${topic}`).join(',');
166
+
167
+ return { userData, siteContentData, siteKeywords };
176
168
  }
177
169
 
178
170
  /**
179
171
  * Merges the targeting data with the existing config for bidder and updates
180
172
  * @param {string} bidder Bidder for which to set config
181
173
  * @param {Object} ortb2Updates Updates to be applied to bidder config
182
- * @param {Object} bidderConfigs All current bidder configs
183
- * @returns {Object} Updated bidder config
174
+ * @param {Object} biddersOrtb2 All current bidder configs
184
175
  */
185
- export const updateBidderConfig = (bidder, ortb2Updates, bidderConfigs) => {
186
- const { site, siteContentData, userData } = ortb2Updates;
187
- const bidderConfigCopy = mergeDeep({}, bidderConfigs[bidder]);
176
+ export const updateBidderConfig = (bidder, ortb2Updates, biddersOrtb2) => {
177
+ const { siteKeywords, siteContentData, userData } = ortb2Updates;
178
+ mergeDeep(biddersOrtb2, { [bidder]: {} });
179
+ const bidderConfig = deepAccess(biddersOrtb2, bidder);
188
180
 
189
- if (site) {
190
- // Legacy : cf. comment on buildOrtb2Updates first lines
191
- const currentSite = deepAccess(bidderConfigCopy, 'ortb2.site');
192
- const updatedSite = mergeDeep(currentSite, site);
193
- deepSetValue(bidderConfigCopy, 'ortb2.site', updatedSite);
181
+ {
182
+ // Legacy : cf. comment on buildOrtb2Updates
183
+ const siteKeywordsPath = 'site.keywords';
184
+ deepSetValue(bidderConfig, siteKeywordsPath, siteKeywords);
194
185
  }
195
186
 
196
- if (siteContentData) {
197
- const siteDataPath = 'ortb2.site.content.data';
198
- const currentSiteContentData = deepAccess(bidderConfigCopy, siteDataPath) || [];
187
+ {
188
+ const siteDataPath = 'site.content.data';
189
+ const currentSiteContentData = deepAccess(bidderConfig, siteDataPath) || [];
199
190
  const updatedSiteContentData = [
200
191
  ...currentSiteContentData.filter(({ name }) => name != siteContentData.name),
201
192
  siteContentData
202
193
  ];
203
- deepSetValue(bidderConfigCopy, siteDataPath, updatedSiteContentData);
194
+ deepSetValue(bidderConfig, siteDataPath, updatedSiteContentData);
204
195
  }
205
196
 
206
- if (userData) {
207
- const userDataPath = 'ortb2.user.data';
208
- const currentUserData = deepAccess(bidderConfigCopy, userDataPath) || [];
197
+ {
198
+ const userDataPath = 'user.data';
199
+ const currentUserData = deepAccess(bidderConfig, userDataPath) || [];
209
200
  const updatedUserData = [
210
201
  ...currentUserData.filter(({ name }) => name != userData.name),
211
202
  userData
212
203
  ];
213
- deepSetValue(bidderConfigCopy, userDataPath, updatedUserData);
204
+ deepSetValue(bidderConfig, userDataPath, updatedUserData);
214
205
  }
215
-
216
- return bidderConfigCopy;
217
206
  };
218
207
 
219
- const setAppnexusAudiences = (audiences) => {
220
- config.setConfig({
221
- appnexusAuctionKeywords: {
222
- '1plusX': audiences,
223
- },
224
- });
225
- }
226
-
227
208
  /**
228
209
  * Updates bidder configs with the targeting data retreived from Profile API
229
210
  * @param {Object} papiResponse Response from Profile API
230
211
  * @param {Object} config Module configuration
231
212
  * @param {string[]} config.bidders Bidders specified in module's configuration
232
213
  */
233
- export const setTargetingDataToConfig = (papiResponse, { bidders }) => {
234
- const bidderConfigs = config.getBidderConfig();
214
+ export const setTargetingDataToConfig = (papiResponse, { bidders, biddersOrtb2 }) => {
235
215
  const { s: segments, t: topics } = papiResponse;
236
216
 
217
+ const ortb2Updates = buildOrtb2Updates({ segments, topics });
237
218
  for (const bidder of bidders) {
238
- const ortb2Updates = buildOrtb2Updates({ segments, topics }, bidder);
239
- const updatedBidderConfig = updateBidderConfig(bidder, ortb2Updates, bidderConfigs);
240
- if (updatedBidderConfig) {
241
- config.setBidderConfig({
242
- bidders: [bidder],
243
- config: updatedBidderConfig
244
- });
245
- }
246
- if (bidder === 'appnexus') {
247
- // Do the legacy stuff for appnexus with segments
248
- setAppnexusAudiences(segments);
249
- }
219
+ updateBidderConfig(bidder, ortb2Updates, biddersOrtb2);
250
220
  }
251
221
  }
252
222
 
@@ -272,13 +242,14 @@ const getBidRequestData = (reqBidsConfigObj, callback, moduleConfig, userConsent
272
242
  try {
273
243
  // Get the required config
274
244
  const { customerId, bidders } = extractConfig(moduleConfig, reqBidsConfigObj);
245
+ const { ortb2Fragments: { bidder: biddersOrtb2 } } = reqBidsConfigObj;
275
246
  // Get PAPI URL
276
247
  const papiUrl = getPapiUrl(customerId, extractConsent(userConsent) || {}, extractFpid())
277
248
  // Call PAPI
278
249
  getTargetingDataFromPapi(papiUrl)
279
250
  .then((papiResponse) => {
280
251
  logMessage(LOG_PREFIX, 'Get targeting data request successful');
281
- setTargetingDataToConfig(papiResponse, { bidders });
252
+ setTargetingDataToConfig(papiResponse, { bidders, biddersOrtb2 });
282
253
  callback();
283
254
  })
284
255
  } catch (error) {
@@ -44,7 +44,11 @@ const ADAGIO_TAG_URL = 'https://script.4dex.io/localstore.js';
44
44
  const ADAGIO_LOCALSTORAGE_KEY = 'adagioScript';
45
45
  const GVLID = 617;
46
46
  export const storage = getStorageManager({bidderCode: BIDDER_CODE});
47
- export const RENDERER_URL = 'https://script.4dex.io/outstream-player.js';
47
+
48
+ const BB_PUBLICATION = 'adagio';
49
+ const BB_RENDERER_DEFAULT = 'renderer';
50
+ export const BB_RENDERER_URL = `https://${BB_PUBLICATION}.bbvms.com/r/$RENDERER.js`;
51
+
48
52
  const MAX_SESS_DURATION = 30 * 60 * 1000;
49
53
  const ADAGIO_PUBKEY = 'AL16XT44Sfp+8SHVF1UdC7hydPSMVLMhsYknKDdwqq+0ToDSJrP0+Qh0ki9JJI2uYm/6VEYo8TJED9WfMkiJ4vf02CW3RvSWwc35bif2SK1L8Nn/GfFYr/2/GG/Rm0vUsv+vBHky6nuuYls20Og0HDhMgaOlXoQ/cxMuiy5QSktp';
50
54
  const ADAGIO_PUBKEY_E = 65537;
@@ -62,7 +66,7 @@ export const ORTB_VIDEO_PARAMS = {
62
66
  'startdelay': (value) => isInteger(value),
63
67
  'placement': (value) => isInteger(value),
64
68
  'linearity': (value) => isInteger(value),
65
- 'skip': (value) => isInteger(value),
69
+ 'skip': (value) => [1, 0].includes(value),
66
70
  'skipmin': (value) => isInteger(value),
67
71
  'skipafter': (value) => isInteger(value),
68
72
  'sequence': (value) => isInteger(value),
@@ -443,16 +447,6 @@ function _buildVideoBidRequest(bidRequest) {
443
447
  });
444
448
  }
445
449
 
446
- function _renderer(bid) {
447
- bid.renderer.push(() => {
448
- if (typeof window.ADAGIO.outstreamPlayer === 'function') {
449
- window.ADAGIO.outstreamPlayer(bid);
450
- } else {
451
- logError(`${LOG_PREFIX} Adagio outstream player is not defined`);
452
- }
453
- });
454
- }
455
-
456
450
  function _parseNativeBidResponse(bid) {
457
451
  if (!bid.admNative || !Array.isArray(bid.admNative.assets)) {
458
452
  logError(`${LOG_PREFIX} Invalid native response`);
@@ -881,6 +875,77 @@ function storeRequestInAdagioNS(bidRequest) {
881
875
  };
882
876
  }
883
877
 
878
+ // See https://support.bluebillywig.com/developers/vast-renderer/
879
+ const OUTSTREAM_RENDERER = {
880
+ bootstrapPlayer: function(bid) {
881
+ const rendererCode = bid.outstreamRendererCode;
882
+
883
+ const config = {
884
+ code: bid.adUnitCode,
885
+ };
886
+
887
+ if (bid.vastXml) {
888
+ config.vastXml = bid.vastXml;
889
+ } else if (bid.vastUrl) {
890
+ config.vastUrl = bid.vastUrl;
891
+ }
892
+
893
+ if (!bid.vastXml && !bid.vastUrl) {
894
+ logError(`${LOG_PREFIX} no vastXml or vastUrl on bid`);
895
+ return;
896
+ }
897
+
898
+ if (!window.bluebillywig || !window.bluebillywig.renderers || !window.bluebillywig.renderers.length) {
899
+ logError(`${LOG_PREFIX} no BlueBillywig renderers found!`);
900
+ return;
901
+ }
902
+
903
+ const rendererId = this.getRendererId(BB_PUBLICATION, rendererCode);
904
+
905
+ const override = {}
906
+ if (bid.skipOffset) {
907
+ override.skipOffset = bid.skipOffset.toString()
908
+ }
909
+
910
+ const renderer = window.bluebillywig.renderers.find(bbr => bbr._id === rendererId);
911
+ if (!renderer) {
912
+ logError(`${LOG_PREFIX} couldn't find a renderer with ID ${rendererId}`);
913
+ return;
914
+ }
915
+
916
+ const el = document.getElementById(bid.adUnitCode);
917
+
918
+ renderer.bootstrap(config, el, override);
919
+ },
920
+ newRenderer: function(adUnitCode, rendererCode) {
921
+ const rendererUrl = BB_RENDERER_URL.replace('$RENDERER', rendererCode);
922
+
923
+ const renderer = Renderer.install({
924
+ url: rendererUrl,
925
+ loaded: false,
926
+ adUnitCode
927
+ });
928
+
929
+ try {
930
+ renderer.setRender(this.outstreamRender);
931
+ } catch (err) {
932
+ logError(`${LOG_PREFIX} error trying to setRender`, err);
933
+ }
934
+
935
+ return renderer;
936
+ },
937
+ outstreamRender: function(bid) {
938
+ bid.renderer.push(() => {
939
+ OUTSTREAM_RENDERER.bootstrapPlayer(bid)
940
+ });
941
+ },
942
+ getRendererId: function(publication, renderer) {
943
+ // By convention, the RENDERER_ID is always the publication name (adagio) and the ad unit code (eg. renderer)
944
+ // joined together by a dash. It's used to identify the correct renderer instance on the page in case there's multiple.
945
+ return `${publication}-${renderer}`;
946
+ }
947
+ };
948
+
884
949
  export const spec = {
885
950
  code: BIDDER_CODE,
886
951
  gvlid: GVLID,
@@ -1110,21 +1175,18 @@ export const spec = {
1110
1175
  const mediaTypeContext = deepAccess(bidReq, 'mediaTypes.video.context');
1111
1176
  // Adagio SSP returns a `vastXml` only. No `vastUrl` nor `videoCacheKey`.
1112
1177
  if (!bidObj.vastUrl && bidObj.vastXml) {
1113
- bidObj.vastUrl = 'data:text/xml;charset=utf-8;base64,' + btoa(bidObj.vastXml.replace(/\\"/g, '"'));
1178
+ bidObj.vastUrl = 'data:text/xml;charset=utf-8;base64,' + window.btoa(bidObj.vastXml.replace(/\\"/g, '"'));
1114
1179
  }
1115
1180
 
1116
1181
  if (mediaTypeContext === OUTSTREAM) {
1117
- bidObj.renderer = Renderer.install({
1118
- id: bidObj.requestId,
1119
- adUnitCode: bidObj.adUnitCode,
1120
- url: bidObj.urlRenderer || RENDERER_URL,
1121
- config: {
1122
- ...deepAccess(bidReq, 'mediaTypes.video'),
1123
- ...deepAccess(bidObj, 'outstream', {})
1124
- }
1125
- });
1126
-
1127
- bidObj.renderer.setRender(_renderer);
1182
+ bidObj.outstreamRendererCode = deepAccess(bidReq, 'params.rendererCode', BB_RENDERER_DEFAULT)
1183
+
1184
+ if (deepAccess(bidReq, 'mediaTypes.video.skip')) {
1185
+ const skipOffset = deepAccess(bidReq, 'mediaTypes.video.skipafter', 5) // default 5s.
1186
+ bidObj.skipOffset = skipOffset
1187
+ }
1188
+
1189
+ bidObj.renderer = OUTSTREAM_RENDERER.newRenderer(bidObj.adUnitCode, bidObj.outstreamRendererCode);
1128
1190
  }
1129
1191
  }
1130
1192
 
@@ -90,7 +90,6 @@ export const spec = {
90
90
  {code: 'denakop'},
91
91
  {code: 'rtbanalytica'},
92
92
  {code: 'unibots'},
93
- {code: 'catapultx'},
94
93
  {code: 'ergadx'},
95
94
  {code: 'turktelekom'},
96
95
  {code: 'felixads'},
@@ -100,7 +99,8 @@ export const spec = {
100
99
  {code: 'rtbdemand_com'},
101
100
  {code: 'bidbuddy'},
102
101
  {code: 'adliveconnect'},
103
- {code: 'didnadisplay'}
102
+ {code: 'didnadisplay'},
103
+ {code: 'qortex'}
104
104
  ],
105
105
  supportedMediaTypes: [BANNER, VIDEO, NATIVE],
106
106
 
@@ -12,8 +12,9 @@ import {
12
12
  deepAccess,
13
13
  } from '../src/utils.js';
14
14
  import { getGlobal } from '../src/prebidGlobal.js';
15
- import {getStorageManager} from '../src/storageManager.js';
16
- import {MODULE_TYPE_RTD} from '../src/activities/modules.js';
15
+ import { getStorageManager } from '../src/storageManager.js';
16
+ import { loadExternalScript } from '../src/adloader.js';
17
+ import { MODULE_TYPE_RTD } from '../src/activities/modules.js';
17
18
 
18
19
  const MODULE_NAME = 'realTimeData';
19
20
  const SUBMODULE_NAME = 'airgrid';
@@ -25,6 +26,11 @@ export const storage = getStorageManager({
25
26
  moduleName: SUBMODULE_NAME,
26
27
  });
27
28
 
29
+ function getModuleUrl(accountId) {
30
+ const path = accountId ?? 'sdk';
31
+ return `https://cdn.edkt.io/${path}/edgekit.min.js`;
32
+ }
33
+
28
34
  /**
29
35
  * Attach script tag to DOM
30
36
  * @param {Object} rtdConfig
@@ -33,19 +39,12 @@ export const storage = getStorageManager({
33
39
  export function attachScriptTagToDOM(rtdConfig) {
34
40
  var edktInitializor = (window.edktInitializor = window.edktInitializor || {});
35
41
  if (!edktInitializor.invoked) {
36
- edktInitializor.invoked = true;
37
42
  edktInitializor.accountId = rtdConfig.params.accountId;
38
43
  edktInitializor.publisherId = rtdConfig.params.publisherId;
39
44
  edktInitializor.apiKey = rtdConfig.params.apiKey;
40
- edktInitializor.load = function (e) {
41
- var p = e || 'sdk';
42
- var n = document.createElement('script');
43
- n.type = 'module';
44
- n.async = true;
45
- n.src = 'https://cdn.edkt.io/' + p + '/edgekit.min.js';
46
- document.getElementsByTagName('head')[0].appendChild(n);
47
- };
48
- edktInitializor.load(edktInitializor.accountId);
45
+ edktInitializor.invoked = true;
46
+ const moduleSrc = getModuleUrl(rtdConfig.params.accountId);
47
+ loadExternalScript(moduleSrc, SUBMODULE_NAME);
49
48
  }
50
49
  }
51
50
 
@@ -28,7 +28,8 @@ export const spec = {
28
28
  code: BIDDER_CODE,
29
29
  supportedMediaTypes: [BANNER, VIDEO],
30
30
  aliases: [
31
- {code: 'bcmint'}
31
+ {code: 'bcmint'},
32
+ {code: 'bidgency'}
32
33
  ],
33
34
 
34
35
  isBidRequestValid: bid => {
@@ -37,6 +37,8 @@ export const spec = {
37
37
  */
38
38
  buildRequests: function(validBidRequests, bidderRequest) {
39
39
  const slots = validBidRequests.map(beOpRequestSlotsMaker);
40
+ const firstPartyData = bidderRequest.ortb2;
41
+ const psegs = (firstPartyData && firstPartyData.user && firstPartyData.user.ext && firstPartyData.user.ext.data) ? firstPartyData.user.ext.data.permutive : undefined;
40
42
  const pageUrl = getPageUrl(bidderRequest.refererInfo, window);
41
43
  const gdpr = bidderRequest.gdprConsent;
42
44
  const firstSlot = slots[0];
@@ -68,6 +70,10 @@ export const spec = {
68
70
  tc_string: (gdpr && gdpr.gdprApplies) ? gdpr.consentString : null,
69
71
  };
70
72
 
73
+ if (psegs) {
74
+ Object.assign(payloadObject, {psegs: psegs});
75
+ }
76
+
71
77
  const payloadString = JSON.stringify(payloadObject);
72
78
  return {
73
79
  method: 'POST',
@@ -0,0 +1,70 @@
1
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
2
+ import { BANNER } from '../src/mediaTypes.js';
3
+ // import { logError, logInfo, logWarn, parseUrl } from '../src/utils.js';
4
+
5
+ const BIDDER_CODE = 'conceptx';
6
+ let ENDPOINT_URL = 'https://conceptx.cncpt-central.com/openrtb';
7
+ // const LOG_PREFIX = 'ConceptX: ';
8
+
9
+ export const spec = {
10
+ code: BIDDER_CODE,
11
+ supportedMediaTypes: [BANNER],
12
+ isBidRequestValid: function (bid) {
13
+ return !!(bid.bidId);
14
+ },
15
+
16
+ buildRequests: function (validBidRequests, bidderRequest) {
17
+ // logWarn(LOG_PREFIX + 'all native assets containing URL should be sent as placeholders with sendId(icon, image, clickUrl, displayUrl, privacyLink, privacyIcon)');
18
+ const requests = [];
19
+
20
+ if (bidderRequest && bidderRequest.gdprConsent && bidderRequest.gdprConsent.gdprApplies) {
21
+ ENDPOINT_URL += '?gdpr_applies=' + bidderRequest.gdprConsent.gdprApplies;
22
+ ENDPOINT_URL += '&consentString=' + bidderRequest.gdprConsent.consentString;
23
+ }
24
+ for (var i = 0; i < validBidRequests.length; i++) {
25
+ const requestParent = { adUnits: [], meta: {} };
26
+ const bid = validBidRequests[i]
27
+ const { adUnitCode, auctionId, bidId, bidder, bidderRequestId, ortb2 } = bid
28
+ requestParent.meta = { adUnitCode, auctionId, bidId, bidder, bidderRequestId, ortb2 }
29
+
30
+ const { site, adunit } = bid.params
31
+ const adUnit = { site, adunit, targetId: bid.bidId }
32
+ if (bid.mediaTypes && bid.mediaTypes.banner && bid.mediaTypes.banner.sizes) adUnit.dimensions = bid.mediaTypes.banner.sizes
33
+ requestParent.adUnits.push(adUnit);
34
+ requests.push({
35
+ method: 'POST',
36
+ url: ENDPOINT_URL,
37
+ options: {
38
+ withCredentials: false,
39
+ },
40
+ data: JSON.stringify(requestParent),
41
+ });
42
+ }
43
+
44
+ return requests;
45
+ },
46
+
47
+ interpretResponse: function (serverResponse, bidRequest) {
48
+ const bidResponsesFromServer = serverResponse.body.bidResponses;
49
+ const firstDummy = bidResponsesFromServer[0]
50
+ const firstSeat = firstDummy.ads[0]
51
+ const bidResponses = [];
52
+ const bidResponse = {
53
+ requestId: firstSeat.requestId,
54
+ cpm: firstSeat.cpm,
55
+ width: firstSeat.width,
56
+ height: firstSeat.height,
57
+ creativeId: firstSeat.creativeId,
58
+ dealId: firstSeat.dealId,
59
+ currency: firstSeat.currency,
60
+ netRevenue: true,
61
+ ttl: firstSeat.ttl,
62
+ referrer: firstSeat.referrer,
63
+ ad: firstSeat.html
64
+ };
65
+ bidResponses.push(bidResponse);
66
+ return bidResponses;
67
+ },
68
+
69
+ }
70
+ registerBidder(spec);