prebid.js 9.5.0 → 9.7.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.
- package/.github/PULL_REQUEST_TEMPLATE.md +1 -1
- package/.github/release-drafter.yml +4 -0
- package/README.md +4 -4
- package/dist/33acrossAnalyticsAdapter.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/BTBidAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adagioUtils.js +1 -1
- package/dist/addefendBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adstirBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/agmaAnalyticsAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/chunk-core.js +1 -1
- package/dist/cleanmedianetBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/connectionInfo.js +1 -0
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailymotionBidAdapter.js +1 -1
- package/dist/dependencies.json +31 -2
- package/dist/docereeAdManagerBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/exadsBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/gamoshiBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/idImportLibrary.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqAnalyticsAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kimberliteBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luceadBidAdapter.js +1 -1
- package/dist/mabidderBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/missenaBidAdapter.js +1 -1
- package/dist/mobianRtdProvider.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidAnalyticsAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +174 -170
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openwebBidAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/orbidderBidAdapter.js +1 -1
- package/dist/ortbConverter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/ownadxBidAdapter.js +1 -0
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prismaBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/publirBidAdapter.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/riseUtils.js +1 -0
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smarthubBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stnBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/telariaBidAdapter.js +1 -1
- package/dist/teqblazeUtils.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/themoneytizerBidAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/uid2IdSystem_shared.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/viantOrtbBidAdapter.js +1 -1
- package/dist/vidazooUtils.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/wurflRtdProvider.js +1 -0
- package/dist/yahooAdsBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/wurflRtdProvider_example.html +106 -0
- package/libraries/connectionInfo/connectionUtils.js +33 -0
- package/libraries/ortbConverter/processors/video.js +2 -24
- package/libraries/riseUtils/index.js +331 -0
- package/libraries/teqblazeUtils/bidderUtils.js +15 -11
- package/libraries/vidazooUtils/bidderUtils.js +16 -0
- package/modules/.submodules.json +3 -1
- package/modules/51DegreesRtdProvider.md +11 -7
- package/modules/adagioAnalyticsAdapter.js +101 -84
- package/modules/adagioAnalyticsAdapter.md +4 -0
- package/modules/adagioBidAdapter.js +14 -66
- package/modules/adkernelBidAdapter.js +2 -2
- package/modules/aidemBidAdapter.js +2 -0
- package/modules/appnexusBidAdapter.js +1 -1
- package/modules/cleanmedianetBidAdapter.js +1 -1
- package/modules/connectIdSystem.js +5 -3
- package/modules/dailymotionBidAdapter.js +19 -0
- package/modules/docereeAdManagerBidAdapter.js +9 -12
- package/modules/gamoshiBidAdapter.js +1 -1
- package/modules/greenbidsAnalyticsAdapter.js +7 -4
- package/modules/greenbidsRtdProvider.js +15 -5
- package/modules/id5IdSystem.js +14 -93
- package/modules/idImportLibrary.js +14 -6
- package/modules/insticatorBidAdapter.js +35 -31
- package/modules/kargoBidAdapter.js +11 -14
- package/modules/kimberliteBidAdapter.js +24 -7
- package/modules/kimberliteBidAdapter.md +30 -1
- package/modules/minutemediaBidAdapter.js +21 -398
- package/modules/mobianRtdProvider.js +28 -14
- package/modules/nexx360BidAdapter.js +3 -2
- package/modules/openwebBidAdapter.js +18 -396
- package/modules/ownadxBidAdapter.js +99 -0
- package/modules/prismaBidAdapter.js +1 -27
- package/modules/publirBidAdapter.js +20 -273
- package/modules/pubmaticBidAdapter.js +2 -1
- package/modules/resetdigitalBidAdapter.md +54 -45
- package/modules/riseBidAdapter.js +19 -400
- package/modules/sharethroughBidAdapter.js +5 -0
- package/modules/shinezBidAdapter.js +17 -361
- package/modules/smarthubBidAdapter.js +45 -177
- package/modules/stnBidAdapter.js +22 -398
- package/modules/telariaBidAdapter.js +2 -32
- package/modules/ttdBidAdapter.js +14 -32
- package/modules/uid2IdSystem_shared.js +51 -39
- package/modules/viantOrtbBidAdapter.js +1 -1
- package/modules/wurflRtdProvider.js +213 -0
- package/modules/wurflRtdProvider.md +67 -0
- package/package.json +1 -1
- package/src/adloader.js +1 -0
- package/src/prebid.js +6 -1
- package/src/video.js +78 -1
- package/test/spec/modules/adagioAnalyticsAdapter_spec.js +231 -141
- package/test/spec/modules/adagioBidAdapter_spec.js +32 -67
- package/test/spec/modules/appnexusBidAdapter_spec.js +0 -33
- package/test/spec/modules/cleanmedianetBidAdapter_spec.js +1 -1
- package/test/spec/modules/connectIdSystem_spec.js +27 -28
- package/test/spec/modules/dailymotionBidAdapter_spec.js +50 -0
- package/test/spec/modules/docereeAdManagerBidAdapter_spec.js +1 -0
- package/test/spec/modules/gamoshiBidAdapter_spec.js +1 -1
- package/test/spec/modules/id5IdSystem_spec.js +25 -98
- package/test/spec/modules/idImportLibrary_spec.js +14 -0
- package/test/spec/modules/insticatorBidAdapter_spec.js +8 -1
- package/test/spec/modules/kargoBidAdapter_spec.js +7 -8
- package/test/spec/modules/kimberliteBidAdapter_spec.js +137 -65
- package/test/spec/modules/mobianRtdProvider_spec.js +46 -43
- package/test/spec/modules/nexx360BidAdapter_spec.js +1 -1
- package/test/spec/modules/ownadxBidAdapter_spec.js +103 -0
- package/test/spec/modules/pubmaticBidAdapter_spec.js +18 -0
- package/test/spec/modules/sharethroughBidAdapter_spec.js +35 -0
- package/test/spec/modules/smarthubBidAdapter_spec.js +6 -4
- package/test/spec/modules/ttdBidAdapter_spec.js +10 -1
- package/test/spec/modules/viantOrtbBidAdapter_spec.js +1 -1
- package/test/spec/modules/vidazooBidAdapter_spec.js +12 -4
- package/test/spec/modules/wurflRtdProvider_spec.js +324 -0
- package/test/spec/unit/pbjs_api_spec.js +11 -0
- package/test/spec/video_spec.js +103 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[98282],{26504:(e,t,r)=>{var n=r(7873),i=r(70433),o=r(91069),a=r(71371),s=r(57377),p=r(43272),d=r(12938),l=r(76568);const u="triplelift";let c=null,m=null;const f=(0,d.vM)({bidderCode:u}),g={gvlid:28,code:u,supportedMediaTypes:[a.D4,a.G_],isBidRequestValid:function(e){return void 0!==e.params.inventoryCode},buildRequests:function(e,t){let r="https://tlx.3lift.com/header/auction?",n=function(e,t){let r={},{schain:n}=e[0];const a=function(e){const t={},r={},n={},i=e.ortb2||{},a=function(){const e=f.getDataFromLocalStorage("opecloud_ctx");if(!e)return null;try{return JSON.parse(e)}catch(e){return(0,o.logError)("Triplelift: error parsing JSON: ",e),null}}(),s=Object.assign({},i.site),p=Object.assign({},i.user);if(a){p.data=p.data||[];try{p.data.push({name:"www.1plusx.com",ext:a})}catch(e){(0,o.logError)("Triplelift: error adding 1plusX segments: ",e)}}x(r,s),x(n,p),(0,o.isEmpty)(r)||(t.context=r);(0,o.isEmpty)(n)||(t.user=n);return t}(t);r.imp=e.map((function(e,t){let r={id:t,tagid:e.params.inventoryCode,floor:h(e)};return b(e)&&(r.video=function(e){let t={...e.params.video,...e.mediaTypes.video};try{t.w||(t.w=t.playerSize[0][0]),t.h||(t.h=t.playerSize[0][1])}catch(e){(0,o.logWarn)("Video size not defined",e)}t.playbackmethod&&Number.isInteger(t.playbackmethod)&&(t.playbackmethod=Array.from(String(t.playbackmethod),Number));return delete t.playerSize,t}(e)),e.mediaTypes.banner&&!y(e)&&(r.banner={format:_(e.sizes)}),(0,o.isEmpty)(e.ortb2Imp)||(r.fpd=function(e){const t={},r={};x(r,e.ext),(0,o.isEmpty)(r)||(t.context=r);return t}(e.ortb2Imp),(0,o.isEmpty)(e.ortb2Imp.ext)||(r.ext={...e.ortb2Imp.ext})),r}));let s=[];e[0].userIdAsEids&&(s=i.A(e[0],"userIdAsEids"),r.user={ext:{eids:s}});let p=function(e,t){let r={};(0,o.isEmpty)(e)||(r.schain={...e});(0,o.isEmpty)(t)||(r.fpd={...t});return r}(n,a);(0,o.isEmpty)(p)||(r.ext=p);t?.ortb2?.regs?.gpp&&(r.regs=Object.assign({},t.ortb2.regs));t?.ortb2&&(r.ext.ortb2=Object.assign({},t.ortb2));return r}(e,t);if(r=(0,l.v)(r,"lib","prebid"),r=(0,l.v)(r,"v","9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[98282],{26504:(e,t,r)=>{var n=r(7873),i=r(70433),o=r(91069),a=r(71371),s=r(57377),p=r(43272),d=r(12938),l=r(76568);const u="triplelift";let c=null,m=null;const f=(0,d.vM)({bidderCode:u}),g={gvlid:28,code:u,supportedMediaTypes:[a.D4,a.G_],isBidRequestValid:function(e){return void 0!==e.params.inventoryCode},buildRequests:function(e,t){let r="https://tlx.3lift.com/header/auction?",n=function(e,t){let r={},{schain:n}=e[0];const a=function(e){const t={},r={},n={},i=e.ortb2||{},a=function(){const e=f.getDataFromLocalStorage("opecloud_ctx");if(!e)return null;try{return JSON.parse(e)}catch(e){return(0,o.logError)("Triplelift: error parsing JSON: ",e),null}}(),s=Object.assign({},i.site),p=Object.assign({},i.user);if(a){p.data=p.data||[];try{p.data.push({name:"www.1plusx.com",ext:a})}catch(e){(0,o.logError)("Triplelift: error adding 1plusX segments: ",e)}}x(r,s),x(n,p),(0,o.isEmpty)(r)||(t.context=r);(0,o.isEmpty)(n)||(t.user=n);return t}(t);r.imp=e.map((function(e,t){let r={id:t,tagid:e.params.inventoryCode,floor:h(e)};return b(e)&&(r.video=function(e){let t={...e.params.video,...e.mediaTypes.video};try{t.w||(t.w=t.playerSize[0][0]),t.h||(t.h=t.playerSize[0][1])}catch(e){(0,o.logWarn)("Video size not defined",e)}t.playbackmethod&&Number.isInteger(t.playbackmethod)&&(t.playbackmethod=Array.from(String(t.playbackmethod),Number));return delete t.playerSize,t}(e)),e.mediaTypes.banner&&!y(e)&&(r.banner={format:_(e.sizes)}),(0,o.isEmpty)(e.ortb2Imp)||(r.fpd=function(e){const t={},r={};x(r,e.ext),(0,o.isEmpty)(r)||(t.context=r);return t}(e.ortb2Imp),(0,o.isEmpty)(e.ortb2Imp.ext)||(r.ext={...e.ortb2Imp.ext})),r}));let s=[];e[0].userIdAsEids&&(s=i.A(e[0],"userIdAsEids"),r.user={ext:{eids:s}});let p=function(e,t){let r={};(0,o.isEmpty)(e)||(r.schain={...e});(0,o.isEmpty)(t)||(r.fpd={...t});return r}(n,a);(0,o.isEmpty)(p)||(r.ext=p);t?.ortb2?.regs?.gpp&&(r.regs=Object.assign({},t.ortb2.regs));t?.ortb2&&(r.ext.ortb2=Object.assign({},t.ortb2));return r}(e,t);if(r=(0,l.v)(r,"lib","prebid"),r=(0,l.v)(r,"v","9.7.0"),t&&t.refererInfo){let e=t.refererInfo.page;r=(0,l.v)(r,"referrer",e)}return t&&t.timeout&&(r=(0,l.v)(r,"tmax",t.timeout)),t&&t.gdprConsent&&(c=void 0===t.gdprConsent.gdprApplies||t.gdprConsent.gdprApplies,r=(0,l.v)(r,"gdpr",c.toString()),void 0!==t.gdprConsent.consentString&&(m=t.gdprConsent.consentString,r=(0,l.v)(r,"cmp_cs",m))),t&&t.uspConsent&&(r=(0,l.v)(r,"us_privacy",t.uspConsent)),t?.paapi?.enabled&&(r=(0,l.v)(r,"fledge",t.paapi.enabled)),!0===p.$W.getConfig("coppa")&&(r=(0,l.v)(r,"coppa",!0)),r.lastIndexOf("&")===r.length-1&&(r=r.substring(0,r.length-1)),(0,o.logMessage)("tlCall request built: "+r),{method:"POST",url:r,data:n,bidderRequest:t}},interpretResponse:function(e,t){let{bidderRequest:r}=t,n=e.body.bids||[];const i=e.body.paapi||[];if(n=n.map((e=>function(e,t){let r={},n=t.width||1,i=t.height||1,o=t.deal_id||"",a=t.crid||"",s=e.bids[t.imp_id];0!=t.cpm&&t.ad&&(r={requestId:s.bidId,cpm:t.cpm,width:n,height:i,netRevenue:!0,ad:t.ad,creativeId:a,dealId:o,currency:"USD",ttl:300,tl_source:t.tl_source,meta:{}},b(s)&&"video"===t.media_type&&(r.vastXml=t.ad,r.mediaType="video",r.ttl=3600),t.advertiser_name&&(r.meta.advertiserName=t.advertiser_name),t.adomain&&t.adomain.length&&(r.meta.advertiserDomains=t.adomain),t.tl_source&&"hdx"==t.tl_source&&(b(s)&&"video"===t.media_type?r.meta.mediaType="video":r.meta.mediaType="banner"),t.tl_source&&"tlx"==t.tl_source&&(r.meta.mediaType="native"),a&&(r.meta.networkId=a.slice(0,a.indexOf("_"))));return r}(r,e))),i.length>0){const e=i.map((e=>({bidId:r.bids[e.imp_id].bidId,config:e.auctionConfig})));return(0,o.logMessage)("Response with FLEDGE:",{bids:n,fledgeAuctionConfigs:e}),{bids:n,paapi:e}}return n},getUserSyncs:function(e,t,r,n,i){let o=function(e){if(!e)return;if(e.iframeEnabled)return"iframe";if(e.pixelEnabled)return"image"}(e);if(!o)return;let a="https://eb2.3lift.com/sync?";return"image"===o&&(a=(0,l.v)(a,"px",1),a=(0,l.v)(a,"src","prebid")),(null!==m||c)&&(a=(0,l.v)(a,"gdpr",c),a=(0,l.v)(a,"cmp_cs",m)),n&&(a=(0,l.v)(a,"us_privacy",n)),i&&(i.gppString&&(a=(0,l.v)(a,"gpp",i.gppString)),i.applicableSections&&0!==i.applicableSections.length&&(a=(0,l.v)(a,"gpp_sid",i.applicableSections.filter((e=>Number.isInteger(e))).join(",")))),[{type:o,url:a}]}};function b(e){return v(e)&&(y(e)||function(e){return v(e)&&"outstream"===e.mediaTypes.video.context.toLowerCase()}(e))}function y(e){return v(e)&&"instream"===e.mediaTypes.video.context.toLowerCase()}function v(e){return e.mediaTypes.video&&e.mediaTypes.video.context}function h(e){let t=null;if("function"==typeof e.getFloor)try{const r=e.getFloor({currency:"USD",mediaType:b(e)?"video":"banner",size:"*"});"object"!=typeof r||"USD"!==r.currency||isNaN(parseFloat(r.floor))||(t=parseFloat(r.floor))}catch(e){(0,o.logError)("Triplelift: getFloor threw an error: ",e)}return null!==t?t:e.params.floor}function x(e,t){(0,o.isEmpty)(t)||Object.keys(t).forEach((r=>{null!=t[r]&&(e[r]=t[r])}))}function _(e){return e.filter(E).map((function(e){return{w:e[0],h:e[1]}}))}function E(e){return 2===e.length&&"number"==typeof e[0]&&"number"==typeof e[1]}(0,s.a$)(g),(0,n.E)("tripleliftBidAdapter")}},e=>{e.O(0,[14577,60802,51085],(()=>{return t=26504,e(e.s=t);var t}));e.O()}]);
|
package/dist/ttdBidAdapter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[94183],{63429:(e,r,t)=>{var i=t(7873),a=t(63172),s=t(91069),n=t(70433),o=t(43272),
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[94183],{63429:(e,r,t)=>{var i=t(7873),a=t(63172),s=t(91069),n=t(70433),o=t(43272),d=t(57377),p=t(71371),m=t(91223);const u="ttd",l=1,c=2;function g(e){return{ttdprebid:{ver:"TTD-PREBID-2024.07.26",pbjs:"9.7.0",keywords:e.site?.keywords?e.site.keywords.split(",").map((e=>e.trim())):[]}}}function b(e){let r={};return e.gdprConsent&&"boolean"==typeof e.gdprConsent.gdprApplies&&a.J(r,"ext.gdpr",e.gdprConsent.gdprApplies?1:0),e.uspConsent&&a.J(r,"ext.us_privacy",e.uspConsent),!0===o.$W.getConfig("coppa")&&(r.coppa=1),e.ortb2?.regs&&s.mergeDeep(r,e.ortb2.regs),r}function y(e,r){let t={tid:r?.ortb2?.source?.tid};return e[0].schain&&a.J(t,"ext.schain",e[0].schain),t}function f(e){const r=navigator.language||navigator.browserLanguage||navigator.userLanguage||navigator.systemLanguage;let t={ua:navigator.userAgent,dnt:s.getDNT()?1:0,language:r,connectiontype:(0,m.Z)()};return s.mergeDeep(t,e.device),t}function h(e,r){let t={};e.gdprConsent&&a.J(t,"ext.consent",e.gdprConsent.consentString),s.isStr(n.A(e,"bids.0.userId.tdid"))&&(t.buyeruid=e.bids[0].userId.tdid);var i=n.A(e,"bids.0.userIdAsEids");return i&&i.length&&a.J(t,"ext.eids",i),s.mergeDeep(t,r.user),t}function v(e,r){var t=s.mergeDeep({page:n.A(e,"refererInfo.page"),ref:n.A(e,"refererInfo.ref"),publisher:{id:n.A(e,"bids.0.params.publisherId")}},r.site),i=e.refererInfo.domain;return i&&a.J(t,"publisher.domain",i),t}function I(e){let r={id:e.bidId};const t=n.A(e,"ortb2Imp.ext.gpid")||e.params.placementId;t&&(r.tagid=t);const i=n.A(e,"mediaTypes.video");let a={};n.A(e,"mediaTypes.banner")&&(a[p.D4]=function(e){const r=function(e){const r=s.parseSizesInput(e).filter((e=>e)).map((e=>e.split("x"))).map((e=>({width:parseInt(e[0]),height:parseInt(e[1])})));return r}(e.mediaTypes.banner.sizes).map((e=>({w:e.width,h:e.height}))),t=parseInt(n.A(e,"mediaTypes.banner.pos")),i=n.A(e,"params.banner.expdir");let a={};t&&(a.pos=t);i&&Array.isArray(i)&&(a.expdir=i);const o=Object.assign({w:r[0].w,h:r[0].h,format:r},a),d=n.A(e,"ortb2Imp.banner.battr");d&&(o.battr=d);return o}(e)),i&&(a[p.G_]=function(e){{let r=n.A(e,"mediaTypes.video.minduration");const t=n.A(e,"mediaTypes.video.maxduration"),i=n.A(e,"mediaTypes.video.playerSize"),a=n.A(e,"mediaTypes.video.api"),o=n.A(e,"mediaTypes.video.mimes"),d=n.A(e,"mediaTypes.video.placement"),p=n.A(e,"mediaTypes.video.plcmt"),m=n.A(e,"mediaTypes.video.protocols"),u=n.A(e,"mediaTypes.video.playbackmethod"),l=n.A(e,"mediaTypes.video.pos"),c=n.A(e,"mediaTypes.video.startdelay"),g=n.A(e,"mediaTypes.video.skip"),b=n.A(e,"mediaTypes.video.skipmin"),y=n.A(e,"mediaTypes.video.skipafter"),f=n.A(e,"mediaTypes.video.minbitrate"),h=n.A(e,"mediaTypes.video.maxbitrate");r&&s.isInteger(r)||(r=0);let v={minduration:r,maxduration:t,api:a,mimes:o,placement:d,protocols:m};void 0!==i&&(s.isArray(i[0])?(v.w=parseInt(i[0][0]),v.h=parseInt(i[0][1])):s.isNumber(i[0])&&(v.w=parseInt(i[0]),v.h=parseInt(i[1]))),u&&(v.playbackmethod=u),p&&(v.plcmt=p),l&&(v.pos=l),c&&s.isInteger(c)&&(v.startdelay=c),!g||0!==g&&1!==g||(v.skip=g),b&&s.isInteger(b)&&(v.skipmin=b),y&&s.isInteger(y)&&(v.skipafter=y),f&&s.isInteger(f)&&(v.minbitrate=f),h&&s.isInteger(h)&&(v.maxbitrate=h);const I=n.A(e,"ortb2Imp.video.battr");return I&&(v.battr=I),v}}(e)),Object.assign(r,a);let o=function(e){if(e.params.bidfloor)return e.params.bidfloor;if(!s.isFn(e.getFloor))return null;let r=e.getFloor({currency:"USD",mediaType:"*",size:"*"});return s.isPlainObject(r)&&!isNaN(r.floor)&&"USD"===r.currency?r.floor:null}(e);o&&(r.bidfloor=parseFloat(o),r.bidfloorcur="USD");const d=n.A(e,"ortb2Imp.secure");return r.secure=(0,s.isNumber)(d)?d:1,s.mergeDeep(r,e.ortb2Imp),r}const A={code:u,gvlid:21,aliases:["thetradedesk"],supportedMediaTypes:[p.D4,p.G_],isBidRequestValid:function(e){if(!e||!e.params)return s.logWarn(u+": Missing bid parameters"),!1;if(!e.params.supplySourceId)return s.logWarn(u+": Missing required parameter params.supplySourceId"),!1;if(!/^[\w+]+$/.test(e.params.supplySourceId))return s.logWarn(u+": supplySourceId must only contain alphabetic characters"),!1;if(!e.params.publisherId)return s.logWarn(u+": Missing required parameter params.publisherId"),!1;if(e.params.publisherId.length>32)return s.logWarn(u+": params.publisherId must be 32 characters or less"),!1;if(e.params.bidfloor&&isNaN(parseFloat(e.params.bidfloor)))return!1;const r=n.A(e,"ortb2Imp.ext.gpid");if(!e.params.placementId&&!r)return s.logWarn(u+": one of params.placementId or gpid (via the GPT module https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html) must be passed"),!1;const t=n.A(e,"mediaTypes.banner"),i=n.A(e,"mediaTypes.video");if(!t&&!i)return s.logWarn(u+": one of mediaTypes.banner or mediaTypes.video must be passed"),!1;if(i){if(!i.maxduration||!s.isInteger(i.maxduration))return s.logWarn(u+": mediaTypes.video.maxduration must be set to the maximum video ad duration in seconds"),!1;if(!i.api||0===i.api.length)return s.logWarn(u+": mediaTypes.video.api should be an array of supported api frameworks. See the Open RTB v2.5 spec for valid values"),!1;if(!i.mimes||0===i.mimes.length)return s.logWarn(u+": mediaTypes.video.mimes should be an array of supported mime types"),!1;if(!i.protocols)return s.logWarn(u+": mediaTypes.video.protocols should be an array of supported protocols. See the Open RTB v2.5 spec for valid values"),!1}return!0},buildRequests:function(e,r){const t=r.ortb2||{};let i={id:r.bidderRequestId,imp:e.map((e=>I(e))),site:v(r,t),device:f(t),user:h(r,t),at:1,cur:["USD"],regs:b(r),source:y(e,r),ext:g(t)};return t&&t.bcat&&(i.bcat=t.bcat),t&&t.badv&&(i.badv=t.badv),t&&t.app&&(i.app=t.app),t&&t.pmp&&(i.pmp=t.pmp),{method:"POST",url:(r.bids[0].params.useHttp2?"https://d2.adsrvr.org/bid/bidder/":"https://direct.adsrvr.org/bid/bidder/")+r.bids[0].params.supplySourceId,data:i,options:{withCredentials:!0}}},interpretResponse:function(e,r){let t=n.A(e,"body.seatbid");const i=n.A(e,"body.cur");if(!t||0===t.length)return[];let a=[],o=n.A(r,"data.imp");return t.forEach((e=>{e.bid.forEach((e=>{let r=o.find((r=>r.id===e.impid));const t=e.price||0;let n={requestId:e.impid,cpm:t,creativeId:e.crid,dealId:e.dealid||null,currency:i||"USD",netRevenue:!0,ttl:e.ttl||360,meta:{}};e.adomain&&e.adomain.length>0&&(n.meta.advertiserDomains=e.adomain),e.ext.mediatype===l?Object.assign(n,{width:e.w,height:e.h,ad:s.replaceAuctionPrice(e.adm,t),mediaType:p.D4}):e.ext.mediatype===c&&(Object.assign(n,{width:r.video.w,height:r.video.h,mediaType:p.G_}),e.nurl?n.vastUrl=s.replaceAuctionPrice(e.nurl,t):n.vastXml=s.replaceAuctionPrice(e.adm,t)),a.push(n)}))})),a},getUserSyncs:function(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";const a=[];let s=`&gdpr=${t.gdprApplies?1:0}&gdpr_consent=${encodeURIComponent(t.consentString)}`,n=`https://match.adsrvr.org/track/usersync?us_privacy=${encodeURIComponent(i)}${s}`;return e.pixelEnabled?a.push({type:"image",url:n+"&ust=image"}):e.iframeEnabled&&a.push({type:"iframe",url:n+"&ust=iframe"}),a}};(0,d.a$)(A),(0,i.E)("ttdBidAdapter")}},e=>{e.O(0,[40259,60802,51085],(()=>{return r=63429,e(e.s=r);var r}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[51134],{29872:(e,i,s)=>{var t=s(7873),n=s(68044),o=s(88910),a=s(78969),d=s(11445),r=s(91069);const c="https://hbwa.aralego.com",{AUCTION_END:p,BID_WON:u,BID_TIMEOUT:h}=a.qY,l="bid",g="noBid",m="bidWon",b="timeout",A={},f=function(e){return(e.bidderCode||e.bidder).toLowerCase()},E=function(e){return e.adUnitCode.toLowerCase()},y=Object.assign((0,o.Ay)({ANALYTICS_SERVER:c,analyticsType:"endpoint"}),{cachedAuctions:{},initConfig:e=>(A.options=(0,r.deepClone)(e.options),"string"!=typeof e.options.pbuid||e.options.pbuid.length<1?((0,r.logError)('"options.pbuid" is required.'),!1):"string"!=typeof e.options.adid||e.options.adid.length<1?((0,r.logError)('"options.adid" is required.'),!1):(A.sampled=!0,"number"==typeof e.options.sampling&&(A.sampled=Math.random()<parseFloat(e.options.sampling)),A.pbuid=e.options.pbuid,A.adid=e.options.adid,A.server=c,!0)),sendEventMessage(e,i){(0,r.logInfo)(`AJAX: ${e}: `+JSON.stringify(i)),(0,n.RD)(`${A.server}/${e}`,null,JSON.stringify(i),{contentType:"application/json",withCredentials:!0})},createCommonMessage:e=>({version:"1.0.0",auctionId:e,referrer:window.location.href,sampling:A.options.sampling,prebid:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[51134],{29872:(e,i,s)=>{var t=s(7873),n=s(68044),o=s(88910),a=s(78969),d=s(11445),r=s(91069);const c="https://hbwa.aralego.com",{AUCTION_END:p,BID_WON:u,BID_TIMEOUT:h}=a.qY,l="bid",g="noBid",m="bidWon",b="timeout",A={},f=function(e){return(e.bidderCode||e.bidder).toLowerCase()},E=function(e){return e.adUnitCode.toLowerCase()},y=Object.assign((0,o.Ay)({ANALYTICS_SERVER:c,analyticsType:"endpoint"}),{cachedAuctions:{},initConfig:e=>(A.options=(0,r.deepClone)(e.options),"string"!=typeof e.options.pbuid||e.options.pbuid.length<1?((0,r.logError)('"options.pbuid" is required.'),!1):"string"!=typeof e.options.adid||e.options.adid.length<1?((0,r.logError)('"options.adid" is required.'),!1):(A.sampled=!0,"number"==typeof e.options.sampling&&(A.sampled=Math.random()<parseFloat(e.options.sampling)),A.pbuid=e.options.pbuid,A.adid=e.options.adid,A.server=c,!0)),sendEventMessage(e,i){(0,r.logInfo)(`AJAX: ${e}: `+JSON.stringify(i)),(0,n.RD)(`${A.server}/${e}`,null,JSON.stringify(i),{contentType:"application/json",withCredentials:!0})},createCommonMessage:e=>({version:"1.0.0",auctionId:e,referrer:window.location.href,sampling:A.options.sampling,prebid:"9.7.0",adid:A.adid,pbuid:A.pbuid,adUnits:{}}),serializeBidResponse(e,i){const s={prebidWon:i===m,isTimeout:i===b,status:i};return i!==l&&i!==m||Object.assign(s,{time:e.timeToRespond,cpm:e.cpm,currency:e.currency}),s},addBidResponseToMessage(e,i,s){const t=E(i);e.adUnits[t]=e.adUnits[t]||{};const n=f(i),o=this.serializeBidResponse(i,s);e.adUnits[t][n]=o},createBidMessage(e,i,s){const{auctionId:t,timestamp:n,auctionEnd:o,adUnitCodes:a,bidsReceived:d,noBids:r}=e,c=this.createCommonMessage(t);return c.auctionElapsed=o-n,a.forEach((e=>{c.adUnits[e]={}})),r.forEach((e=>this.addBidResponseToMessage(c,e,g))),d.forEach((e=>this.addBidResponseToMessage(c,e,l))),s.forEach((e=>this.addBidResponseToMessage(c,e,b))),i.forEach((e=>{const i=E(e),s=f(e);c.adUnits[i][s].prebidWon=!0})),c},createImpressionMessage(e){const i=this.createCommonMessage(e.auctionId);return this.addBidResponseToMessage(i,e,m),i},getCachedAuction(e){return this.cachedAuctions[e]=this.cachedAuctions[e]||{timeoutBids:[]},this.cachedAuctions[e]},handleAuctionEnd(e){const i=this.getCachedAuction(e.auctionId),s=(0,t.m)().getHighestCpmBids();this.sendEventMessage("bid",this.createBidMessage(e,s,i.timeoutBids))},handleBidTimeout(e){e.forEach((e=>{this.getCachedAuction(e.auctionId).timeoutBids.push(e)}))},handleBidWon(e){this.sendEventMessage("imp",this.createImpressionMessage(e))},track(e){let{eventType:i,args:s}=e;if(A.sampled)switch(i){case u:this.handleBidWon(s);break;case h:this.handleBidTimeout(s);break;case p:this.handleAuctionEnd(s)}},getAnalyticsOptions:()=>A});y.originEnableAnalytics=y.enableAnalytics,y.enableAnalytics=function(e){this.initConfig(e)&&y.originEnableAnalytics(e)},d.Ay.registerAnalyticsAdapter({adapter:y,code:"ucfunnelAnalytics"}),(0,t.E)("ucfunnelAnalyticsAdapter")}},e=>{e.O(0,[2630,60802,51085],(()=>{return i=29872,e(e.s=i);var i}));e.O()}]);
|
package/dist/uid2IdSystem.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[68907,56293],{85263:(e,t,s)=>{var r=s(7873),i=s(91069),n=s(16833),o=s(12938),a=s(45569),l=s(84259),d=s(50646);const u="uid2",c=`PrebidJS-9.5.0-UID2Module-${l.kz}`,p="UID2: ";function h(e,t){return function(){for(var s=arguments.length,r=new Array(s),i=0;i<s;i++)r[i]=arguments[i];e(t+" ",...r)}}const g=h(i.logInfo,p),y=h(i.logWarn,p),f=(0,o.vM)({moduleType:a.fW,moduleName:u}),b={name:u,decode(e){const t=function(e){if("string"==typeof e){g("Found server-only token. Refresh is unavailable for this token.");return{uid2:{id:e}}}if("optout"===e.latestToken)return g("Found optout token. Refresh is unavailable for this token."),{uid2:{optout:!0}};if(Date.now()<e.latestToken.identity_expires)return{uid2:{id:e.latestToken.advertising_token}};return null}(e);return g("UID2 decode returned",t),t},getId(e,t){if(!0===t?.gdprApplies)return void y("UID2 is not intended for use where GDPR applies. The UID2 module will not run.");const s={apiBaseUrl:e?.params?.uid2ApiBase??"https://prod.uidapi.com",paramToken:e?.params?.uid2Token,serverCookieName:e?.params?.uid2Cookie??e?.params?.uid2ServerCookie,storage:e?.params?.storage??"localStorage",clientId:c,internalStorage:"__uid2_advertising_token"};s.cstg={serverPublicKey:e?.params?.serverPublicKey,subscriptionId:e?.params?.subscriptionId,...(0,l.E0)(e?.params??{})},g("UID2 configuration loaded and mapped.",s);const r=(0,l.wq)(s,f,g,y);return g("UID2 getId returned",r),r},eids:d.x};(0,n.bz)("userId",b),(0,r.E)("uid2IdSystem")},84259:(e,t,s)=>{s.d(t,{E0:()=>h,kz:()=>o,wq:()=>p});var r=s(7873),i=s(68044),n=s(91069);const o="1.1";function a(e){return!!("object"==typeof e&&null!==e&&e.advertising_token&&e.identity_expires&&e.refresh_from&&e.refresh_token&&e.refresh_expires)}class l{constructor(e,t,s,r){this._baseUrl=e.baseUrl,this._clientVersion=t,this._logInfo=s,this._logWarn=r}createArrayBuffer(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=e.charCodeAt(s);return t}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isValidRefreshResponse(e){return this.hasStatusResponse(e)&&("optout"===e.status||"expired_token"===e.status||"success"===e.status&&e.body&&a(e.body))}ResponseToRefreshResult(e){return this.isValidRefreshResponse(e)?"success"===e.status?{status:e.status,identity:e.body}:e:"Response didn't contain a valid status"}callRefreshApi(e){const t=this._baseUrl+"/v2/token/refresh";let s,r;const n=new Promise(((e,t)=>{s=e,r=t}));return this._logInfo("Sending refresh request",e),(0,i.RD)(t,{success:t=>{try{if(e.refresh_response_key){this._logInfo("Decrypting refresh API response");const i=this.createArrayBuffer(atob(t));window.crypto.subtle.importKey("raw",this.createArrayBuffer(atob(e.refresh_response_key)),{name:"AES-GCM"},!1,["decrypt"]).then((e=>{this._logInfo("Imported decryption key"),window.crypto.subtle.decrypt({name:"AES-GCM",iv:i.slice(0,12),tagLength:128},e,i.slice(12)).then((e=>{const t=String.fromCharCode(...new Uint8Array(e));this._logInfo("Decrypted to:",t);const i=JSON.parse(t),n=this.ResponseToRefreshResult(i);"string"==typeof n?r(n):s(n)}),(e=>this._logWarn("Call to UID2 API failed",e)))}),(e=>this._logWarn("Call to UID2 API failed",e)))}else{this._logInfo("No response decryption key available, assuming unencrypted JSON");const e=JSON.parse(t),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(i):s(i)}}catch(e){r(t)}},error:(e,t)=>{try{this._logInfo("Error status, assuming unencrypted JSON");const e=JSON.parse(t.responseText),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(i):s(i)}catch(t){r(e)}}},e.refresh_token,{method:"POST",customHeaders:{"X-UID2-Client-Version":this._clientVersion}}),n}}class d{constructor(e,t,s,r){this._storage=e,this._preferLocalStorage=t,this._storageName=s,this._logInfo=r}readCookie(e){return this._storage.cookiesAreEnabled()?this._storage.getCookie(e):null}readLocalStorage(e){return this._storage.localStorageIsEnabled()?this._storage.getDataFromLocalStorage(e):null}readModuleCookie(){return this.parseIfContainsBraces(this.readCookie(this._storageName))}writeModuleCookie(e){this._storage.setCookie(this._storageName,JSON.stringify(e),Date.now()+864e5)}readModuleStorage(){return this.parseIfContainsBraces(this.readLocalStorage(this._storageName))}writeModuleStorage(e){this._storage.setDataInLocalStorage(this._storageName,JSON.stringify(e))}readProvidedCookie(e){return JSON.parse(this.readCookie(e))}parseIfContainsBraces(e){return e?.includes("{")?JSON.parse(e):e}storeValue(e){this._preferLocalStorage?this.writeModuleStorage(e):this.writeModuleCookie(e)}getStoredValueWithFallback(){const e=this._preferLocalStorage?"local storage":"cookie",t=(this._preferLocalStorage?this.readModuleStorage:this.readModuleCookie).bind(this),s=(this._preferLocalStorage?this.writeModuleStorage:this.writeModuleCookie).bind(this),r=(this._preferLocalStorage?this.readModuleCookie:this.readModuleStorage).bind(this),i=t();if(i){if("string"==typeof i){const t=r();if(t&&"object"==typeof t)return this._logInfo(`${e} contained a basic token, but found a refreshable token fallback. Copying the fallback value to ${e}.`),s(t),t}}else{const t=r();if(t)return this._logInfo(`${e} was empty, but found a fallback value.`),"object"==typeof t&&(this._logInfo(`Copying the fallback value to ${e}.`),s(t)),t}return i}}function u(e,t,s,r,i,n){i("UID2 base url provided: ",e);return new l({baseUrl:e},s,i,n).callRefreshApi(t).then((e=>{i("Refresh endpoint responded with:",e);const s={originalToken:t,latestToken:e.identity};let n=r.getStoredValueWithFallback();return n?.originalIdentity&&(s.originalIdentity=n.originalIdentity),r.storeValue(s),s}))}let c;{const e=9;c={isCSTGOptionsValid(e,t){if("object"!=typeof e||null===e)return t('CSTG is not being used, but is included in the Prebid.js bundle. You can reduce the bundle size by passing "--disable UID2_CSTG" to the Prebid.js build.'),!1;const s=e;if(!s.serverPublicKey&&!s.subscriptionId)return t("CSTG has been enabled but its parameters have not been set."),!1;if("string"!=typeof s.serverPublicKey)return t("CSTG opts.serverPublicKey must be a string"),!1;const r=/^(UID2|EUID)-X-[A-Z]-.+/;return r.test(s.serverPublicKey)?"string"!=typeof s.subscriptionId?(t("CSTG opts.subscriptionId must be a string"),!1):0!==s.subscriptionId.length||(t("CSTG opts.subscriptionId is empty"),!1):(t(`CSTG opts.serverPublicKey must match the regular expression ${r}`),!1)},getValidIdentity(e,s){if(e.emailHash)return t.isBase64Hash(e.emailHash)?{email_hash:e.emailHash}:void s("CSTG opts.emailHash is invalid");if(e.phoneHash)return t.isBase64Hash(e.phoneHash)?{phone_hash:e.phoneHash}:void s("CSTG opts.phoneHash is invalid");if(e.email){const r=t.normalizeEmail(e.email);return void 0===r?void s("CSTG opts.email is invalid"):{email:r}}return e.phone?t.isNormalizedPhone(e.phone)?{phone:e.phone}:void s("CSTG opts.phone is invalid"):void 0},isStoredTokenInvalid(e,t,s,r){if(t){if("optout"===t.latestToken)return!0;const r=Object.values(e)[0];if(!this.isStoredTokenFromSameIdentity(t,r))return s("CSTG supplied new identity - ignoring stored value.",t.originalIdentity,e),!0}return!1},async generateTokenAndStore(e,t,r,i,n,o){n("UID2 cstg opts provided: ",JSON.stringify(t));const a=new s({baseUrl:e,cstg:t},n,o),l=await a.generateToken(r);n("CSTG endpoint responded with:",l);const d={originalIdentity:this.encodeOriginalIdentity(r),latestToken:l.identity};return i.storeValue(d),d},isStoredTokenFromSameIdentity:(e,t)=>!!e.originalIdentity&&(0,n.cyrb53Hash)(t,e.originalIdentity.salt)===e.originalIdentity.identity,encodeOriginalIdentity(e){const t=Object.values(e)[0],s=Math.floor(Math.random()*Math.pow(2,32));return{identity:(0,n.cyrb53Hash)(t,s),salt:s}}};class t{static EMAIL_EXTENSION_SYMBOL="+";static EMAIL_DOT=".";static GMAIL_DOMAIN="gmail.com";static isBase64Hash(e){if(!e||44!==e.length)return!1;try{return btoa(atob(e))===e}catch(e){return!1}}static isNormalizedPhone(e){return/^\+[0-9]{10,15}$/.test(e)}static normalizeEmail(e){if(!e||!e.length)return;const t=e.trim().toLowerCase();if(t.indexOf(" ")>0)return;const s=this.splitEmailIntoAddressAndDomain(t);if(!s)return;const{address:r,domain:i}=s,n=this.isGmail(i),o=this.normalizeAddressPart(r,n,n);return o?`${o}@${i}`:void 0}static splitEmailIntoAddressAndDomain(e){const t=e.split("@");if(2===t.length&&!t.some((e=>""===e)))return{address:t[0],domain:t[1]}}static isGmail(e){return e===this.GMAIL_DOMAIN}static dropExtension(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.EMAIL_EXTENSION_SYMBOL;return e.split(t)[0]}static normalizeAddressPart(e,t,s){let r=e;return t&&(r=r.replaceAll(this.EMAIL_DOT,"")),s&&(r=this.dropExtension(r)),r}}class s{constructor(e,t,s){this._baseUrl=e.baseUrl,this._serverPublicKey=e.cstg.serverPublicKey,this._subscriptionId=e.cstg.subscriptionId,this._logInfo=t,this._logWarn=s}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isCstgApiSuccessResponse(e){return this.hasStatusResponse(e)&&"success"===e.status&&a(e.body)}isCstgApiOptoutResponse(e){return this.hasStatusResponse(e)&&"optout"===e.status}isCstgApiClientErrorResponse(e){return this.hasStatusResponse(e)&&"client_error"===e.status&&"string"==typeof e.message}isCstgApiForbiddenResponse(e){return this.hasStatusResponse(e)&&"invalid_http_origin"===e.status&&"string"==typeof e.message}stripPublicKeyPrefix(t){return t.substring(e)}async generateCstgRequest(e){if("email_hash"in e||"phone_hash"in e)return e;if("email"in e){return{email_hash:await o.hash(e.email)}}if("phone"in e){return{phone_hash:await o.hash(e.phone)}}}async generateToken(e){const t=await this.generateCstgRequest(e);this._logInfo("Building CSTG request for",t);const s=await r.build(this.stripPublicKeyPrefix(this._serverPublicKey)),i=new TextEncoder,n=Date.now(),{iv:a,ciphertext:l}=await s.encrypt(i.encode(JSON.stringify(t)),i.encode(JSON.stringify([n]))),d=await o.exportPublicKey(s.clientPublicKey),u={payload:o.bytesToBase64(new Uint8Array(l)),iv:o.bytesToBase64(new Uint8Array(a)),public_key:o.bytesToBase64(new Uint8Array(d)),timestamp:n,subscription_id:this._subscriptionId};return this.callCstgApi(u,s)}async callCstgApi(e,t){const s=this._baseUrl+"/v2/token/client-generate";let r,n;const a=new Promise(((e,t)=>{r=e,n=t}));return this._logInfo("Sending CSTG request",e),(0,i.RD)(s,{success:async(e,s)=>{try{const s=o.base64ToBytes(e),i=await t.decrypt(s.slice(0,12),s.slice(12)),a=(new TextDecoder).decode(i),l=JSON.parse(a);this.isCstgApiSuccessResponse(l)?r({status:"success",identity:l.body}):this.isCstgApiOptoutResponse(l)?r({status:"optout",identity:"optout"}):n(`API error: Response body was invalid for HTTP status 200: ${a}`)}catch(e){n(e)}},error:(e,t)=>{try{if(400===t.status){const e=JSON.parse(t.responseText);this.isCstgApiClientErrorResponse(e)?n(`Client error: ${e.message}`):n(`API error: Response body was invalid for HTTP status 400: ${t.responseText}`)}else if(403===t.status){const e=JSON.parse(t.responseText);this.isCstgApiForbiddenResponse(t)?n(`Forbidden: ${e.message}`):n(`API error: Response body was invalid for HTTP status 403: ${t.responseText}`)}else n(`API error: Unexpected HTTP status ${t.status}: ${e}`)}catch(t){n(e)}}},JSON.stringify(e),{method:"POST"}),a}}class r{static _namedCurve="P-256";constructor(e,t){this._clientPublicKey=e,this._sharedKey=t}static async build(e){const t=await o.generateKeyPair(r._namedCurve),s=await o.importPublicKey(e,this._namedCurve),i=await o.deriveKey(s,t.privateKey);return new r(t.publicKey,i)}async encrypt(e,t){const s=window.crypto.getRandomValues(new Uint8Array(12));return{iv:s,ciphertext:await window.crypto.subtle.encrypt({name:"AES-GCM",iv:s,additionalData:t},this._sharedKey,e)}}async decrypt(e,t){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:e},this._sharedKey,t)}get clientPublicKey(){return this._clientPublicKey}}class o{static base64ToBytes(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}static bytesToBase64(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}static async generateKeyPair(e){const t={name:"ECDH",namedCurve:e};return window.crypto.subtle.generateKey(t,!1,["deriveKey"])}static async importPublicKey(e,t){const s={name:"ECDH",namedCurve:t};return window.crypto.subtle.importKey("spki",this.base64ToBytes(e),s,!1,[])}static exportPublicKey(e){return window.crypto.subtle.exportKey("spki",e)}static async deriveKey(e,t){return window.crypto.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}static async hash(e){const t=await window.crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e));return this.bytesToBase64(new Uint8Array(t))}}}function p(e,t,s,r){let i=null;const n="cookie"!==e.storage,o=new d(t,n,e.internalStorage,s);s(`Module is using ${n?"local storage":"cookies"} for internal storage.`);const a=c&&c.isCSTGOptionsValid(e.cstg,r);a?(s("Module is using client-side token generation."),i=null):e.paramToken?(i=e.paramToken,s("Read token from params",i)):e.serverCookieName&&(i=o.readProvidedCookie(e.serverCookieName),s("Read token from server-supplied cookie",i));let l=o.getStoredValueWithFallback();if(s("Loaded module-stored tokens:",l),l&&"string"==typeof l){if(!i&&!a)return s("Returning legacy cookie value."),{id:l};s("Discarding superseded legacy cookie."),l=null}if(i&&l&&l.originalToken?.advertising_token!==i.advertising_token&&(s("Server supplied new token - ignoring stored value.",l.originalToken?.advertising_token,i.advertising_token),l=null),a){const t=c.getValidIdentity(e.cstg,r);if(t&&(l&&c.isStoredTokenInvalid(t,l,s,r)&&(l=null),!l||Date.now()>l.latestToken.refresh_expires)){const i=c.generateTokenAndStore(e.apiBaseUrl,e.cstg,t,o,s,r);return s("Generate token using CSTG"),{callback:e=>{i.then((t=>{s("Token generation responded, passing the new token on.",t),e(t)}))}}}}const p=!l?.latestToken||i&&i.identity_expires>l.latestToken.identity_expires,h=p?i:l.latestToken;if(s("UID2 module selected latest token",p,h),!h||Date.now()>h.refresh_expires)return s("Newest available token is expired and not refreshable."),{id:null};if(Date.now()>h.identity_expires){const t=u(e.apiBaseUrl,h,e.clientId,o,s,r);return s("Token is expired but can be refreshed, attempting refresh."),{callback:e=>{t.then((t=>{s("Refresh reponded, passing the updated token on.",t),e(t)}))}}}Date.now()>h.refresh_from&&(s("Refreshing token in background with low priority."),u(e.apiBaseUrl,h,e.clientId,o,s,r));const g={originalToken:i??l?.originalToken,latestToken:h};return a&&(g.originalIdentity=l?.originalIdentity),o.storeValue(g),{id:g}}function h(e){const t=["emailHash","phoneHash","email","phone"];for(let s of t)if(e.hasOwnProperty(s))return{[s]:e[s]};return{}}(0,r.E)("uid2IdSystem_shared")}},e=>{e.O(0,[44950,60802,51085],(()=>{return t=85263,e(e.s=t);var t}));e.O()}]);
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[68907,56293],{85263:(e,t,s)=>{var r=s(7873),i=s(91069),n=s(16833),o=s(12938),a=s(45569),l=s(84259),d=s(50646);const u="uid2",c=`PrebidJS-9.7.0-UID2Module-${l.kz}`,p="UID2: ";function h(e,t){return function(){for(var s=arguments.length,r=new Array(s),i=0;i<s;i++)r[i]=arguments[i];e(t+" ",...r)}}const g=h(i.logInfo,p),y=h(i.logWarn,p),f=(0,o.vM)({moduleType:a.fW,moduleName:u}),b={name:u,decode(e){const t=function(e){if("string"==typeof e){g("Found server-only token. Refresh is unavailable for this token.");return{uid2:{id:e}}}if("optout"===e.latestToken)return g("Found optout token. Refresh is unavailable for this token."),{uid2:{optout:!0}};if(Date.now()<e.latestToken.identity_expires)return{uid2:{id:e.latestToken.advertising_token}};return null}(e);return g("UID2 decode returned",t),t},getId(e,t){if(!0===t?.gdprApplies)return void y("UID2 is not intended for use where GDPR applies. The UID2 module will not run.");const s={apiBaseUrl:e?.params?.uid2ApiBase??"https://prod.uidapi.com",paramToken:e?.params?.uid2Token,serverCookieName:e?.params?.uid2Cookie??e?.params?.uid2ServerCookie,storage:e?.params?.storage??"localStorage",clientId:c,internalStorage:"__uid2_advertising_token"};s.cstg={serverPublicKey:e?.params?.serverPublicKey,subscriptionId:e?.params?.subscriptionId,...(0,l.E0)(e?.params??{})},g("UID2 configuration loaded and mapped.",s);const r=(0,l.wq)(s,f,g,y);return g("UID2 getId returned",r),r},eids:d.x};(0,n.bz)("userId",b),(0,r.E)("uid2IdSystem")},84259:(e,t,s)=>{s.d(t,{E0:()=>y,kz:()=>o,wq:()=>g});var r=s(7873),i=s(68044),n=s(91069);const o="1.1";function a(e){return!!("object"==typeof e&&null!==e&&e.advertising_token&&e.identity_expires&&e.refresh_from&&e.refresh_token&&e.refresh_expires)}function l(e){return`UID2 shared library - ${e}`}function d(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),r=1;r<t;r++)s[r-1]=arguments[r];e(l(s[0]),...s.slice(1))}class u{constructor(e,t,s,r){this._baseUrl=e.baseUrl,this._clientVersion=t,this._logInfo=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return d(s,...t)},this._logWarn=r}createArrayBuffer(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=e.charCodeAt(s);return t}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isValidRefreshResponse(e){return this.hasStatusResponse(e)&&("optout"===e.status||"expired_token"===e.status||"success"===e.status&&e.body&&a(e.body))}ResponseToRefreshResult(e){return this.isValidRefreshResponse(e)?"success"===e.status?{status:e.status,identity:e.body}:e:l("Response didn't contain a valid status")}callRefreshApi(e){const t=this._baseUrl+"/v2/token/refresh";let s,r;const n=new Promise(((e,t)=>{s=e,r=t}));return this._logInfo("Sending refresh request",e),(0,i.RD)(t,{success:t=>{try{if(e.refresh_response_key){this._logInfo("Decrypting refresh API response");const i=this.createArrayBuffer(atob(t));window.crypto.subtle.importKey("raw",this.createArrayBuffer(atob(e.refresh_response_key)),{name:"AES-GCM"},!1,["decrypt"]).then((e=>{this._logInfo("Imported decryption key"),window.crypto.subtle.decrypt({name:"AES-GCM",iv:i.slice(0,12),tagLength:128},e,i.slice(12)).then((e=>{const t=String.fromCharCode(...new Uint8Array(e));this._logInfo("Decrypted to:",t);const i=JSON.parse(t),n=this.ResponseToRefreshResult(i);"string"==typeof n?r(l(n)):s(n)}),(e=>this._logWarn(l("Call to UID2 API failed"),e)))}),(e=>this._logWarn(l("Call to UID2 API failed"),e)))}else{this._logInfo("No response decryption key available, assuming unencrypted JSON");const e=JSON.parse(t),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(l(i)):s(i)}}catch(e){r(l(t))}},error:(e,t)=>{try{this._logInfo("Error status, assuming unencrypted JSON");const e=JSON.parse(t.responseText),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(l(i)):s(i)}catch(t){r(l(e))}}},e.refresh_token,{method:"POST",customHeaders:{"X-UID2-Client-Version":this._clientVersion}}),n}}class c{constructor(e,t,s,r){this._storage=e,this._preferLocalStorage=t,this._storageName=s,this._logInfo=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return d(r,...t)}}readCookie(e){return this._storage.cookiesAreEnabled()?this._storage.getCookie(e):null}readLocalStorage(e){return this._storage.localStorageIsEnabled()?this._storage.getDataFromLocalStorage(e):null}readModuleCookie(){return this.parseIfContainsBraces(this.readCookie(this._storageName))}writeModuleCookie(e){this._storage.setCookie(this._storageName,JSON.stringify(e),Date.now()+864e5)}readModuleStorage(){return this.parseIfContainsBraces(this.readLocalStorage(this._storageName))}writeModuleStorage(e){this._storage.setDataInLocalStorage(this._storageName,JSON.stringify(e))}readProvidedCookie(e){return JSON.parse(this.readCookie(e))}parseIfContainsBraces(e){return e?.includes("{")?JSON.parse(e):e}storeValue(e){this._preferLocalStorage?this.writeModuleStorage(e):this.writeModuleCookie(e)}getStoredValueWithFallback(){const e=this._preferLocalStorage?"local storage":"cookie",t=(this._preferLocalStorage?this.readModuleStorage:this.readModuleCookie).bind(this),s=(this._preferLocalStorage?this.writeModuleStorage:this.writeModuleCookie).bind(this),r=(this._preferLocalStorage?this.readModuleCookie:this.readModuleStorage).bind(this),i=t();if(i){if("string"==typeof i){const t=r();if(t&&"object"==typeof t)return this._logInfo(`${e} contained a basic token, but found a refreshable token fallback. Copying the fallback value to ${e}.`),s(t),t}}else{const t=r();if(t)return this._logInfo(`${e} was empty, but found a fallback value.`),"object"==typeof t&&(this._logInfo(`Copying the fallback value to ${e}.`),s(t)),t}return i}}function p(e,t,s,r,i,n){i("UID2 base url provided: ",e);return new u({baseUrl:e},s,i,n).callRefreshApi(t).then((e=>{i("Refresh endpoint responded with:",e);const s={originalToken:t,latestToken:e.identity};let n=r.getStoredValueWithFallback();return n?.originalIdentity&&(s.originalIdentity=n.originalIdentity),r.storeValue(s),s}))}let h;{const e=9;h={isCSTGOptionsValid(e,t){if("object"!=typeof e||null===e)return t('CSTG is not being used, but is included in the Prebid.js bundle. You can reduce the bundle size by passing "--disable UID2_CSTG" to the Prebid.js build.'),!1;const s=e;if(!s.serverPublicKey&&!s.subscriptionId)return t("CSTG has been enabled but its parameters have not been set."),!1;if("string"!=typeof s.serverPublicKey)return t("CSTG opts.serverPublicKey must be a string"),!1;const r=/^(UID2|EUID)-X-[A-Z]-.+/;return r.test(s.serverPublicKey)?"string"!=typeof s.subscriptionId?(t("CSTG opts.subscriptionId must be a string"),!1):0!==s.subscriptionId.length||(t("CSTG opts.subscriptionId is empty"),!1):(t(`CSTG opts.serverPublicKey must match the regular expression ${r}`),!1)},getValidIdentity(e,s){if(e.emailHash)return t.isBase64Hash(e.emailHash)?{email_hash:e.emailHash}:void s("CSTG opts.emailHash is invalid");if(e.phoneHash)return t.isBase64Hash(e.phoneHash)?{phone_hash:e.phoneHash}:void s("CSTG opts.phoneHash is invalid");if(e.email){const r=t.normalizeEmail(e.email);return void 0===r?void s("CSTG opts.email is invalid"):{email:r}}return e.phone?t.isNormalizedPhone(e.phone)?{phone:e.phone}:void s("CSTG opts.phone is invalid"):void 0},isStoredTokenInvalid(e,t,s,r){if(t){if("optout"===t.latestToken)return!0;const r=Object.values(e)[0];if(!this.isStoredTokenFromSameIdentity(t,r))return s("CSTG supplied new identity - ignoring stored value.",t.originalIdentity,e),!0}return!1},async generateTokenAndStore(e,t,r,i,n,o){n("UID2 cstg opts provided: ",JSON.stringify(t));const a=new s({baseUrl:e,cstg:t},n,o),l=await a.generateToken(r);n("CSTG endpoint responded with:",l);const d={originalIdentity:this.encodeOriginalIdentity(r),latestToken:l.identity};return i.storeValue(d),d},isStoredTokenFromSameIdentity:(e,t)=>!!e.originalIdentity&&(0,n.cyrb53Hash)(t,e.originalIdentity.salt)===e.originalIdentity.identity,encodeOriginalIdentity(e){const t=Object.values(e)[0],s=Math.floor(Math.random()*Math.pow(2,32));return{identity:(0,n.cyrb53Hash)(t,s),salt:s}}};class t{static EMAIL_EXTENSION_SYMBOL="+";static EMAIL_DOT=".";static GMAIL_DOMAIN="gmail.com";static isBase64Hash(e){if(!e||44!==e.length)return!1;try{return btoa(atob(e))===e}catch(e){return!1}}static isNormalizedPhone(e){return/^\+[0-9]{10,15}$/.test(e)}static normalizeEmail(e){if(!e||!e.length)return;const t=e.trim().toLowerCase();if(t.indexOf(" ")>0)return;const s=this.splitEmailIntoAddressAndDomain(t);if(!s)return;const{address:r,domain:i}=s,n=this.isGmail(i),o=this.normalizeAddressPart(r,n,n);return o?`${o}@${i}`:void 0}static splitEmailIntoAddressAndDomain(e){const t=e.split("@");if(2===t.length&&!t.some((e=>""===e)))return{address:t[0],domain:t[1]}}static isGmail(e){return e===this.GMAIL_DOMAIN}static dropExtension(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.EMAIL_EXTENSION_SYMBOL;return e.split(t)[0]}static normalizeAddressPart(e,t,s){let r=e;return t&&(r=r.replaceAll(this.EMAIL_DOT,"")),s&&(r=this.dropExtension(r)),r}}class s{constructor(e,t,s){this._baseUrl=e.baseUrl,this._serverPublicKey=e.cstg.serverPublicKey,this._subscriptionId=e.cstg.subscriptionId,this._logInfo=function(){for(var e=arguments.length,s=new Array(e),r=0;r<e;r++)s[r]=arguments[r];return d(t,...s)},this._logWarn=s}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isCstgApiSuccessResponse(e){return this.hasStatusResponse(e)&&"success"===e.status&&a(e.body)}isCstgApiOptoutResponse(e){return this.hasStatusResponse(e)&&"optout"===e.status}isCstgApiClientErrorResponse(e){return this.hasStatusResponse(e)&&"client_error"===e.status&&"string"==typeof e.message}isCstgApiForbiddenResponse(e){return this.hasStatusResponse(e)&&"invalid_http_origin"===e.status&&"string"==typeof e.message}stripPublicKeyPrefix(t){return t.substring(e)}async generateCstgRequest(e){if("email_hash"in e||"phone_hash"in e)return e;if("email"in e){return{email_hash:await o.hash(e.email)}}if("phone"in e){return{phone_hash:await o.hash(e.phone)}}}async generateToken(e){const t=await this.generateCstgRequest(e);this._logInfo("Building CSTG request for",t);const s=await r.build(this.stripPublicKeyPrefix(this._serverPublicKey)),i=new TextEncoder,n=Date.now(),{iv:a,ciphertext:l}=await s.encrypt(i.encode(JSON.stringify(t)),i.encode(JSON.stringify([n]))),d=await o.exportPublicKey(s.clientPublicKey),u={payload:o.bytesToBase64(new Uint8Array(l)),iv:o.bytesToBase64(new Uint8Array(a)),public_key:o.bytesToBase64(new Uint8Array(d)),timestamp:n,subscription_id:this._subscriptionId};return this.callCstgApi(u,s)}async callCstgApi(e,t){const s=this._baseUrl+"/v2/token/client-generate";let r,n;const a=new Promise(((e,t)=>{r=e,n=t}));return this._logInfo("Sending CSTG request",e),(0,i.RD)(s,{success:async(e,s)=>{try{const s=o.base64ToBytes(e),i=await t.decrypt(s.slice(0,12),s.slice(12)),a=(new TextDecoder).decode(i),d=JSON.parse(a);this.isCstgApiSuccessResponse(d)?r({status:"success",identity:d.body}):this.isCstgApiOptoutResponse(d)?r({status:"optout",identity:"optout"}):n(l(`API error: Response body was invalid for HTTP status 200: ${a}`))}catch(e){n(l(e))}},error:(e,t)=>{try{if(400===t.status){const e=JSON.parse(t.responseText);this.isCstgApiClientErrorResponse(e)?n(l(`Client error: ${e.message}`)):n(l(`UID2 API error: Response body was invalid for HTTP status 400: ${t.responseText}`))}else if(403===t.status){const e=JSON.parse(t.responseText);this.isCstgApiForbiddenResponse(t)?n(l(`Forbidden: ${e.message}`)):n(l(`UID2 API error: Response body was invalid for HTTP status 403: ${t.responseText}`))}else n(l(`UID2 API error: Unexpected HTTP status ${t.status}: ${e}`))}catch(t){n(l(e))}}},JSON.stringify(e),{method:"POST"}),a}}class r{static _namedCurve="P-256";constructor(e,t){this._clientPublicKey=e,this._sharedKey=t}static async build(e){const t=await o.generateKeyPair(r._namedCurve),s=await o.importPublicKey(e,this._namedCurve),i=await o.deriveKey(s,t.privateKey);return new r(t.publicKey,i)}async encrypt(e,t){const s=window.crypto.getRandomValues(new Uint8Array(12));return{iv:s,ciphertext:await window.crypto.subtle.encrypt({name:"AES-GCM",iv:s,additionalData:t},this._sharedKey,e)}}async decrypt(e,t){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:e},this._sharedKey,t)}get clientPublicKey(){return this._clientPublicKey}}class o{static base64ToBytes(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}static bytesToBase64(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}static async generateKeyPair(e){const t={name:"ECDH",namedCurve:e};return window.crypto.subtle.generateKey(t,!1,["deriveKey"])}static async importPublicKey(e,t){const s={name:"ECDH",namedCurve:t};return window.crypto.subtle.importKey("spki",this.base64ToBytes(e),s,!1,[])}static exportPublicKey(e){return window.crypto.subtle.exportKey("spki",e)}static async deriveKey(e,t){return window.crypto.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}static async hash(e){const t=await window.crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e));return this.bytesToBase64(new Uint8Array(t))}}}function g(e,t,s,r){const i=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return d(s,...t)};let n=null;const o="cookie"!==e.storage,a=new c(t,o,e.internalStorage,i);i(`Module is using ${o?"local storage":"cookies"} for internal storage.`);const l=h&&h.isCSTGOptionsValid(e.cstg,r);l?(i("Module is using client-side token generation."),n=null):e.paramToken?(n=e.paramToken,i("Read token from params",n)):e.serverCookieName&&(n=a.readProvidedCookie(e.serverCookieName),i("Read token from server-supplied cookie",n));let u=a.getStoredValueWithFallback();if(i("Loaded module-stored tokens:",u),u&&"string"==typeof u){if(!n&&!l)return i("Returning legacy cookie value."),{id:u};i("Discarding superseded legacy cookie."),u=null}if(n&&u&&u.originalToken?.advertising_token!==n.advertising_token&&(i("Server supplied new token - ignoring stored value.",u.originalToken?.advertising_token,n.advertising_token),u=null),l){const t=h.getValidIdentity(e.cstg,r);if(t&&(u&&h.isStoredTokenInvalid(t,u,i,r)&&(u=null),!u||Date.now()>u.latestToken.refresh_expires)){const s=h.generateTokenAndStore(e.apiBaseUrl,e.cstg,t,a,i,r);return i("Generate token using CSTG"),{callback:e=>{s.then((t=>{i("Token generation responded, passing the new token on.",t),e(t)}))}}}}const g=!u?.latestToken||n&&n.identity_expires>u.latestToken.identity_expires,y=g?n:u.latestToken;if(i("UID2 module selected latest token",g,y),!y||Date.now()>y.refresh_expires)return i("Newest available token is expired and not refreshable."),{id:null};if(Date.now()>y.identity_expires){const t=p(e.apiBaseUrl,y,e.clientId,a,i,r);return i("Token is expired but can be refreshed, attempting refresh."),{callback:e=>{t.then((t=>{i("Refresh reponded, passing the updated token on.",t),e(t)}))}}}Date.now()>y.refresh_from&&(i("Refreshing token in background with low priority."),p(e.apiBaseUrl,y,e.clientId,a,i,r));const f={originalToken:n??u?.originalToken,latestToken:y};return l&&(f.originalIdentity=u?.originalIdentity),a.storeValue(f),{id:f}}function y(e){const t=["emailHash","phoneHash","email","phone"];for(let s of t)if(e.hasOwnProperty(s))return{[s]:e[s]};return{}}(0,r.E)("uid2IdSystem_shared")}},e=>{e.O(0,[44950,60802,51085],(()=>{return t=85263,e(e.s=t);var t}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[56293],{84259:(e,t,s)=>{s.d(t,{E0:()=>p,kz:()=>o,wq:()=>h});var i=s(7873),r=s(68044),n=s(91069);const o="1.1";function a(e){return!!("object"==typeof e&&null!==e&&e.advertising_token&&e.identity_expires&&e.refresh_from&&e.refresh_token&&e.refresh_expires)}class l{constructor(e,t,s,i){this._baseUrl=e.baseUrl,this._clientVersion=t,this._logInfo=s,this._logWarn=i}createArrayBuffer(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=e.charCodeAt(s);return t}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isValidRefreshResponse(e){return this.hasStatusResponse(e)&&("optout"===e.status||"expired_token"===e.status||"success"===e.status&&e.body&&a(e.body))}ResponseToRefreshResult(e){return this.isValidRefreshResponse(e)?"success"===e.status?{status:e.status,identity:e.body}:e:"Response didn't contain a valid status"}callRefreshApi(e){const t=this._baseUrl+"/v2/token/refresh";let s,i;const n=new Promise(((e,t)=>{s=e,i=t}));return this._logInfo("Sending refresh request",e),(0,r.RD)(t,{success:t=>{try{if(e.refresh_response_key){this._logInfo("Decrypting refresh API response");const r=this.createArrayBuffer(atob(t));window.crypto.subtle.importKey("raw",this.createArrayBuffer(atob(e.refresh_response_key)),{name:"AES-GCM"},!1,["decrypt"]).then((e=>{this._logInfo("Imported decryption key"),window.crypto.subtle.decrypt({name:"AES-GCM",iv:r.slice(0,12),tagLength:128},e,r.slice(12)).then((e=>{const t=String.fromCharCode(...new Uint8Array(e));this._logInfo("Decrypted to:",t);const r=JSON.parse(t),n=this.ResponseToRefreshResult(r);"string"==typeof n?i(n):s(n)}),(e=>this._logWarn("Call to UID2 API failed",e)))}),(e=>this._logWarn("Call to UID2 API failed",e)))}else{this._logInfo("No response decryption key available, assuming unencrypted JSON");const e=JSON.parse(t),r=this.ResponseToRefreshResult(e);"string"==typeof r?i(r):s(r)}}catch(e){i(t)}},error:(e,t)=>{try{this._logInfo("Error status, assuming unencrypted JSON");const e=JSON.parse(t.responseText),r=this.ResponseToRefreshResult(e);"string"==typeof r?i(r):s(r)}catch(t){i(e)}}},e.refresh_token,{method:"POST",customHeaders:{"X-UID2-Client-Version":this._clientVersion}}),n}}class c{constructor(e,t,s,i){this._storage=e,this._preferLocalStorage=t,this._storageName=s,this._logInfo=i}readCookie(e){return this._storage.cookiesAreEnabled()?this._storage.getCookie(e):null}readLocalStorage(e){return this._storage.localStorageIsEnabled()?this._storage.getDataFromLocalStorage(e):null}readModuleCookie(){return this.parseIfContainsBraces(this.readCookie(this._storageName))}writeModuleCookie(e){this._storage.setCookie(this._storageName,JSON.stringify(e),Date.now()+864e5)}readModuleStorage(){return this.parseIfContainsBraces(this.readLocalStorage(this._storageName))}writeModuleStorage(e){this._storage.setDataInLocalStorage(this._storageName,JSON.stringify(e))}readProvidedCookie(e){return JSON.parse(this.readCookie(e))}parseIfContainsBraces(e){return e?.includes("{")?JSON.parse(e):e}storeValue(e){this._preferLocalStorage?this.writeModuleStorage(e):this.writeModuleCookie(e)}getStoredValueWithFallback(){const e=this._preferLocalStorage?"local storage":"cookie",t=(this._preferLocalStorage?this.readModuleStorage:this.readModuleCookie).bind(this),s=(this._preferLocalStorage?this.writeModuleStorage:this.writeModuleCookie).bind(this),i=(this._preferLocalStorage?this.readModuleCookie:this.readModuleStorage).bind(this),r=t();if(r){if("string"==typeof r){const t=i();if(t&&"object"==typeof t)return this._logInfo(`${e} contained a basic token, but found a refreshable token fallback. Copying the fallback value to ${e}.`),s(t),t}}else{const t=i();if(t)return this._logInfo(`${e} was empty, but found a fallback value.`),"object"==typeof t&&(this._logInfo(`Copying the fallback value to ${e}.`),s(t)),t}return r}}function d(e,t,s,i,r,n){r("UID2 base url provided: ",e);return new l({baseUrl:e},s,r,n).callRefreshApi(t).then((e=>{r("Refresh endpoint responded with:",e);const s={originalToken:t,latestToken:e.identity};let n=i.getStoredValueWithFallback();return n?.originalIdentity&&(s.originalIdentity=n.originalIdentity),i.storeValue(s),s}))}let u;{const e=9;u={isCSTGOptionsValid(e,t){if("object"!=typeof e||null===e)return t('CSTG is not being used, but is included in the Prebid.js bundle. You can reduce the bundle size by passing "--disable UID2_CSTG" to the Prebid.js build.'),!1;const s=e;if(!s.serverPublicKey&&!s.subscriptionId)return t("CSTG has been enabled but its parameters have not been set."),!1;if("string"!=typeof s.serverPublicKey)return t("CSTG opts.serverPublicKey must be a string"),!1;const i=/^(UID2|EUID)-X-[A-Z]-.+/;return i.test(s.serverPublicKey)?"string"!=typeof s.subscriptionId?(t("CSTG opts.subscriptionId must be a string"),!1):0!==s.subscriptionId.length||(t("CSTG opts.subscriptionId is empty"),!1):(t(`CSTG opts.serverPublicKey must match the regular expression ${i}`),!1)},getValidIdentity(e,s){if(e.emailHash)return t.isBase64Hash(e.emailHash)?{email_hash:e.emailHash}:void s("CSTG opts.emailHash is invalid");if(e.phoneHash)return t.isBase64Hash(e.phoneHash)?{phone_hash:e.phoneHash}:void s("CSTG opts.phoneHash is invalid");if(e.email){const i=t.normalizeEmail(e.email);return void 0===i?void s("CSTG opts.email is invalid"):{email:i}}return e.phone?t.isNormalizedPhone(e.phone)?{phone:e.phone}:void s("CSTG opts.phone is invalid"):void 0},isStoredTokenInvalid(e,t,s,i){if(t){if("optout"===t.latestToken)return!0;const i=Object.values(e)[0];if(!this.isStoredTokenFromSameIdentity(t,i))return s("CSTG supplied new identity - ignoring stored value.",t.originalIdentity,e),!0}return!1},async generateTokenAndStore(e,t,i,r,n,o){n("UID2 cstg opts provided: ",JSON.stringify(t));const a=new s({baseUrl:e,cstg:t},n,o),l=await a.generateToken(i);n("CSTG endpoint responded with:",l);const c={originalIdentity:this.encodeOriginalIdentity(i),latestToken:l.identity};return r.storeValue(c),c},isStoredTokenFromSameIdentity:(e,t)=>!!e.originalIdentity&&(0,n.cyrb53Hash)(t,e.originalIdentity.salt)===e.originalIdentity.identity,encodeOriginalIdentity(e){const t=Object.values(e)[0],s=Math.floor(Math.random()*Math.pow(2,32));return{identity:(0,n.cyrb53Hash)(t,s),salt:s}}};class t{static EMAIL_EXTENSION_SYMBOL="+";static EMAIL_DOT=".";static GMAIL_DOMAIN="gmail.com";static isBase64Hash(e){if(!e||44!==e.length)return!1;try{return btoa(atob(e))===e}catch(e){return!1}}static isNormalizedPhone(e){return/^\+[0-9]{10,15}$/.test(e)}static normalizeEmail(e){if(!e||!e.length)return;const t=e.trim().toLowerCase();if(t.indexOf(" ")>0)return;const s=this.splitEmailIntoAddressAndDomain(t);if(!s)return;const{address:i,domain:r}=s,n=this.isGmail(r),o=this.normalizeAddressPart(i,n,n);return o?`${o}@${r}`:void 0}static splitEmailIntoAddressAndDomain(e){const t=e.split("@");if(2===t.length&&!t.some((e=>""===e)))return{address:t[0],domain:t[1]}}static isGmail(e){return e===this.GMAIL_DOMAIN}static dropExtension(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.EMAIL_EXTENSION_SYMBOL;return e.split(t)[0]}static normalizeAddressPart(e,t,s){let i=e;return t&&(i=i.replaceAll(this.EMAIL_DOT,"")),s&&(i=this.dropExtension(i)),i}}class s{constructor(e,t,s){this._baseUrl=e.baseUrl,this._serverPublicKey=e.cstg.serverPublicKey,this._subscriptionId=e.cstg.subscriptionId,this._logInfo=t,this._logWarn=s}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isCstgApiSuccessResponse(e){return this.hasStatusResponse(e)&&"success"===e.status&&a(e.body)}isCstgApiOptoutResponse(e){return this.hasStatusResponse(e)&&"optout"===e.status}isCstgApiClientErrorResponse(e){return this.hasStatusResponse(e)&&"client_error"===e.status&&"string"==typeof e.message}isCstgApiForbiddenResponse(e){return this.hasStatusResponse(e)&&"invalid_http_origin"===e.status&&"string"==typeof e.message}stripPublicKeyPrefix(t){return t.substring(e)}async generateCstgRequest(e){if("email_hash"in e||"phone_hash"in e)return e;if("email"in e){return{email_hash:await o.hash(e.email)}}if("phone"in e){return{phone_hash:await o.hash(e.phone)}}}async generateToken(e){const t=await this.generateCstgRequest(e);this._logInfo("Building CSTG request for",t);const s=await i.build(this.stripPublicKeyPrefix(this._serverPublicKey)),r=new TextEncoder,n=Date.now(),{iv:a,ciphertext:l}=await s.encrypt(r.encode(JSON.stringify(t)),r.encode(JSON.stringify([n]))),c=await o.exportPublicKey(s.clientPublicKey),d={payload:o.bytesToBase64(new Uint8Array(l)),iv:o.bytesToBase64(new Uint8Array(a)),public_key:o.bytesToBase64(new Uint8Array(c)),timestamp:n,subscription_id:this._subscriptionId};return this.callCstgApi(d,s)}async callCstgApi(e,t){const s=this._baseUrl+"/v2/token/client-generate";let i,n;const a=new Promise(((e,t)=>{i=e,n=t}));return this._logInfo("Sending CSTG request",e),(0,r.RD)(s,{success:async(e,s)=>{try{const s=o.base64ToBytes(e),r=await t.decrypt(s.slice(0,12),s.slice(12)),a=(new TextDecoder).decode(r),l=JSON.parse(a);this.isCstgApiSuccessResponse(l)?i({status:"success",identity:l.body}):this.isCstgApiOptoutResponse(l)?i({status:"optout",identity:"optout"}):n(`API error: Response body was invalid for HTTP status 200: ${a}`)}catch(e){n(e)}},error:(e,t)=>{try{if(400===t.status){const e=JSON.parse(t.responseText);this.isCstgApiClientErrorResponse(e)?n(`Client error: ${e.message}`):n(`API error: Response body was invalid for HTTP status 400: ${t.responseText}`)}else if(403===t.status){const e=JSON.parse(t.responseText);this.isCstgApiForbiddenResponse(t)?n(`Forbidden: ${e.message}`):n(`API error: Response body was invalid for HTTP status 403: ${t.responseText}`)}else n(`API error: Unexpected HTTP status ${t.status}: ${e}`)}catch(t){n(e)}}},JSON.stringify(e),{method:"POST"}),a}}class i{static _namedCurve="P-256";constructor(e,t){this._clientPublicKey=e,this._sharedKey=t}static async build(e){const t=await o.generateKeyPair(i._namedCurve),s=await o.importPublicKey(e,this._namedCurve),r=await o.deriveKey(s,t.privateKey);return new i(t.publicKey,r)}async encrypt(e,t){const s=window.crypto.getRandomValues(new Uint8Array(12));return{iv:s,ciphertext:await window.crypto.subtle.encrypt({name:"AES-GCM",iv:s,additionalData:t},this._sharedKey,e)}}async decrypt(e,t){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:e},this._sharedKey,t)}get clientPublicKey(){return this._clientPublicKey}}class o{static base64ToBytes(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}static bytesToBase64(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}static async generateKeyPair(e){const t={name:"ECDH",namedCurve:e};return window.crypto.subtle.generateKey(t,!1,["deriveKey"])}static async importPublicKey(e,t){const s={name:"ECDH",namedCurve:t};return window.crypto.subtle.importKey("spki",this.base64ToBytes(e),s,!1,[])}static exportPublicKey(e){return window.crypto.subtle.exportKey("spki",e)}static async deriveKey(e,t){return window.crypto.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}static async hash(e){const t=await window.crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e));return this.bytesToBase64(new Uint8Array(t))}}}function h(e,t,s,i){let r=null;const n="cookie"!==e.storage,o=new c(t,n,e.internalStorage,s);s(`Module is using ${n?"local storage":"cookies"} for internal storage.`);const a=u&&u.isCSTGOptionsValid(e.cstg,i);a?(s("Module is using client-side token generation."),r=null):e.paramToken?(r=e.paramToken,s("Read token from params",r)):e.serverCookieName&&(r=o.readProvidedCookie(e.serverCookieName),s("Read token from server-supplied cookie",r));let l=o.getStoredValueWithFallback();if(s("Loaded module-stored tokens:",l),l&&"string"==typeof l){if(!r&&!a)return s("Returning legacy cookie value."),{id:l};s("Discarding superseded legacy cookie."),l=null}if(r&&l&&l.originalToken?.advertising_token!==r.advertising_token&&(s("Server supplied new token - ignoring stored value.",l.originalToken?.advertising_token,r.advertising_token),l=null),a){const t=u.getValidIdentity(e.cstg,i);if(t&&(l&&u.isStoredTokenInvalid(t,l,s,i)&&(l=null),!l||Date.now()>l.latestToken.refresh_expires)){const r=u.generateTokenAndStore(e.apiBaseUrl,e.cstg,t,o,s,i);return s("Generate token using CSTG"),{callback:e=>{r.then((t=>{s("Token generation responded, passing the new token on.",t),e(t)}))}}}}const h=!l?.latestToken||r&&r.identity_expires>l.latestToken.identity_expires,p=h?r:l.latestToken;if(s("UID2 module selected latest token",h,p),!p||Date.now()>p.refresh_expires)return s("Newest available token is expired and not refreshable."),{id:null};if(Date.now()>p.identity_expires){const t=d(e.apiBaseUrl,p,e.clientId,o,s,i);return s("Token is expired but can be refreshed, attempting refresh."),{callback:e=>{t.then((t=>{s("Refresh reponded, passing the updated token on.",t),e(t)}))}}}Date.now()>p.refresh_from&&(s("Refreshing token in background with low priority."),d(e.apiBaseUrl,p,e.clientId,o,s,i));const g={originalToken:r??l?.originalToken,latestToken:p};return a&&(g.originalIdentity=l?.originalIdentity),o.storeValue(g),{id:g}}function p(e){const t=["emailHash","phoneHash","email","phone"];for(let s of t)if(e.hasOwnProperty(s))return{[s]:e[s]};return{}}(0,i.E)("uid2IdSystem_shared")}},e=>{e.O(0,[60802,51085],(()=>{return t=84259,e(e.s=t);var t}));e.O()}]);
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[56293],{84259:(e,t,s)=>{s.d(t,{E0:()=>y,kz:()=>o,wq:()=>g});var r=s(7873),i=s(68044),n=s(91069);const o="1.1";function a(e){return!!("object"==typeof e&&null!==e&&e.advertising_token&&e.identity_expires&&e.refresh_from&&e.refresh_token&&e.refresh_expires)}function l(e){return`UID2 shared library - ${e}`}function c(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),r=1;r<t;r++)s[r-1]=arguments[r];e(l(s[0]),...s.slice(1))}class d{constructor(e,t,s,r){this._baseUrl=e.baseUrl,this._clientVersion=t,this._logInfo=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return c(s,...t)},this._logWarn=r}createArrayBuffer(e){const t=new Uint8Array(e.length);for(let s=0;s<e.length;s++)t[s]=e.charCodeAt(s);return t}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isValidRefreshResponse(e){return this.hasStatusResponse(e)&&("optout"===e.status||"expired_token"===e.status||"success"===e.status&&e.body&&a(e.body))}ResponseToRefreshResult(e){return this.isValidRefreshResponse(e)?"success"===e.status?{status:e.status,identity:e.body}:e:l("Response didn't contain a valid status")}callRefreshApi(e){const t=this._baseUrl+"/v2/token/refresh";let s,r;const n=new Promise(((e,t)=>{s=e,r=t}));return this._logInfo("Sending refresh request",e),(0,i.RD)(t,{success:t=>{try{if(e.refresh_response_key){this._logInfo("Decrypting refresh API response");const i=this.createArrayBuffer(atob(t));window.crypto.subtle.importKey("raw",this.createArrayBuffer(atob(e.refresh_response_key)),{name:"AES-GCM"},!1,["decrypt"]).then((e=>{this._logInfo("Imported decryption key"),window.crypto.subtle.decrypt({name:"AES-GCM",iv:i.slice(0,12),tagLength:128},e,i.slice(12)).then((e=>{const t=String.fromCharCode(...new Uint8Array(e));this._logInfo("Decrypted to:",t);const i=JSON.parse(t),n=this.ResponseToRefreshResult(i);"string"==typeof n?r(l(n)):s(n)}),(e=>this._logWarn(l("Call to UID2 API failed"),e)))}),(e=>this._logWarn(l("Call to UID2 API failed"),e)))}else{this._logInfo("No response decryption key available, assuming unencrypted JSON");const e=JSON.parse(t),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(l(i)):s(i)}}catch(e){r(l(t))}},error:(e,t)=>{try{this._logInfo("Error status, assuming unencrypted JSON");const e=JSON.parse(t.responseText),i=this.ResponseToRefreshResult(e);"string"==typeof i?r(l(i)):s(i)}catch(t){r(l(e))}}},e.refresh_token,{method:"POST",customHeaders:{"X-UID2-Client-Version":this._clientVersion}}),n}}class u{constructor(e,t,s,r){this._storage=e,this._preferLocalStorage=t,this._storageName=s,this._logInfo=function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return c(r,...t)}}readCookie(e){return this._storage.cookiesAreEnabled()?this._storage.getCookie(e):null}readLocalStorage(e){return this._storage.localStorageIsEnabled()?this._storage.getDataFromLocalStorage(e):null}readModuleCookie(){return this.parseIfContainsBraces(this.readCookie(this._storageName))}writeModuleCookie(e){this._storage.setCookie(this._storageName,JSON.stringify(e),Date.now()+864e5)}readModuleStorage(){return this.parseIfContainsBraces(this.readLocalStorage(this._storageName))}writeModuleStorage(e){this._storage.setDataInLocalStorage(this._storageName,JSON.stringify(e))}readProvidedCookie(e){return JSON.parse(this.readCookie(e))}parseIfContainsBraces(e){return e?.includes("{")?JSON.parse(e):e}storeValue(e){this._preferLocalStorage?this.writeModuleStorage(e):this.writeModuleCookie(e)}getStoredValueWithFallback(){const e=this._preferLocalStorage?"local storage":"cookie",t=(this._preferLocalStorage?this.readModuleStorage:this.readModuleCookie).bind(this),s=(this._preferLocalStorage?this.writeModuleStorage:this.writeModuleCookie).bind(this),r=(this._preferLocalStorage?this.readModuleCookie:this.readModuleStorage).bind(this),i=t();if(i){if("string"==typeof i){const t=r();if(t&&"object"==typeof t)return this._logInfo(`${e} contained a basic token, but found a refreshable token fallback. Copying the fallback value to ${e}.`),s(t),t}}else{const t=r();if(t)return this._logInfo(`${e} was empty, but found a fallback value.`),"object"==typeof t&&(this._logInfo(`Copying the fallback value to ${e}.`),s(t)),t}return i}}function h(e,t,s,r,i,n){i("UID2 base url provided: ",e);return new d({baseUrl:e},s,i,n).callRefreshApi(t).then((e=>{i("Refresh endpoint responded with:",e);const s={originalToken:t,latestToken:e.identity};let n=r.getStoredValueWithFallback();return n?.originalIdentity&&(s.originalIdentity=n.originalIdentity),r.storeValue(s),s}))}let p;{const e=9;p={isCSTGOptionsValid(e,t){if("object"!=typeof e||null===e)return t('CSTG is not being used, but is included in the Prebid.js bundle. You can reduce the bundle size by passing "--disable UID2_CSTG" to the Prebid.js build.'),!1;const s=e;if(!s.serverPublicKey&&!s.subscriptionId)return t("CSTG has been enabled but its parameters have not been set."),!1;if("string"!=typeof s.serverPublicKey)return t("CSTG opts.serverPublicKey must be a string"),!1;const r=/^(UID2|EUID)-X-[A-Z]-.+/;return r.test(s.serverPublicKey)?"string"!=typeof s.subscriptionId?(t("CSTG opts.subscriptionId must be a string"),!1):0!==s.subscriptionId.length||(t("CSTG opts.subscriptionId is empty"),!1):(t(`CSTG opts.serverPublicKey must match the regular expression ${r}`),!1)},getValidIdentity(e,s){if(e.emailHash)return t.isBase64Hash(e.emailHash)?{email_hash:e.emailHash}:void s("CSTG opts.emailHash is invalid");if(e.phoneHash)return t.isBase64Hash(e.phoneHash)?{phone_hash:e.phoneHash}:void s("CSTG opts.phoneHash is invalid");if(e.email){const r=t.normalizeEmail(e.email);return void 0===r?void s("CSTG opts.email is invalid"):{email:r}}return e.phone?t.isNormalizedPhone(e.phone)?{phone:e.phone}:void s("CSTG opts.phone is invalid"):void 0},isStoredTokenInvalid(e,t,s,r){if(t){if("optout"===t.latestToken)return!0;const r=Object.values(e)[0];if(!this.isStoredTokenFromSameIdentity(t,r))return s("CSTG supplied new identity - ignoring stored value.",t.originalIdentity,e),!0}return!1},async generateTokenAndStore(e,t,r,i,n,o){n("UID2 cstg opts provided: ",JSON.stringify(t));const a=new s({baseUrl:e,cstg:t},n,o),l=await a.generateToken(r);n("CSTG endpoint responded with:",l);const c={originalIdentity:this.encodeOriginalIdentity(r),latestToken:l.identity};return i.storeValue(c),c},isStoredTokenFromSameIdentity:(e,t)=>!!e.originalIdentity&&(0,n.cyrb53Hash)(t,e.originalIdentity.salt)===e.originalIdentity.identity,encodeOriginalIdentity(e){const t=Object.values(e)[0],s=Math.floor(Math.random()*Math.pow(2,32));return{identity:(0,n.cyrb53Hash)(t,s),salt:s}}};class t{static EMAIL_EXTENSION_SYMBOL="+";static EMAIL_DOT=".";static GMAIL_DOMAIN="gmail.com";static isBase64Hash(e){if(!e||44!==e.length)return!1;try{return btoa(atob(e))===e}catch(e){return!1}}static isNormalizedPhone(e){return/^\+[0-9]{10,15}$/.test(e)}static normalizeEmail(e){if(!e||!e.length)return;const t=e.trim().toLowerCase();if(t.indexOf(" ")>0)return;const s=this.splitEmailIntoAddressAndDomain(t);if(!s)return;const{address:r,domain:i}=s,n=this.isGmail(i),o=this.normalizeAddressPart(r,n,n);return o?`${o}@${i}`:void 0}static splitEmailIntoAddressAndDomain(e){const t=e.split("@");if(2===t.length&&!t.some((e=>""===e)))return{address:t[0],domain:t[1]}}static isGmail(e){return e===this.GMAIL_DOMAIN}static dropExtension(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.EMAIL_EXTENSION_SYMBOL;return e.split(t)[0]}static normalizeAddressPart(e,t,s){let r=e;return t&&(r=r.replaceAll(this.EMAIL_DOT,"")),s&&(r=this.dropExtension(r)),r}}class s{constructor(e,t,s){this._baseUrl=e.baseUrl,this._serverPublicKey=e.cstg.serverPublicKey,this._subscriptionId=e.cstg.subscriptionId,this._logInfo=function(){for(var e=arguments.length,s=new Array(e),r=0;r<e;r++)s[r]=arguments[r];return c(t,...s)},this._logWarn=s}hasStatusResponse(e){return"object"==typeof e&&e&&e.status}isCstgApiSuccessResponse(e){return this.hasStatusResponse(e)&&"success"===e.status&&a(e.body)}isCstgApiOptoutResponse(e){return this.hasStatusResponse(e)&&"optout"===e.status}isCstgApiClientErrorResponse(e){return this.hasStatusResponse(e)&&"client_error"===e.status&&"string"==typeof e.message}isCstgApiForbiddenResponse(e){return this.hasStatusResponse(e)&&"invalid_http_origin"===e.status&&"string"==typeof e.message}stripPublicKeyPrefix(t){return t.substring(e)}async generateCstgRequest(e){if("email_hash"in e||"phone_hash"in e)return e;if("email"in e){return{email_hash:await o.hash(e.email)}}if("phone"in e){return{phone_hash:await o.hash(e.phone)}}}async generateToken(e){const t=await this.generateCstgRequest(e);this._logInfo("Building CSTG request for",t);const s=await r.build(this.stripPublicKeyPrefix(this._serverPublicKey)),i=new TextEncoder,n=Date.now(),{iv:a,ciphertext:l}=await s.encrypt(i.encode(JSON.stringify(t)),i.encode(JSON.stringify([n]))),c=await o.exportPublicKey(s.clientPublicKey),d={payload:o.bytesToBase64(new Uint8Array(l)),iv:o.bytesToBase64(new Uint8Array(a)),public_key:o.bytesToBase64(new Uint8Array(c)),timestamp:n,subscription_id:this._subscriptionId};return this.callCstgApi(d,s)}async callCstgApi(e,t){const s=this._baseUrl+"/v2/token/client-generate";let r,n;const a=new Promise(((e,t)=>{r=e,n=t}));return this._logInfo("Sending CSTG request",e),(0,i.RD)(s,{success:async(e,s)=>{try{const s=o.base64ToBytes(e),i=await t.decrypt(s.slice(0,12),s.slice(12)),a=(new TextDecoder).decode(i),c=JSON.parse(a);this.isCstgApiSuccessResponse(c)?r({status:"success",identity:c.body}):this.isCstgApiOptoutResponse(c)?r({status:"optout",identity:"optout"}):n(l(`API error: Response body was invalid for HTTP status 200: ${a}`))}catch(e){n(l(e))}},error:(e,t)=>{try{if(400===t.status){const e=JSON.parse(t.responseText);this.isCstgApiClientErrorResponse(e)?n(l(`Client error: ${e.message}`)):n(l(`UID2 API error: Response body was invalid for HTTP status 400: ${t.responseText}`))}else if(403===t.status){const e=JSON.parse(t.responseText);this.isCstgApiForbiddenResponse(t)?n(l(`Forbidden: ${e.message}`)):n(l(`UID2 API error: Response body was invalid for HTTP status 403: ${t.responseText}`))}else n(l(`UID2 API error: Unexpected HTTP status ${t.status}: ${e}`))}catch(t){n(l(e))}}},JSON.stringify(e),{method:"POST"}),a}}class r{static _namedCurve="P-256";constructor(e,t){this._clientPublicKey=e,this._sharedKey=t}static async build(e){const t=await o.generateKeyPair(r._namedCurve),s=await o.importPublicKey(e,this._namedCurve),i=await o.deriveKey(s,t.privateKey);return new r(t.publicKey,i)}async encrypt(e,t){const s=window.crypto.getRandomValues(new Uint8Array(12));return{iv:s,ciphertext:await window.crypto.subtle.encrypt({name:"AES-GCM",iv:s,additionalData:t},this._sharedKey,e)}}async decrypt(e,t){return window.crypto.subtle.decrypt({name:"AES-GCM",iv:e},this._sharedKey,t)}get clientPublicKey(){return this._clientPublicKey}}class o{static base64ToBytes(e){const t=atob(e);return Uint8Array.from(t,(e=>e.codePointAt(0)))}static bytesToBase64(e){const t=Array.from(e,(e=>String.fromCodePoint(e))).join("");return btoa(t)}static async generateKeyPair(e){const t={name:"ECDH",namedCurve:e};return window.crypto.subtle.generateKey(t,!1,["deriveKey"])}static async importPublicKey(e,t){const s={name:"ECDH",namedCurve:t};return window.crypto.subtle.importKey("spki",this.base64ToBytes(e),s,!1,[])}static exportPublicKey(e){return window.crypto.subtle.exportKey("spki",e)}static async deriveKey(e,t){return window.crypto.subtle.deriveKey({name:"ECDH",public:e},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}static async hash(e){const t=await window.crypto.subtle.digest("SHA-256",(new TextEncoder).encode(e));return this.bytesToBase64(new Uint8Array(t))}}}function g(e,t,s,r){const i=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return c(s,...t)};let n=null;const o="cookie"!==e.storage,a=new u(t,o,e.internalStorage,i);i(`Module is using ${o?"local storage":"cookies"} for internal storage.`);const l=p&&p.isCSTGOptionsValid(e.cstg,r);l?(i("Module is using client-side token generation."),n=null):e.paramToken?(n=e.paramToken,i("Read token from params",n)):e.serverCookieName&&(n=a.readProvidedCookie(e.serverCookieName),i("Read token from server-supplied cookie",n));let d=a.getStoredValueWithFallback();if(i("Loaded module-stored tokens:",d),d&&"string"==typeof d){if(!n&&!l)return i("Returning legacy cookie value."),{id:d};i("Discarding superseded legacy cookie."),d=null}if(n&&d&&d.originalToken?.advertising_token!==n.advertising_token&&(i("Server supplied new token - ignoring stored value.",d.originalToken?.advertising_token,n.advertising_token),d=null),l){const t=p.getValidIdentity(e.cstg,r);if(t&&(d&&p.isStoredTokenInvalid(t,d,i,r)&&(d=null),!d||Date.now()>d.latestToken.refresh_expires)){const s=p.generateTokenAndStore(e.apiBaseUrl,e.cstg,t,a,i,r);return i("Generate token using CSTG"),{callback:e=>{s.then((t=>{i("Token generation responded, passing the new token on.",t),e(t)}))}}}}const g=!d?.latestToken||n&&n.identity_expires>d.latestToken.identity_expires,y=g?n:d.latestToken;if(i("UID2 module selected latest token",g,y),!y||Date.now()>y.refresh_expires)return i("Newest available token is expired and not refreshable."),{id:null};if(Date.now()>y.identity_expires){const t=h(e.apiBaseUrl,y,e.clientId,a,i,r);return i("Token is expired but can be refreshed, attempting refresh."),{callback:e=>{t.then((t=>{i("Refresh reponded, passing the updated token on.",t),e(t)}))}}}Date.now()>y.refresh_from&&(i("Refreshing token in background with low priority."),h(e.apiBaseUrl,y,e.clientId,a,i,r));const f={originalToken:n??d?.originalToken,latestToken:y};return l&&(f.originalIdentity=d?.originalIdentity),a.storeValue(f),{id:f}}function y(e){const t=["emailHash","phoneHash","email","phone"];for(let s of t)if(e.hasOwnProperty(s))return{[s]:e[s]};return{}}(0,r.E)("uid2IdSystem_shared")}},e=>{e.O(0,[60802,51085],(()=>{return t=84259,e(e.s=t);var t}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[2443],{14049:(e,t,n)=>{var i=n(7873),r=n(91069),d=n(70433),o=n(43272),s=n(57377),a=n(51252);const p="7.30V",u="9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[2443],{14049:(e,t,n)=>{var i=n(7873),r=n(91069),d=n(70433),o=n(43272),s=n(57377),a=n(51252);const p="7.30V",u="9.7.0",l={standard:1,sticky:2};let c=!1;(0,r.logMessage)(`Initializing UDM Adapter. PBJS Version: ${u} with adapter version: ${p} Updated 2023 01 26`);const g={NON_MEASURABLE:-1,code:"underdogmedia",bidParams:[],isBidRequestValid:function(e){if(!e.params)return(0,r.logWarn)("[Underdog Media] bid params are missing"),!1;if(!e.params.siteId)return(0,r.logWarn)("[Underdog Media] siteId is missing"),!1;if(e.params.productId&&!l[e.params.productId])return(0,r.logWarn)("[Underdog Media] invalid productId"),!1;const t=e.mediaTypes&&e.mediaTypes.banner&&e.mediaTypes.banner.sizes?e.mediaTypes.banner.sizes:e.sizes;return!(!t||t.length<1)||((0,r.logWarn)("[Underdog Media] bid sizes are missing"),!1)},buildRequests:function(e,t){var n=[],i=0;let s={dt:10,gdpr:{},pbTimeout:+o.$W.getConfig("bidderTimeout")||3001,pbjsVersion:u,placements:[],ref:(0,d.A)(t,"refererInfo.page")?t.refererInfo.page:void 0,usp:{},userIds:{"33acrossId":(0,d.A)(e[0],"userId.33acrossId.envelope")?e[0].userId["33acrossId"].envelope:void 0,pubcid:(0,d.A)(e[0],"crumbs.pubcid")?e[0].crumbs.pubcid:void 0,unifiedId:(0,d.A)(e[0],"userId.tdid")?e[0].userId.tdid:void 0},version:p};if(e.forEach((e=>{let t={},o=e.mediaTypes&&e.mediaTypes.banner&&e.mediaTypes.banner.sizes?e.mediaTypes.banner.sizes:e.sizes;n=(0,r.flatten)(n,(0,r.parseSizesInput)(o)),i=+e.params.siteId;let p=e.adUnitCode,u=function(e){return document.getElementById(e)||document.getElementById(function(e){if((0,r.isGptPubadsDefined)()){const t=googletag.pubads().getSlots(),n=(0,a.mw)(e);for(let i=0;i<t.length;i++)if(n(t[i])){const n=t[i].getSlotElementId();return(0,r.logInfo)(`[Underdogmedia Adapter] Map ad unit path to HTML element id: '${e}' -> ${n}`),n}}return(0,r.logWarn)(`[Underdogmedia Adapter] Unable to locate element for ad unit code: '${e}'`),null}(e))}(p),c=function(e){return e.reduce(((e,t)=>t.h*t.w<e.h*e.w?t:e))}(o);if(t.sizes=(0,r.parseSizesInput)(o),t.adUnitCode=p,t.productId=l[e.params.productId]||l.standard,(0,d.A)(e,"params.productId")?"standard"===e.params.productId?t.productId=1:"adhesion"===e.params.productId&&(t.productId=2):t.productId=1,t.gpid=(0,d.A)(e,"ortb2Imp.ext.gpid")?e.ortb2Imp.ext.gpid:void 0,function(e){return!function(){try{return(0,r.getWindowSelf)()!==(0,r.getWindowTop)()}catch(e){return!0}}()&&null!==e}(u)){const e={w:c[0],h:c[1]};let n=Math.round(function(e,t){let{w:n,h:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return"visible"===t.document.visibilityState?function(e,t){let{w:n,h:i}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const r=function(e){let{w:t,h:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{width:i,height:r,left:d,top:o,right:s,bottom:a}=e.getBoundingClientRect();(0===i||0===r)&&t&&n&&(i=t,r=n,s=d+t,a=o+n);return{width:i,height:r,left:d,top:o,right:s,bottom:a}}(e,{w:n,h:i}),d=function(e){const t={left:e[0].left,right:e[0].right,top:e[0].top,bottom:e[0].bottom};for(let n=1;n<e.length;++n){if(t.left=Math.max(t.left,e[n].left),t.right=Math.min(t.right,e[n].right),t.left>=t.right)return null;if(t.top=Math.max(t.top,e[n].top),t.bottom=Math.min(t.bottom,e[n].bottom),t.top>=t.bottom)return null}return t.width=t.right-t.left,t.height=t.bottom-t.top,t}([{left:0,top:0,right:t.innerWidth,bottom:t.innerHeight},r]);let o,s;if(null!==d)return o=d.width*d.height,s=r.width*r.height,o/s*100;return 0}(e,t,{w:n,h:i}):0}(u,(0,r.getWindowTop)(),e));t.viewability=n}else t.viewability=-1;s.placements.push(t)})),s.sid=i,t&&t.gdprConsent&&(void 0!==t.gdprConsent.gdprApplies&&(s.gdpr.gdprApplies=!!t.gdprConsent.gdprApplies),t.gdprConsent.vendorData&&t.gdprConsent.vendorData.vendorConsents&&void 0!==t.gdprConsent.vendorData.vendorConsents[159]&&(s.gdpr.consentGiven=!!t.gdprConsent.vendorData.vendorConsents[159]),void 0!==t.gdprConsent.consentString&&(s.gdpr.consentData=t.gdprConsent.consentString)),t.uspConsent&&(s.usp.uspConsent=t.uspConsent),!s.gdpr||!s.gdpr.gdprApplies||s.gdpr.consentGiven)return{method:"POST",url:`https://udmserve.net/udm/img.fetch?sid=${i}`,data:s,bidParams:e}},getUserSyncs:function(e,t){if(!c&&t.length>0&&t[0].body&&t[0].body.userSyncs&&t[0].body.userSyncs.length>0){c=!0;return t[0].body.userSyncs.filter((t=>{const{type:n}=t;return!(!e.iframeEnabled||"iframe"!==n)||(!(!e.pixelEnabled||"image"!==n)||void 0)}))}},interpretResponse:function(e,t){const n=[];return e.body.mids.forEach((e=>{const i=t.bidParams.find((t=>{if(e.ad_unit_code===t.adUnitCode)return!0}));if(!i)return;const r={requestId:i.bidId,cpm:parseFloat(e.cpm),width:e.width,height:e.height,ad:e.ad_code_html,creativeId:e.mid,currency:"USD",netRevenue:!1,ttl:e.ttl||300,meta:{advertiserDomains:e.advertiser_domains||[]}};r.cpm<=0||r.ad.length<=0||(r.ad+=function(e,t,n){let i=t.notification_url;const r=i.indexOf(";version=");r+1&&(i=i.substring(0,r));i+=`;version=${p}`,i+=";cb="+Math.random(),i+=";qqq="+1/e.cpm,i+=";hbt="+o.$W.getConfig("bidderTimeout"),i+=";style=adapter",i+=";vis="+encodeURIComponent(document.visibilityState),i+=";traffic_info="+encodeURIComponent(JSON.stringify(function(){for(var e,t={},n=window.location.href.slice(window.location.href.indexOf("?")+1).split("&"),i=0;i<n.length;i++)(e=n[i].split("="))[0].match(/^utm_/)&&(t[e[0]]=e[1].substr(0,150));return t}())),n.params.subId&&(i+=";subid="+encodeURIComponent(n.params.subId));return'<script async src="'+i+'"><\/script>'}(r,e,i),n.push(r))})),n}};(0,s.a$)(g),(0,i.E)("underdogmediaBidAdapter")}},e=>{e.O(0,[33005,60802,51085],(()=>{return t=14049,e(e.s=t);var t}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[48785],{64747:(e,t,n)=>{var r=n(7873),a=n(91069),i=n(70433),s=n(57377),p=n(71371);function o(e){if(!e)return null;return`gdpr=${e.gdprApplies?"1":"0"}&gdprstr=${e.consentString?e.consentString:""}`}function d(e){let t=document.getElementById(e),n=-1,r=-1;if(t){n=t.offsetLeft,r=t.offsetTop;let e=t.offsetParent;return e&&(n+=e.offsetLeft,r+=e.offsetTop),[n,r]}return null}const l={code:"undertone",gvlid:677,supportedMediaTypes:[p.D4,p.G_],isBidRequestValid:function(e){if(e&&e.params&&e.params.publisherId)return e.params.publisherId=parseInt(e.params.publisherId),!0},buildRequests:function(e,t){const n=Math.max(document.documentElement.clientWidth,window.innerWidth||0),r=Math.max(document.documentElement.clientHeight,window.innerHeight||0),s=0==n||0==r?null:[n,r],l={adapterVersion:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[48785],{64747:(e,t,n)=>{var r=n(7873),a=n(91069),i=n(70433),s=n(57377),p=n(71371);function o(e){if(!e)return null;return`gdpr=${e.gdprApplies?"1":"0"}&gdprstr=${e.consentString?e.consentString:""}`}function d(e){let t=document.getElementById(e),n=-1,r=-1;if(t){n=t.offsetLeft,r=t.offsetTop;let e=t.offsetParent;return e&&(n+=e.offsetLeft,r+=e.offsetTop),[n,r]}return null}const l={code:"undertone",gvlid:677,supportedMediaTypes:[p.D4,p.G_],isBidRequestValid:function(e){if(e&&e.params&&e.params.publisherId)return e.params.publisherId=parseInt(e.params.publisherId),!0},buildRequests:function(e,t){const n=Math.max(document.documentElement.clientWidth,window.innerWidth||0),r=Math.max(document.documentElement.clientHeight,window.innerHeight||0),s=0==n||0==r?null:[n,r],l={adapterVersion:"9.7.0",uids:e[0].userId,pageSize:s};e[0].schain&&(l.schain=e[0].schain);const u={"x-ut-hb-params":[],commons:l},c=t.refererInfo.topmostLocation,m=t.refererInfo.canonicalUrl;c&&(l.referrer=c),m&&(l.canonicalUrl=m);let h=function(e){let t=null;try{let n=/[-\w]+\.([-\w]+|[-\w]{3,}|[-\w]{1,3}\.[-\w]{2})$/i.exec(e);if(null!=n&&n.length>0){t=n[0];for(let e=1;e<n.length;e++)n[e].length>t.length&&(t=n[e])}}catch(e){t=null}return t}((0,a.parseUrl)(c).hostname);const f=m||c;let y=`https://hb.undertone.com/hb?pid=${e[0].params.publisherId}&domain=${h}`,g=o(t.gdprConsent);if(g&&(y+=`&${g}`),t.uspConsent&&(y+=`&ccpa=${t.uspConsent}`),t.gppConsent){y+=`&gpp=${t.gppConsent.gppString??""}&gpp_sid=${t.gppConsent.applicableSections??""}`}return e.map((e=>{const t={bidRequestId:e.bidId,coordinates:d(e.adUnitCode),hbadaptor:"prebid",url:f,domain:h,placementId:null!=e.params.placementId?e.params.placementId:null,publisherId:e.params.publisherId,gpid:(0,i.A)(e,"ortb2Imp.ext.gpid",(0,i.A)(e,"ortb2Imp.ext.data.pbadslot","")),sizes:e.sizes,params:e.params},n=(0,i.A)(e,"mediaTypes.video"),r=n?p.G_:p.D4;t.mediaType=r,t.bidfloor=function(e,t){if("function"!=typeof e.getFloor)return 0;const n=e.getFloor({currency:"USD",mediaType:t,size:"*"});return n&&"USD"===n.currency&&n.floor||0}(e,r),n&&(t.video={playerSize:(0,i.A)(e,"mediaTypes.video.playerSize")||null,streamType:(0,i.A)(e,"mediaTypes.video.context")||null,playbackMethod:(0,i.A)(e,"params.video.playbackMethod")||null,maxDuration:(0,i.A)(e,"params.video.maxDuration")||null,skippable:(0,i.A)(e,"params.video.skippable")||null,placement:(0,i.A)(e,"mediaTypes.video.placement")||null,plcmt:(0,i.A)(e,"mediaTypes.video.plcmt")||null}),u["x-ut-hb-params"].push(t)})),{method:"POST",url:y,withCredentials:!0,data:JSON.stringify(u)}},interpretResponse:function(e,t){const n=[],r=e.body;return r&&Array.isArray(r)&&r.length>0&&r.forEach((e=>{if(e.ad&&e.cpm>0){const t={requestId:e.bidRequestId,cpm:e.cpm,width:e.width,height:e.height,creativeId:e.adId,currency:e.currency,netRevenue:e.netRevenue,ttl:e.ttl||360,meta:{advertiserDomains:e.adomain?e.adomain:[]}};e.mediaType&&"video"===e.mediaType?(t.vastXml=e.ad,t.mediaType=e.mediaType):t.ad=e.ad,n.push(t)}})),n},getUserSyncs:function(e,t,n,r){const a=[];let i=o(n),s="",p="";return i&&(s+=`?${i}`,p+=`&${i}`),r&&(s+=""!=s?"&":"?",s+=`ccpa=${r}`,p+=`&ccpa=${r}`),e.iframeEnabled?a.push({type:"iframe",url:"https://cdn.undertone.com/js/usersync.html"+s}):e.pixelEnabled&&a.push({type:"image",url:"https://usr.undertone.com/userPixel/syncOne?id=1&of=2"+p},{type:"image",url:"https://usr.undertone.com/userPixel/syncOne?id=2&of=2"+p}),a}};(0,s.a$)(l),(0,r.E)("undertoneBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return t=64747,e(e.s=t);var t}));e.O()}]);
|
package/dist/unrulyBidAdapter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[99582],{27364:(e,r,n)=>{var t=n(7873),i=n(70433),d=n(91069),o=n(95789),s=n(57377),a=n(71371);const u=(e,r,n)=>{const{bids:t,bidderRequestId:d,bidderCode:o,...s}=n,a=n.bids.length-r.length;let u={};r.forEach((r=>{const n=r.params.siteId;(e=>{Object.keys(e.mediaTypes).forEach((r=>{let n;n="function"==typeof e.getFloor?e.getFloor({currency:"USD",mediaType:r,size:"*"}).floor||0:e.params.floor||0,e.mediaTypes[r].floor=n}))})(r),(e=>{let r=(0,i.A)(e,"mediaTypes.banner");if(r){let e={},n=[];r.sizes.forEach((r=>{e[r.toString()]||(e[r.toString()]=!0,n.push(r))})),r.sizes=n}})(r),((e,r)=>{!r&&e.ortb2Imp&&e.ortb2Imp.ext&&delete e.ortb2Imp.ext.ae})(r,e.protectedAudienceEnabled),u[n]=u[n]||[],u[n].push(r)}));let l=[];return Object.keys(u).forEach((r=>{let n={bidderRequest:Object.assign({},{bids:u[r],invalidBidsCount:a,prebidVersion:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[99582],{27364:(e,r,n)=>{var t=n(7873),i=n(70433),d=n(91069),o=n(95789),s=n(57377),a=n(71371);const u=(e,r,n)=>{const{bids:t,bidderRequestId:d,bidderCode:o,...s}=n,a=n.bids.length-r.length;let u={};r.forEach((r=>{const n=r.params.siteId;(e=>{Object.keys(e.mediaTypes).forEach((r=>{let n;n="function"==typeof e.getFloor?e.getFloor({currency:"USD",mediaType:r,size:"*"}).floor||0:e.params.floor||0,e.mediaTypes[r].floor=n}))})(r),(e=>{let r=(0,i.A)(e,"mediaTypes.banner");if(r){let e={},n=[];r.sizes.forEach((r=>{e[r.toString()]||(e[r.toString()]=!0,n.push(r))})),r.sizes=n}})(r),((e,r)=>{!r&&e.ortb2Imp&&e.ortb2Imp.ext&&delete e.ortb2Imp.ext.ae})(r,e.protectedAudienceEnabled),u[n]=u[n]||[],u[n].push(r)}));let l=[];return Object.keys(u).forEach((r=>{let n={bidderRequest:Object.assign({},{bids:u[r],invalidBidsCount:a,prebidVersion:"9.7.0",...s})};l.push(Object.assign({},{data:n,...e}))})),l},l=e=>{if(e.ad)return e;(0,d.logError)(new Error("UnrulyBidAdapter: Missing ad config."))},p=e=>{if(e.vastUrl||e.vastXml)return e;(0,d.logError)(new Error("UnrulyBidAdapter: Missing vastUrl or vastXml config."))},c=e=>{const r=!!(0,i.A)(e,"ext.renderer.config"),n=!!(0,i.A)(e,"ext.renderer.config.siteId");if(!r)return void(0,d.logError)(new Error("UnrulyBidAdapter: Missing renderer config."));if(!n)return void(0,d.logError)(new Error("UnrulyBidAdapter: Missing renderer siteId."));const t=(0,i.A)(e,"ext.renderer");!function(e,r){if(!e.config)throw new Error("UnrulyBidAdapter: Missing renderer config.");if(!e.config.siteId)throw new Error("UnrulyBidAdapter: Missing renderer siteId.");parent.window.unruly=parent.window.unruly||{},parent.window.unruly.native=parent.window.unruly.native||{},parent.window.unruly.native.siteId=parent.window.unruly.native.siteId||e.config.siteId,parent.window.unruly.native.adSlotId=r,parent.window.unruly.native.supplyMode="prebid"}(t,e.requestId),parent.window.unruly.native.prebid=parent.window.unruly.native.prebid||{},parent.window.unruly.native.prebid.uq=parent.window.unruly.native.prebid.uq||[];const s=o.A4.install(Object.assign({},t)),a=Object.assign({},e,{renderer:s,adUnitCode:(0,i.A)(e,"ext.adUnitCode")});return s.setRender((()=>{var e;e=a,parent.window.unruly.native.prebid.uq.push(["render",e])})),e.renderer=e.renderer||s,e},y=e=>{if(!e.context)return!1;return-1!==["outstream","instream"].indexOf(e.context)},f=e=>e.sizes,b={code:"unruly",supportedMediaTypes:[a.G_,a.D4],gvlid:36,isBidRequestValid:function(e){let r=(0,i.A)(e,"params.siteId")&&(e=>{const r=(0,i.A)(e,"mediaTypes.video"),n=(0,i.A)(e,"mediaTypes.banner");let t=!(!r&&!n);return t&&r&&(t=y(r)),t&&n&&(t=f(n)),t})(e);return!!r},buildRequests:function(e,r){let n="https://targeting.unrulymedia.com/unruly_prebid";return e[0]&&(n=(0,i.A)(e[0],"params.endpoint")||n),u({url:n,method:"POST",options:{contentType:"application/json"},protectedAudienceEnabled:r.paapi?.enabled},e,r)},interpretResponse:function(e){if(!e||!e.body||!e.body.auctionConfigs&&!e.body.bids)return[];const r=e.body;let n=[],t=null;if(r.bids.length&&(n=(e=>{let r=[];return e.forEach((e=>{let n,t=(0,i.A)(e,"meta.mediaType");if(t&&"banner"===t.toLowerCase())e.mediaType=a.D4,n=l(e);else if(t&&"video"===t.toLowerCase()){let r=(0,i.A)(e,"meta.videoContext");e.mediaType=a.G_,"instream"===r?n=p(e):"outstream"===r&&(n=c(e))}n&&r.push(n)})),r})(r.bids)),r.auctionConfigs){let e=r.auctionConfigs,n=Object.keys(e);n.length&&n.forEach((r=>{t=[{bidId:r,config:e[r]}]}))}return t?{bids:n,paapi:t}:n}};(0,s.a$)(b),(0,t.E)("unrulyBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return r=27364,e(e.s=r);var r}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[988],{19180:(e,r,t)=>{var n=t(7873),i=t(57377),s=t(71371),p=t(91069),o=t(89766),d=t(70433);const a="viant",u="https://bidders-us
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[988],{19180:(e,r,t)=>{var n=t(7873),i=t(57377),s=t(71371),p=t(91069),o=t(89766),d=t(70433);const a="viant",u="https://bidders-us.adelphic.net/d/rtb/v25/prebid/bidder",l="2.0.0",b={code:a,supportedMediaTypes:[s.D4,s.G_,s.s6],isBidRequestValid:function(e){if(e&&"object"!=typeof e.params)return(0,p.logError)(a+": params is not defined or is incorrect in the bidder settings."),!1;if(!(0,p.getBidIdParameter)("publisherId",e.params))return(0,p.logError)(a+": publisherId is not present in bidder params."),!1;const r=(0,d.A)(e,"mediaTypes.banner"),t=(0,d.A)(e,"mediaTypes.video"),n=(0,d.A)(e,"mediaTypes.native");return!!(r||t||n)||(p.logWarn(a+": one of mediaTypes.banner or mediaTypes.video or mediaTypes.native must be passed"),!1)},buildRequests:function(e,r){let t=e.filter((e=>function(e){return(0,d.A)(e,"mediaTypes.video")}(e))),n=e.filter((e=>function(e){return(0,d.A)(e,"mediaTypes.banner")}(e))),i=e.filter((e=>function(e){return(0,d.A)(e,"mediaTypes.native")}(e))),p=n.length?[c(n,r,s.D4)]:[];return t.forEach((e=>{p.push(c([e],r,s.G_))})),i.forEach((e=>{p.push(c([e],r,s.s6))})),p},interpretResponse(e,r){e.body||(e.body={nbr:0});return g.fromORTB({request:r.data,response:e.body}).bids},onBidWon:function(e){e.burl?(p.triggerPixel(e.burl),p.triggerPixel(p.replaceAuctionPrice(e.burl,e.originalCpm||e.cpm))):e.nurl&&(p.triggerPixel(e.nurl),p.triggerPixel(p.replaceAuctionPrice(e.nurl,e.originalCpm||e.cpm)))}};function c(e,r,t){const n=g.toORTB({bidRequests:e,bidderRequest:r,context:{mediaType:t}});r.gdprConsent&&"boolean"==typeof r.gdprConsent.gdprApplies&&(n.regs||(n.regs={}),n.regs.ext||(n.regs.ext={}),n.regs.ext.gdpr=r.gdprConsent.gdprApplies?1:0),r.uspConsent&&(n.regs||(n.regs={}),n.regs.ext||(n.regs.ext={}),n.regs.ext.us_privacy=r.uspConsent);let i=n.imp||[],s=new Map;return r.bids&&r.bids.forEach((e=>{e.ortb2Imp&&e.ortb2Imp.pmp&&s.set(e.bidId,e.ortb2Imp.pmp)})),i.forEach((e=>{let r=s.get(e.id);r&&(e.pmp=r)})),n.ext=n.ext||{},n.ext.viant={adapterVersion:l},{method:"POST",url:u,data:n}}const g=(0,o.A)({context:{netRevenue:!0,ttl:300,currency:"USD"}});(0,i.a$)(b),(0,n.E)("viantOrtbBidAdapter")}},e=>{e.O(0,[60802,58498,51085],(()=>{return r=19180,e(e.s=r);var r}));e.O()}]);
|
package/dist/vidazooUtils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[85946],{42986:(e,t,n)=>{n.d(t,{$d:()=>f,EE:()=>y,GH:()=>u,Lp:()=>$,W:()=>I,Wu:()=>
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[85946],{42986:(e,t,n)=>{n.d(t,{$d:()=>f,EE:()=>y,GH:()=>u,Lp:()=>$,W:()=>I,Wu:()=>v,Zq:()=>C,bH:()=>S,lE:()=>U});var r=n(91069),i=n(70433),o=n(29906),d=n(44796),a=n(12693),s=n(43272),c=n(71371);function u(){return"wsid_"+parseInt(Date.now()*Math.random())}function p(){try{return(0,r.parseUrl)(window.top.document.URL,{decodeSearchAsString:!0}).search}catch(e){return""}}function l(e){return e.cId||e.CID||e.cID||e.CId||e.cid||e.ciD||e.Cid||e.CiD}function g(e){return e.pId||e.PID||e.pID||e.PId||e.pid||e.piD||e.Pid||e.PiD}function m(e){return e.subDomain||e.SubDomain||e.Subdomain||e.subdomain||e.SUBDOMAIN||e.subDOMAIN}function f(e){const t=e.params||{};return!(!l(t)||!g(t))}function b(e,t,n,r){try{const i=r||Date.now(),o=JSON.stringify({value:n,created:i});e.setDataInLocalStorage(t,o)}catch(e){}}function h(e,t){try{return function(e){try{return JSON.parse(e)}catch(t){return e}}(e.getDataFromLocalStorage(t,null))}catch(e){}return null}function I(e,t){let n=e.getDataFromLocalStorage(t,null);return n||(n=String(Date.now()),e.setDataInLocalStorage(t,n,null)),n}function C(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d.Xz;try{const r=h(e,t);let i,o=0;r&&r.value&&Date.now()-r.created<n&&(o=r.value,i=r.created);const d=o+1;return b(e,t,d,i),d}catch(e){return 0}}function S(e){if(!e.nurl)return;const t={adId:e.adId,creativeId:e.creativeId,auctionId:e.auctionId,transactionId:e.transactionId,adUnitCode:e.adUnitCode,cpm:e.cpm,currency:e.currency,originalCpm:e.originalCpm,originalCurrency:e.originalCurrency,netRevenue:e.netRevenue,mediaType:e.mediaType,timeToRespond:e.timeToRespond,status:e.status},n=(0,r.formatQS)(t),i=e.nurl+(-1===e.nurl.indexOf("?")?"?":"&")+n;(0,r.triggerPixel)(i)}function y(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{iframeSyncUrl:"",imageSyncUrl:""};return function(t,n){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};const s=[],{iframeEnabled:c,pixelEnabled:u}=t,{gdprApplies:p,consentString:l=""}=o,{gppString:g,applicableSections:m}=a,f=n.filter((e=>(0,i.A)(e,"body.cid"))).map((e=>e.body.cid)).filter(r.uniques);let b=`?cid=${encodeURIComponent(f.join(","))}&gdpr=${p?1:0}&gdpr_consent=${encodeURIComponent(l||"")}&us_privacy=${encodeURIComponent(d||"")}`;return g&&m?.length&&(b+="&gpp="+encodeURIComponent(g),b+="&gpp_sid="+encodeURIComponent(m.join(","))),c&&e.iframeSyncUrl&&s.push({type:"iframe",url:`${e.iframeSyncUrl}/${b}`}),u&&e.imageSyncUrl&&s.push({type:"image",url:`${e.imageSyncUrl}/${b}`}),s}}function v(e){return h(e,d.T7)||""}function D(e,t,n,o,s,c,u,l,m){const{params:f,bidId:I,userId:C,adUnitCode:S,schain:y,mediaTypes:v,ortb2Imp:D,bidderRequestId:$,bidRequestsCount:U,bidderRequestsCount:A,bidderWinsCount:R}=e,{ext:T}=f;let{bidFloor:w}=f;const q=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"_";const n=e.length;let r=0,i=0;if(n>0)for(;i<n;)r=(r<<5)-r+e.charCodeAt(i++)|0;return t+r}(t),x=(0,r.isFn)(m)?m(q,e):{},z=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d.dB;const r=`u_${t}`,i=Date.now(),o=h(e,r);let a;return!o||!o.value||i-o.created>n?(a=`${t}_${i.toString()}`,b(e,r,a)):a=o.value,a}(c,q),_=g(f),O=a.u.get(l,"storageAllowed"),j=(0,i.A)(e,"ortb2Imp.ext.gpid")||(0,i.A)(e,"ortb2Imp.ext.data.pbadslot",""),E=(0,i.A)(o,"ortb2.site.cat",[]),F=(0,i.A)(o,"ortb2.site.pagecat",[]),P=(0,i.A)(o,"ortb2.site.content.data",[]),W=(0,i.A)(o,"ortb2.user.data",[]);if((0,r.isFn)(e.getFloor)){const t=e.getFloor({currency:"USD",mediaType:"*",size:"*"});"USD"===t.currency&&(w=t.floor)}let L={url:encodeURIComponent(t),uqs:p(),cb:Date.now(),bidFloor:w,bidId:I,referrer:o.refererInfo.ref,adUnitCode:S,publisherId:_,sizes:n,uniqueDealId:z,bidderVersion:u,prebidVersion:"9.7.0",res:`${screen.width}x${screen.height}`,schain:y,mediaTypes:v,isStorageAllowed:O,gpid:j,cat:E,contentData:P,userData:W,pagecat:F,transactionId:D?.ext?.tid,bidderRequestId:$,bidRequestsCount:U,bidderRequestsCount:A,bidderWinsCount:R,bidderTimeout:s,...x};!function(e,t){let n;(0,r._each)(t,((t,r)=>{switch(n=`uid.${r}`,r){case"lipb":e[n]=t.lipbid;break;case"id5id":e[n]=t.uid;break;default:e[n]=t}}))}(L,C);const M=(0,i.A)(o,"ortb2.device.sua");if(M&&(L.sua=M),o.gdprConsent&&(o.gdprConsent.consentString&&(L.gdprConsent=o.gdprConsent.consentString),void 0!==o.gdprConsent.gdprApplies&&(L.gdpr=o.gdprConsent.gdprApplies?1:0)),o.uspConsent&&(L.usPrivacy=o.uspConsent),o.gppConsent?(L.gppString=o.gppConsent.gppString,L.gppSid=o.gppConsent.applicableSections):o.ortb2?.regs?.gpp&&(L.gppString=o.ortb2.regs.gpp,L.gppSid=o.ortb2.regs.gpp_sid),o.paapi?.enabled){const e=(0,i.A)(o,"ortb2Imp.ext.ae");e&&(L.fledge=e)}if((0,i.A)(v,"video.api",[]).includes(7)){const e=(0,i.A)(o,"ortb2.source.ext");e?.omidpv&&(L.omidpv=e.omidpv),e?.omidpn&&(L.omidpn=e.omidpn)}const k=(0,i.A)(o,"ortb2.regs.ext.dsa");return k&&(L.dsa=k),(0,r._each)(T,((e,t)=>{L["ext."+t]=e})),L}function $(e,t){return function(n,r){if(!n||!n.body)return[];const o=t&&s.$W.getConfig(`${e}.singleRequest`),a=(0,i.A)(r,"data.bidId"),{results:u}=n.body;let p=[];try{return u.forEach(((e,t)=>{const{creativeId:n,ad:r,price:i,exp:s,width:u,height:l,currency:g,bidId:m,nurl:f,advertiserDomains:b,metaData:h,mediaType:I=c.D4}=e;if(!r||!i)return;const C={requestId:o&&m?m:a,cpm:i,width:u,height:l,creativeId:n,currency:g||d.UM,netRevenue:!0,ttl:s||d.Xd};f&&(C.nurl=f),h?Object.assign(C,{meta:h}):Object.assign(C,{meta:{advertiserDomains:b||[]}}),I===c.D4?Object.assign(C,{ad:r}):Object.assign(C,{vastXml:r,mediaType:c.G_}),p.push(C)})),p}catch(e){return[]}}}function U(e,t,n,i,d,a){function u(r,o,a,s,c){const{params:u}=r,p=l(u),g=m(u),f=D(r,o,a,s,c,n,d,i,t);return{method:"POST",url:`${e(g)}/prebid/multi/${p}`,data:f}}return function(p,g){const f=g.refererInfo.page||g.refererInfo.topmostLocation,b=s.$W.getConfig("bidderTimeout"),h=a&&s.$W.getConfig(`${i}.singleRequest`),I=[];if(h){const a=p.filter((e=>(0,r.isArray)(e.mediaTypes)?e.mediaTypes.includes(c.D4):void 0!==e.mediaTypes[c.D4]));if(a.length>0){const c=function(a,c,u,p){const{params:g}=a[0],f=l(g),b=m(g),h=a.map((e=>{const o=(0,r.parseSizesInput)(e.sizes);return D(e,u,o,c,p,n,d,i,t)})),I=Math.min(20,s.$W.getConfig(`${i}.chunkSize`)||10);return(0,o.i)(h,I).map((t=>({method:"POST",url:`${e(b)}/prebid/multi/${f}`,data:{bids:t}})))}(a,g,f,b);I.push(...c)}p.filter((e=>void 0!==e.mediaTypes[c.G_])).forEach((e=>{const t=(0,r.parseSizesInput)(e.sizes),n=u(e,f,t,g,b);I.push(n)}))}else p.forEach((e=>{const t=(0,r.parseSizesInput)(e.sizes),n=u(e,f,t,g,b);I.push(n)}));return I}}},44796:(e,t,n)=>{n.d(t,{T7:()=>a,UM:()=>r,Xd:()=>i,Xz:()=>o,Zb:()=>s,dB:()=>d,mB:()=>c});const r="USD",i=300,o=9e5,d=36e5,a="vidSid",s="vdzwopt",c="vdzHum"}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[19376],{17580:(e,t,r)=>{var i=r(7873),n=r(91069),o=r(70433),a=r(63172),s=r(57377),d=r(71371);const c=["mimes","minduration","maxduration","placement","plcmt","protocols","startdelay","skip","skipafter","minbitrate","maxbitrate","delivery","playbackmethod","api","linearity"],p={code:"videobyte",supportedMediaTypes:[d.G_],VERSION:"1.0.0",ENDPOINT:"https://x.videobyte.com/ortbhb",isBidRequestValid:function(e){return function(e){if(!e.params)return!1;if(!e.params.pubId)return(0,n.logError)("failed validation: pubId not declared"),!1;const t=(0,o.A)(e,"mediaTypes.video",{}),r=(0,o.A)(e,"params.video",{});if(r&&r.e2etest)return!0;const i={...t,...r};if(!i.context)return(0,n.logError)("failed validation: context id not declared"),!1;if("instream"!==i.context)return(0,n.logError)("failed validation: only context instream is supported "),!1;if(void 0===i.playerSize||!Array.isArray(i.playerSize)||!Array.isArray(i.playerSize[0]))return(0,n.logError)("failed validation: player size not declared or is not in format [[w,h]]"),!1;return!0}(e)},buildRequests:function(e,t){if(e)return e.map((e=>{const{params:r}=e;let i=r.pubId;const o=r.placementId,a=r.nid;e.params.video&&e.params.video.e2etest&&((0,n.logMessage)("E2E test mode enabled"),i="e2etest");let s=p.ENDPOINT+"?pid="+i;return o&&(s+="&placementId="+o),a&&(s+="&nid="+a),{method:"POST",url:s,data:JSON.stringify(l(e,t))}}))},interpretResponse:function(e){const t=[],r=(e||{}).body;if(r&&r.seatbid&&1===r.seatbid.length&&r.seatbid[0].bid&&1===r.seatbid[0].bid.length){const e=r.seatbid[0].bid[0];if(e.adm&&e.price){let i={requestId:r.id,cpm:e.price,width:e.w,height:e.h,ttl:300,creativeId:e.crid,netRevenue:true,currency:"USD",mediaType:"video",vastXml:e.adm,meta:{advertiserDomains:e.adomain}};t.push(i)}}return t},getUserSyncs:function(e,t){let r=[];return e.iframeEnabled||e.pixelEnabled?(t.forEach((t=>{const i=(0,o.A)(t,"body.ext.usersync");if(i){let t=[];Object.keys(i).forEach((e=>{const r=i[e];r.syncs&&r.syncs.length&&(t=t.concat(r.syncs))})),t.forEach((e=>{r.push({type:"iframe"===e.type?"iframe":"image",url:e.url})})),e.iframeEnabled?r=r.filter((e=>"iframe"===e.type)):e.pixelEnabled&&(r=r.filter((e=>"image"===e.type)))}})),r):r}};function l(e,t){const{params:r}=e,i=(0,o.A)(e,"mediaTypes.video",{}),s=(0,o.A)(e,"params.video",{}),d={...i,...s};e.params.video&&e.params.video.e2etest&&(d.playerSize=[[640,480]],d.conext="instream");const l={w:parseInt(d.playerSize[0][0],10),h:parseInt(d.playerSize[0][1],10)};c.forEach((e=>{d.hasOwnProperty(e)&&(l[e]=d[e])}));const u={currency:e.params.cur||"USD",mediaType:"video",size:"*"};let f=e.params;(0,n.isFn)(e.getFloor)?f=e.getFloor(u):r.bidfloor&&(f={floor:r.bidfloor,currency:r.currency||"USD"});const m={id:e.bidId,imp:[{id:"1",video:l,secure:"https:"===document.location.protocol?1:0,bidfloor:f.floor,bidfloorcur:f.currency}],site:{domain:t.refererInfo.domain,page:t.refererInfo.page,ref:t.refererInfo.ref},ext:{hb:1,prebidver:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[19376],{17580:(e,t,r)=>{var i=r(7873),n=r(91069),o=r(70433),a=r(63172),s=r(57377),d=r(71371);const c=["mimes","minduration","maxduration","placement","plcmt","protocols","startdelay","skip","skipafter","minbitrate","maxbitrate","delivery","playbackmethod","api","linearity"],p={code:"videobyte",supportedMediaTypes:[d.G_],VERSION:"1.0.0",ENDPOINT:"https://x.videobyte.com/ortbhb",isBidRequestValid:function(e){return function(e){if(!e.params)return!1;if(!e.params.pubId)return(0,n.logError)("failed validation: pubId not declared"),!1;const t=(0,o.A)(e,"mediaTypes.video",{}),r=(0,o.A)(e,"params.video",{});if(r&&r.e2etest)return!0;const i={...t,...r};if(!i.context)return(0,n.logError)("failed validation: context id not declared"),!1;if("instream"!==i.context)return(0,n.logError)("failed validation: only context instream is supported "),!1;if(void 0===i.playerSize||!Array.isArray(i.playerSize)||!Array.isArray(i.playerSize[0]))return(0,n.logError)("failed validation: player size not declared or is not in format [[w,h]]"),!1;return!0}(e)},buildRequests:function(e,t){if(e)return e.map((e=>{const{params:r}=e;let i=r.pubId;const o=r.placementId,a=r.nid;e.params.video&&e.params.video.e2etest&&((0,n.logMessage)("E2E test mode enabled"),i="e2etest");let s=p.ENDPOINT+"?pid="+i;return o&&(s+="&placementId="+o),a&&(s+="&nid="+a),{method:"POST",url:s,data:JSON.stringify(l(e,t))}}))},interpretResponse:function(e){const t=[],r=(e||{}).body;if(r&&r.seatbid&&1===r.seatbid.length&&r.seatbid[0].bid&&1===r.seatbid[0].bid.length){const e=r.seatbid[0].bid[0];if(e.adm&&e.price){let i={requestId:r.id,cpm:e.price,width:e.w,height:e.h,ttl:300,creativeId:e.crid,netRevenue:true,currency:"USD",mediaType:"video",vastXml:e.adm,meta:{advertiserDomains:e.adomain}};t.push(i)}}return t},getUserSyncs:function(e,t){let r=[];return e.iframeEnabled||e.pixelEnabled?(t.forEach((t=>{const i=(0,o.A)(t,"body.ext.usersync");if(i){let t=[];Object.keys(i).forEach((e=>{const r=i[e];r.syncs&&r.syncs.length&&(t=t.concat(r.syncs))})),t.forEach((e=>{r.push({type:"iframe"===e.type?"iframe":"image",url:e.url})})),e.iframeEnabled?r=r.filter((e=>"iframe"===e.type)):e.pixelEnabled&&(r=r.filter((e=>"image"===e.type)))}})),r):r}};function l(e,t){const{params:r}=e,i=(0,o.A)(e,"mediaTypes.video",{}),s=(0,o.A)(e,"params.video",{}),d={...i,...s};e.params.video&&e.params.video.e2etest&&(d.playerSize=[[640,480]],d.conext="instream");const l={w:parseInt(d.playerSize[0][0],10),h:parseInt(d.playerSize[0][1],10)};c.forEach((e=>{d.hasOwnProperty(e)&&(l[e]=d[e])}));const u={currency:e.params.cur||"USD",mediaType:"video",size:"*"};let f=e.params;(0,n.isFn)(e.getFloor)?f=e.getFloor(u):r.bidfloor&&(f={floor:r.bidfloor,currency:r.currency||"USD"});const m={id:e.bidId,imp:[{id:"1",video:l,secure:"https:"===document.location.protocol?1:0,bidfloor:f.floor,bidfloorcur:f.currency}],site:{domain:t.refererInfo.domain,page:t.refererInfo.page,ref:t.refererInfo.ref},ext:{hb:1,prebidver:"9.7.0",adapterver:p.VERSION}};if(d.content&&(0,n.isPlainObject)(d.content)){m.site.content={};const e=["id","title","series","season","genre","contentrating","language","url"],t=["episode","prodq","context","livestream","len"],r=["cat"],i=["ext"];for(const o in s.content)e.indexOf(o)>-1&&(0,n.isStr)(d.content[o])||t.indexOf(o)>-1&&(0,n.isNumber)(d.content[o])||i.indexOf(o)>-1&&(0,n.isPlainObject)(d.content[o])||r.indexOf(o)>-1&&(0,n.isArray)(d.content[o])&&d.content[o].every((e=>(0,n.isStr)(e)))?m.site.content[o]=d.content[o]:(0,n.logMessage)("videobyte bid adapter validation error: ",o," is either not supported is OpenRTB V2.5 or value is undefined")}return e.schain&&((0,a.J)(m,"source.ext.schain",e.schain),m.source.ext.schain.nodes[0].rid=m.id),t.gdprConsent&&((0,a.J)(m,"user.ext.consent",t.gdprConsent.consentString),(0,a.J)(m,"regs.ext.gdpr",t.gdprConsent.gdprApplies?1:0)),t.uspConsent&&(0,a.J)(m,"regs.ext.us_privacy",t.uspConsent),m}(0,s.a$)(p),(0,i.E)("videobyteBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return t=17580,e(e.s=t);var t}));e.O()}]);
|
package/dist/visxBidAdapter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[86727],{90975:(e,t,n)=>{var r=n(7873),i=n(91069),s=n(70433),o=n(57377),d=n(43272),a=n(71371),p=n(63895),u=n(12938),c=n(51252),m=n(70392);const l="visx",g="EUR",f="/push_sync",y={noAuid:"Bid from response has no auid parameter - ",noAdm:"Bid from response has no adm parameter - ",noBid:"Array of bid objects is empty",noImpId:"Bid from response has no impid parameter - ",noPlacementCode:"Can't find in requested bids the bid with auid - ",emptyUids:"Uids should not be empty",emptySeatbid:"Seatbid array from response has an empty item",emptyResponse:"Response is empty",hasEmptySeatbidArray:"Response has empty seatbid array",hasNoArrayOfBids:"Seatbid from response has no array of bid objects - ",notAllowedCurrency:"Currency is not supported - ",currencyMismatch:"Currency from the request is not match currency from the response - ",onlyVideoInstream:`Only video ${p.mn} supported`,videoMissing:"Bid request videoType property is missing - "},b=["EUR","USD","GBP","PLN","CHF","SEK"],v=(0,u.vM)({bidderCode:l}),h=[],x={code:l,gvlid:154,supportedMediaTypes:[a.D4,a.G_],isBidRequestValid:function(e){return!(I(e)&&!A(e,!0)&&!function(e){return e.mediaType===a.D4||(0,s.A)(e,"mediaTypes.banner")}(e))&&(!!e.params.uid&&!isNaN(parseInt(e.params.uid)))},buildRequests:function(e,t){const n=[],r={},o=e||[],a=d.$W.getConfig(`currency.bidderCurrencyDefault.${l}`)||d.$W.getConfig("currency.adServerCurrency")||"EUR";let p,u,m,g,f,h,x,C,T,E,_;if(-1===b.indexOf(a))return void(0,i.logError)(y.notAllowedCurrency+a);const R=[];o.forEach((e=>{u=e.bidderRequestId;const t=function(e){const{params:{uid:t},bidId:n,mediaTypes:r,sizes:o,adUnitCode:d}=e,a=r&&I(e)&&A(e)&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=Object.keys(e).filter((e=>"context"!==e&&"playerSize"!==e)).reduce(((t,n)=>(t[n]=e[n],t)),{w:(0,s.A)(e,"playerSize.0.0"),h:(0,s.A)(e,"playerSize.0.1")});if(t.w&&t.h)return t}(r.video),p=function(e){const t=e&&e.sizes;if(t){if((0,i.parseSizesInput)(t).length){return{format:(0,i.sizesToSizeTuples)(t).map(i.sizeTupleToRtbSize)}}}}(r&&r.banner||!a&&{sizes:o}),u={id:n,...p&&{banner:p},...a&&{video:a},ext:{bidder:{uid:parseInt(t)}}};u.banner&&(u.ext.bidder.adslotExists=function(e){if(document.getElementById(e))return!0;const t=(0,c.p)(e);if(t.divId&&document.getElementById(t.divId))return!0;return!1}(d));if(u.ext.bidder.uid&&(u.banner||u.video))return u}(e);t&&(R.push(t),r[e.bidId]=e);const{params:{uid:o},schain:d,userId:a,userIdAsEids:p}=e;!m&&d&&(m=d),!f&&p&&(f=p),!g&&a&&(g=a),n.push(o)}));const z={};if(t){h=t.timeout,t.gdprConsent&&(t.gdprConsent.consentString&&(z.gdpr_consent=t.gdprConsent.consentString),z.gdpr_applies="boolean"==typeof t.gdprConsent.gdprApplies?Number(t.gdprConsent.gdprApplies):1);const{ortb2:e}=t,{device:n,site:r,regs:s,content:o}=e,d=e.user;let a,p;const u=function(){const e="__vads";let t;v.cookiesAreEnabled()?t=v.getCookie(e):v.localStorageIsEnabled()&&(t=v.getDataFromLocalStorage(e));if(t&&t.length)return t;if(t=function(){for(var e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",t=(new Date).getTime()%1073741824,n="",r=0;r<5;r++)n+=e[t%64],t=Math.floor(t/64);for(r=20;r--;)n+=e[64*Math.random()|0];return n}(),v.cookiesAreEnabled()){const n=new Date(Date.now()+2592e6).toUTCString();return v.setCookie(e,t,n),t}if(v.localStorageIsEnabled())return v.setDataInLocalStorage(e,t),t;return null}();(f||z.gdpr_consent||u)&&(a={ext:{...f&&{eids:f},...z.gdpr_consent&&{consent:z.gdpr_consent},...u&&{vads:u}}}),p=a?(0,i.mergeDeep)(a,d):d,n&&(x=n),r&&(C=r),s&&(T=s),o&&(E=o),p&&(_=p)}const w=h,D={ext:{wrapperType:"Prebid_js",wrapperVersion:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[86727],{90975:(e,t,n)=>{var r=n(7873),i=n(91069),s=n(70433),o=n(57377),d=n(43272),a=n(71371),p=n(63895),u=n(12938),c=n(51252),m=n(70392);const l="visx",g="EUR",f="/push_sync",y={noAuid:"Bid from response has no auid parameter - ",noAdm:"Bid from response has no adm parameter - ",noBid:"Array of bid objects is empty",noImpId:"Bid from response has no impid parameter - ",noPlacementCode:"Can't find in requested bids the bid with auid - ",emptyUids:"Uids should not be empty",emptySeatbid:"Seatbid array from response has an empty item",emptyResponse:"Response is empty",hasEmptySeatbidArray:"Response has empty seatbid array",hasNoArrayOfBids:"Seatbid from response has no array of bid objects - ",notAllowedCurrency:"Currency is not supported - ",currencyMismatch:"Currency from the request is not match currency from the response - ",onlyVideoInstream:`Only video ${p.mn} supported`,videoMissing:"Bid request videoType property is missing - "},b=["EUR","USD","GBP","PLN","CHF","SEK"],v=(0,u.vM)({bidderCode:l}),h=[],x={code:l,gvlid:154,supportedMediaTypes:[a.D4,a.G_],isBidRequestValid:function(e){return!(I(e)&&!A(e,!0)&&!function(e){return e.mediaType===a.D4||(0,s.A)(e,"mediaTypes.banner")}(e))&&(!!e.params.uid&&!isNaN(parseInt(e.params.uid)))},buildRequests:function(e,t){const n=[],r={},o=e||[],a=d.$W.getConfig(`currency.bidderCurrencyDefault.${l}`)||d.$W.getConfig("currency.adServerCurrency")||"EUR";let p,u,m,g,f,h,x,C,T,E,_;if(-1===b.indexOf(a))return void(0,i.logError)(y.notAllowedCurrency+a);const R=[];o.forEach((e=>{u=e.bidderRequestId;const t=function(e){const{params:{uid:t},bidId:n,mediaTypes:r,sizes:o,adUnitCode:d}=e,a=r&&I(e)&&A(e)&&function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=Object.keys(e).filter((e=>"context"!==e&&"playerSize"!==e)).reduce(((t,n)=>(t[n]=e[n],t)),{w:(0,s.A)(e,"playerSize.0.0"),h:(0,s.A)(e,"playerSize.0.1")});if(t.w&&t.h)return t}(r.video),p=function(e){const t=e&&e.sizes;if(t){if((0,i.parseSizesInput)(t).length){return{format:(0,i.sizesToSizeTuples)(t).map(i.sizeTupleToRtbSize)}}}}(r&&r.banner||!a&&{sizes:o}),u={id:n,...p&&{banner:p},...a&&{video:a},ext:{bidder:{uid:parseInt(t)}}};u.banner&&(u.ext.bidder.adslotExists=function(e){if(document.getElementById(e))return!0;const t=(0,c.p)(e);if(t.divId&&document.getElementById(t.divId))return!0;return!1}(d));if(u.ext.bidder.uid&&(u.banner||u.video))return u}(e);t&&(R.push(t),r[e.bidId]=e);const{params:{uid:o},schain:d,userId:a,userIdAsEids:p}=e;!m&&d&&(m=d),!f&&p&&(f=p),!g&&a&&(g=a),n.push(o)}));const z={};if(t){h=t.timeout,t.gdprConsent&&(t.gdprConsent.consentString&&(z.gdpr_consent=t.gdprConsent.consentString),z.gdpr_applies="boolean"==typeof t.gdprConsent.gdprApplies?Number(t.gdprConsent.gdprApplies):1);const{ortb2:e}=t,{device:n,site:r,regs:s,content:o}=e,d=e.user;let a,p;const u=function(){const e="__vads";let t;v.cookiesAreEnabled()?t=v.getCookie(e):v.localStorageIsEnabled()&&(t=v.getDataFromLocalStorage(e));if(t&&t.length)return t;if(t=function(){for(var e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",t=(new Date).getTime()%1073741824,n="",r=0;r<5;r++)n+=e[t%64],t=Math.floor(t/64);for(r=20;r--;)n+=e[64*Math.random()|0];return n}(),v.cookiesAreEnabled()){const n=new Date(Date.now()+2592e6).toUTCString();return v.setCookie(e,t,n),t}if(v.localStorageIsEnabled())return v.setDataInLocalStorage(e,t),t;return null}();(f||z.gdpr_consent||u)&&(a={ext:{...f&&{eids:f},...z.gdpr_consent&&{consent:z.gdpr_consent},...u&&{vads:u}}}),p=a?(0,i.mergeDeep)(a,d):d,n&&(x=n),r&&(C=r),s&&(T=s),o&&(E=o),p&&(_=p)}const w=h,D={ext:{wrapperType:"Prebid_js",wrapperVersion:"9.7.0",...m&&{schain:m}}};return void 0===T&&(T="gdpr_applies"in z&&{ext:{gdpr:z.gdpr_applies}}),p={id:u,imp:R,tmax:w,cur:[a],source:D,..._&&{user:_},...T&&{regs:T},...x&&{device:x},...C&&{site:C},...E&&{content:E}},{method:"POST",url:S("/hb_post")+"?auids="+encodeURIComponent(n.join(",")),data:p,bidsMap:r}},interpretResponse:function(e,t){e=e&&e.body;const n=[],r=t.bidsMap,o=t.data.cur[0];let d;return e?e.seatbid&&!e.seatbid.length&&(d=y.hasEmptySeatbidArray):d=y.emptyResponse,!d&&e.seatbid&&e.seatbid.forEach((e=>{!function(e,t,n,r){if(!e)return;let o;e.auid||(o=y.noAuid+JSON.stringify(e));e.impid||(o=y.noImpId+JSON.stringify(e));if(e.adm){const i=n||g,d=t[e.impid];if(d)if(e.cur&&e.cur!==i)o=y.currencyMismatch+i+" - "+e.cur;else{const t={requestId:d.bidId,cpm:e.price,width:e.w,height:e.h,creativeId:e.auid,currency:i,netRevenue:!0,ttl:360,dealId:e.dealid,meta:{advertiserDomains:e.advertiserDomains?e.advertiserDomains:[],mediaType:e.mediaType}};if(e.ext&&e.ext.prebid&&(t.ext=e.ext.prebid,e.ext.visx&&e.ext.visx.events)){const n=t.ext.events||{};t.ext.events=Object.assign(n,e.ext.visx.events)}const n=(0,s.A)(e,"ext.prebid.targeting");n&&(t.adserverTargeting=n),C(d)?(t.vastXml=e.adm,t.mediaType="video"):t.ad=e.adm,r.push(t)}else o=y.noPlacementCode+e.auid}else o=y.noAdm+JSON.stringify(e);o&&(0,i.logError)(o)}((0,m.T)(e,y),r,o,n)})),d&&(0,i.logError)(d),n},getUserSyncs:function(e,t,n){var r=[];return n&&(n.consentString&&r.push("gdpr_consent="+encodeURIComponent(n.consentString)),r.push("gdpr_applies="+encodeURIComponent("boolean"==typeof n.gdprApplies?Number(n.gdprApplies):1))),e.iframeEnabled?[{type:"iframe",url:S(f)+"?iframe=1"+(r.length?"&"+r.join("&"):"")}]:e.pixelEnabled?[{type:"image",url:S(f)+(r.length?"?"+r.join("&"):"")}]:void 0},onSetTargeting:function(e){e.ext&&e.ext.events&&e.ext.events.pending&&(0,i.triggerPixel)(e.ext.events.pending)},onBidWon:function(e){if(e.ext&&e.ext.events&&e.ext.events.win&&(0,i.triggerPixel)(e.ext.events.win),e.ext&&e.ext.events&&e.ext.events.runtime&&!h.includes(e.auctionId)){h.push(e.auctionId);const t=function(e,t){if(e<=0)return 0;if(e>5e3)return 100;return Math.floor((e-1)/t)+1}(e.timeToRespond,50);(0,i.triggerPixel)(e.ext.events.runtime.replace("{STATUS_CODE}",999e3+t))}},onTimeout:function(e){const t=e.map((e=>{let{params:t,timeout:n}=e;const r={timeout:n};return t&&(r.params=t.map((e=>e&&e.uid?{uid:parseInt(e.uid)}:{}))),r}));(0,i.triggerPixel)(S("/track/bid_timeout")+"//"+JSON.stringify(t))}};function S(e){return(d.$W.getConfig("devMode")?"https://t-stage.visx.net":"https://t.visx.net")+e}function I(e){return e.mediaType===a.G_||(0,s.A)(e,"mediaTypes.video")}function C(e){return I(e)&&(0,s.A)(e,"mediaTypes.video",{}).context===p.mn}function A(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!0;const r=(0,s.A)(e,"mediaTypes.video");return C(e)||(t&&(0,i.logError)(y.onlyVideoInstream),n=!1),r.playerSize&&(0,i.parseSizesInput)((0,s.A)(r,"playerSize",[]))||(t&&(0,i.logError)(y.videoMissing+"playerSize"),n=!1),n}(0,o.a$)(x),(0,r.E)("visxBidAdapter")}},e=>{e.O(0,[33005,92007,60802,51085],(()=>{return t=90975,e(e.s=t);var t}));e.O()}]);
|
package/dist/vuukleBidAdapter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[76975],{10787:(e,n,t)=>{var r=t(7873),s=t(91069),i=t(70433),d=t(57377),o=t(71371),a=t(43272);const p={code:"vuukle",gvlid:1004,supportedMediaTypes:[o.D4],isBidRequestValid:function(e){return!0},buildRequests:function(e,n){n=n||{};return e.map((function(e){const t=(0,s.parseSizesInput)(e.sizes),r=t[0].split("x"),i={url:encodeURIComponent(window.location.href),sizes:JSON.stringify(t),width:r[0],height:r[1],params:JSON.stringify(e.params),rnd:Math.random(),bidId:e.bidId,source:"pbjs",schain:JSON.stringify(e.schain),requestId:e.bidderRequestId,tmax:n.timeout,gdpr:n.gdprConsent&&n.gdprConsent.gdprApplies?1:0,consentGiven:u(n.gdprConsent),version:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[76975],{10787:(e,n,t)=>{var r=t(7873),s=t(91069),i=t(70433),d=t(57377),o=t(71371),a=t(43272);const p={code:"vuukle",gvlid:1004,supportedMediaTypes:[o.D4],isBidRequestValid:function(e){return!0},buildRequests:function(e,n){n=n||{};return e.map((function(e){const t=(0,s.parseSizesInput)(e.sizes),r=t[0].split("x"),i={url:encodeURIComponent(window.location.href),sizes:JSON.stringify(t),width:r[0],height:r[1],params:JSON.stringify(e.params),rnd:Math.random(),bidId:e.bidId,source:"pbjs",schain:JSON.stringify(e.schain),requestId:e.bidderRequestId,tmax:n.timeout,gdpr:n.gdprConsent&&n.gdprConsent.gdprApplies?1:0,consentGiven:u(n.gdprConsent),version:"9.7.0",v:2};return n.uspConsent&&(i.uspConsent=n.uspConsent),!0===a.$W.getConfig("coppa")&&(i.coppa=1),n.gdprConsent&&n.gdprConsent.consentString&&(i.consent=n.gdprConsent.consentString),{method:"GET",url:"https://pb.vuukle.com/adapter",data:i,options:{withCredentials:!1}}}))},interpretResponse:function(e,n){if(!e||!e.body||!e.body.ad)return[];const t=e.body;return[{requestId:n.data.bidId,cpm:t.cpm,width:t.width,height:t.height,creativeId:t.creative_id,currency:t.currency||"USD",netRevenue:!0,ttl:360,ad:t.ad,meta:{advertiserDomains:Array.isArray(t.adomain)?t.adomain:[]}}]}};function u(e){let n=0;return void 0!==e&&(n=(0,i.A)(e,"vendorData.vendor.consents.1004")?1:0),n}(0,d.a$)(p),(0,r.E)("vuukleBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return n=10787,e(e.s=n);var n}));e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[27298],{44938:(e,t,n)=>{var r=n(7873),o=n(43272),i=n(57377),s=n(91069),a=n(15901),d=n(12938);const c="widespace",p="wsPerfData",u="wsLcuid",l="wsCustomData",h=(0,d.vM)({bidderCode:c});let f=0;const g={code:c,supportedMediaTypes:["banner"],isBidRequestValid:function(e){return!(!e.params||!e.params.sid)},buildRequests:function(e,t){let n=[];const r=function(){const e="https://engine.widespace.com/map/engine/dynadreq";return window.wisp&&window.wisp.ENGINE_URL?window.wisp.ENGINE_URL:e}(),o=["gender","country","region","postal","city","yob"],i=m(p).map((e=>JSON.parse(e))),d=m(l,!1)[0],c=function(){let e=m(u,!1)[0];if(!e){w(("4"+(new Date).getTime()+String(Math.floor(1e9*Math.random()))).substring(0,18),u,!1),e=m(u,!1)[0]}return e}();let h=!1;try{window.top.location.toString(),h=!1}catch(e){h=!0}return e.forEach(((e,p)=>{let u={screenWidthPx:screen&&screen.width,screenHeightPx:screen&&screen.height,adSpaceHttpRefUrl:S(),referer:(h?window:window.top).location.href.split("#")[0],inFrame:1,sid:e.params.sid,lcuid:c,vol:h?"":y(document.getElementById(e.adUnitCode)),gdprCmp:t&&t.gdprConsent?1:0,hb:"1","hb.cd":d?C(d):"","hb.floor":"","hb.spb":0===p?b():-1,"hb.ver":"2.0.1","hb.name":"prebidjs-9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[27298],{44938:(e,t,n)=>{var r=n(7873),o=n(43272),i=n(57377),s=n(91069),a=n(15901),d=n(12938);const c="widespace",p="wsPerfData",u="wsLcuid",l="wsCustomData",h=(0,d.vM)({bidderCode:c});let f=0;const g={code:c,supportedMediaTypes:["banner"],isBidRequestValid:function(e){return!(!e.params||!e.params.sid)},buildRequests:function(e,t){let n=[];const r=function(){const e="https://engine.widespace.com/map/engine/dynadreq";return window.wisp&&window.wisp.ENGINE_URL?window.wisp.ENGINE_URL:e}(),o=["gender","country","region","postal","city","yob"],i=m(p).map((e=>JSON.parse(e))),d=m(l,!1)[0],c=function(){let e=m(u,!1)[0];if(!e){w(("4"+(new Date).getTime()+String(Math.floor(1e9*Math.random()))).substring(0,18),u,!1),e=m(u,!1)[0]}return e}();let h=!1;try{window.top.location.toString(),h=!1}catch(e){h=!0}return e.forEach(((e,p)=>{let u={screenWidthPx:screen&&screen.width,screenHeightPx:screen&&screen.height,adSpaceHttpRefUrl:S(),referer:(h?window:window.top).location.href.split("#")[0],inFrame:1,sid:e.params.sid,lcuid:c,vol:h?"":y(document.getElementById(e.adUnitCode)),gdprCmp:t&&t.gdprConsent?1:0,hb:"1","hb.cd":d?C(d):"","hb.floor":"","hb.spb":0===p?b():-1,"hb.ver":"2.0.1","hb.name":"prebidjs-9.7.0","hb.bidId":e.bidId,"hb.sizes":(0,s.parseSizesInput)(e.sizes).join(","),"hb.currency":e.params.cur||e.params.currency||""};e.params.demo&&o.forEach((t=>{e.params.demo[t]&&(u[t]=e.params.demo[t])})),i[p]&&Object.keys(i[p]).forEach((e=>{u[e]=i[p][e]}));const l=navigator.connection||navigator.webkitConnection;if(l&&l.type&&l.downlinkMax&&(u["netinfo.type"]=l.type,u["netinfo.downlinkMax"]=l.downlinkMax),h||(u.forceAdId=((0,a.I6)(window.top.location.hash.split("&"),(e=>(0,a.mK)(e,"WS_DEBUG_FORCEADID")))||"").split("=")[1]),u.gdprCmp){const{gdprApplies:e,consentString:n,vendorData:r}=t.gdprConsent,o=r&&r.hasGlobalScope;u.gdprApplies=e?1:void 0===e?"":0,u.gdprConsentData=n,u.gdprHasGlobalScope=o?1:void 0===o?"":0}Object.keys(u).forEach((e=>{""!==u[e]&&void 0!==u[e]||delete u[e]})),n.push({method:"POST",options:{contentType:"application/x-www-form-urlencoded"},url:r,data:(0,s.parseQueryStringParameters)(u)})})),f=Date.now(),n},interpretResponse:function(e,t){const n=Date.now()-f,r=e.body||[];let o=[];return r.forEach((e=>{w({perf_status:"OK",perf_reqid:e.reqId,perf_ms:n},`${p}${e.reqId}`),"ad"===e.status&&o.push({requestId:e.bidId,cpm:e.cpm,width:e.width,height:e.height,creativeId:e.adId,currency:e.currency,netRevenue:Boolean(e.netRev),ttl:e.ttl,referrer:S(),ad:e.code,meta:{advertiserDomains:e.adomain||[]}})})),o},getUserSyncs:function(e){let t=[];return t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).reduce(((e,t)=>(t&&t.body&&t.body[0]&&(t.body[0].syncPixels||[]).forEach((t=>{e.push({type:"image",url:t})})),e)),[]),t}};function w(e,t){const n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?JSON.stringify(e):e;if(h.hasLocalStorage())return h.setDataInLocalStorage(t,n),!0;if(h.cookiesAreEnabled()){const e=new Date,r=new Date(e.setMonth(e.getMonth()+12)).toGMTString();return h.setCookie(t,n,r),!0}}function m(e){return[]}function b(){const e=o.$W.getConfig("userSync");return e&&e.pixelEnabled&&e.syncEnabled?e.syncsPerBidder:-1}function y(e){if(e&&e.getBoundingClientRect){const t=e.getBoundingClientRect().top;return t<screen.height&&t>=window.top.pageYOffset?1:0}return""}function C(e){const t="object"==typeof(0,s.deepClone)(e);return encodeURIComponent(t?JSON.stringify(e):e)}function S(){try{return window.top.document.referrer}catch(e){return""}}(0,i.a$)(g),(0,r.E)("widespaceBidAdapter")}},e=>{e.O(0,[60802,51085],(()=>{return t=44938,e(e.s=t);var t}));e.O()}]);
|
package/dist/winrBidAdapter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[48569],{14869:(e,r,n)=>{var t=n(7873),a=n(91069),s=n(70433),i=n(43272),d=n(57377),p=n(71371),o=n(15901),c=n(12938),m=n(82621),u=n(554),l=n(2349),b=n(67660);const f="winr",g="https://ib.adnxs.com/ut/v3/prebid",h="https://ib.adnxs-simple.com/ut/v3/prebid",I=["age","externalUid","segments","gender","dnt","language"],_=["geo","device_id"],y=(0,c.vM)({bidderCode:f});function v(e){const r=e,n={domParent:r.meta.domParent?`'${r.meta.domParent}'`:null,child:r.meta.child?r.meta.child:4};return r.ad=function(e,r){return`<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8">\n <title></title>\n <style>html, body {width: 100%; height: 100%; margin: 0;}</style>\n </head>\n <body>\n <script>\n function winrPbRendererLoad(cb) {\n var w = parent.document.createElement("script");\n w.innerHTML = \`\n var WINR = {\n pubDocRef: parent.document,\n pubWinRef: window.parent\n };\n var winrLib = null;\n var winrParams = {\n rtb: {\n _eng: 'xan',\n _plmnt: ${e.meta.placementId}\n },\n inR: {\n tg: ${r.domParent},\n rf: ${r.child}\n },\n };\n \`;\n var s = parent.document.head.getElementsByTagName("script")[0];\n s.parentNode.insertBefore(w, s);\n var n = parent.document.createElement("script");\n n.src = 'https://helpers.winr.com.au/dist/prebidRenderer.js';\n n.onload = function () {\n var WinrLib = window.parent.WinrPbRenderer.default;\n window.parent.winrLib = new WinrLib();\n if (!window.parent.winrLib) {\n console.log("Wnr: Renderer not found");\n return false;\n } else {\n cb();\n }\n };\n var t = parent.document.head.getElementsByTagName("script")[0];\n t.parentNode.insertBefore(n, t.nexSibling);\n }\n winrPbRendererLoad(function() {\n var tag = "${encodeURIComponent(JSON.stringify(e))}";\n window.parent.winrLib.render(tag);\n });\n <\/script>\n </body>\n </html>`}(r,n),r}const w={code:f,aliases:["wnr"],supportedMediaTypes:[p.D4],isBidRequestValid:function(e){return function(e){return e.mediaTypes&&Object.keys(e.mediaTypes)[0]}(e)===p.D4&&(!!y.cookiesAreEnabled()&&(null===y.getCookie("wnr_gate")&&!!e.params.placementId))},buildRequests:function(e,r){const n=e.map(C),t=(0,o.I6)(e,R);let d={};!0===i.$W.getConfig("coppa")&&(d={coppa:!0}),t&&Object.keys(t.params.user).filter((e=>(0,o.mK)(I,e))).forEach((e=>{let r=(0,l.vk)(e);if("segments"===e&&(0,a.isArray)(t.params.user[e])){let n=[];t.params.user[e].forEach((e=>{(0,a.isNumber)(e)?n.push({id:e}):(0,a.isPlainObject)(e)&&n.push(e)})),d[r]=n}else"segments"!==e&&(d[r]=t.params.user[e])}));const p=(0,o.I6)(e,T);let c;p&&p.params&&p.params.app&&(c={},Object.keys(p.params.app).filter((e=>(0,o.mK)(_,e))).forEach((e=>c[e]=p.params.app[e])));const u=(0,o.I6)(e,P);let b;u&&u.params&&p.params.app&&p.params.app.id&&(b={appid:u.params.app.id});const f=(0,o.I6)(e,k),y=f?parseInt(f.params.member,10):0,v=e[0].schain,w={tags:[...n],user:d,sdk:{source:"pbjs",version:"9.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[48569],{14869:(e,r,n)=>{var t=n(7873),a=n(91069),s=n(70433),i=n(43272),d=n(57377),p=n(71371),o=n(15901),c=n(12938),m=n(82621),u=n(554),l=n(2349),b=n(67660);const f="winr",g="https://ib.adnxs.com/ut/v3/prebid",h="https://ib.adnxs-simple.com/ut/v3/prebid",I=["age","externalUid","segments","gender","dnt","language"],_=["geo","device_id"],y=(0,c.vM)({bidderCode:f});function v(e){const r=e,n={domParent:r.meta.domParent?`'${r.meta.domParent}'`:null,child:r.meta.child?r.meta.child:4};return r.ad=function(e,r){return`<!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8">\n <title></title>\n <style>html, body {width: 100%; height: 100%; margin: 0;}</style>\n </head>\n <body>\n <script>\n function winrPbRendererLoad(cb) {\n var w = parent.document.createElement("script");\n w.innerHTML = \`\n var WINR = {\n pubDocRef: parent.document,\n pubWinRef: window.parent\n };\n var winrLib = null;\n var winrParams = {\n rtb: {\n _eng: 'xan',\n _plmnt: ${e.meta.placementId}\n },\n inR: {\n tg: ${r.domParent},\n rf: ${r.child}\n },\n };\n \`;\n var s = parent.document.head.getElementsByTagName("script")[0];\n s.parentNode.insertBefore(w, s);\n var n = parent.document.createElement("script");\n n.src = 'https://helpers.winr.com.au/dist/prebidRenderer.js';\n n.onload = function () {\n var WinrLib = window.parent.WinrPbRenderer.default;\n window.parent.winrLib = new WinrLib();\n if (!window.parent.winrLib) {\n console.log("Wnr: Renderer not found");\n return false;\n } else {\n cb();\n }\n };\n var t = parent.document.head.getElementsByTagName("script")[0];\n t.parentNode.insertBefore(n, t.nexSibling);\n }\n winrPbRendererLoad(function() {\n var tag = "${encodeURIComponent(JSON.stringify(e))}";\n window.parent.winrLib.render(tag);\n });\n <\/script>\n </body>\n </html>`}(r,n),r}const w={code:f,aliases:["wnr"],supportedMediaTypes:[p.D4],isBidRequestValid:function(e){return function(e){return e.mediaTypes&&Object.keys(e.mediaTypes)[0]}(e)===p.D4&&(!!y.cookiesAreEnabled()&&(null===y.getCookie("wnr_gate")&&!!e.params.placementId))},buildRequests:function(e,r){const n=e.map(C),t=(0,o.I6)(e,R);let d={};!0===i.$W.getConfig("coppa")&&(d={coppa:!0}),t&&Object.keys(t.params.user).filter((e=>(0,o.mK)(I,e))).forEach((e=>{let r=(0,l.vk)(e);if("segments"===e&&(0,a.isArray)(t.params.user[e])){let n=[];t.params.user[e].forEach((e=>{(0,a.isNumber)(e)?n.push({id:e}):(0,a.isPlainObject)(e)&&n.push(e)})),d[r]=n}else"segments"!==e&&(d[r]=t.params.user[e])}));const p=(0,o.I6)(e,T);let c;p&&p.params&&p.params.app&&(c={},Object.keys(p.params.app).filter((e=>(0,o.mK)(_,e))).forEach((e=>c[e]=p.params.app[e])));const u=(0,o.I6)(e,P);let b;u&&u.params&&p.params.app&&p.params.app.id&&(b={appid:u.params.app.id});const f=(0,o.I6)(e,k),y=f?parseInt(f.params.member,10):0,v=e[0].schain,w={tags:[...n],user:d,sdk:{source:"pbjs",version:"9.7.0"},schain:v};if(y>0&&(w.member_id=y),p&&(w.device=c),u&&(w.app=b),r&&r.gdprConsent&&(w.gdpr_consent={consent_string:r.gdprConsent.consentString,consent_required:r.gdprConsent.gdprApplies}),r&&r.uspConsent&&(w.us_privacy=r.uspConsent),r&&r.refererInfo){let e={rd_ref:encodeURIComponent(r.refererInfo.topmostLocation),rd_top:r.refererInfo.reachedTop,rd_ifs:r.refererInfo.numIframes,rd_stk:r.refererInfo.stack.map((e=>encodeURIComponent(e))).join(",")};w.referrer_detection=e}if(e[0].userId){let r=[];E(r,(0,s.A)(e[0],"userId.criteoId"),"criteo.com",null),E(r,(0,s.A)(e[0],"userId.netId"),"netid.de",null),E(r,(0,s.A)(e[0],"userId.idl_env"),"liveramp.com",null),E(r,(0,s.A)(e[0],"userId.tdid"),"adserver.org","TDID"),E(r,(0,s.A)(e[0],"userId.uid2.id"),"uidapi.com","UID2"),r.length&&(w.eids=r)}n[0].publisher_id&&(w.publisher_id=n[0].publisher_id);const O=function(e,r){let n=[],t={withCredentials:!0},s=g;(0,m.C)(r?.gdprConsent)||(s=h);"TRUE"!==(0,a.getParameterByName)("apn_test").toUpperCase()&&!0!==i.$W.getConfig("apn_test")||(t.customHeaders={"X-Is-Test":1});const d=JSON.stringify(e);return n={method:"POST",url:s,data:d,bidderRequest:r,options:t},n}(w,r);return O},interpretResponse:function(e,r){let{bidderRequest:n}=r;e=e.body;const t=[];if(!e||e.error){let r=`in response for ${n.bidderCode} adapter`;return e&&e.error&&(r+=`: ${e.error}`),(0,a.logError)(r),t}return e.tags&&e.tags.forEach((e=>{const r=(s=e)&&s.ads&&s.ads.length&&(0,o.I6)(s.ads,(e=>e.rtb));var s;if(r&&0!==r.cpm&&(0,o.mK)(this.supportedMediaTypes,r.ad_type)){const s=function(e,r,n){const t=(0,a.getBidRequest)(e.uuid,[n]),s={adType:r.ad_type,requestId:e.uuid,auctionId:t.auctionId,cpm:r.cpm,creativeId:r.creative_id,brandCategoryId:r.brandCategoryId,dealId:r.deal_id,currency:"USD",netRevenue:!0,ttl:300,source:r.content_source,mediaSubtypeId:r.media_subtype_id,mediaTypeId:r.media_type_id,adUnitCode:t.adUnitCode,buyerMemberId:r.buyer_member_id,appnexus:{buyerMemberId:r.buyer_member_id,dealPriority:r.deal_priority,dealCode:r.deal_code}};r.adomain&&(s.meta=Object.assign({},s.meta,{advertiserDomains:[]}));r.advertiser_id&&(s.meta=Object.assign({},s.meta,{advertiserId:r.advertiser_id}));if(t.params){const{placementId:e,siteId:r,domParent:n,child:a}=t.params;s.meta=Object.assign({},s.meta,{placementId:e,siteId:r,domParent:n,child:a})}Object.assign(s,{width:r.rtb.banner.width,height:r.rtb.banner.height});try{r.rtb.banner&&r.rtb.trackers&&(s.banner=Object.assign({},s.banner,{content:r.rtb.banner.content,width:r.rtb.banner.width,height:r.rtb.banner.height,trackers:r.rtb.trackers}))}catch(e){(0,a.logError)("Error assigning ad",e)}return s}(e,r,n);s.mediaType=function(e){const r=e.ad_type;if(r!==p.D4)return!1;return p.D4}(r),t.push(s)}})),t.map((e=>v(e)))},getUserSyncs:function(e){if(e.iframeEnabled)return[{type:"iframe",url:"https://acdn.adnxs.com/dmp/async_usersync.html"}]}};function C(e){const r={};r.sizes=(0,b.p)(e.sizes),r.primary_size=r.sizes[0],r.ad_types=[],r.uuid=e.bidId,e.params.placementId?r.id=parseInt(e.params.placementId,10):r.code=e.params.invCode,r.allow_smaller_sizes=e.params.allowSmallerSizes||!1,r.use_pmt_rule=e.params.usePaymentRule||!1,r.prebid=!0,r.disable_psa=!0;let n=function(e){if(!(0,a.isFn)(e.getFloor))return e.params.reserve?e.params.reserve:null;let r=e.getFloor({currency:"USD",mediaType:"*",size:"*"});if((0,a.isPlainObject)(r)&&!isNaN(r.floor)&&"USD"===r.currency)return r.floor;return null}(e);n&&(r.reserve=n),e.params.trafficSourceCode&&(r.traffic_source_code=e.params.trafficSourceCode),e.params.privateSizes&&(r.private_sizes=(0,b.p)(e.params.privateSizes)),e.params.pubClick&&(r.pubclick=e.params.pubClick),e.params.publisherId&&(r.publisher_id=parseInt(e.params.publisherId,10)),e.params.externalImpId&&(r.external_imp_id=e.params.externalImpId),r.keywords=(0,u.QF)(e.ortb2,e.params.keywords);let t=(0,s.A)(e,"ortb2Imp.ext.gpid")||(0,s.A)(e,"ortb2Imp.ext.data.pbadslot");return t&&(r.gpid=t),r.hb_source=1,0===r.ad_types.length&&delete r.ad_types,r}function R(e){return!!e.params.user}function k(e){return!!parseInt(e.params.member,10)}function T(e){if(e.params)return!!e.params.app}function P(e){return e.params&&e.params.app?!!e.params.app.id:!!e.params.app}function E(e,r,n,t){return r&&(t?e.push({source:n,id:r,rti_partner:t}):e.push({source:n,id:r})),e}(0,d.a$)(w),(0,t.E)("winrBidAdapter")}},e=>{e.O(0,[60802,18139,97247,95444,51085],(()=>{return r=14869,e(e.s=r);var r}));e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[9854],{21008:(e,t,r)=>{var s=r(7873),o=r(16833),n=r(68044),a=r(41580),i=r(91069);const d="wurfl",l="https://prebid.wurflcloud.com",c=(0,i.prefixLog)("[WURFL RTD Submodule]"),p=new Set;const u=(e,t,r)=>{const s={};return t.forEach(((t,o)=>{r.includes(o)&&t in e&&(s[t]=e[t])})),s},g=(e,t)=>{const r={};return t.forEach(((t,s)=>{let o=e[t];"complete_device_name"==t&&(o=o.replace(/Apple (iP(hone|ad|od)).*/,"Apple iP$2")),r[t]=o})),r},f=(e,t,r)=>{const s={device:{ext:{wurfl:r}}};(0,i.mergeDeep)(e.ortb2Fragments.bidder,{[t]:s})};const b={name:d,init:(e,t)=>(c.logMessage("initialized"),!0),getBidRequestData:(e,t,r,s)=>{const o=r.params?.altHost??null,n=r.params?.debug??!1,i=new Set;e.adUnits.forEach((e=>{e.bids.forEach((e=>{i.add(e.bidder)}))}));let b=l;o&&(b=o);const m=new URL(b);m.pathname="/wurfl.js",n&&m.searchParams.set("debug","true"),m.searchParams.set("mode","prebid"),c.logMessage("url",m.toString());try{(0,a.R)(m.toString(),d,(()=>{c.logMessage("script injected"),window.WURFLPromises.complete.then((r=>{c.logMessage("received data",r),r.wurfl_pbjs?function(e,t,r){const s=r.wurfl_pbjs?.authorized_bidders??{},o=r.wurfl_pbjs?.caps??[];t.forEach((t=>{if(t in s){p.add(t);const n=u(r.WURFL,o,s[t]);return c.logMessage(`injecting data for ${t}: `,n),void f(e,t,n)}const n=g(r.WURFL,r.wurfl_pbjs?.low_entropy_caps);c.logMessage(`injecting low entropy data for ${t}: `,n),f(e,t,n)}))}(e,i,r):c.logError("invalid WURFL.js for Prebid response"),t()}))}))}catch(e){c.logError(e),t()}},onAuctionEndEvent:function(e,t,r){const s=t.params?.altHost??null;let o=l;s&&(o=s);const a=new URL(o);if(a.pathname="/v1/prebid/stats",0===p.size)return;var i=JSON.stringify({bidders:[...p]});(0,n.Rz)(a.toString(),i)||(0,n.hd)(a.toString(),{method:"POST",body:i,mode:"no-cors",keepalive:!0})}};(0,o.bz)("realTimeData",b),(0,s.E)("wurflRtdProvider")}},e=>{e.O(0,[60802,51085],(()=>{return t=21008,e(e.s=t);var t}));e.O()}]);
|