prebid.js 7.16.0 → 7.18.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/.circleci/config.yml +0 -18
- package/dist/1plusXRtdProvider.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.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/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/audiencerunBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -0
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -0
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/impactifyBidAdapter.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/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/nativoBidAdapter.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +121 -119
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/outbrainBidAdapter.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/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rubiconAnalyticsAdapter.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/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/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.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/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/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/karma.conf.maker.js +2 -4
- package/modules/1plusXRtdProvider.js +27 -7
- package/modules/adagioBidAdapter.js +18 -3
- package/modules/adagioBidAdapter.md +11 -1
- package/modules/adqueryBidAdapter.js +4 -2
- package/modules/appnexusBidAdapter.js +24 -22
- package/modules/bidwatchAnalyticsAdapter.js +1 -1
- package/modules/carodaBidAdapter.js +217 -0
- package/modules/carodaBidAdapter.md +43 -0
- package/modules/gridBidAdapter.js +1 -1
- package/modules/growthCodeIdSystem.js +164 -0
- package/modules/growthCodeIdSystem.md +37 -0
- package/modules/improvedigitalBidAdapter.js +3 -1
- package/modules/ixBidAdapter.js +17 -12
- package/modules/mediagoBidAdapter.js +15 -11
- package/modules/mediasquareBidAdapter.js +1 -1
- package/modules/nativoBidAdapter.js +2 -1
- package/modules/nextMillenniumBidAdapter.js +34 -11
- package/modules/rubiconAnalyticsAdapter.js +2 -2
- package/modules/rubiconBidAdapter.js +16 -6
- package/modules/seedtagBidAdapter.js +4 -0
- package/modules/taboolaBidAdapter.js +3 -7
- package/modules/userId/eids.js +19 -0
- package/modules/vidazooBidAdapter.js +1 -1
- package/package.json +1 -1
- package/test/spec/modules/1plusXRtdProvider_spec.js +77 -1
- package/test/spec/modules/adagioBidAdapter_spec.js +46 -2
- package/test/spec/modules/adqueryBidAdapter_spec.js +11 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +76 -0
- package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +2 -0
- package/test/spec/modules/carodaBidAdapter_spec.js +494 -0
- package/test/spec/modules/growthCodeIdSystem_spec.js +83 -0
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +10 -0
- package/test/spec/modules/ixBidAdapter_spec.js +32 -16
- package/test/spec/modules/mediasquareBidAdapter_spec.js +2 -0
- package/test/spec/modules/prebidServerBidAdapter_spec.js +12 -0
- package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/rubiconBidAdapter_spec.js +28 -35
- package/test/spec/modules/seedtagBidAdapter_spec.js +45 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[5337],{4192:function(e,t,r){r.d(t,{HQ:function(){return c},Pv:function(){return u},UR:function(){return a}});var n=r(64358),i=r(20265),a={trustpid:{source:"trustpid.com",atype:1,getValue:function(e){return e}},intentIqId:{source:"intentiq.com",atype:1},naveggId:{source:"navegg.com",atype:1},justId:{source:"justtag.com",atype:1},pubcid:{source:"pubcid.org",atype:1},tdid:{source:"adserver.org",atype:1,getUidExt:function(){return{rtiPartner:"TDID"}}},id5id:{getValue:function(e){return e.uid},source:"id5-sync.com",atype:1,getUidExt:function(e){if(e.ext)return e.ext}},ftrackId:{source:"flashtalking.com",atype:1,getValue:function(e){var t="";return e.DeviceID&&(t=e.DeviceID.join(",")),t},getUidExt:function(e){return"DeviceID"}},parrableId:{source:"parrable.com",atype:1,getValue:function(e){return e.eid?e.eid:e.ccpaOptout?"":null},getUidExt:function(e){var t=(0,n.pick)(e,["ibaOptout","ccpaOptout"]);if(Object.keys(t).length)return t}},idl_env:{source:"liveramp.com",atype:3},lipb:{getValue:function(e){return e.lipbid},source:"liveintent.com",atype:3,getEidExt:function(e){if(Array.isArray(e.segments)&&e.segments.length)return{segments:e.segments}}},britepoolid:{source:"britepool.com",atype:3},dmdId:{source:"hcn.health",atype:3},lotamePanoramaId:{source:"crwdcntrl.net",atype:1},criteoId:{source:"criteo.com",atype:1},merkleId:{atype:3,getSource:function(e){var t;return null!=e&&null!==(t=e.ext)&&void 0!==t&&t.ssp?"".concat(e.ext.ssp,".merkleinc.com"):"merkleinc.com"},getValue:function(e){return e.id},getUidExt:function(e){return e.keyID?{keyID:e.keyID}:e.ext?e.ext:void 0}},netId:{source:"netid.de",atype:1},IDP:{source:"zeotap.com",atype:1},hadronId:{source:"audigent.com",atype:1},quantcastId:{source:"quantcast.com",atype:1},idx:{source:"idx.lat",atype:1},connectid:{source:"verizonmedia.com",atype:3},fabrickId:{source:"neustar.biz",atype:1},mwOpenLinkId:{source:"mediawallahscript.com",atype:1},tapadId:{source:"tapad.com",atype:1},novatiq:{getValue:function(e){return e.snowflake},source:"novatiq.com",atype:1},uid2:{source:"uidapi.com",atype:3,getValue:function(e){return e.id}},deepintentId:{source:"deepintent.com",atype:3},admixerId:{source:"admixer.net",atype:3},adtelligentId:{source:"adtelligent.com",atype:3},amxId:{source:"amxrtb.com",atype:1},publinkId:{source:"epsilon.com",atype:3},kpuid:{source:"kpuid.com",atype:3},imppid:{source:"ppid.intimatemerger.com",atype:1},imuid:{source:"intimatemerger.com",atype:1},connectId:{source:"yahoo.com",atype:3},qid:{source:"adquery.io",atype:1},dacId:{source:"impact-ad.jp",atype:1},"33acrossId":{source:"33across.com",atype:1,getValue:function(e){return e.envelope}},tncid:{source:"thenewco.it",atype:3},gravitompId:{source:"gravito.net",atype:1},cpexId:{source:"czechadid.cz",atype:1},oneKeyData:{getValue:function(e){if(e&&Array.isArray(e.identifiers)&&e.identifiers[0])return e.identifiers[0].value},source:"paf",atype:1,getEidExt:function(e){if(e&&e.preferences)return{preferences:e.preferences}},getUidExt:function(e){if(e&&Array.isArray(e.identifiers)&&e.identifiers[0]){var t=e.identifiers[0];return{version:t.version,type:t.type,source:t.source}}}}};function o(e,t){var r=a[t];if(r&&e){var i={};i.source=(0,n.isFn)(r.getSource)?r.getSource(e):r.source;var o=(0,n.isFn)(r.getValue)?r.getValue(e):e;if((0,n.isStr)(o)){var c={id:o,atype:r.atype};if((0,n.isFn)(r.getUidExt)){var u=r.getUidExt(e);u&&(c.ext=u)}if(i.uids=[c],(0,n.isFn)(r.getEidExt)){var d=r.getEidExt(e);d&&(i.ext=d)}return i}}return null}function c(e){var t=[],r=function(r){if(e.hasOwnProperty(r))if("pubProvidedId"===r)t=t.concat(e.pubProvidedId);else if("ftrackId"===r){var n={atype:1,id:(e.ftrackId.DeviceID||[]).join("|"),ext:{}};for(var i in e.ftrackId)n.ext[i]=(e.ftrackId[i]||[]).join("|");t.push(n)}else if(Array.isArray(e[r]))e[r].forEach((function(e,n,i){var a=o(e,r);a&&t.push(a)}));else{var a=o(e[r],r);a&&t.push(a)}};for(var n in e)r(n);return t}function u(e){var t=[];return e.filter((function(e){return(0,n.isPlainObject)(e.idObj)&&Object.keys(e.idObj).length})).forEach((function(e){Object.keys(e.idObj).forEach((function(r){(0,i.Z)(e,"config.bidders")&&Array.isArray(e.config.bidders)&&(0,i.Z)(a,r+".source")&&t.push({source:a[r].source,bidders:e.config.bidders})}))})),t}},55511:function(e,t,r){var n=r(71002),i=r(64358),a=r(20265),o=r(96475),c=r(24679),u=r(14699),d=r(35706),s=r(34614),p=r(4192),f="USD",m=300,l=!0,y="https://ads.yieldmo.com/exchange/prebid",v="https://ads.yieldmo.com/pbcas",g="https://prebid-outstream.yieldmo.com/bundle.js",b=["mimes","startdelay","placement","startdelay","skipafter","protocols","api","playbackmethod","maxduration","minduration","pos","skip","skippable"],h=["name","domain","cat","keywords"],I=(0,i.getWindowTop)(),x=["description","title","pr","page_url"],k={code:"yieldmo",supportedMediaTypes:[c.Mk,c.pX],isBidRequestValid:function(e){return!!(e&&e.adUnitCode&&e.bidId&&(w(e)||E(e))&&function(e){if(!E(e))return!0;var t=function(e,t,r){var n='"'.concat(e,'" is required');throw r&&(n+=" when "+r),new Error(n)},r=function(e,t,r){throw r=r?", expected: "+r:"",t=JSON.stringify(t),new Error('"'.concat(e,'"=').concat(t," is invalid").concat(r))},n=function(e){return void 0!==e},o=function(t,r,n,i){if(0===t.indexOf("video")){var o="params."+t,c="mediaTypes."+t,u=(0,a.Z)(e,o),d=(0,a.Z)(e,c),s=r(u),p=r(d);return s?u:p||(s?p||n(c,d,i):n(o,u,i),u||d)}var f=(0,a.Z)(e,t);return r(f)||n(t,f,i),f};try{o("video.context",(function(e){return!(0,i.isEmpty)(e)}),t),o("params.placementId",(function(e){return!(0,i.isEmpty)(e)}),t),o("video.playerSize",(function(e){return(0,i.isArrayOfNums)(e,2)||(0,i.isArray)(e)&&e.every((function(e){return(0,i.isArrayOfNums)(e,2)}))}),r,"array of 2 integers, ex: [640,480] or [[640,480]]"),o("video.mimes",(function(e){return n(e)}),t),o("video.mimes",(function(e){return(0,i.isArray)(e)&&e.every((function(e){return(0,i.isStr)(e)}))}),r,'array of strings, ex: ["video/mp4"]');var c=o("video.placement",(function(e){return n(e)}),t);return o("video.placement",(function(e){return e>=1&&e<=5}),r),1===c&&(o("video.startdelay",(function(e){return n(e)}),(function(e,r){return t(e,r,"placement == 1")})),o("video.startdelay",(function(e){return(0,i.isNumber)(e)}),r,"number, ex: 5")),o("video.protocols",(function(e){return n(e)}),t),o("video.protocols",(function(e){return(0,i.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),r,"array of numbers, ex: [2,3]"),o("video.api",(function(e){return n(e)}),t),o("video.api",(function(e){return(0,i.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),r,"array of numbers, ex: [2,3]"),o("video.playbackmethod",(function(e){return!n(e)||(0,i.isArrayOfNums)(e)}),r,"array of integers, ex: [2,6]"),o("video.maxduration",(function(e){return n(e)}),t),o("video.maxduration",(function(e){return(0,i.isInteger)(e)}),r),o("video.minduration",(function(e){return!n(e)||(0,i.isNumber)(e)}),r),o("video.skippable",(function(e){return!n(e)||(0,i.isBoolean)(e)}),r),o("video.skipafter",(function(e){return!n(e)||(0,i.isNumber)(e)}),r),o("video.pos",(function(e){return!n(e)||(0,i.isNumber)(e)}),r),o("params.badv",(function(e){return!n(e)||(0,i.isArray)(e)}),r,'array of strings, ex: ["ford.com","pepsi.com"]'),o("params.bcat",(function(e){return!n(e)||(0,i.isArray)(e)}),r,'array of strings, ex: ["IAB1-5","IAB1-6"]'),!0}catch(e){return(0,i.logError)(e.message),!1}}(e))},buildRequests:function(e,t){var r=e.filter((function(e){return w(e)})),n=e.filter((function(e){return E(e)})),u=[],d=function(e){if((0,a.Z)(e,"userId"))return(0,p.HQ)(e.userId)||[]}(e[0])||[];if(r.length>0){var f={pbav:"7.16.0",p:[],page_url:t.refererInfo.page,bust:(new Date).getTime().toString(),dnt:"1"===window.doNotTrack||"1"===window.navigator.doNotTrack||!1,description:A(),userConsent:JSON.stringify({gdprApplies:(0,a.Z)(t,"gdprConsent.gdprApplies")||"",cmp:(0,a.Z)(t,"gdprConsent.consentString")||""}),us_privacy:(0,a.Z)(t,"uspConsent")||""};(function(){try{if((0,i.getWindowTop)().location.href)return!0}catch(e){return!1}})()&&(f.pr=I.document&&I.document.referrer||"",f.scrd=I.devicePixelRatio||0,f.title=I.document.title||"",f.w=I.innerWidth,f.h=I.innerHeight);var m=window.navigator.maxTouchPoints;m&&(f.mtp=m),r.forEach((function(e){f.p.push(function(e){var t=(0,a.Z)(e,"ortb2Imp.ext.data.pbadslot"),r={placement_id:e.adUnitCode,callback_id:e.bidId,sizes:e.mediaTypes.banner.sizes};if(e.params){e.params.placementId&&(r.ym_placement_id=e.params.placementId);var n=Z(e,c.Mk);n&&(r.bidFloor=n)}t&&(r.gpid=t);var i=(0,a.Z)(e,"ortb2Imp.ext.tid");i&&(r.tid=i);e.auctionId&&(r.auctionId=e.auctionId);return JSON.stringify(r)}(e));var t=O(e,"pubcid");t?f.pubcid=t:e.crumbs&&e.crumbs.pubcid&&(f.pubcid=e.crumbs.pubcid);var r=O(e,"tdid");r&&(f.tdid=r);var n=O(e,"criteoId");n&&(f.cri_prebid=n),e.schain&&(f.schain=JSON.stringify(e.schain)),(0,a.Z)(e,"params.lr_env")&&(f.ats_envelope=e.params.lr_env)})),f.p="["+f.p.toString()+"]",d.length&&(f.eids=JSON.stringify(d));var l="".concat(y,"?").concat((0,i.parseQueryStringParameters)(f)).length-8e3;if(l>0)for(var v=0;v<x.length&&!((l=N(l,f,x[v]))<=0);v++);u.push({method:"GET",url:y,data:f})}if(n.length>0){var g=function(e,t){var r=e[0].schain,n={id:e[0].bidderRequestId,at:1,imp:e.map((function(e){return function(e){var t=(0,a.Z)(e,"ortb2Imp.ext.data.pbadslot"),r=function(e){var t=(0,a.Z)(e,"mediaTypes.video.playerSize");if((0,i.isArrayOfNums)(t,2))return t;if((0,i.isArray)(t)&&(0,i.isArrayOfNums)(t[0],2))return t[0];return null}(e),n={id:e.bidId,tagid:e.adUnitCode,bidfloor:Z(e,c.pX),ext:{placement_id:e.params.placementId,tid:(0,a.Z)(e,"ortb2Imp.ext.tid")},video:{w:r[0],h:r[1],linearity:1}},o=(0,a.Z)(e,"mediaTypes.video");Object.keys(o).filter((function(e){return(0,s.q9)(b,e)})).forEach((function(e){return n.video[e]=o[e]}));var u=(0,a.Z)(e,"params.video");Object.keys(u).filter((function(e){return(0,s.q9)(b,e)})).forEach((function(e){return n.video[e]=u[e]})),n.video.skippable&&(n.video.skip=1,delete n.video.skippable);1!==n.video.placement&&(n.video.startdelay=0,n.video.playbackmethod=[2]);t&&(n.ext.gpid=t);return n}(e)})),site:T(e[0],t),device:S(e[0]),badv:e[0].params.badv||[],bcat:(0,a.Z)(t,"bcat")||e[0].params.bcat||[],ext:{prebid:"7.16.0"},ats_envelope:e[0].params.lr_env};r&&(n.schain=r);e[0].auctionId&&(n.auctionId=e[0].auctionId);return function(e,t){var r=t.gdprConsent;r&&"gdprApplies"in r&&((0,o.N)(e,"regs.ext.gdpr",r.gdprApplies?1:0),(0,o.N)(e,"user.ext.consent",r.consentString));var n=(0,a.Z)(t,"uspConsent");n&&(0,o.N)(e,"regs.ext.us_privacy",n)}(n,t),n}(n,t);d.length&&(g.user={eids:d}),u.push({method:"POST",url:"https://ads.yieldmo.com/exchange/prebidvideo",data:g})}return u},interpretResponse:function(e,t){var r=[],n=e.body;(n.length>0&&n.forEach((function(e){e.cpm>0&&r.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,t){return e.concat(t.bid)}),[]).forEach((function(e){return r.push(function(e,t){var r=(0,s.sE)((0,a.Z)(t,"data.imp")||[],(function(t){return t.id===e.impid})),n={dealId:e.dealid,requestId:r.id,cpm:e.price,width:r.video.w,height:r.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(r.video.placement&&1!==r.video.placement){var i=d.Th.install({url:g,config:{width:n.width,height:n.height,vastTimeout:15e3,maxAllowedVastTagRedirects:5,allowVpaid:!0,autoPlay:!0,preload:!0,mute:!0},id:r.tagid,loaded:!1});i.setRender((function(e){e.renderer.push((function(){var t=e.renderer,r=t.id,n=t.config;window.YMoutstreamPlayer(e,r,n)}))})),n.renderer=i}return n}(e,t))}));return r},getUserSyncs:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=[],a="&gdpr=".concat(r.gdprApplies?1:0),o="&gdpr_consent=".concat(encodeURIComponent(r.consentString||"")),c="us_privacy=".concat(encodeURIComponent(n)),u="".concat(v,"?").concat(c).concat(a).concat(o);return e.iframeEnabled?i.push({type:"iframe",url:u+"&type=iframe"}):e.pixelEnabled&&i.push({type:"image",url:u+"&type=image"}),i}};function w(e){return!!(0,a.Z)(e,"mediaTypes.banner")}function E(e){return!!(0,a.Z)(e,"mediaTypes.video")}function A(){return document.querySelector('meta[name="description"]')&&document.querySelector('meta[name="description"]').getAttribute("content")||""}function O(e,t){return"object"===(0,n.Z)((0,a.Z)(e,"userId"))?e.userId[t]:void 0}function Z(e,t){var r={};return"function"==typeof e.getFloor&&(r=e.getFloor({currency:f,mediaType:t,size:"*"})),r.floor||e.params.bidfloor||e.params.bidFloor||0}function T(e,t){var r,n={},o=(0,i.parseUrl)((0,a.Z)(t,"refererInfo.page"));(0,i.isEmpty)(o)||(n.page="".concat(o.protocol,"://").concat(o.hostname).concat(o.pathname)),null!==(r=t.refererInfo)&&void 0!==r&&r.ref&&(n.ref=t.refererInfo.ref);var c=document.getElementsByTagName("meta").keywords;c&&c.content&&(n.keywords=c.content);var u=(0,a.Z)(e,"params.site");return u&&Object.keys(u).filter((function(e){return(0,s.q9)(h,e)})).forEach((function(e){return n[e]=u[e]})),n}function S(e){return{ua:navigator.userAgent,language:navigator.language||navigator.browserLanguage||navigator.userLanguage||navigator.systemLanguage}}function N(e,t,r){if(t[r].length>e)return t[r]=t[r].substring(0,t[r].length-e),0;var n=e-t[r].length;return t[r]="",n}(0,u.dX)(k),window.pbjs.installedModules.push("yieldmoBidAdapter")}},function(e){var t;t=55511,e(e.s=t)}]);
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[5337],{4192:function(e,t,r){r.d(t,{HQ:function(){return c},Pv:function(){return u},UR:function(){return a}});var n=r(64358),i=r(20265),a={growthCodeId:{getValue:function(e){return e.gc_id},source:"growthcode.io",atype:1,getUidExt:function(e){var t=(0,n.pick)(e,["h1","h2","h3"]);if(Object.keys(t).length)return t}},trustpid:{source:"trustpid.com",atype:1,getValue:function(e){return e}},intentIqId:{source:"intentiq.com",atype:1},naveggId:{source:"navegg.com",atype:1},justId:{source:"justtag.com",atype:1},pubcid:{source:"pubcid.org",atype:1},tdid:{source:"adserver.org",atype:1,getUidExt:function(){return{rtiPartner:"TDID"}}},id5id:{getValue:function(e){return e.uid},source:"id5-sync.com",atype:1,getUidExt:function(e){if(e.ext)return e.ext}},ftrackId:{source:"flashtalking.com",atype:1,getValue:function(e){var t="";return e.DeviceID&&(t=e.DeviceID.join(",")),t},getUidExt:function(e){return"DeviceID"}},parrableId:{source:"parrable.com",atype:1,getValue:function(e){return e.eid?e.eid:e.ccpaOptout?"":null},getUidExt:function(e){var t=(0,n.pick)(e,["ibaOptout","ccpaOptout"]);if(Object.keys(t).length)return t}},idl_env:{source:"liveramp.com",atype:3},lipb:{getValue:function(e){return e.lipbid},source:"liveintent.com",atype:3,getEidExt:function(e){if(Array.isArray(e.segments)&&e.segments.length)return{segments:e.segments}}},britepoolid:{source:"britepool.com",atype:3},dmdId:{source:"hcn.health",atype:3},lotamePanoramaId:{source:"crwdcntrl.net",atype:1},criteoId:{source:"criteo.com",atype:1},merkleId:{atype:3,getSource:function(e){var t;return null!=e&&null!==(t=e.ext)&&void 0!==t&&t.ssp?"".concat(e.ext.ssp,".merkleinc.com"):"merkleinc.com"},getValue:function(e){return e.id},getUidExt:function(e){return e.keyID?{keyID:e.keyID}:e.ext?e.ext:void 0}},netId:{source:"netid.de",atype:1},IDP:{source:"zeotap.com",atype:1},hadronId:{source:"audigent.com",atype:1},quantcastId:{source:"quantcast.com",atype:1},idx:{source:"idx.lat",atype:1},connectid:{source:"verizonmedia.com",atype:3},fabrickId:{source:"neustar.biz",atype:1},mwOpenLinkId:{source:"mediawallahscript.com",atype:1},tapadId:{source:"tapad.com",atype:1},novatiq:{getValue:function(e){return e.snowflake},source:"novatiq.com",atype:1},uid2:{source:"uidapi.com",atype:3,getValue:function(e){return e.id}},deepintentId:{source:"deepintent.com",atype:3},admixerId:{source:"admixer.net",atype:3},adtelligentId:{source:"adtelligent.com",atype:3},amxId:{source:"amxrtb.com",atype:1},publinkId:{source:"epsilon.com",atype:3},kpuid:{source:"kpuid.com",atype:3},imppid:{source:"ppid.intimatemerger.com",atype:1},imuid:{source:"intimatemerger.com",atype:1},connectId:{source:"yahoo.com",atype:3},qid:{source:"adquery.io",atype:1},dacId:{source:"impact-ad.jp",atype:1},"33acrossId":{source:"33across.com",atype:1,getValue:function(e){return e.envelope}},tncid:{source:"thenewco.it",atype:3},gravitompId:{source:"gravito.net",atype:1},cpexId:{source:"czechadid.cz",atype:1},oneKeyData:{getValue:function(e){if(e&&Array.isArray(e.identifiers)&&e.identifiers[0])return e.identifiers[0].value},source:"paf",atype:1,getEidExt:function(e){if(e&&e.preferences)return{preferences:e.preferences}},getUidExt:function(e){if(e&&Array.isArray(e.identifiers)&&e.identifiers[0]){var t=e.identifiers[0];return{version:t.version,type:t.type,source:t.source}}}}};function o(e,t){var r=a[t];if(r&&e){var i={};i.source=(0,n.isFn)(r.getSource)?r.getSource(e):r.source;var o=(0,n.isFn)(r.getValue)?r.getValue(e):e;if((0,n.isStr)(o)){var c={id:o,atype:r.atype};if((0,n.isFn)(r.getUidExt)){var u=r.getUidExt(e);u&&(c.ext=u)}if(i.uids=[c],(0,n.isFn)(r.getEidExt)){var d=r.getEidExt(e);d&&(i.ext=d)}return i}}return null}function c(e){var t=[],r=function(r){if(e.hasOwnProperty(r))if("pubProvidedId"===r)t=t.concat(e.pubProvidedId);else if("ftrackId"===r){var n={atype:1,id:(e.ftrackId.DeviceID||[]).join("|"),ext:{}};for(var i in e.ftrackId)n.ext[i]=(e.ftrackId[i]||[]).join("|");t.push(n)}else if(Array.isArray(e[r]))e[r].forEach((function(e,n,i){var a=o(e,r);a&&t.push(a)}));else{var a=o(e[r],r);a&&t.push(a)}};for(var n in e)r(n);return t}function u(e){var t=[];return e.filter((function(e){return(0,n.isPlainObject)(e.idObj)&&Object.keys(e.idObj).length})).forEach((function(e){Object.keys(e.idObj).forEach((function(r){(0,i.Z)(e,"config.bidders")&&Array.isArray(e.config.bidders)&&(0,i.Z)(a,r+".source")&&t.push({source:a[r].source,bidders:e.config.bidders})}))})),t}},55511:function(e,t,r){var n=r(71002),i=r(64358),a=r(20265),o=r(96475),c=r(24679),u=r(14699),d=r(35706),s=r(34614),p=r(4192),f="USD",m=300,l=!0,y="https://ads.yieldmo.com/exchange/prebid",v="https://ads.yieldmo.com/pbcas",g="https://prebid-outstream.yieldmo.com/bundle.js",h=["mimes","startdelay","placement","startdelay","skipafter","protocols","api","playbackmethod","maxduration","minduration","pos","skip","skippable"],b=["name","domain","cat","keywords"],I=(0,i.getWindowTop)(),x=["description","title","pr","page_url"],k={code:"yieldmo",supportedMediaTypes:[c.Mk,c.pX],isBidRequestValid:function(e){return!!(e&&e.adUnitCode&&e.bidId&&(w(e)||E(e))&&function(e){if(!E(e))return!0;var t=function(e,t,r){var n='"'.concat(e,'" is required');throw r&&(n+=" when "+r),new Error(n)},r=function(e,t,r){throw r=r?", expected: "+r:"",t=JSON.stringify(t),new Error('"'.concat(e,'"=').concat(t," is invalid").concat(r))},n=function(e){return void 0!==e},o=function(t,r,n,i){if(0===t.indexOf("video")){var o="params."+t,c="mediaTypes."+t,u=(0,a.Z)(e,o),d=(0,a.Z)(e,c),s=r(u),p=r(d);return s?u:p||(s?p||n(c,d,i):n(o,u,i),u||d)}var f=(0,a.Z)(e,t);return r(f)||n(t,f,i),f};try{o("video.context",(function(e){return!(0,i.isEmpty)(e)}),t),o("params.placementId",(function(e){return!(0,i.isEmpty)(e)}),t),o("video.playerSize",(function(e){return(0,i.isArrayOfNums)(e,2)||(0,i.isArray)(e)&&e.every((function(e){return(0,i.isArrayOfNums)(e,2)}))}),r,"array of 2 integers, ex: [640,480] or [[640,480]]"),o("video.mimes",(function(e){return n(e)}),t),o("video.mimes",(function(e){return(0,i.isArray)(e)&&e.every((function(e){return(0,i.isStr)(e)}))}),r,'array of strings, ex: ["video/mp4"]');var c=o("video.placement",(function(e){return n(e)}),t);return o("video.placement",(function(e){return e>=1&&e<=5}),r),1===c&&(o("video.startdelay",(function(e){return n(e)}),(function(e,r){return t(e,r,"placement == 1")})),o("video.startdelay",(function(e){return(0,i.isNumber)(e)}),r,"number, ex: 5")),o("video.protocols",(function(e){return n(e)}),t),o("video.protocols",(function(e){return(0,i.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),r,"array of numbers, ex: [2,3]"),o("video.api",(function(e){return n(e)}),t),o("video.api",(function(e){return(0,i.isArrayOfNums)(e)&&e.every((function(e){return e>=1&&e<=6}))}),r,"array of numbers, ex: [2,3]"),o("video.playbackmethod",(function(e){return!n(e)||(0,i.isArrayOfNums)(e)}),r,"array of integers, ex: [2,6]"),o("video.maxduration",(function(e){return n(e)}),t),o("video.maxduration",(function(e){return(0,i.isInteger)(e)}),r),o("video.minduration",(function(e){return!n(e)||(0,i.isNumber)(e)}),r),o("video.skippable",(function(e){return!n(e)||(0,i.isBoolean)(e)}),r),o("video.skipafter",(function(e){return!n(e)||(0,i.isNumber)(e)}),r),o("video.pos",(function(e){return!n(e)||(0,i.isNumber)(e)}),r),o("params.badv",(function(e){return!n(e)||(0,i.isArray)(e)}),r,'array of strings, ex: ["ford.com","pepsi.com"]'),o("params.bcat",(function(e){return!n(e)||(0,i.isArray)(e)}),r,'array of strings, ex: ["IAB1-5","IAB1-6"]'),!0}catch(e){return(0,i.logError)(e.message),!1}}(e))},buildRequests:function(e,t){var r=e.filter((function(e){return w(e)})),n=e.filter((function(e){return E(e)})),u=[],d=function(e){if((0,a.Z)(e,"userId"))return(0,p.HQ)(e.userId)||[]}(e[0])||[];if(r.length>0){var f={pbav:"7.18.0",p:[],page_url:t.refererInfo.page,bust:(new Date).getTime().toString(),dnt:"1"===window.doNotTrack||"1"===window.navigator.doNotTrack||!1,description:A(),userConsent:JSON.stringify({gdprApplies:(0,a.Z)(t,"gdprConsent.gdprApplies")||"",cmp:(0,a.Z)(t,"gdprConsent.consentString")||""}),us_privacy:(0,a.Z)(t,"uspConsent")||""};(function(){try{if((0,i.getWindowTop)().location.href)return!0}catch(e){return!1}})()&&(f.pr=I.document&&I.document.referrer||"",f.scrd=I.devicePixelRatio||0,f.title=I.document.title||"",f.w=I.innerWidth,f.h=I.innerHeight);var m=window.navigator.maxTouchPoints;m&&(f.mtp=m),r.forEach((function(e){f.p.push(function(e){var t=(0,a.Z)(e,"ortb2Imp.ext.data.pbadslot"),r={placement_id:e.adUnitCode,callback_id:e.bidId,sizes:e.mediaTypes.banner.sizes};if(e.params){e.params.placementId&&(r.ym_placement_id=e.params.placementId);var n=Z(e,c.Mk);n&&(r.bidFloor=n)}t&&(r.gpid=t);var i=(0,a.Z)(e,"ortb2Imp.ext.tid");i&&(r.tid=i);e.auctionId&&(r.auctionId=e.auctionId);return JSON.stringify(r)}(e));var t=O(e,"pubcid");t?f.pubcid=t:e.crumbs&&e.crumbs.pubcid&&(f.pubcid=e.crumbs.pubcid);var r=O(e,"tdid");r&&(f.tdid=r);var n=O(e,"criteoId");n&&(f.cri_prebid=n),e.schain&&(f.schain=JSON.stringify(e.schain)),(0,a.Z)(e,"params.lr_env")&&(f.ats_envelope=e.params.lr_env)})),f.p="["+f.p.toString()+"]",d.length&&(f.eids=JSON.stringify(d));var l="".concat(y,"?").concat((0,i.parseQueryStringParameters)(f)).length-8e3;if(l>0)for(var v=0;v<x.length&&!((l=j(l,f,x[v]))<=0);v++);u.push({method:"GET",url:y,data:f})}if(n.length>0){var g=function(e,t){var r=e[0].schain,n={id:e[0].bidderRequestId,at:1,imp:e.map((function(e){return function(e){var t=(0,a.Z)(e,"ortb2Imp.ext.data.pbadslot"),r=function(e){var t=(0,a.Z)(e,"mediaTypes.video.playerSize");if((0,i.isArrayOfNums)(t,2))return t;if((0,i.isArray)(t)&&(0,i.isArrayOfNums)(t[0],2))return t[0];return null}(e),n={id:e.bidId,tagid:e.adUnitCode,bidfloor:Z(e,c.pX),ext:{placement_id:e.params.placementId,tid:(0,a.Z)(e,"ortb2Imp.ext.tid")},video:{w:r[0],h:r[1],linearity:1}},o=(0,a.Z)(e,"mediaTypes.video");Object.keys(o).filter((function(e){return(0,s.q9)(h,e)})).forEach((function(e){return n.video[e]=o[e]}));var u=(0,a.Z)(e,"params.video");Object.keys(u).filter((function(e){return(0,s.q9)(h,e)})).forEach((function(e){return n.video[e]=u[e]})),n.video.skippable&&(n.video.skip=1,delete n.video.skippable);1!==n.video.placement&&(n.video.startdelay=0,n.video.playbackmethod=[2]);t&&(n.ext.gpid=t);return n}(e)})),site:T(e[0],t),device:S(e[0]),badv:e[0].params.badv||[],bcat:(0,a.Z)(t,"bcat")||e[0].params.bcat||[],ext:{prebid:"7.18.0"},ats_envelope:e[0].params.lr_env};r&&(n.schain=r);e[0].auctionId&&(n.auctionId=e[0].auctionId);return function(e,t){var r=t.gdprConsent;r&&"gdprApplies"in r&&((0,o.N)(e,"regs.ext.gdpr",r.gdprApplies?1:0),(0,o.N)(e,"user.ext.consent",r.consentString));var n=(0,a.Z)(t,"uspConsent");n&&(0,o.N)(e,"regs.ext.us_privacy",n)}(n,t),n}(n,t);d.length&&(g.user={eids:d}),u.push({method:"POST",url:"https://ads.yieldmo.com/exchange/prebidvideo",data:g})}return u},interpretResponse:function(e,t){var r=[],n=e.body;(n.length>0&&n.forEach((function(e){e.cpm>0&&r.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,t){return e.concat(t.bid)}),[]).forEach((function(e){return r.push(function(e,t){var r=(0,s.sE)((0,a.Z)(t,"data.imp")||[],(function(t){return t.id===e.impid})),n={dealId:e.dealid,requestId:r.id,cpm:e.price,width:r.video.w,height:r.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(r.video.placement&&1!==r.video.placement){var i=d.Th.install({url:g,config:{width:n.width,height:n.height,vastTimeout:15e3,maxAllowedVastTagRedirects:5,allowVpaid:!0,autoPlay:!0,preload:!0,mute:!0},id:r.tagid,loaded:!1});i.setRender((function(e){e.renderer.push((function(){var t=e.renderer,r=t.id,n=t.config;window.YMoutstreamPlayer(e,r,n)}))})),n.renderer=i}return n}(e,t))}));return r},getUserSyncs:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",i=[],a="&gdpr=".concat(r.gdprApplies?1:0),o="&gdpr_consent=".concat(encodeURIComponent(r.consentString||"")),c="us_privacy=".concat(encodeURIComponent(n)),u="".concat(v,"?").concat(c).concat(a).concat(o);return e.iframeEnabled?i.push({type:"iframe",url:u+"&type=iframe"}):e.pixelEnabled&&i.push({type:"image",url:u+"&type=image"}),i}};function w(e){return!!(0,a.Z)(e,"mediaTypes.banner")}function E(e){return!!(0,a.Z)(e,"mediaTypes.video")}function A(){return document.querySelector('meta[name="description"]')&&document.querySelector('meta[name="description"]').getAttribute("content")||""}function O(e,t){return"object"===(0,n.Z)((0,a.Z)(e,"userId"))?e.userId[t]:void 0}function Z(e,t){var r={};return"function"==typeof e.getFloor&&(r=e.getFloor({currency:f,mediaType:t,size:"*"})),r.floor||e.params.bidfloor||e.params.bidFloor||0}function T(e,t){var r,n={},o=(0,i.parseUrl)((0,a.Z)(t,"refererInfo.page"));(0,i.isEmpty)(o)||(n.page="".concat(o.protocol,"://").concat(o.hostname).concat(o.pathname)),null!==(r=t.refererInfo)&&void 0!==r&&r.ref&&(n.ref=t.refererInfo.ref);var c=document.getElementsByTagName("meta").keywords;c&&c.content&&(n.keywords=c.content);var u=(0,a.Z)(e,"params.site");return u&&Object.keys(u).filter((function(e){return(0,s.q9)(b,e)})).forEach((function(e){return n[e]=u[e]})),n}function S(e){return{ua:navigator.userAgent,language:navigator.language||navigator.browserLanguage||navigator.userLanguage||navigator.systemLanguage}}function j(e,t,r){if(t[r].length>e)return t[r]=t[r].substring(0,t[r].length-e),0;var n=e-t[r].length;return t[r]="",n}(0,u.dX)(k),window.pbjs.installedModules.push("yieldmoBidAdapter")}},function(e){var t;t=55511,e(e.s=t)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.pbjsChunk=self.pbjsChunk||[]).push([[4572],{83519:function(e,t,n){var a=n(64358),i=n(48928),o=n(64563),r=n(5644),d=n(9528),s=n(18621),c=n(78653),u={},v={},g={},f={};f[r.FP.BID_ADJUSTMENT]=!0,f[r.FP.BIDDER_DONE]=!0,f[r.FP.AUCTION_END]=!0;var l="",p="https://pool.tsukiji.iponweb.net/hba",b="";function I(e,t){e.adUnitCode&&t[e.adUnitCode]&&(e.adUnitName=t[e.adUnitCode]),(0,a.isArray)(e.adUnits)&&e.adUnits.forEach((function(e){e.code&&t[e.code]&&(e.name=t[e.code])})),(0,a.isArray)(e.adUnitCodes)&&(e.adUnitNames=e.adUnitCodes.map((function(e){return t[e]}))),["bids","bidderRequests","bidsReceived","noBids"].forEach((function(n){!function(e,t){(0,a.isArray)(e)&&e.forEach((function(e){I(e,t)}))}(e[n],t)}))}var h=Object.assign((0,o.Z)({analyticsType:"endpoint"}),{getUrl:function(){return p},track:function(e){var t=e.eventType,n=e.args,i=void 0===n?{}:n;if(t===r.FP.BID_REQUESTED){var o="".concat(i.bidderCode,"_").concat(i.auctionId);u[o]=(0,a.deepClone)(i),u[o].bids=[],i.bids.forEach((function(e){v["".concat(e.bidId,"_").concat(e.auctionId)]=e}))}if(t===r.FP.BID_TIMEOUT&&(0,a.isArray)(i)){var d=h.eventsStorage,p={};i.forEach((function(e){var n="".concat(e.bidId,"_").concat(e.auctionId),a="".concat(e.bidder,"_").concat(e.auctionId);d[e.auctionId]||(d[e.auctionId]={events:[]}),(u[a]||p[e.bidder])&&v[n]&&(p[e.bidder]||(p[e.bidder]=u[a],d[e.auctionId].events.push({eventType:t,params:p[e.bidder]}),delete u[a]),p[e.bidder].bids.push(v[n]),delete v[n])}))}else if(l=i.auctionId||l){var S=h.eventsStorage;S[l]||(S[l]={events:[]});var y=i.refererInfo&&i.refererInfo.page;y&&g[l]!==y&&(g[l]=y);var E=Object.assign({},i);if(delete E.ad,E.bidsReceived&&(E.bidsReceived=E.bidsReceived.map((function(e){var t=Object.assign({},e);return delete t.ad,t}))),f[t]||S[l].events.push({eventType:t,params:E}),t===r.FP.AUCTION_END||t===r.FP.BID_WON){if(E.adServerTargeting=s.q0.getAllTargeting(c.K.getAdUnitCodes(),c.K.getBidsReceived()),h.eventsStorage[l]&&h.eventsStorage[l].events.length){h.eventsStorage[l].page={url:g[l]},h.eventsStorage[l].pubId=b,h.eventsStorage[l].wrapper_version="7.
|
|
1
|
+
(self.pbjsChunk=self.pbjsChunk||[]).push([[4572],{83519:function(e,t,n){var a=n(64358),i=n(48928),o=n(64563),r=n(5644),d=n(9528),s=n(18621),c=n(78653),u={},v={},g={},f={};f[r.FP.BID_ADJUSTMENT]=!0,f[r.FP.BIDDER_DONE]=!0,f[r.FP.AUCTION_END]=!0;var l="",p="https://pool.tsukiji.iponweb.net/hba",b="";function I(e,t){e.adUnitCode&&t[e.adUnitCode]&&(e.adUnitName=t[e.adUnitCode]),(0,a.isArray)(e.adUnits)&&e.adUnits.forEach((function(e){e.code&&t[e.code]&&(e.name=t[e.code])})),(0,a.isArray)(e.adUnitCodes)&&(e.adUnitNames=e.adUnitCodes.map((function(e){return t[e]}))),["bids","bidderRequests","bidsReceived","noBids"].forEach((function(n){!function(e,t){(0,a.isArray)(e)&&e.forEach((function(e){I(e,t)}))}(e[n],t)}))}var h=Object.assign((0,o.Z)({analyticsType:"endpoint"}),{getUrl:function(){return p},track:function(e){var t=e.eventType,n=e.args,i=void 0===n?{}:n;if(t===r.FP.BID_REQUESTED){var o="".concat(i.bidderCode,"_").concat(i.auctionId);u[o]=(0,a.deepClone)(i),u[o].bids=[],i.bids.forEach((function(e){v["".concat(e.bidId,"_").concat(e.auctionId)]=e}))}if(t===r.FP.BID_TIMEOUT&&(0,a.isArray)(i)){var d=h.eventsStorage,p={};i.forEach((function(e){var n="".concat(e.bidId,"_").concat(e.auctionId),a="".concat(e.bidder,"_").concat(e.auctionId);d[e.auctionId]||(d[e.auctionId]={events:[]}),(u[a]||p[e.bidder])&&v[n]&&(p[e.bidder]||(p[e.bidder]=u[a],d[e.auctionId].events.push({eventType:t,params:p[e.bidder]}),delete u[a]),p[e.bidder].bids.push(v[n]),delete v[n])}))}else if(l=i.auctionId||l){var S=h.eventsStorage;S[l]||(S[l]={events:[]});var y=i.refererInfo&&i.refererInfo.page;y&&g[l]!==y&&(g[l]=y);var E=Object.assign({},i);if(delete E.ad,E.bidsReceived&&(E.bidsReceived=E.bidsReceived.map((function(e){var t=Object.assign({},e);return delete t.ad,t}))),f[t]||S[l].events.push({eventType:t,params:E}),t===r.FP.AUCTION_END||t===r.FP.BID_WON){if(E.adServerTargeting=s.q0.getAllTargeting(c.K.getAdUnitCodes(),c.K.getBidsReceived()),h.eventsStorage[l]&&h.eventsStorage[l].events.length){h.eventsStorage[l].page={url:g[l]},h.eventsStorage[l].pubId=b,h.eventsStorage[l].wrapper_version="7.18.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[l].events.forEach((function(e){I(e.params,A)}))}h.sendStat(h.eventsStorage[l],l)}}},sendStat:function(e,t){e&&e.events&&e.events.length&&(delete h.eventsStorage[t],(0,i.h)(p,{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&&(p=t.url),t.pubId&&(b=t.pubId.toString())),h.originEnableAnalytics(e)},d.ZP.registerAnalyticsAdapter({adapter:h,code:"yieldone"});window.pbjs.installedModules.push("yieldoneAnalyticsAdapter")}},function(e){e.O(0,[4861],(function(){return t=83519,e(e.s=t);var t}));e.O()}]);
|
package/karma.conf.maker.js
CHANGED
|
@@ -81,9 +81,7 @@ function setBrowsers(karmaConf, browserstack) {
|
|
|
81
81
|
karmaConf.browserStack = {
|
|
82
82
|
username: process.env.BROWSERSTACK_USERNAME,
|
|
83
83
|
accessKey: process.env.BROWSERSTACK_ACCESS_KEY,
|
|
84
|
-
build: 'Prebidjs Unit Tests ' + new Date().toLocaleString()
|
|
85
|
-
startTunnel: false,
|
|
86
|
-
localIdentifier: process.env.CIRCLE_WORKFLOW_JOB_ID
|
|
84
|
+
build: 'Prebidjs Unit Tests ' + new Date().toLocaleString()
|
|
87
85
|
}
|
|
88
86
|
if (process.env.TRAVIS) {
|
|
89
87
|
karmaConf.browserStack.startTunnel = false;
|
|
@@ -173,7 +171,7 @@ module.exports = function(codeCoverage, browserstack, watchMode, file, disableFe
|
|
|
173
171
|
browserNoActivityTimeout: 3e5, // default 10000
|
|
174
172
|
captureTimeout: 3e5, // default 60000,
|
|
175
173
|
browserDisconnectTolerance: 3,
|
|
176
|
-
concurrency:
|
|
174
|
+
concurrency: 5, // browserstack allows us 5 concurrent sessions
|
|
177
175
|
|
|
178
176
|
plugins: plugins
|
|
179
177
|
};
|
|
@@ -57,16 +57,39 @@ export const extractConfig = (moduleConfig, reqBidsConfigObj) => {
|
|
|
57
57
|
return { customerId, timeout, bidders };
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
export const extractConsent = ({ gdpr }) => {
|
|
61
|
+
if (!gdpr) {
|
|
62
|
+
return null
|
|
63
|
+
}
|
|
64
|
+
const { gdprApplies, consentString } = gdpr
|
|
65
|
+
if (!(gdprApplies == '0' || gdprApplies == '1')) {
|
|
66
|
+
throw 'TCF Consent: gdprApplies has wrong format'
|
|
67
|
+
}
|
|
68
|
+
if (!(typeof consentString === 'string')) {
|
|
69
|
+
throw 'TCF Consent: consentString is not string'
|
|
70
|
+
}
|
|
71
|
+
const result = {
|
|
72
|
+
'gdpr_applies': gdprApplies,
|
|
73
|
+
'consent_string': consentString
|
|
74
|
+
}
|
|
75
|
+
return result
|
|
76
|
+
}
|
|
60
77
|
/**
|
|
61
78
|
* Gets the URL of Profile Api from which targeting data will be fetched
|
|
62
79
|
* @param {Object} config
|
|
63
80
|
* @param {string} config.customerId
|
|
64
81
|
* @returns {string} URL to access 1plusX Profile API
|
|
65
82
|
*/
|
|
66
|
-
const getPapiUrl = (
|
|
83
|
+
export const getPapiUrl = (customerId, consent) => {
|
|
67
84
|
// https://[yourClientId].profiles.tagger.opecloud.com/[VERSION]/targeting?url=
|
|
68
85
|
const currentUrl = encodeURIComponent(window.location.href);
|
|
69
|
-
|
|
86
|
+
var papiUrl = `https://${customerId}.profiles.tagger.opecloud.com/${PAPI_VERSION}/targeting?url=${currentUrl}`;
|
|
87
|
+
if (consent) {
|
|
88
|
+
Object.entries(consent).forEach(([key, value]) => {
|
|
89
|
+
papiUrl += `&${key}=${value}`
|
|
90
|
+
})
|
|
91
|
+
}
|
|
92
|
+
|
|
70
93
|
return papiUrl;
|
|
71
94
|
}
|
|
72
95
|
|
|
@@ -216,14 +239,14 @@ const init = (config, userConsent) => {
|
|
|
216
239
|
* @param {Object} reqBidsConfigObj Bid request configuration object
|
|
217
240
|
* @param {Function} callback Called on completion
|
|
218
241
|
* @param {Object} moduleConfig Configuration for 1plusX RTD module
|
|
219
|
-
* @param {
|
|
242
|
+
* @param {Object} userConsent
|
|
220
243
|
*/
|
|
221
244
|
const getBidRequestData = (reqBidsConfigObj, callback, moduleConfig, userConsent) => {
|
|
222
245
|
try {
|
|
223
246
|
// Get the required config
|
|
224
247
|
const { customerId, bidders } = extractConfig(moduleConfig, reqBidsConfigObj);
|
|
225
248
|
// Get PAPI URL
|
|
226
|
-
const papiUrl = getPapiUrl(
|
|
249
|
+
const papiUrl = getPapiUrl(customerId, extractConsent(userConsent) || {})
|
|
227
250
|
// Call PAPI
|
|
228
251
|
getTargetingDataFromPapi(papiUrl)
|
|
229
252
|
.then((papiResponse) => {
|
|
@@ -231,9 +254,6 @@ const getBidRequestData = (reqBidsConfigObj, callback, moduleConfig, userConsent
|
|
|
231
254
|
setTargetingDataToConfig(papiResponse, { bidders });
|
|
232
255
|
callback();
|
|
233
256
|
})
|
|
234
|
-
.catch((error) => {
|
|
235
|
-
throw error;
|
|
236
|
-
})
|
|
237
257
|
} catch (error) {
|
|
238
258
|
logError(LOG_PREFIX, error);
|
|
239
259
|
callback();
|
|
@@ -532,7 +532,12 @@ function _parseNativeBidResponse(bid) {
|
|
|
532
532
|
native.impressionTrackers.push(tracker.url);
|
|
533
533
|
break;
|
|
534
534
|
case 2:
|
|
535
|
-
|
|
535
|
+
const script = `<script async src=\"${tracker.url}\"></script>`;
|
|
536
|
+
if (!native.javascriptTrackers) {
|
|
537
|
+
native.javascriptTrackers = script;
|
|
538
|
+
} else {
|
|
539
|
+
native.javascriptTrackers += `\n${script}`;
|
|
540
|
+
}
|
|
536
541
|
break;
|
|
537
542
|
}
|
|
538
543
|
});
|
|
@@ -623,7 +628,16 @@ export function setExtraParam(bid, paramName) {
|
|
|
623
628
|
|
|
624
629
|
const detected = adgGlobalConf[paramName] || deepAccess(ortb2Conf, `site.ext.data.${paramName}`, null);
|
|
625
630
|
if (detected) {
|
|
626
|
-
|
|
631
|
+
// First Party Data can be an array.
|
|
632
|
+
// As we consider that params detected from FPD are fallbacks, we just keep the 1st value.
|
|
633
|
+
if (Array.isArray(detected)) {
|
|
634
|
+
if (detected.length) {
|
|
635
|
+
bid.params[paramName] = detected[0].toString();
|
|
636
|
+
}
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
bid.params[paramName] = detected.toString();
|
|
627
641
|
}
|
|
628
642
|
}
|
|
629
643
|
|
|
@@ -780,9 +794,10 @@ function getSlotPosition(adUnitElementId) {
|
|
|
780
794
|
|
|
781
795
|
if (mustDisplayElement) {
|
|
782
796
|
domElement.style = domElement.style || {};
|
|
797
|
+
const originalDisplay = domElement.style.display;
|
|
783
798
|
domElement.style.display = 'block';
|
|
784
799
|
box = domElement.getBoundingClientRect();
|
|
785
|
-
domElement.style.display =
|
|
800
|
+
domElement.style.display = originalDisplay || null;
|
|
786
801
|
}
|
|
787
802
|
position.x = Math.round(box.left + scrollLeft - clientLeft);
|
|
788
803
|
position.y = Math.round(box.top + scrollTop - clientTop);
|
|
@@ -10,7 +10,7 @@ Connects to Adagio demand source to fetch bids.
|
|
|
10
10
|
|
|
11
11
|
## Configuration
|
|
12
12
|
|
|
13
|
-
Adagio require several params. These params must be set at Prebid.js
|
|
13
|
+
Adagio require several params. These params must be set at Prebid.js BidderConfig config level or at adUnit level.
|
|
14
14
|
|
|
15
15
|
Below, the list of Adagio params and where they can be set.
|
|
16
16
|
|
|
@@ -58,6 +58,16 @@ pbjs.setConfig({
|
|
|
58
58
|
});
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
#### Note on FPD support
|
|
62
|
+
|
|
63
|
+
Adagio will use FPD data as fallback for the params below:
|
|
64
|
+
- pagetype
|
|
65
|
+
- environment
|
|
66
|
+
- category
|
|
67
|
+
- subcategory
|
|
68
|
+
|
|
69
|
+
If the FPD value is an array, the 1st value of this array will be used.
|
|
70
|
+
|
|
61
71
|
### adUnit configuration
|
|
62
72
|
|
|
63
73
|
```javascript
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
2
2
|
import {BANNER} from '../src/mediaTypes.js';
|
|
3
|
-
import { logInfo, buildUrl, triggerPixel } from '../src/utils.js';
|
|
3
|
+
import { logInfo, buildUrl, triggerPixel, parseSizesInput } from '../src/utils.js';
|
|
4
4
|
import { getStorageManager } from '../src/storageManager.js';
|
|
5
5
|
|
|
6
6
|
const ADQUERY_GVLID = 902;
|
|
@@ -24,7 +24,7 @@ export const spec = {
|
|
|
24
24
|
* @return {boolean}
|
|
25
25
|
*/
|
|
26
26
|
isBidRequestValid: (bid) => {
|
|
27
|
-
return !!(bid && bid.params && bid.params.placementId)
|
|
27
|
+
return !!(bid && bid.params && bid.params.placementId && bid.mediaTypes.banner.sizes)
|
|
28
28
|
},
|
|
29
29
|
|
|
30
30
|
/**
|
|
@@ -202,6 +202,8 @@ function buildRequest(validBidRequests, bidderRequest) {
|
|
|
202
202
|
bidderRequestId: bid.bidderRequestId,
|
|
203
203
|
bidRequestsCount: bid.bidRequestsCount,
|
|
204
204
|
bidderRequestsCount: bid.bidderRequestsCount,
|
|
205
|
+
sizes: parseSizesInput(bid.mediaTypes.banner.sizes).toString(),
|
|
206
|
+
|
|
205
207
|
};
|
|
206
208
|
}
|
|
207
209
|
|
|
@@ -250,10 +250,10 @@ export const spec = {
|
|
|
250
250
|
// need to convert the string values into array of strings, to properly merge values with other existing keys later
|
|
251
251
|
Object.keys(anAuctionKeywords).forEach(k => { if (isStr(anAuctionKeywords[k]) || isNumber(anAuctionKeywords[k])) anAuctionKeywords[k] = [anAuctionKeywords[k]] });
|
|
252
252
|
// combine all sources of keywords (converted from string comma list to object format) into one object (that combines the values for shared keys)
|
|
253
|
-
let
|
|
253
|
+
let mergedAuctionKeywords = mergeDeep({}, anAuctionKeywords, ...ortb2KeywordsObjList);
|
|
254
254
|
|
|
255
255
|
// convert to final format used by adserver
|
|
256
|
-
let auctionKeywords = transformBidderParamKeywords(
|
|
256
|
+
let auctionKeywords = transformBidderParamKeywords(mergedAuctionKeywords);
|
|
257
257
|
if (auctionKeywords.length > 0) {
|
|
258
258
|
auctionKeywords.forEach(deleteValues);
|
|
259
259
|
payload.keywords = auctionKeywords;
|
|
@@ -1202,28 +1202,30 @@ function convertKeywordsToString(keywords) {
|
|
|
1202
1202
|
function convertStringToKeywordsObj(keyStr) {
|
|
1203
1203
|
let result = {};
|
|
1204
1204
|
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
result
|
|
1205
|
+
if (isStr(keyStr) && keyStr !== '') {
|
|
1206
|
+
// will split based on commas and will eat white space before/after the comma
|
|
1207
|
+
let keywordList = keyStr.split(/\s*(?:,)\s*/);
|
|
1208
|
+
keywordList.forEach(kw => {
|
|
1209
|
+
// if = exists, then split
|
|
1210
|
+
if (kw.indexOf('=') !== -1) {
|
|
1211
|
+
let kwPair = kw.split('=');
|
|
1212
|
+
let key = kwPair[0];
|
|
1213
|
+
let val = kwPair[1];
|
|
1214
|
+
|
|
1215
|
+
// then check for existing key in result > if so add value to the array > if not, add new key and create value array
|
|
1216
|
+
if (result.hasOwnProperty(key)) {
|
|
1217
|
+
result[key].push(val);
|
|
1218
|
+
} else {
|
|
1219
|
+
result[key] = [val];
|
|
1220
|
+
}
|
|
1217
1221
|
} else {
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
if (!result.hasOwnProperty(kw)) {
|
|
1223
|
-
result[kw] = [''];
|
|
1222
|
+
// make a key with '' value; if key already exists > don't add
|
|
1223
|
+
if (!result.hasOwnProperty(kw)) {
|
|
1224
|
+
result[kw] = [''];
|
|
1225
|
+
}
|
|
1224
1226
|
}
|
|
1225
|
-
}
|
|
1226
|
-
}
|
|
1227
|
+
});
|
|
1228
|
+
}
|
|
1227
1229
|
|
|
1228
1230
|
return result;
|
|
1229
1231
|
}
|
|
@@ -21,7 +21,7 @@ let allEvents = {}
|
|
|
21
21
|
let auctionEnd = {}
|
|
22
22
|
let initOptions = {}
|
|
23
23
|
let endpoint = 'https://default'
|
|
24
|
-
let requestsAttributes = ['adUnitCode', 'auctionId', 'bidder', 'bidderCode', 'bidId', 'cpm', 'creativeId', 'currency', 'width', 'height', 'mediaType', 'netRevenue', 'originalCpm', 'originalCurrency', 'requestId', 'size', 'source', 'status', 'timeToRespond', 'transactionId', 'ttl', 'sizes', 'mediaTypes', 'src', 'params', 'userId', 'labelAny', 'bids'];
|
|
24
|
+
let requestsAttributes = ['adUnitCode', 'auctionId', 'bidder', 'bidderCode', 'bidId', 'cpm', 'creativeId', 'currency', 'width', 'height', 'mediaType', 'netRevenue', 'originalCpm', 'originalCurrency', 'requestId', 'size', 'source', 'status', 'timeToRespond', 'transactionId', 'ttl', 'sizes', 'mediaTypes', 'src', 'params', 'userId', 'labelAny', 'bids', 'adId'];
|
|
25
25
|
|
|
26
26
|
function getAdapterNameForAlias(aliasName) {
|
|
27
27
|
return adapterManager.aliasRegistry[aliasName] || aliasName;
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
// jshint esversion: 6, es3: false, node: true
|
|
2
|
+
'use strict'
|
|
3
|
+
|
|
4
|
+
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
5
|
+
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
6
|
+
import {
|
|
7
|
+
deepAccess,
|
|
8
|
+
deepSetValue,
|
|
9
|
+
logError,
|
|
10
|
+
mergeDeep,
|
|
11
|
+
parseSizesInput
|
|
12
|
+
} from '../src/utils.js';
|
|
13
|
+
import { config } from '../src/config.js';
|
|
14
|
+
|
|
15
|
+
const { getConfig } = config;
|
|
16
|
+
|
|
17
|
+
const BIDDER_CODE = 'caroda';
|
|
18
|
+
const GVLID = 954;
|
|
19
|
+
|
|
20
|
+
// some state info is required to synchronize with Caroda ad server
|
|
21
|
+
const topUsableWindow = getTopUsableWindow();
|
|
22
|
+
|
|
23
|
+
export const spec = {
|
|
24
|
+
code: BIDDER_CODE,
|
|
25
|
+
gvlid: GVLID,
|
|
26
|
+
supportedMediaTypes: [BANNER, VIDEO],
|
|
27
|
+
isBidRequestValid: bid => {
|
|
28
|
+
const params = bid.params || {};
|
|
29
|
+
const { ctok, placementId, priceType } = params;
|
|
30
|
+
return typeof ctok === 'string' && (
|
|
31
|
+
typeof placementId === 'string' ||
|
|
32
|
+
typeof placementId === 'undefined'
|
|
33
|
+
) && (
|
|
34
|
+
typeof priceType === 'undefined' ||
|
|
35
|
+
priceType === 'gross' ||
|
|
36
|
+
priceType === 'net'
|
|
37
|
+
);
|
|
38
|
+
},
|
|
39
|
+
buildRequests: (validBidRequests, bidderRequest) => {
|
|
40
|
+
topUsableWindow.carodaPageViewId = topUsableWindow.carodaPageViewId || Math.floor(Math.random() * 1e9);
|
|
41
|
+
const pageViewId = topUsableWindow.carodaPageViewId;
|
|
42
|
+
const ortbCommon = getORTBCommon(bidderRequest);
|
|
43
|
+
const priceType =
|
|
44
|
+
getFirstWithKey(validBidRequests, 'params.priceType') ||
|
|
45
|
+
'net';
|
|
46
|
+
const test = getFirstWithKey(validBidRequests, 'params.test');
|
|
47
|
+
const currency = getConfig('currency.adServerCurrency');
|
|
48
|
+
const eids = getFirstWithKey(validBidRequests, 'userIdAsEids');
|
|
49
|
+
const schain = getFirstWithKey(validBidRequests, 'schain');
|
|
50
|
+
const request = {
|
|
51
|
+
auctionId: bidderRequest.auctionId,
|
|
52
|
+
currency,
|
|
53
|
+
hb_version: '$prebid.version$',
|
|
54
|
+
...ortbCommon,
|
|
55
|
+
price_type: priceType
|
|
56
|
+
};
|
|
57
|
+
if (test) {
|
|
58
|
+
request.test = 1;
|
|
59
|
+
}
|
|
60
|
+
if (schain) {
|
|
61
|
+
request.schain = schain;
|
|
62
|
+
}
|
|
63
|
+
if (config.getConfig('coppa')) {
|
|
64
|
+
deepSetValue(request, 'privacy.coppa', 1);
|
|
65
|
+
}
|
|
66
|
+
if (deepAccess(bidderRequest, 'gdprConsent.gdprApplies') !== undefined) {
|
|
67
|
+
deepSetValue(
|
|
68
|
+
request,
|
|
69
|
+
'privacy.gdpr_consent',
|
|
70
|
+
bidderRequest.gdprConsent.consentString
|
|
71
|
+
);
|
|
72
|
+
deepSetValue(
|
|
73
|
+
request,
|
|
74
|
+
'privacy.gdpr',
|
|
75
|
+
bidderRequest.gdprConsent.gdprApplies & 1
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
if (bidderRequest.uspConsent) {
|
|
79
|
+
deepSetValue(request, 'privacy.us_privacy', bidderRequest.uspConsent);
|
|
80
|
+
}
|
|
81
|
+
if (eids) {
|
|
82
|
+
deepSetValue(request, 'user.eids', eids);
|
|
83
|
+
}
|
|
84
|
+
return getImps(validBidRequests, request).map(imp => ({
|
|
85
|
+
method: 'POST',
|
|
86
|
+
url: 'https://prebid.caroda.io/api/hb?entry_id=' + pageViewId,
|
|
87
|
+
data: JSON.stringify(imp)
|
|
88
|
+
}));
|
|
89
|
+
},
|
|
90
|
+
interpretResponse: (serverResponse) => {
|
|
91
|
+
if (!serverResponse.body) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const { ok, error } = serverResponse.body
|
|
95
|
+
if (error) {
|
|
96
|
+
logError(BIDDER_CODE, ': server caught', error.message);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
return JSON.parse(ok.value)
|
|
101
|
+
.map((bid) => {
|
|
102
|
+
const ret = {
|
|
103
|
+
requestId: bid.bid_id,
|
|
104
|
+
cpm: bid.cpm,
|
|
105
|
+
creativeId: bid.creative_id,
|
|
106
|
+
ttl: 300,
|
|
107
|
+
netRevenue: true,
|
|
108
|
+
currency: bid.currency,
|
|
109
|
+
width: bid.w,
|
|
110
|
+
height: bid.h,
|
|
111
|
+
meta: {
|
|
112
|
+
advertiserDomains: bid.adomain || []
|
|
113
|
+
},
|
|
114
|
+
ad: bid.ad,
|
|
115
|
+
placementId: bid.placement_id
|
|
116
|
+
}
|
|
117
|
+
if (bid.adserver_targeting) {
|
|
118
|
+
ret.adserverTargeting = bid.adserver_targeting
|
|
119
|
+
}
|
|
120
|
+
return ret
|
|
121
|
+
})
|
|
122
|
+
.filter(Boolean);
|
|
123
|
+
} catch (e) {
|
|
124
|
+
logError(BIDDER_CODE, ': caught', e);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
registerBidder(spec)
|
|
130
|
+
|
|
131
|
+
function getFirstWithKey (collection, key) {
|
|
132
|
+
for (let i = 0, result; i < collection.length; i++) {
|
|
133
|
+
result = deepAccess(collection[i], key);
|
|
134
|
+
if (result) {
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function getTopUsableWindow () {
|
|
141
|
+
let res = window;
|
|
142
|
+
try {
|
|
143
|
+
while (window.top !== res && res.parent.location.href.length) {
|
|
144
|
+
res = res.parent;
|
|
145
|
+
}
|
|
146
|
+
} catch (e) {}
|
|
147
|
+
return res;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function getORTBCommon (bidderRequest) {
|
|
151
|
+
let app, site;
|
|
152
|
+
const commonFpd = bidderRequest.ortb2 || {};
|
|
153
|
+
let { user } = commonFpd;
|
|
154
|
+
if (typeof getConfig('app') === 'object') {
|
|
155
|
+
app = getConfig('app') || {}
|
|
156
|
+
if (commonFpd.app) {
|
|
157
|
+
mergeDeep(app, commonFpd.app);
|
|
158
|
+
}
|
|
159
|
+
} else {
|
|
160
|
+
site = getConfig('site') || {};
|
|
161
|
+
if (commonFpd.site) {
|
|
162
|
+
mergeDeep(site, commonFpd.site);
|
|
163
|
+
}
|
|
164
|
+
if (!site.page) {
|
|
165
|
+
site.page = bidderRequest.refererInfo.page;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
const device = getConfig('device') || {};
|
|
169
|
+
device.w = device.w || window.innerWidth;
|
|
170
|
+
device.h = device.h || window.innerHeight;
|
|
171
|
+
device.ua = device.ua || navigator.userAgent;
|
|
172
|
+
return {
|
|
173
|
+
app,
|
|
174
|
+
site,
|
|
175
|
+
user,
|
|
176
|
+
device
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function getImps (validBidRequests, common) {
|
|
181
|
+
return validBidRequests.map((bid) => {
|
|
182
|
+
const floorInfo = bid.getFloor
|
|
183
|
+
? bid.getFloor({ currency: common.currency || 'EUR' })
|
|
184
|
+
: {};
|
|
185
|
+
const bidfloor = floorInfo.floor;
|
|
186
|
+
const bidfloorcur = floorInfo.currency;
|
|
187
|
+
const { ctok, placementId } = bid.params;
|
|
188
|
+
const imp = {
|
|
189
|
+
bid_id: bid.bidId,
|
|
190
|
+
ctok,
|
|
191
|
+
bidfloor,
|
|
192
|
+
bidfloorcur,
|
|
193
|
+
...common
|
|
194
|
+
};
|
|
195
|
+
const bannerParams = deepAccess(bid, 'mediaTypes.banner');
|
|
196
|
+
if (bannerParams && bannerParams.sizes) {
|
|
197
|
+
const sizes = parseSizesInput(bannerParams.sizes);
|
|
198
|
+
const format = sizes.map(size => {
|
|
199
|
+
const [width, height] = size.split('x');
|
|
200
|
+
const w = parseInt(width, 10);
|
|
201
|
+
const h = parseInt(height, 10);
|
|
202
|
+
return { w, h };
|
|
203
|
+
});
|
|
204
|
+
imp.banner = {
|
|
205
|
+
format
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
if (placementId) {
|
|
209
|
+
imp.placement_id = placementId;
|
|
210
|
+
}
|
|
211
|
+
const videoParams = deepAccess(bid, 'mediaTypes.video');
|
|
212
|
+
if (videoParams) {
|
|
213
|
+
imp.video = videoParams;
|
|
214
|
+
}
|
|
215
|
+
return imp;
|
|
216
|
+
})
|
|
217
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Overview
|
|
2
|
+
|
|
3
|
+
Module Name: Caroda Adapter
|
|
4
|
+
Module Type: Bidder Adapter
|
|
5
|
+
Maintainer: dev@caroda.io
|
|
6
|
+
|
|
7
|
+
# Description
|
|
8
|
+
|
|
9
|
+
Module that connects to Caroda demand sources to fetch bids.
|
|
10
|
+
Banner and video formats are supported.
|
|
11
|
+
Use `caroda` as bidder.
|
|
12
|
+
|
|
13
|
+
# Test Parameters
|
|
14
|
+
```
|
|
15
|
+
var adUnits = [{
|
|
16
|
+
code: '/19968336/prebid_banner_example_1',
|
|
17
|
+
mediaTypes: {
|
|
18
|
+
banner: {
|
|
19
|
+
sizes: [[ 300, 250 ]]
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
bids: [{
|
|
23
|
+
bidder: 'caroda',
|
|
24
|
+
params: {
|
|
25
|
+
ctok: '230ce9490c5434354'
|
|
26
|
+
}
|
|
27
|
+
}]
|
|
28
|
+
}, {
|
|
29
|
+
code: '/19968336/prebid_video_example_1',
|
|
30
|
+
mediaTypes: {
|
|
31
|
+
video: {
|
|
32
|
+
context: 'outstream',
|
|
33
|
+
mimes: ['video/mp4']
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
bids: [{
|
|
37
|
+
bidder: 'caroda',
|
|
38
|
+
params: {
|
|
39
|
+
ctok: '230ce9490c5434354'
|
|
40
|
+
}
|
|
41
|
+
}]
|
|
42
|
+
}];
|
|
43
|
+
```
|
|
@@ -39,7 +39,7 @@ let hasSynced = false;
|
|
|
39
39
|
|
|
40
40
|
export const spec = {
|
|
41
41
|
code: BIDDER_CODE,
|
|
42
|
-
aliases: ['playwire', 'adlivetech', 'trustx'],
|
|
42
|
+
aliases: ['playwire', 'adlivetech', { code: 'trustx', skipPbsAliasing: true }],
|
|
43
43
|
supportedMediaTypes: [ BANNER, VIDEO ],
|
|
44
44
|
/**
|
|
45
45
|
* Determines whether or not the given bid request is valid.
|