prebid.js 8.6.0 → 8.8.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/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/a1MediaRtdProvider.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/admaticBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adsinteractiveBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/alkimiBidAdapter.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/automatadAnalyticsAdapter.js +1 -0
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidViewability.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/brandmetricsRtdProvider.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/concertBidAdapter.js +1 -1
- package/dist/connatixBidAdapter.js +1 -0
- 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/dependencies.json +7 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freepassBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/geoedgeRtdProvider.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/id5IdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.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/liveIntentIdSystem.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/medianetBidAdapter.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/nativoBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +145 -142
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/operaadsBidAdapter.js +1 -1
- package/dist/operaadsIdSystem.js +1 -0
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/oxxionAnalyticsAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.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/riseBidAdapter.js +1 -1
- 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/smartxBidAdapter.js +1 -1
- package/dist/smartyadsBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.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/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/topicsFpdModule.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/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/vidazooBidAdapter.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/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/topics/topics-server.js +72 -0
- package/modules/.submodules.json +2 -1
- package/modules/a1MediaRtdProvider.js +1 -1
- package/modules/adagioBidAdapter.js +15 -1
- package/modules/adgenerationBidAdapter.js +4 -3
- package/modules/admaticBidAdapter.js +5 -0
- package/modules/adqueryBidAdapter.js +23 -21
- package/modules/adqueryIdSystem.js +45 -30
- package/modules/adrelevantisBidAdapter.js +2 -0
- package/modules/adsinteractiveBidAdapter.js +2 -0
- package/modules/alkimiBidAdapter.js +19 -7
- package/modules/automatadAnalyticsAdapter.js +325 -0
- package/modules/automatadAnalyticsAdapter.md +23 -0
- package/modules/bidViewability.js +7 -0
- package/modules/bidViewability.md +9 -8
- package/modules/brandmetricsRtdProvider.js +30 -27
- package/modules/connatixBidAdapter.js +185 -0
- package/modules/connatixBidAdapter.md +37 -0
- package/modules/criteoBidAdapter.js +73 -50
- package/modules/freepassBidAdapter.js +20 -1
- package/modules/freepassBidAdapter.md +4 -1
- package/modules/geoedgeRtdProvider.js +43 -13
- package/modules/geoedgeRtdProvider.md +2 -1
- package/modules/gridBidAdapter.js +1 -8
- package/modules/liveIntentIdSystem.js +16 -1
- package/modules/medianetBidAdapter.js +7 -4
- package/modules/mediasquareBidAdapter.js +3 -0
- package/modules/nativoBidAdapter.js +21 -3
- package/modules/onetagBidAdapter.js +3 -0
- package/modules/operaadsBidAdapter.js +5 -0
- package/modules/operaadsBidAdapter.md +5 -5
- package/modules/operaadsIdSystem.js +106 -0
- package/modules/operaadsIdSystem.md +52 -0
- package/modules/optidigitalBidAdapter.js +25 -16
- package/modules/oxxionAnalyticsAdapter.js +22 -5
- package/modules/rubiconBidAdapter.js +2 -2
- package/modules/smartyadsBidAdapter.js +18 -1
- package/modules/snigelBidAdapter.js +69 -16
- package/modules/snigelBidAdapter.md +9 -3
- package/modules/tappxBidAdapter.js +17 -14
- package/modules/topicsFpdModule.js +35 -9
- package/modules/undertoneBidAdapter.md +1 -1
- package/modules/userId/eids.md +7 -0
- package/modules/visxBidAdapter.js +51 -1
- package/package.json +2 -2
- package/src/adloader.js +1 -0
- package/src/native.js +2 -2
- package/test/spec/modules/adagioBidAdapter_spec.js +89 -0
- package/test/spec/modules/adgenerationBidAdapter_spec.js +6 -6
- package/test/spec/modules/admaticBidAdapter_spec.js +5 -0
- package/test/spec/modules/adqueryIdSystem_spec.js +13 -24
- package/test/spec/modules/alkimiBidAdapter_spec.js +3 -9
- package/test/spec/modules/automatadAnalyticsAdapter_spec.js +533 -0
- package/test/spec/modules/bidViewability_spec.js +32 -1
- package/test/spec/modules/brandmetricsRtdProvider_spec.js +6 -0
- package/test/spec/modules/connatixBidAdapter_spec.js +366 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +249 -0
- package/test/spec/modules/eids_spec.js +48 -0
- package/test/spec/modules/freepassBidAdapter_spec.js +44 -0
- package/test/spec/modules/geoedgeRtdProvider_spec.js +44 -24
- package/test/spec/modules/gridBidAdapter_spec.js +68 -0
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdSystem_spec.js +5 -0
- package/test/spec/modules/medianetBidAdapter_spec.js +18 -18
- package/test/spec/modules/mediasquareBidAdapter_spec.js +5 -0
- package/test/spec/modules/nativoBidAdapter_spec.js +6 -1
- package/test/spec/modules/onetagBidAdapter_spec.js +69 -0
- package/test/spec/modules/operaadsIdSystem_spec.js +53 -0
- package/test/spec/modules/optidigitalBidAdapter_spec.js +9 -2
- package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +6 -1
- package/test/spec/modules/rubiconBidAdapter_spec.js +24 -0
- package/test/spec/modules/smartyadsBidAdapter_spec.js +49 -0
- package/test/spec/modules/snigelBidAdapter_spec.js +57 -6
- package/test/spec/modules/tappxBidAdapter_spec.js +19 -0
- package/test/spec/modules/topicsFpdModule_spec.js +102 -1
- package/test/spec/modules/visxBidAdapter_spec.js +151 -1
- package/test/spec/native_spec.js +5 -3
|
@@ -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:"8.
|
|
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:"8.8.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:"8.8.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(86104),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="8.
|
|
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(86104),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="8.8.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()}]);
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// This is an example of a server-side endpoint that is utilizing the Topics API header functionality.
|
|
2
|
+
// Note: This test endpoint requires the following to run: node.js, npm, express, cors, body-parser
|
|
3
|
+
|
|
4
|
+
const bodyParser = require('body-parser');
|
|
5
|
+
const cors = require('cors');
|
|
6
|
+
const express = require('express');
|
|
7
|
+
|
|
8
|
+
const port = process.env.PORT || 3000;
|
|
9
|
+
|
|
10
|
+
const app = express();
|
|
11
|
+
app.use(cors());
|
|
12
|
+
app.use(
|
|
13
|
+
bodyParser.urlencoded({
|
|
14
|
+
extended: true,
|
|
15
|
+
})
|
|
16
|
+
);
|
|
17
|
+
app.use(bodyParser.json());
|
|
18
|
+
app.use(express.static('public'));
|
|
19
|
+
app.set('port', port);
|
|
20
|
+
|
|
21
|
+
const listener = app.listen(port, () => {
|
|
22
|
+
const host =
|
|
23
|
+
listener.address().address === '::'
|
|
24
|
+
? 'http://localhost'
|
|
25
|
+
: 'http://' + listener.address().address;
|
|
26
|
+
// eslint-disable-next-line no-console
|
|
27
|
+
console.log(
|
|
28
|
+
`${__filename} is listening on ${host}:${listener.address().port}\n`
|
|
29
|
+
);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
app.get('*', (req, res) => {
|
|
33
|
+
res.setHeader('Observe-Browsing-Topics', '?1');
|
|
34
|
+
|
|
35
|
+
const resData = {
|
|
36
|
+
segment: {
|
|
37
|
+
domain: req.hostname,
|
|
38
|
+
topics: generateTopicArrayFromHeader(req.headers['sec-browsing-topics']),
|
|
39
|
+
bidder: req.query['bidder'],
|
|
40
|
+
},
|
|
41
|
+
date: Date.now(),
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
res.json(resData);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const generateTopicArrayFromHeader = (topicString) => {
|
|
48
|
+
const result = [];
|
|
49
|
+
const topicArray = topicString.split(', ');
|
|
50
|
+
if (topicArray.length > 1) {
|
|
51
|
+
topicArray.pop();
|
|
52
|
+
topicArray.map((topic) => {
|
|
53
|
+
const topicId = topic.split(';')[0];
|
|
54
|
+
const versionsString = topic.split(';')[1].split('=')[1];
|
|
55
|
+
const [config, taxonomy, model] = versionsString.split(':');
|
|
56
|
+
const numTopicsWithSameVersions = topicId
|
|
57
|
+
.substring(1, topicId.length - 1)
|
|
58
|
+
.split(' ');
|
|
59
|
+
|
|
60
|
+
numTopicsWithSameVersions.map((tpId) => {
|
|
61
|
+
result.push({
|
|
62
|
+
topic: tpId,
|
|
63
|
+
version: versionsString,
|
|
64
|
+
configVersion: config,
|
|
65
|
+
taxonomyVersion: taxonomy,
|
|
66
|
+
modelVersion: model,
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return result;
|
|
72
|
+
};
|
package/modules/.submodules.json
CHANGED
|
@@ -8,7 +8,7 @@ const REAL_TIME_MODULE = 'realTimeData';
|
|
|
8
8
|
const MODULE_NAME = 'a1Media';
|
|
9
9
|
const SCRIPT_URL = 'https://linkback.contentsfeed.com/src';
|
|
10
10
|
export const A1_SEG_KEY = '__a1tg';
|
|
11
|
-
export const A1_AUD_KEY = '
|
|
11
|
+
export const A1_AUD_KEY = 'a1_gid';
|
|
12
12
|
|
|
13
13
|
export const storage = getStorageManager({moduleType: MODULE_TYPE_RTD, moduleName: MODULE_NAME});
|
|
14
14
|
|
|
@@ -399,6 +399,17 @@ function _getUspConsent(bidderRequest) {
|
|
|
399
399
|
return (deepAccess(bidderRequest, 'uspConsent')) ? { uspConsent: bidderRequest.uspConsent } : false;
|
|
400
400
|
}
|
|
401
401
|
|
|
402
|
+
function _getGppConsent(bidderRequest) {
|
|
403
|
+
let gpp = deepAccess(bidderRequest, 'gppConsent.gppString')
|
|
404
|
+
let gppSid = deepAccess(bidderRequest, 'gppConsent.applicableSections')
|
|
405
|
+
|
|
406
|
+
if (!gpp || !gppSid) {
|
|
407
|
+
gpp = deepAccess(bidderRequest, 'ortb2.regs.gpp', '')
|
|
408
|
+
gppSid = deepAccess(bidderRequest, 'ortb2.regs.gpp_sid', [])
|
|
409
|
+
}
|
|
410
|
+
return { gpp, gppSid }
|
|
411
|
+
}
|
|
412
|
+
|
|
402
413
|
function _getSchain(bidRequest) {
|
|
403
414
|
return deepAccess(bidRequest, 'schain');
|
|
404
415
|
}
|
|
@@ -976,6 +987,7 @@ export const spec = {
|
|
|
976
987
|
const gdprConsent = _getGdprConsent(bidderRequest) || {};
|
|
977
988
|
const uspConsent = _getUspConsent(bidderRequest) || {};
|
|
978
989
|
const coppa = _getCoppa();
|
|
990
|
+
const gppConsent = _getGppConsent(bidderRequest)
|
|
979
991
|
const schain = _getSchain(validBidRequests[0]);
|
|
980
992
|
const eids = _getEids(validBidRequests[0]) || [];
|
|
981
993
|
const syncEnabled = deepAccess(config.getConfig('userSync'), 'syncEnabled')
|
|
@@ -1143,7 +1155,9 @@ export const spec = {
|
|
|
1143
1155
|
regs: {
|
|
1144
1156
|
gdpr: gdprConsent,
|
|
1145
1157
|
coppa: coppa,
|
|
1146
|
-
ccpa: uspConsent
|
|
1158
|
+
ccpa: uspConsent,
|
|
1159
|
+
gpp: gppConsent.gpp,
|
|
1160
|
+
gppSid: gppConsent.gppSid
|
|
1147
1161
|
},
|
|
1148
1162
|
schain: schain,
|
|
1149
1163
|
user: {
|
|
@@ -28,7 +28,7 @@ export const spec = {
|
|
|
28
28
|
buildRequests: function (validBidRequests, bidderRequest) {
|
|
29
29
|
// convert Native ORTB definition to old-style prebid native definition
|
|
30
30
|
validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
|
|
31
|
-
const ADGENE_PREBID_VERSION = '1.6.
|
|
31
|
+
const ADGENE_PREBID_VERSION = '1.6.2';
|
|
32
32
|
let serverRequests = [];
|
|
33
33
|
for (let i = 0, len = validBidRequests.length; i < len; i++) {
|
|
34
34
|
const validReq = validBidRequests[i];
|
|
@@ -41,6 +41,7 @@ export const spec = {
|
|
|
41
41
|
const imuid = deepAccess(validReq, 'userId.imuid');
|
|
42
42
|
const gpid = deepAccess(validReq, 'ortb2Imp.ext.gpid');
|
|
43
43
|
const sua = deepAccess(validReq, 'ortb2.device.sua');
|
|
44
|
+
const uid2 = deepAccess(validReq, 'userId.uid2.id');
|
|
44
45
|
let data = ``;
|
|
45
46
|
data = tryAppendQueryString(data, 'posall', 'SSPLOC');
|
|
46
47
|
const id = getBidIdParameter('id', validReq.params);
|
|
@@ -58,8 +59,8 @@ export const spec = {
|
|
|
58
59
|
data = tryAppendQueryString(data, 'adgext_id5_id', id5id);
|
|
59
60
|
data = tryAppendQueryString(data, 'adgext_id5_id_link_type', id5LinkType);
|
|
60
61
|
data = tryAppendQueryString(data, 'adgext_imuid', imuid);
|
|
61
|
-
data = tryAppendQueryString(data, 'adgext_uid2',
|
|
62
|
-
data = tryAppendQueryString(data, 'gpid', gpid
|
|
62
|
+
data = tryAppendQueryString(data, 'adgext_uid2', uid2);
|
|
63
|
+
data = tryAppendQueryString(data, 'gpid', gpid);
|
|
63
64
|
data = tryAppendQueryString(data, 'uach', sua ? JSON.stringify(sua) : null);
|
|
64
65
|
data = tryAppendQueryString(data, 'schain', validReq.schain ? JSON.stringify(validReq.schain) : null);
|
|
65
66
|
|
|
@@ -195,6 +195,11 @@ function buildRequestObject(bid) {
|
|
|
195
195
|
reqObj.type = 'video';
|
|
196
196
|
reqObj.mediatype = bid.mediaTypes.video;
|
|
197
197
|
}
|
|
198
|
+
|
|
199
|
+
if (deepAccess(bid, 'ortb2Imp.ext')) {
|
|
200
|
+
reqObj.ext = bid.ortb2Imp.ext;
|
|
201
|
+
}
|
|
202
|
+
|
|
198
203
|
reqObj.id = getBidIdParameter('bidId', bid);
|
|
199
204
|
|
|
200
205
|
enrichSlotWithFloors(reqObj, bid);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
2
2
|
import {BANNER} from '../src/mediaTypes.js';
|
|
3
|
-
import { logInfo,
|
|
4
|
-
import { getStorageManager } from '../src/storageManager.js';
|
|
3
|
+
import {buildUrl, logInfo, parseSizesInput, triggerPixel} from '../src/utils.js';
|
|
5
4
|
|
|
6
5
|
const ADQUERY_GVLID = 902;
|
|
7
6
|
const ADQUERY_BIDDER_CODE = 'adquery';
|
|
@@ -11,7 +10,6 @@ const ADQUERY_USER_SYNC_DOMAIN = ADQUERY_BIDDER_DOMAIN_PROTOCOL + '://' + ADQUER
|
|
|
11
10
|
const ADQUERY_DEFAULT_CURRENCY = 'PLN';
|
|
12
11
|
const ADQUERY_NET_REVENUE = true;
|
|
13
12
|
const ADQUERY_TTL = 360;
|
|
14
|
-
const storage = getStorageManager({bidderCode: ADQUERY_BIDDER_CODE});
|
|
15
13
|
|
|
16
14
|
/** @type {BidderSpec} */
|
|
17
15
|
export const spec = {
|
|
@@ -55,10 +53,6 @@ export const spec = {
|
|
|
55
53
|
* @return {Bid[]}
|
|
56
54
|
*/
|
|
57
55
|
interpretResponse: (response, request) => {
|
|
58
|
-
logInfo(request);
|
|
59
|
-
logInfo(response);
|
|
60
|
-
|
|
61
|
-
let qid = null;
|
|
62
56
|
const res = response && response.body && response.body.data;
|
|
63
57
|
let bidResponses = [];
|
|
64
58
|
|
|
@@ -87,17 +81,6 @@ export const spec = {
|
|
|
87
81
|
bidResponses.push(bidResponse);
|
|
88
82
|
logInfo('bidResponses', bidResponses);
|
|
89
83
|
|
|
90
|
-
if (res && res.qid) {
|
|
91
|
-
if (storage.getDataFromLocalStorage('qid')) {
|
|
92
|
-
qid = storage.getDataFromLocalStorage('qid');
|
|
93
|
-
if (qid && qid.includes('%7B%22')) {
|
|
94
|
-
storage.setDataInLocalStorage('qid', res.qid);
|
|
95
|
-
}
|
|
96
|
-
} else {
|
|
97
|
-
storage.setDataInLocalStorage('qid', res.qid);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
84
|
return bidResponses;
|
|
102
85
|
},
|
|
103
86
|
|
|
@@ -189,8 +172,28 @@ export const spec = {
|
|
|
189
172
|
}
|
|
190
173
|
|
|
191
174
|
};
|
|
175
|
+
|
|
192
176
|
function buildRequest(validBidRequests, bidderRequest) {
|
|
193
177
|
let bid = validBidRequests;
|
|
178
|
+
logInfo('buildRequest: ', bid);
|
|
179
|
+
|
|
180
|
+
let userId = null;
|
|
181
|
+
if (window.qid) {
|
|
182
|
+
userId = window.qid;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (bid.userId && bid.userId.qid) {
|
|
186
|
+
userId = bid.userId.qid
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
if (!userId) {
|
|
190
|
+
// onetime User ID
|
|
191
|
+
const randomValues = Array.from(window.crypto.getRandomValues(new Uint32Array(4)));
|
|
192
|
+
userId = randomValues.map(it => it.toString(36)).join().substring(20);
|
|
193
|
+
|
|
194
|
+
window.qid = userId;
|
|
195
|
+
}
|
|
196
|
+
|
|
194
197
|
let pageUrl = '';
|
|
195
198
|
if (bidderRequest && bidderRequest.refererInfo) {
|
|
196
199
|
pageUrl = bidderRequest.refererInfo.page || '';
|
|
@@ -199,11 +202,10 @@ function buildRequest(validBidRequests, bidderRequest) {
|
|
|
199
202
|
return {
|
|
200
203
|
v: '$prebid.version$',
|
|
201
204
|
placementCode: bid.params.placementId,
|
|
202
|
-
|
|
203
|
-
auctionId: bid.auctionId,
|
|
205
|
+
auctionId: null,
|
|
204
206
|
type: bid.params.type,
|
|
205
207
|
adUnitCode: bid.adUnitCode,
|
|
206
|
-
bidQid:
|
|
208
|
+
bidQid: userId,
|
|
207
209
|
bidId: bid.bidId,
|
|
208
210
|
bidder: bid.bidder,
|
|
209
211
|
bidPageUrl: pageUrl,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import {ajax} from '../src/ajax.js';
|
|
9
9
|
import {getStorageManager} from '../src/storageManager.js';
|
|
10
10
|
import {submodule} from '../src/hook.js';
|
|
11
|
-
import {
|
|
11
|
+
import {isFn, isPlainObject, isStr, logError, logInfo} from '../src/utils.js';
|
|
12
12
|
import {MODULE_TYPE_UID} from '../src/activities/modules.js';
|
|
13
13
|
|
|
14
14
|
const MODULE_NAME = 'qid';
|
|
@@ -51,11 +51,7 @@ export const adqueryIdSubmodule = {
|
|
|
51
51
|
* @returns {{qid:Object}}
|
|
52
52
|
*/
|
|
53
53
|
decode(value) {
|
|
54
|
-
|
|
55
|
-
if (isStr(qid)) {
|
|
56
|
-
return {qid: qid};
|
|
57
|
-
}
|
|
58
|
-
return (value && typeof value['qid'] === 'string') ? { 'qid': value['qid'] } : undefined;
|
|
54
|
+
return {qid: value}
|
|
59
55
|
},
|
|
60
56
|
/**
|
|
61
57
|
* performs action to obtain id and return a value in the callback's response argument
|
|
@@ -64,38 +60,57 @@ export const adqueryIdSubmodule = {
|
|
|
64
60
|
* @returns {IdResponse|undefined}
|
|
65
61
|
*/
|
|
66
62
|
getId(config) {
|
|
63
|
+
logInfo('adqueryIdSubmodule getId');
|
|
67
64
|
if (!isPlainObject(config.params)) {
|
|
68
65
|
config.params = {};
|
|
69
66
|
}
|
|
70
|
-
|
|
67
|
+
|
|
68
|
+
const url = paramOrDefault(
|
|
69
|
+
config.params.url,
|
|
71
70
|
`https://bidder.adquery.io/prebid/qid`,
|
|
72
|
-
config.params.urlArg
|
|
71
|
+
config.params.urlArg
|
|
72
|
+
);
|
|
73
73
|
|
|
74
74
|
const resp = function (callback) {
|
|
75
|
-
let qid =
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
75
|
+
let qid = window.qid;
|
|
76
|
+
|
|
77
|
+
if (!qid) {
|
|
78
|
+
const ramdomValues = window.crypto.getRandomValues(new Uint32Array(4));
|
|
79
|
+
qid = (ramdomValues[0].toString(36) +
|
|
80
|
+
ramdomValues[1].toString(36) +
|
|
81
|
+
ramdomValues[2].toString(36) +
|
|
82
|
+
ramdomValues[3].toString(36))
|
|
83
|
+
.substring(0, 20);
|
|
84
|
+
|
|
85
|
+
const randomValues = Array.from(window.crypto.getRandomValues(new Uint32Array(4)));
|
|
86
|
+
qid = randomValues.map(it => it.toString(36)).join().substring(20);
|
|
87
|
+
logInfo('adqueryIdSubmodule ID QID GENERTAED:', qid);
|
|
88
|
+
}
|
|
89
|
+
logInfo('adqueryIdSubmodule ID QID:', qid);
|
|
90
|
+
|
|
91
|
+
const callbacks = {
|
|
92
|
+
success: response => {
|
|
93
|
+
let responseObj;
|
|
94
|
+
if (response) {
|
|
95
|
+
try {
|
|
96
|
+
responseObj = JSON.parse(response);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
logError(error);
|
|
89
99
|
}
|
|
90
|
-
callback(responseObj);
|
|
91
|
-
},
|
|
92
|
-
error: error => {
|
|
93
|
-
logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
|
|
94
|
-
callback();
|
|
95
100
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
101
|
+
if (responseObj.qid) {
|
|
102
|
+
let myQid = responseObj.qid;
|
|
103
|
+
storage.setDataInLocalStorage('qid', myQid);
|
|
104
|
+
return callback(myQid);
|
|
105
|
+
}
|
|
106
|
+
callback();
|
|
107
|
+
},
|
|
108
|
+
error: error => {
|
|
109
|
+
logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
|
|
110
|
+
callback();
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
ajax(url + '?qid=' + qid, callbacks, undefined, {method: 'GET'});
|
|
99
114
|
};
|
|
100
115
|
return {callback: resp};
|
|
101
116
|
},
|
|
@@ -8,10 +8,12 @@ import { BANNER } from '../src/mediaTypes.js';
|
|
|
8
8
|
const ADSINTERACTIVE_CODE = 'adsinteractive';
|
|
9
9
|
const USER_SYNC_URL_IMAGE = 'https://sync.adsinteractive.com/img';
|
|
10
10
|
const USER_SYNC_URL_IFRAME = 'https://sync.adsinteractive.com/sync';
|
|
11
|
+
const GVLID = 1212;
|
|
11
12
|
|
|
12
13
|
export const spec = {
|
|
13
14
|
code: ADSINTERACTIVE_CODE,
|
|
14
15
|
supportedMediaTypes: [BANNER],
|
|
16
|
+
gvlid: GVLID,
|
|
15
17
|
|
|
16
18
|
isBidRequestValid: (bid) => {
|
|
17
19
|
return (
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
2
|
-
import {deepAccess, deepClone} from '../src/utils.js';
|
|
2
|
+
import {deepAccess, deepClone, getDNT, generateUUID} from '../src/utils.js';
|
|
3
3
|
import {ajax} from '../src/ajax.js';
|
|
4
4
|
import {VIDEO} from '../src/mediaTypes.js';
|
|
5
5
|
import {config} from '../src/config.js';
|
|
@@ -12,7 +12,7 @@ export const spec = {
|
|
|
12
12
|
supportedMediaTypes: ['banner', 'video'],
|
|
13
13
|
|
|
14
14
|
isBidRequestValid: function (bid) {
|
|
15
|
-
return !!(bid.params && bid.params.
|
|
15
|
+
return !!(bid.params && bid.params.token);
|
|
16
16
|
},
|
|
17
17
|
|
|
18
18
|
buildRequests: function (validBidRequests, bidderRequest) {
|
|
@@ -28,12 +28,15 @@ export const spec = {
|
|
|
28
28
|
|
|
29
29
|
bids.push({
|
|
30
30
|
token: bidRequest.params.token,
|
|
31
|
-
|
|
31
|
+
instl: bidRequest.params.instl,
|
|
32
|
+
exp: bidRequest.params.exp,
|
|
32
33
|
bidFloor: getBidFloor(bidRequest, formatTypes),
|
|
33
34
|
sizes: prepareSizes(deepAccess(bidRequest, 'mediaTypes.banner.sizes')),
|
|
34
35
|
playerSizes: prepareSizes(deepAccess(bidRequest, 'mediaTypes.video.playerSize')),
|
|
35
36
|
impMediaTypes: formatTypes,
|
|
36
|
-
adUnitCode: bidRequest.adUnitCode
|
|
37
|
+
adUnitCode: bidRequest.adUnitCode,
|
|
38
|
+
video: deepAccess(bidRequest, 'mediaTypes.video'),
|
|
39
|
+
banner: deepAccess(bidRequest, 'mediaTypes.banner')
|
|
37
40
|
})
|
|
38
41
|
bidIds.push(bidRequest.bidId)
|
|
39
42
|
})
|
|
@@ -41,14 +44,23 @@ export const spec = {
|
|
|
41
44
|
const alkimiConfig = config.getConfig('alkimi');
|
|
42
45
|
|
|
43
46
|
let payload = {
|
|
44
|
-
|
|
45
|
-
requestId: bidderRequest.auctionId,
|
|
47
|
+
requestId: generateUUID(),
|
|
46
48
|
signRequest: {bids, randomUUID: alkimiConfig && alkimiConfig.randomUUID},
|
|
47
49
|
bidIds,
|
|
48
50
|
referer: bidderRequest.refererInfo.page,
|
|
49
51
|
signature: alkimiConfig && alkimiConfig.signature,
|
|
50
52
|
schain: validBidRequests[0].schain,
|
|
51
|
-
cpp: config.getConfig('coppa') ? 1 : 0
|
|
53
|
+
cpp: config.getConfig('coppa') ? 1 : 0,
|
|
54
|
+
device: {
|
|
55
|
+
dnt: getDNT() ? 1 : 0,
|
|
56
|
+
w: screen.width,
|
|
57
|
+
h: screen.height
|
|
58
|
+
},
|
|
59
|
+
ortb2: {
|
|
60
|
+
at: bidderRequest.ortb2?.at,
|
|
61
|
+
bcat: bidderRequest.ortb2?.bcat,
|
|
62
|
+
wseat: bidderRequest.ortb2?.wseat
|
|
63
|
+
}
|
|
52
64
|
}
|
|
53
65
|
|
|
54
66
|
if (bidderRequest && bidderRequest.gdprConsent) {
|