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