prebid.js 7.53.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/codeql-analysis.yml +2 -2
- package/dist/1plusXRtdProvider.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/adWMGAnalyticsAdapter.js +1 -1
- package/dist/adWMGBidAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adfBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adhashBidAdapter.js +1 -1
- package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adlooxAdServerVideo.js +1 -1
- package/dist/adlooxAnalyticsAdapter.js +1 -1
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/adomikAnalyticsAdapter.js +1 -1
- package/dist/adprimeBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adtrueBidAdapter.js +1 -1
- package/dist/aduptechBidAdapter.js +1 -1
- package/dist/advangelistsBidAdapter.js +1 -1
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adxpremiumAnalyticsAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/afpBidAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/airgridRtdProvider.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/analyticsAdapter.js +1 -1
- package/dist/apacdexBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/appnexusKeywords.js +1 -0
- package/dist/asoBidAdapter.js +1 -1
- package/dist/astraoneBidAdapter.js +1 -1
- package/dist/atsAnalyticsAdapter.js +1 -1
- package/dist/audiencerunBidAdapter.js +1 -1
- package/dist/automatadBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/beachfrontBidAdapter.js +1 -1
- package/dist/beopBidAdapter.js +1 -1
- package/dist/betweenBidAdapter.js +1 -1
- package/dist/bidViewability.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bizzclickBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/braveBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/browsiBidAdapter.js +1 -1
- package/dist/byDataAnalyticsAdapter.js +1 -1
- package/dist/cadentApertureMXBidAdapter.js +1 -0
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/categoryTranslationMapping.js +1 -0
- package/dist/ccxBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/cleanmedianetBidAdapter.js +1 -1
- package/dist/codefuelBidAdapter.js +1 -1
- package/dist/colossussspBidAdapter.js +1 -1
- package/dist/concertAnalyticsAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagement.js +1 -1
- package/dist/consentManagementGpp.js +1 -1
- package/dist/consentManagementUsp.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/criteoIdSystem.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailyhuntBidAdapter.js +1 -1
- package/dist/datablocksAnalyticsAdapter.js +1 -1
- package/dist/datablocksBidAdapter.js +1 -1
- package/dist/datawrkzBidAdapter.js +1 -1
- package/dist/debugging-standalone.js +1 -1
- package/dist/debugging.js +1 -1
- package/dist/deltaprojectsBidAdapter.js +1 -1
- package/dist/dependencies.json +58 -14
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dianomiBidAdapter.js +1 -1
- package/dist/displayioBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/ebdrBidAdapter.js +1 -1
- package/dist/eplanningAnalyticsAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/etargetBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/fluctBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/ftrackIdSystem.js +1 -1
- package/dist/gamoshiBidAdapter.js +1 -1
- package/dist/gdprEnforcement.js +1 -1
- package/dist/genericAnalyticsAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/gnetBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gothamadsBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronAnalyticsAdapter.js +1 -1
- package/dist/holidBidAdapter.js +1 -1
- package/dist/hybridBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -0
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -0
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/interactiveOffersBidAdapter.js +1 -1
- package/dist/invisiblyAnalyticsAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoAnalyticsAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/keywords.js +1 -0
- package/dist/kinessoIdSystem.js +1 -1
- package/dist/koblerBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/limelightDigitalBidAdapter.js +1 -1
- package/dist/liveIntentAnalyticsAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/livewrappedAnalyticsAdapter.js +1 -1
- package/dist/livewrappedBidAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/lotamePanoramaIdSystem.js +1 -1
- package/dist/luponmediaBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediaforceBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasniperBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/microadBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/newspassidBidAdapter.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +293 -323
- package/dist/objectGuard.js +1 -1
- 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/optidigitalBidAdapter.js +1 -1
- package/dist/optimonAnalyticsAdapter.js +1 -1
- package/dist/orbidderBidAdapter.js +1 -1
- package/dist/ortbConverter.js +1 -1
- package/dist/otmBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/oxxionAnalyticsAdapter.js +1 -1
- package/dist/oxxionRtdProvider.js +1 -1
- package/dist/ozoneBidAdapter.js +1 -1
- package/dist/padsquadBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pbsExtensions.js +1 -1
- package/dist/pianoDmpAnalyticsAdapter.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +2 -2
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
- package/dist/priceFloors.js +1 -1
- package/dist/prismaBidAdapter.js +1 -1
- package/dist/proxistoreBidAdapter.js +1 -1
- package/dist/pubgeniusBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubperfAnalyticsAdapter.js +1 -1
- package/dist/pubstackAnalyticsAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubwiseBidAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pulsepointAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/quantcastIdSystem.js +1 -1
- package/dist/rasBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevantAnalyticsAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/revcontentBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/richaudienceBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rivrAnalyticsAdapter.js +1 -1
- package/dist/roxotAnalyticsAdapter.js +1 -1
- package/dist/rtbhouseBidAdapter.js +1 -1
- package/dist/rtdModule.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/s2sTesting.js +1 -1
- package/dist/saambaaBidAdapter.js +1 -1
- package/dist/scaleableAnalyticsAdapter.js +1 -1
- package/dist/schain.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharedIdSystem.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/showheroes-bsBidAdapter.js +1 -1
- package/dist/sigmoidAnalyticsAdapter.js +1 -1
- package/dist/sizeMapping.js +1 -0
- package/dist/slimcutBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smartytechBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/sonobiAnalyticsAdapter.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/staqAnalyticsAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tapadIdSystem.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/teadsIdSystem.js +1 -1
- package/dist/telariaBidAdapter.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/theAdxBidAdapter.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/unicornBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/utiqSystem.js +1 -0
- package/dist/vibrantmediaBidAdapter.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/videojsVideoProvider.js +1 -1
- package/dist/videoreachBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/weboramaRtdProvider.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/xeBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldliftBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/yieldoneBidAdapter.js +1 -1
- package/dist/yuktamediaAnalyticsAdapter.js +1 -1
- package/dist/zetaBidAdapter.js +1 -1
- package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/libraries/analyticsAdapter/AnalyticsAdapter.js +1 -7
- package/libraries/appnexusKeywords/anKeywords.js +140 -0
- package/libraries/categoryTranslationMapping/index.js +100 -0
- package/libraries/keywords/keywords.js +31 -0
- package/libraries/objectGuard/objectGuard.js +2 -11
- package/libraries/ortbConverter/processors/default.js +3 -4
- package/modules/.submodules.json +1 -1
- package/modules/1plusXRtdProvider.js +4 -14
- package/modules/33acrossBidAdapter.js +11 -11
- package/modules/adWMGBidAdapter.js +2 -1
- package/modules/adagioBidAdapter.js +18 -30
- package/modules/adbookpspBidAdapter.js +1 -1
- package/modules/addefendBidAdapter.js +1 -0
- package/modules/adfBidAdapter.js +3 -3
- package/modules/adgenerationBidAdapter.js +1 -1
- package/modules/adhashBidAdapter.js +56 -34
- package/modules/adkernelAdnBidAdapter.js +5 -6
- package/modules/adkernelBidAdapter.js +5 -5
- package/modules/adprimeBidAdapter.js +2 -1
- package/modules/adqueryBidAdapter.js +1 -0
- package/modules/adrelevantisBidAdapter.js +3 -24
- package/modules/adtrueBidAdapter.js +2 -2
- package/modules/aduptechBidAdapter.js +2 -1
- package/modules/advangelistsBidAdapter.js +0 -1
- package/modules/adxcgBidAdapter.js +1 -1
- package/modules/adyoulikeBidAdapter.js +1 -1
- package/modules/afpBidAdapter.js +2 -2
- package/modules/aidemBidAdapter.js +16 -3
- package/modules/airgridRtdProvider.js +24 -53
- package/modules/ajaBidAdapter.js +1 -1
- package/modules/alkimiBidAdapter.js +2 -1
- package/modules/amxBidAdapter.js +1 -0
- package/modules/apacdexBidAdapter.js +3 -3
- package/modules/appnexusBidAdapter.js +16 -114
- package/modules/apstreamBidAdapter.js +1 -0
- package/modules/asoBidAdapter.js +1 -1
- package/modules/astraoneBidAdapter.js +1 -1
- package/modules/audiencerunBidAdapter.js +2 -1
- package/modules/automatadBidAdapter.js +5 -5
- package/modules/beachfrontBidAdapter.js +0 -1
- package/modules/beopBidAdapter.js +20 -17
- package/modules/betweenBidAdapter.js +2 -1
- package/modules/bizzclickBidAdapter.js +9 -6
- package/modules/bliinkBidAdapter.js +1 -0
- package/modules/bluebillywigBidAdapter.js +2 -2
- package/modules/braveBidAdapter.js +9 -7
- package/modules/browsiBidAdapter.js +3 -3
- package/modules/{emx_digitalBidAdapter.js → cadentApertureMXBidAdapter.js} +61 -56
- package/modules/{emx_digitalBidAdapter.md → cadentApertureMXBidAdapter.md} +6 -6
- package/modules/carodaBidAdapter.js +1 -0
- package/modules/ccxBidAdapter.js +1 -1
- package/modules/cleanmedianetBidAdapter.js +3 -3
- package/modules/codefuelBidAdapter.js +1 -1
- package/modules/colossussspBidAdapter.js +1 -1
- package/modules/concertBidAdapter.js +1 -1
- package/modules/connectadBidAdapter.js +1 -0
- package/modules/conversantAnalyticsAdapter.js +2 -0
- package/modules/conversantBidAdapter.js +22 -6
- package/modules/craftBidAdapter.js +6 -28
- package/modules/criteoBidAdapter.js +12 -9
- package/modules/currency.js +3 -3
- package/modules/dailyhuntBidAdapter.js +2 -2
- package/modules/datablocksBidAdapter.js +10 -8
- package/modules/datawrkzBidAdapter.js +0 -6
- package/modules/deltaprojectsBidAdapter.js +12 -3
- package/modules/dianomiBidAdapter.js +1 -1
- package/modules/discoveryBidAdapter.js +1 -0
- package/modules/displayioBidAdapter.js +2 -1
- package/modules/dspxBidAdapter.js +1 -0
- package/modules/ebdrBidAdapter.js +3 -2
- package/modules/etargetBidAdapter.js +1 -2
- package/modules/feedadBidAdapter.js +1 -1
- package/modules/finativeBidAdapter.js +8 -8
- package/modules/fluctBidAdapter.js +1 -2
- package/modules/gamoshiBidAdapter.js +3 -3
- package/modules/gdprEnforcement.js +0 -15
- package/modules/genericAnalyticsAdapter.js +0 -5
- package/modules/glomexBidAdapter.js +1 -0
- package/modules/gmosspBidAdapter.js +1 -1
- package/modules/gnetBidAdapter.js +1 -1
- package/modules/goldbachBidAdapter.js +7 -45
- package/modules/gothamadsBidAdapter.js +4 -3
- package/modules/gridBidAdapter.js +20 -421
- package/modules/gumgumBidAdapter.js +1 -2
- package/modules/h12mediaBidAdapter.js +1 -1
- package/modules/holidBidAdapter.js +8 -13
- package/modules/hybridBidAdapter.js +2 -2
- package/modules/hypelabBidAdapter.js +153 -0
- package/modules/hypelabBidAdapter.md +38 -0
- package/modules/{synacormediaBidAdapter.js → imdsBidAdapter.js} +11 -8
- package/modules/{synacormediaBidAdapter.md → imdsBidAdapter.md} +5 -5
- package/modules/impactifyBidAdapter.js +6 -6
- package/modules/improvedigitalBidAdapter.js +1 -2
- package/modules/innityBidAdapter.js +1 -0
- package/modules/insticatorBidAdapter.js +1 -1
- package/modules/interactiveOffersBidAdapter.js +5 -4
- package/modules/iqmBidAdapter.js +1 -0
- package/modules/ixBidAdapter.js +74 -75
- package/modules/jixieBidAdapter.js +1 -0
- package/modules/kargoBidAdapter.js +1 -1
- package/modules/koblerBidAdapter.js +2 -1
- package/modules/kueezBidAdapter.js +1 -1
- package/modules/kueezRtbBidAdapter.js +1 -0
- package/modules/kulturemediaBidAdapter.js +7 -7
- package/modules/lassoBidAdapter.js +2 -1
- package/modules/limelightDigitalBidAdapter.js +1 -1
- package/modules/livewrappedBidAdapter.js +2 -2
- package/modules/logicadBidAdapter.js +2 -1
- package/modules/loglyliftBidAdapter.js +2 -1
- package/modules/luponmediaBidAdapter.js +16 -4
- package/modules/magniteAnalyticsAdapter.js +61 -72
- package/modules/malltvBidAdapter.js +1 -0
- package/modules/mediaforceBidAdapter.js +2 -1
- package/modules/mediafuseBidAdapter.js +45 -62
- package/modules/mediagoBidAdapter.js +1 -0
- package/modules/mediakeysBidAdapter.js +3 -5
- package/modules/medianetBidAdapter.js +2 -1
- package/modules/mediasniperBidAdapter.js +1 -2
- package/modules/mediasquareBidAdapter.js +2 -1
- package/modules/microadBidAdapter.js +1 -9
- package/modules/minutemediaBidAdapter.js +2 -2
- package/modules/minutemediaplusBidAdapter.js +3 -2
- package/modules/newspassidBidAdapter.js +6 -4
- package/modules/nextMillenniumBidAdapter.js +10 -9
- package/modules/oguryBidAdapter.js +5 -5
- package/modules/onetagBidAdapter.js +2 -1
- package/modules/operaadsBidAdapter.js +2 -2
- package/modules/optidigitalBidAdapter.js +2 -2
- package/modules/orbidderBidAdapter.js +2 -1
- package/modules/otmBidAdapter.js +2 -2
- package/modules/outbrainBidAdapter.js +9 -11
- package/modules/oxxionRtdProvider.js +7 -29
- package/modules/ozoneBidAdapter.js +2 -1
- package/modules/padsquadBidAdapter.js +2 -2
- package/modules/pixfutureBidAdapter.js +12 -36
- package/modules/prebidServerBidAdapter/index.js +1 -3
- package/modules/prebidServerBidAdapter/ortbConverter.js +34 -5
- package/modules/priceFloors.js +7 -7
- package/modules/prismaBidAdapter.js +4 -3
- package/modules/proxistoreBidAdapter.js +2 -1
- package/modules/pubgeniusBidAdapter.js +5 -5
- package/modules/pubmaticAnalyticsAdapter.js +31 -12
- package/modules/pubmaticBidAdapter.js +6 -4
- package/modules/pubwiseBidAdapter.js +6 -5
- package/modules/pxyzBidAdapter.js +4 -4
- package/modules/rasBidAdapter.js +4 -2
- package/modules/readpeakBidAdapter.js +1 -1
- package/modules/relaidoBidAdapter.js +2 -1
- package/modules/resetdigitalBidAdapter.js +1 -0
- package/modules/revcontentBidAdapter.js +6 -7
- package/modules/rhythmoneBidAdapter.js +0 -2
- package/modules/richaudienceBidAdapter.js +6 -4
- package/modules/riseBidAdapter.js +1 -1
- package/modules/rtbhouseBidAdapter.js +5 -5
- package/modules/rtbsapeBidAdapter.js +1 -0
- package/modules/rubiconBidAdapter.js +8 -11
- package/modules/saambaaBidAdapter.js +0 -1
- package/modules/seedingAllianceBidAdapter.js +6 -7
- package/modules/seedtagBidAdapter.js +1 -1
- package/modules/sharethroughBidAdapter.js +1 -1
- package/modules/shinezBidAdapter.js +435 -435
- package/modules/showheroes-bsBidAdapter.js +1 -1
- package/{src → modules}/sizeMapping.js +46 -32
- package/modules/slimcutBidAdapter.js +2 -2
- package/modules/smaatoBidAdapter.js +16 -3
- package/modules/smartadserverBidAdapter.js +1 -1
- package/modules/smarticoBidAdapter.js +1 -0
- package/modules/smartytechBidAdapter.js +0 -1
- package/modules/smilewantedBidAdapter.js +2 -2
- package/modules/sonobiBidAdapter.js +2 -1
- package/modules/sspBCBidAdapter.js +1 -1
- package/modules/stroeerCoreBidAdapter.js +1 -0
- package/modules/sublimeBidAdapter.js +1 -0
- package/modules/taboolaBidAdapter.js +3 -3
- package/modules/talkadsBidAdapter.js +1 -0
- package/modules/tappxBidAdapter.js +1 -1
- package/modules/teadsBidAdapter.js +1 -2
- package/modules/telariaBidAdapter.js +1 -1
- package/modules/theAdxBidAdapter.js +1 -1
- package/modules/topicsFpdModule.js +4 -1
- package/modules/tpmnBidAdapter.js +1 -0
- package/modules/truereachBidAdapter.js +1 -0
- package/modules/ttdBidAdapter.js +3 -3
- package/modules/underdogmediaBidAdapter.js +0 -1
- package/modules/unicornBidAdapter.js +1 -1
- package/modules/unrulyBidAdapter.js +1 -1
- package/modules/userId/eids.js +3 -3
- package/modules/userId/eids.md +1 -1
- package/modules/userId/index.js +2 -19
- package/modules/userId/userId.md +12 -10
- package/modules/utiqSystem.js +129 -0
- package/modules/{trustpidSystem.md → utiqSystem.md} +7 -7
- package/modules/vdoaiBidAdapter.js +1 -0
- package/modules/vibrantmediaBidAdapter.js +1 -1
- package/modules/vidazooBidAdapter.js +3 -2
- package/modules/videobyteBidAdapter.js +0 -1
- package/modules/videoheroesBidAdapter.js +2 -0
- package/modules/videojsVideoProvider.js +2 -0
- package/modules/videoreachBidAdapter.js +2 -1
- package/modules/vlybyBidAdapter.js +1 -0
- package/modules/voxBidAdapter.js +2 -0
- package/modules/vrtcalBidAdapter.js +6 -1
- package/modules/winrBidAdapter.js +4 -25
- package/modules/xeBidAdapter.js +2 -1
- package/modules/yieldliftBidAdapter.js +2 -2
- package/modules/yieldmoBidAdapter.js +1 -0
- package/modules/yieldoneBidAdapter.js +1 -1
- package/modules/zetaBidAdapter.js +4 -9
- package/modules/zeta_global_sspBidAdapter.js +1 -1
- package/package.json +1 -1
- package/src/activities/activities.js +5 -0
- package/src/activities/redactor.js +36 -8
- package/src/adapterManager.js +31 -20
- package/src/adapters/bidderFactory.js +41 -91
- package/src/auction.js +5 -21
- package/src/constants.json +1 -2
- package/src/utils.js +2 -34
- package/test/fixtures/fixtures.js +0 -7
- package/test/pages/banner.html +1 -0
- package/test/pages/bidderSettings.html +1 -0
- package/test/pages/consent_mgt_gdpr.html +1 -0
- package/test/pages/currency.html +1 -0
- package/test/pages/instream.html +1 -0
- package/test/pages/multiple_bidders.html +1 -1
- package/test/pages/native.html +1 -0
- package/test/pages/outstream.html +4 -1
- package/test/spec/activities/redactor_spec.js +10 -2
- package/test/spec/appnexusKeywords_spec.js +70 -0
- package/test/spec/auctionmanager_spec.js +11 -22
- package/test/spec/keywords_spec.js +102 -0
- package/test/spec/modules/1plusXRtdProvider_spec.js +17 -18
- package/test/spec/modules/33acrossBidAdapter_spec.js +49 -73
- package/test/spec/modules/adagioBidAdapter_spec.js +15 -24
- package/test/spec/modules/adbookpspBidAdapter_spec.js +5 -0
- package/test/spec/modules/adfBidAdapter_spec.js +4 -1
- package/test/spec/modules/adhashBidAdapter_spec.js +18 -2
- package/test/spec/modules/adkernelAdnBidAdapter_spec.js +1 -3
- package/test/spec/modules/adrelevantisBidAdapter_spec.js +0 -9
- package/test/spec/modules/adriverBidAdapter_spec.js +0 -9
- package/test/spec/modules/adtrueBidAdapter_spec.js +11 -7
- package/test/spec/modules/aduptechBidAdapter_spec.js +26 -8
- package/test/spec/modules/advangelistsBidAdapter_spec.js +0 -1
- package/test/spec/modules/adxcgBidAdapter_spec.js +4 -1
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +50 -10
- package/test/spec/modules/afpBidAdapter_spec.js +5 -1
- package/test/spec/modules/aidemBidAdapter_spec.js +10 -2
- package/test/spec/modules/airgridRtdProvider_spec.js +9 -59
- package/test/spec/modules/apacdexBidAdapter_spec.js +2 -2
- package/test/spec/modules/appnexusBidAdapter_spec.js +100 -27
- package/test/spec/modules/astraoneBidAdapter_spec.js +5 -1
- package/test/spec/modules/beachfrontBidAdapter_spec.js +0 -1
- package/test/spec/modules/big-richmediaBidAdapter_spec.js +0 -10
- package/test/spec/modules/bluebillywigBidAdapter_spec.js +12 -10
- package/test/spec/modules/browsiBidAdapter_spec.js +6 -3
- package/test/spec/modules/{emx_digitalBidAdapter_spec.js → cadentApertureMXBidAdapter_spec.js} +16 -16
- package/test/spec/modules/ccxBidAdapter_spec.js +1 -1
- package/test/spec/modules/cleanmedianetBidAdapter_spec.js +2 -2
- package/test/spec/modules/codefuelBidAdapter_spec.js +10 -1
- package/test/spec/modules/colossussspBidAdapter_spec.js +1 -1
- package/test/spec/modules/concertBidAdapter_spec.js +5 -1
- package/test/spec/modules/conversantBidAdapter_spec.js +7 -2
- package/test/spec/modules/criteoBidAdapter_spec.js +78 -8
- package/test/spec/modules/currency_spec.js +12 -12
- package/test/spec/modules/datawrkzBidAdapter_spec.js +0 -4
- package/test/spec/modules/dianomiBidAdapter_spec.js +1 -1
- package/test/spec/modules/etargetBidAdapter_spec.js +35 -8
- package/test/spec/modules/euidIdSystem_spec.js +0 -7
- package/test/spec/modules/feedadBidAdapter_spec.js +5 -1
- package/test/spec/modules/finativeBidAdapter_spec.js +0 -12
- package/test/spec/modules/fluctBidAdapter_spec.js +0 -2
- package/test/spec/modules/gamoshiBidAdapter_spec.js +5 -2
- package/test/spec/modules/gmosspBidAdapter_spec.js +5 -1
- package/test/spec/modules/gnetBidAdapter_spec.js +5 -1
- package/test/spec/modules/goldbachBidAdapter_spec.js +0 -10
- package/test/spec/modules/gridBidAdapter_spec.js +42 -302
- package/test/spec/modules/hybridBidAdapter_spec.js +5 -1
- package/test/spec/modules/hypelabBidAdapter_spec.js +281 -0
- package/test/spec/modules/{synacormediaBidAdapter_spec.js → imdsBidAdapter_spec.js} +19 -19
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +6 -1
- package/test/spec/modules/insticatorBidAdapter_spec.js +6 -2
- package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/ivsBidAdapter_spec.js +0 -2
- package/test/spec/modules/ixBidAdapter_spec.js +8 -3
- package/test/spec/modules/kargoBidAdapter_spec.js +3 -3
- package/test/spec/modules/koblerBidAdapter_spec.js +13 -2
- package/test/spec/modules/kulturemediaBidAdapter_spec.js +0 -1
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +21 -5
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/livewrappedBidAdapter_spec.js +5 -6
- package/test/spec/modules/loglyliftBidAdapter_spec.js +10 -0
- package/test/spec/modules/luponmediaBidAdapter_spec.js +23 -2
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +93 -1
- package/test/spec/modules/mediaforceBidAdapter_spec.js +11 -3
- package/test/spec/modules/mediafuseBidAdapter_spec.js +2 -6
- package/test/spec/modules/mediakeysBidAdapter_spec.js +6 -2
- package/test/spec/modules/medianetBidAdapter_spec.js +86 -17
- package/test/spec/modules/mediasniperBidAdapter_spec.js +1 -1
- package/test/spec/modules/mediasquareBidAdapter_spec.js +5 -5
- package/test/spec/modules/microadBidAdapter_spec.js +7 -3
- package/test/spec/modules/minutemediaplusBidAdapter_spec.js +7 -3
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +2 -2
- package/test/spec/modules/nexx360BidAdapter_spec.js +0 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +2 -1
- package/test/spec/modules/onetagBidAdapter_spec.js +5 -1
- package/test/spec/modules/openxBidAdapter_spec.js +1 -1
- package/test/spec/modules/operaadsBidAdapter_spec.js +5 -5
- package/test/spec/modules/optidigitalBidAdapter_spec.js +0 -2
- package/test/spec/modules/orbidderBidAdapter_spec.js +12 -4
- package/test/spec/modules/outbrainBidAdapter_spec.js +5 -0
- package/test/spec/modules/oxxionRtdProvider_spec.js +3 -2
- package/test/spec/modules/prebidServerBidAdapter_spec.js +114 -32
- package/test/spec/modules/priceFloors_spec.js +7 -25
- package/test/spec/modules/pubgeniusBidAdapter_spec.js +2 -1
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +7 -0
- package/test/spec/modules/pubmaticBidAdapter_spec.js +41 -32
- package/test/spec/modules/pubwiseBidAdapter_spec.js +10 -6
- package/test/spec/modules/relaidoBidAdapter_spec.js +6 -2
- package/test/spec/modules/revcontentBidAdapter_spec.js +0 -10
- package/test/spec/modules/richaudienceBidAdapter_spec.js +5 -1
- package/test/spec/modules/rubiconBidAdapter_spec.js +26 -7
- package/test/spec/modules/scatteredBidAdapter_spec.js +0 -2
- package/test/spec/modules/seedingAllianceAdapter_spec.js +0 -13
- package/test/spec/modules/seedtagBidAdapter_spec.js +5 -1
- package/test/spec/modules/sharethroughBidAdapter_spec.js +6 -2
- package/test/spec/modules/sizeMapping_spec.js +342 -0
- package/test/spec/modules/slimcutBidAdapter_spec.js +0 -1
- package/test/spec/modules/smaatoBidAdapter_spec.js +3 -2
- package/test/spec/modules/smartadserverBidAdapter_spec.js +15 -3
- package/test/spec/modules/smilewantedBidAdapter_spec.js +25 -6
- package/test/spec/modules/sspBCBidAdapter_spec.js +4 -4
- package/test/spec/modules/taboolaBidAdapter_spec.js +10 -12
- package/test/spec/modules/teadsBidAdapter_spec.js +7 -0
- package/test/spec/modules/terceptAnalyticsAdapter_spec.js +0 -1
- package/test/spec/modules/ttdBidAdapter_spec.js +13 -5
- package/test/spec/modules/uid2IdSystem_spec.js +0 -10
- package/test/spec/modules/underdogmediaBidAdapter_spec.js +0 -1
- package/test/spec/modules/utiqSystem_spec.js +188 -0
- package/test/spec/modules/vidazooBidAdapter_spec.js +6 -2
- package/test/spec/modules/videobyteBidAdapter_spec.js +0 -1
- package/test/spec/modules/vrtcalBidAdapter_spec.js +9 -2
- package/test/spec/modules/winrBidAdapter_spec.js +0 -9
- package/test/spec/modules/xeBidAdapter_spec.js +6 -2
- package/test/spec/unit/core/adapterManager_spec.js +69 -115
- package/test/spec/unit/core/bidderFactory_spec.js +80 -152
- package/test/spec/unit/core/targeting_spec.js +0 -6
- package/test/spec/utils_spec.js +21 -90
- package/dist/aolBidAdapter.js +0 -1
- package/dist/captifyRtdProvider.js +0 -1
- package/dist/emx_digitalBidAdapter.js +0 -1
- package/dist/glimpseBidAdapter.js +0 -1
- package/dist/googleAnalyticsAdapter.js +0 -1
- package/dist/inmarBidAdapter.js +0 -1
- package/dist/inskinBidAdapter.js +0 -1
- package/dist/liveyieldAnalyticsAdapter.js +0 -1
- package/dist/mass.js +0 -1
- package/dist/openxAnalyticsAdapter.js +0 -1
- package/dist/openxOrtbBidAdapter.js +0 -1
- package/dist/pubCommonId.js +0 -1
- package/dist/realvuAnalyticsAdapter.js +0 -1
- package/dist/rubiconAnalyticsAdapter.js +0 -1
- package/dist/synacormediaBidAdapter.js +0 -1
- package/dist/trustpidSystem.js +0 -1
- package/dist/viewability.js +0 -1
- package/dist/zeusPrimeRtdProvider.js +0 -21
- package/integrationExamples/gpt/captifyRtdProvider_example.html +0 -167
- package/integrationExamples/mass/index.html +0 -132
- package/modules/aolBidAdapter.js +0 -462
- package/modules/aolBidAdapter.md +0 -46
- package/modules/captifyRtdProvider.js +0 -146
- package/modules/captifyRtdProvider.md +0 -68
- package/modules/conversantAnalyticsAdapter.md +0 -46
- package/modules/conversantBidAdapter.md +0 -46
- package/modules/glimpseBidAdapter.js +0 -198
- package/modules/glimpseBidAdapter.md +0 -37
- package/modules/googleAnalyticsAdapter.js +0 -298
- package/modules/googleAnalyticsAdapter.md +0 -38
- package/modules/inmarBidAdapter.js +0 -132
- package/modules/inmarBidAdapter.md +0 -44
- package/modules/inskinBidAdapter.js +0 -391
- package/modules/inskinBidAdapter.md +0 -31
- package/modules/liveyieldAnalyticsAdapter.js +0 -454
- package/modules/liveyieldAnalyticsAdapter.md +0 -45
- package/modules/mass.js +0 -184
- package/modules/mass.md +0 -137
- package/modules/openxAnalyticsAdapter.js +0 -27
- package/modules/openxAnalyticsAdapter.md +0 -135
- package/modules/openxOrtbBidAdapter.js +0 -238
- package/modules/openxOrtbBidAdapter.md +0 -108
- package/modules/pubCommonId.js +0 -303
- package/modules/pubCommonId.md +0 -37
- package/modules/realvuAnalyticsAdapter.js +0 -976
- package/modules/realvuAnalyticsAdapter.md +0 -9
- package/modules/rubiconAnalyticsAdapter.js +0 -938
- package/modules/trustpidSystem.js +0 -143
- package/modules/viewability.js +0 -9
- package/modules/zeusPrimeRtdProvider.js +0 -37
- package/modules/zeusPrimeRtdProvider.md +0 -63
- package/test/spec/modules/aolBidAdapter_spec.js +0 -890
- package/test/spec/modules/captifyRtdProvider_spec.js +0 -253
- package/test/spec/modules/glimpseBidAdapter_spec.js +0 -422
- package/test/spec/modules/googleAnalyticsAdapter_spec.js +0 -27
- package/test/spec/modules/inmarBidAdapter_spec.js +0 -242
- package/test/spec/modules/inskinBidAdapter_spec.js +0 -386
- package/test/spec/modules/liveyieldAnalyticsAdapter_spec.js +0 -704
- package/test/spec/modules/mass_spec.js +0 -141
- package/test/spec/modules/openxAnalyticsAdapter_spec.js +0 -21
- package/test/spec/modules/openxOrtbBidAdapter_spec.js +0 -1615
- package/test/spec/modules/pubCommonId_spec.js +0 -353
- package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +0 -2540
- package/test/spec/modules/rubiconAnalyticsSchema.json +0 -494
- package/test/spec/modules/trustpidSystem_spec.js +0 -237
- package/test/spec/sizeMapping_spec.js +0 -341
|
@@ -1,454 +0,0 @@
|
|
|
1
|
-
import { logError } from '../src/utils.js';
|
|
2
|
-
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
|
-
import adapterManager from '../src/adapterManager.js';
|
|
4
|
-
import CONSTANTS from '../src/constants.json';
|
|
5
|
-
|
|
6
|
-
const {
|
|
7
|
-
EVENTS: { BID_REQUESTED, BID_TIMEOUT, BID_RESPONSE, BID_WON }
|
|
8
|
-
} = CONSTANTS;
|
|
9
|
-
|
|
10
|
-
const prebidVersion = '$prebid.version$';
|
|
11
|
-
|
|
12
|
-
const adapterConfig = {
|
|
13
|
-
/** Name of the `rta` function, override only when instructed. */
|
|
14
|
-
rtaFunctionName: 'rta',
|
|
15
|
-
|
|
16
|
-
/** This is optional but highly recommended. The value returned by the
|
|
17
|
-
* function will be used as ad impression ad unit attribute value.
|
|
18
|
-
*
|
|
19
|
-
* As such if you have placement (10293845) or ad unit codes
|
|
20
|
-
* (div-gpt-ad-124984-0) but you want these to be translated to meaningful
|
|
21
|
-
* values like 'SIDEBAR-AD-01-MOBILE' then this function shall express this
|
|
22
|
-
* mapping.
|
|
23
|
-
*/
|
|
24
|
-
getAdUnitName: function(placementOrAdUnitCode) {
|
|
25
|
-
return placementOrAdUnitCode;
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Function used to extract placement/adUnitCode (depending on prebid
|
|
30
|
-
* version).
|
|
31
|
-
*
|
|
32
|
-
* The extracted value will be passed to the `getAdUnitName()` for mapping into
|
|
33
|
-
* human friendly value.
|
|
34
|
-
*/
|
|
35
|
-
getPlacementOrAdUnitCode: function(bid, version) {
|
|
36
|
-
return version[0] === '0' ? bid.placementCode : bid.adUnitCode;
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Optional reference to Google Publisher Tag (gpt)
|
|
41
|
-
*/
|
|
42
|
-
googlePublisherTag: false,
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Do not override unless instructed. Useful for testing. Allows to redefined
|
|
46
|
-
* the event that triggers the ad impression event.
|
|
47
|
-
*/
|
|
48
|
-
wireGooglePublisherTag: function(gpt, cb) {
|
|
49
|
-
gpt.pubads().addEventListener('slotRenderEnded', function(event) {
|
|
50
|
-
cb(event.slot);
|
|
51
|
-
});
|
|
52
|
-
},
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Map which keeps BID_WON events. Keyed by adId property.
|
|
56
|
-
*/
|
|
57
|
-
prebidWinnersCache: {},
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Map which keeps all BID_RESPONSE events. Keyed by adId property.
|
|
61
|
-
*/
|
|
62
|
-
prebidBidResponsesCache: {},
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Decides if the GPT slot contains prebid ad impression or not.
|
|
66
|
-
*
|
|
67
|
-
* When BID_WON event is emitted adid is added to prebidWinnersCache,
|
|
68
|
-
* then we check if prebidWinnersCache contains slot.hb_adid.
|
|
69
|
-
*
|
|
70
|
-
* This function is optional and used only when googlePublisherTag is provided.
|
|
71
|
-
*
|
|
72
|
-
* Default implementation uses slot's `hb_adid` targeting parameter.
|
|
73
|
-
*
|
|
74
|
-
* @param slot the gpt slot
|
|
75
|
-
*/
|
|
76
|
-
isPrebidAdImpression: function(slot) {
|
|
77
|
-
const hbAdIdTargeting = slot.getTargeting('hb_adid');
|
|
78
|
-
if (hbAdIdTargeting.length > 0) {
|
|
79
|
-
const hbAdId = hbAdIdTargeting[0];
|
|
80
|
-
return typeof this.prebidWinnersCache[hbAdId] !== 'undefined';
|
|
81
|
-
}
|
|
82
|
-
return false;
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* If isPrebidAdImpression decides that slot contain prebid ad impression,
|
|
87
|
-
* this function should return prebids highest ad impression partner for that
|
|
88
|
-
* slot.
|
|
89
|
-
*
|
|
90
|
-
* Default implementation uses slot's `hb_adid` targeting value to find
|
|
91
|
-
* highest bid response and when present then returns `bidder`.
|
|
92
|
-
*
|
|
93
|
-
* @param instanceConfig merged analytics adapter instance configuration
|
|
94
|
-
* @param slot the gpt slot for which the name of the highest bidder shall be
|
|
95
|
-
* returned
|
|
96
|
-
* @param version the version of the prebid.js library
|
|
97
|
-
*/
|
|
98
|
-
getHighestPrebidAdImpressionPartner: function(instanceConfig, slot, version) {
|
|
99
|
-
const bid = getHighestPrebidBidResponseBySlotTargeting(
|
|
100
|
-
instanceConfig,
|
|
101
|
-
slot,
|
|
102
|
-
version
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
// this is bid response event has `bidder` while bid won has bidderCode property
|
|
106
|
-
return bid ? bid.bidderCode || bid.bidder : null;
|
|
107
|
-
},
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* If isPrebidAdImpression decides that slot contain prebid ad impression,
|
|
111
|
-
* this function should return prebids highest ad impression value for that
|
|
112
|
-
* slot.
|
|
113
|
-
*
|
|
114
|
-
* Default implementation uses slot's `hb_adid` targeting value to find
|
|
115
|
-
* highest bid response and when present then returns `cpm`.
|
|
116
|
-
*
|
|
117
|
-
* @param instanceConfig merged analytics adapter instance configuration
|
|
118
|
-
* @param slot the gpt slot for which the highest ad impression value shall be
|
|
119
|
-
* returned
|
|
120
|
-
* @param version the version of the prebid.js library
|
|
121
|
-
*/
|
|
122
|
-
getHighestPrebidAdImpressionValue: function(instanceConfig, slot, version) {
|
|
123
|
-
const bid = getHighestPrebidBidResponseBySlotTargeting(
|
|
124
|
-
instanceConfig,
|
|
125
|
-
slot,
|
|
126
|
-
version
|
|
127
|
-
);
|
|
128
|
-
|
|
129
|
-
return bid ? bid.cpm : null;
|
|
130
|
-
},
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* This function should return proper ad unit name for slot given as a
|
|
134
|
-
* parameter. Unit names returned by this function should be meaningful, for
|
|
135
|
-
* example 'FOO_728x90_TOP'. The values returned shall be inline with
|
|
136
|
-
* `getAdUnitName`.
|
|
137
|
-
*
|
|
138
|
-
* Required when googlePublisherTag is defined.
|
|
139
|
-
*
|
|
140
|
-
* @param slot the gpt slot to translate into friendly name
|
|
141
|
-
* @param version the version of the prebid.js library
|
|
142
|
-
*/
|
|
143
|
-
getAdUnitNameByGooglePublisherTagSlot: (slot, version) => {
|
|
144
|
-
throw 'Required when googlePublisherTag is defined.';
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Function used to prepare and return parameters provided to rta.
|
|
149
|
-
* More information will be in docs given by LiveYield team.
|
|
150
|
-
*
|
|
151
|
-
* When googlePublisherTag is not provided, second parameter(slot) will always
|
|
152
|
-
* equal null.
|
|
153
|
-
*
|
|
154
|
-
* @param resolution the original ad impression details
|
|
155
|
-
* @param slot gpt slot, will be empty in pure Prebid.js-case (when
|
|
156
|
-
* googlePublisherTag is not provided)
|
|
157
|
-
* @param hbPartner the name of the highest bidding partner
|
|
158
|
-
* @param hbValue the value of the highest bid
|
|
159
|
-
* @param version version of the prebid.js library
|
|
160
|
-
*/
|
|
161
|
-
postProcessResolution: (resolution, slot, hbPartner, hbValue, version) => {
|
|
162
|
-
return resolution;
|
|
163
|
-
}
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
const cpmToMicroUSD = v => (isNaN(v) ? 0 : Math.round(v * 1000));
|
|
167
|
-
|
|
168
|
-
const getHighestPrebidBidResponseBySlotTargeting = function(
|
|
169
|
-
instanceConfig,
|
|
170
|
-
slot,
|
|
171
|
-
version
|
|
172
|
-
) {
|
|
173
|
-
const hbAdIdTargeting = slot.getTargeting('hb_adid');
|
|
174
|
-
if (hbAdIdTargeting.length > 0) {
|
|
175
|
-
const hbAdId = hbAdIdTargeting[0];
|
|
176
|
-
return (
|
|
177
|
-
instanceConfig.prebidWinnersCache[hbAdId] ||
|
|
178
|
-
instanceConfig.prebidBidResponsesCache[hbAdId]
|
|
179
|
-
);
|
|
180
|
-
}
|
|
181
|
-
return null;
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
const liveyield = Object.assign(adapter({ analyticsType: 'bundle' }), {
|
|
185
|
-
track({ eventType, args }) {
|
|
186
|
-
switch (eventType) {
|
|
187
|
-
case BID_REQUESTED:
|
|
188
|
-
args.bids.forEach(function(b) {
|
|
189
|
-
try {
|
|
190
|
-
window[liveyield.instanceConfig.rtaFunctionName](
|
|
191
|
-
'bidRequested',
|
|
192
|
-
liveyield.instanceConfig.getAdUnitName(
|
|
193
|
-
liveyield.instanceConfig.getPlacementOrAdUnitCode(
|
|
194
|
-
b,
|
|
195
|
-
prebidVersion
|
|
196
|
-
)
|
|
197
|
-
),
|
|
198
|
-
args.bidderCode
|
|
199
|
-
);
|
|
200
|
-
} catch (e) {
|
|
201
|
-
logError(e);
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
break;
|
|
205
|
-
case BID_RESPONSE:
|
|
206
|
-
liveyield.instanceConfig.prebidBidResponsesCache[args.adId] = args;
|
|
207
|
-
var cpm = args.statusMessage === 'Bid available' ? args.cpm : null;
|
|
208
|
-
try {
|
|
209
|
-
window[liveyield.instanceConfig.rtaFunctionName](
|
|
210
|
-
'addBid',
|
|
211
|
-
liveyield.instanceConfig.getAdUnitName(
|
|
212
|
-
liveyield.instanceConfig.getPlacementOrAdUnitCode(
|
|
213
|
-
args,
|
|
214
|
-
prebidVersion
|
|
215
|
-
)
|
|
216
|
-
),
|
|
217
|
-
args.bidder || 'unknown',
|
|
218
|
-
cpmToMicroUSD(cpm),
|
|
219
|
-
typeof args.bidder === 'undefined',
|
|
220
|
-
args.statusMessage !== 'Bid available'
|
|
221
|
-
);
|
|
222
|
-
} catch (e) {
|
|
223
|
-
logError(e);
|
|
224
|
-
}
|
|
225
|
-
break;
|
|
226
|
-
case BID_TIMEOUT:
|
|
227
|
-
window[liveyield.instanceConfig.rtaFunctionName](
|
|
228
|
-
'biddersTimeout',
|
|
229
|
-
args
|
|
230
|
-
);
|
|
231
|
-
break;
|
|
232
|
-
case BID_WON:
|
|
233
|
-
liveyield.instanceConfig.prebidWinnersCache[args.adId] = args;
|
|
234
|
-
if (liveyield.instanceConfig.googlePublisherTag) {
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
try {
|
|
239
|
-
const ad = liveyield.instanceConfig.getAdUnitName(
|
|
240
|
-
liveyield.instanceConfig.getPlacementOrAdUnitCode(
|
|
241
|
-
args,
|
|
242
|
-
prebidVersion
|
|
243
|
-
)
|
|
244
|
-
);
|
|
245
|
-
if (!ad) {
|
|
246
|
-
logError(
|
|
247
|
-
'Cannot find ad by unit name: ' +
|
|
248
|
-
liveyield.instanceConfig.getAdUnitName(
|
|
249
|
-
liveyield.instanceConfig.getPlacementOrAdUnitCode(
|
|
250
|
-
args,
|
|
251
|
-
prebidVersion
|
|
252
|
-
)
|
|
253
|
-
)
|
|
254
|
-
);
|
|
255
|
-
break;
|
|
256
|
-
}
|
|
257
|
-
if (!args.bidderCode || !args.cpm) {
|
|
258
|
-
logError('Bidder code or cpm is not valid');
|
|
259
|
-
break;
|
|
260
|
-
}
|
|
261
|
-
const resolution = { targetings: [] };
|
|
262
|
-
resolution.prebidWon = true;
|
|
263
|
-
resolution.prebidPartner = args.bidderCode;
|
|
264
|
-
resolution.prebidValue = cpmToMicroUSD(parseFloat(args.cpm));
|
|
265
|
-
const resolutionToUse = liveyield.instanceConfig.postProcessResolution(
|
|
266
|
-
resolution,
|
|
267
|
-
null,
|
|
268
|
-
resolution.prebidPartner,
|
|
269
|
-
resolution.prebidValue,
|
|
270
|
-
prebidVersion
|
|
271
|
-
);
|
|
272
|
-
window[liveyield.instanceConfig.rtaFunctionName](
|
|
273
|
-
'resolveSlot',
|
|
274
|
-
liveyield.instanceConfig.getAdUnitName(
|
|
275
|
-
liveyield.instanceConfig.getPlacementOrAdUnitCode(
|
|
276
|
-
args,
|
|
277
|
-
prebidVersion
|
|
278
|
-
)
|
|
279
|
-
),
|
|
280
|
-
resolutionToUse
|
|
281
|
-
);
|
|
282
|
-
} catch (e) {
|
|
283
|
-
logError(e);
|
|
284
|
-
}
|
|
285
|
-
break;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
|
|
290
|
-
liveyield.originEnableAnalytics = liveyield.enableAnalytics;
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Minimal valid config:
|
|
294
|
-
*
|
|
295
|
-
* ```
|
|
296
|
-
* {
|
|
297
|
-
* provider: 'liveyield',
|
|
298
|
-
* options: {
|
|
299
|
-
* // will be provided by the LiveYield team
|
|
300
|
-
* customerId: 'UUID',
|
|
301
|
-
* // will be provided by the LiveYield team,
|
|
302
|
-
* customerName: 'Customer Name',
|
|
303
|
-
* // do NOT use window.location.host, use constant value
|
|
304
|
-
* customerSite: 'Fixed Site Name',
|
|
305
|
-
* // this is used to be inline with GA 'sessionizer' which closes the session on midnight (EST-time).
|
|
306
|
-
* sessionTimezoneOffset: '-300'
|
|
307
|
-
* }
|
|
308
|
-
* }
|
|
309
|
-
* ```
|
|
310
|
-
*/
|
|
311
|
-
liveyield.enableAnalytics = function(config) {
|
|
312
|
-
if (!config || !config.provider || config.provider !== 'liveyield') {
|
|
313
|
-
logError('expected config.provider to equal liveyield');
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
if (!config.options) {
|
|
317
|
-
logError('options must be defined');
|
|
318
|
-
return;
|
|
319
|
-
}
|
|
320
|
-
if (!config.options.customerId) {
|
|
321
|
-
logError('options.customerId is required');
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
if (!config.options.customerName) {
|
|
325
|
-
logError('options.customerName is required');
|
|
326
|
-
return;
|
|
327
|
-
}
|
|
328
|
-
if (!config.options.customerSite) {
|
|
329
|
-
logError('options.customerSite is required');
|
|
330
|
-
return;
|
|
331
|
-
}
|
|
332
|
-
if (!config.options.sessionTimezoneOffset) {
|
|
333
|
-
logError('options.sessionTimezoneOffset is required');
|
|
334
|
-
return;
|
|
335
|
-
}
|
|
336
|
-
liveyield.instanceConfig = Object.assign(
|
|
337
|
-
{ prebidWinnersCache: {}, prebidBidResponsesCache: {} },
|
|
338
|
-
adapterConfig,
|
|
339
|
-
config.options
|
|
340
|
-
);
|
|
341
|
-
|
|
342
|
-
if (typeof window[liveyield.instanceConfig.rtaFunctionName] !== 'function') {
|
|
343
|
-
logError(
|
|
344
|
-
`Function ${liveyield.instanceConfig.rtaFunctionName} is not defined.` +
|
|
345
|
-
`Make sure that LiveYield snippet in included before the Prebid Analytics configuration.`
|
|
346
|
-
);
|
|
347
|
-
return;
|
|
348
|
-
}
|
|
349
|
-
if (liveyield.instanceConfig.googlePublisherTag) {
|
|
350
|
-
liveyield.instanceConfig.wireGooglePublisherTag(
|
|
351
|
-
liveyield.instanceConfig.googlePublisherTag,
|
|
352
|
-
onSlotRenderEnded(liveyield.instanceConfig)
|
|
353
|
-
);
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
const additionalParams = {
|
|
357
|
-
customerTimezone: config.options.customerTimezone,
|
|
358
|
-
contentId: config.options.contentId,
|
|
359
|
-
contentPart: config.options.contentPart,
|
|
360
|
-
contentAuthor: config.options.contentAuthor,
|
|
361
|
-
contentTitle: config.options.contentTitle,
|
|
362
|
-
contentCategory: config.options.contentCategory,
|
|
363
|
-
contentLayout: config.options.contentLayout,
|
|
364
|
-
contentVariants: config.options.contentVariants,
|
|
365
|
-
contentTimezone: config.options.contentTimezone,
|
|
366
|
-
cstringDim1: config.options.cstringDim1,
|
|
367
|
-
cstringDim2: config.options.cstringDim2,
|
|
368
|
-
cintDim1: config.options.cintDim1,
|
|
369
|
-
cintDim2: config.options.cintDim2,
|
|
370
|
-
cintArrayDim1: config.options.cintArrayDim1,
|
|
371
|
-
cintArrayDim2: config.options.cintArrayDim2,
|
|
372
|
-
cuniqueStringMet1: config.options.cuniqueStringMet1,
|
|
373
|
-
cuniqueStringMet2: config.options.cuniqueStringMet2,
|
|
374
|
-
cavgIntMet1: config.options.cavgIntMet1,
|
|
375
|
-
cavgIntMet2: config.options.cavgIntMet2,
|
|
376
|
-
csumIntMet1: config.options.csumIntMet1,
|
|
377
|
-
csumIntMet2: config.options.csumIntMet2
|
|
378
|
-
};
|
|
379
|
-
|
|
380
|
-
Object.keys(additionalParams).forEach(
|
|
381
|
-
key => additionalParams[key] == null && delete additionalParams[key]
|
|
382
|
-
);
|
|
383
|
-
|
|
384
|
-
window[liveyield.instanceConfig.rtaFunctionName](
|
|
385
|
-
'create',
|
|
386
|
-
config.options.customerId,
|
|
387
|
-
config.options.customerName,
|
|
388
|
-
config.options.customerSite,
|
|
389
|
-
config.options.sessionTimezoneOffset,
|
|
390
|
-
additionalParams
|
|
391
|
-
);
|
|
392
|
-
liveyield.originEnableAnalytics(config);
|
|
393
|
-
};
|
|
394
|
-
|
|
395
|
-
const onSlotRenderEnded = function(instanceConfig) {
|
|
396
|
-
const addDfpDetails = (resolution, slot) => {
|
|
397
|
-
const responseInformation = slot.getResponseInformation();
|
|
398
|
-
if (responseInformation) {
|
|
399
|
-
resolution.dfpAdvertiserId = responseInformation.advertiserId;
|
|
400
|
-
resolution.dfpLineItemId = responseInformation.sourceAgnosticLineItemId;
|
|
401
|
-
resolution.dfpCreativeId = responseInformation.creativeId;
|
|
402
|
-
}
|
|
403
|
-
};
|
|
404
|
-
|
|
405
|
-
const addPrebidDetails = (resolution, slot) => {
|
|
406
|
-
if (instanceConfig.isPrebidAdImpression(slot)) {
|
|
407
|
-
resolution.prebidWon = true;
|
|
408
|
-
}
|
|
409
|
-
const highestPrebidAdImpPartner = instanceConfig.getHighestPrebidAdImpressionPartner(
|
|
410
|
-
instanceConfig,
|
|
411
|
-
slot,
|
|
412
|
-
prebidVersion
|
|
413
|
-
);
|
|
414
|
-
const highestPrebidAdImpValue = instanceConfig.getHighestPrebidAdImpressionValue(
|
|
415
|
-
instanceConfig,
|
|
416
|
-
slot,
|
|
417
|
-
prebidVersion
|
|
418
|
-
);
|
|
419
|
-
if (highestPrebidAdImpPartner) {
|
|
420
|
-
resolution.prebidPartner = highestPrebidAdImpPartner;
|
|
421
|
-
}
|
|
422
|
-
if (highestPrebidAdImpValue) {
|
|
423
|
-
resolution.prebidValue = cpmToMicroUSD(
|
|
424
|
-
parseFloat(highestPrebidAdImpValue)
|
|
425
|
-
);
|
|
426
|
-
}
|
|
427
|
-
};
|
|
428
|
-
return slot => {
|
|
429
|
-
const resolution = { targetings: [] };
|
|
430
|
-
|
|
431
|
-
addDfpDetails(resolution, slot);
|
|
432
|
-
addPrebidDetails(resolution, slot);
|
|
433
|
-
|
|
434
|
-
const resolutionToUse = instanceConfig.postProcessResolution(
|
|
435
|
-
resolution,
|
|
436
|
-
slot,
|
|
437
|
-
resolution.highestPrebidAdImpPartner,
|
|
438
|
-
resolution.highestPrebidAdImpValue,
|
|
439
|
-
prebidVersion
|
|
440
|
-
);
|
|
441
|
-
window[instanceConfig.rtaFunctionName](
|
|
442
|
-
'resolveSlot',
|
|
443
|
-
instanceConfig.getAdUnitNameByGooglePublisherTagSlot(slot, prebidVersion),
|
|
444
|
-
resolutionToUse
|
|
445
|
-
);
|
|
446
|
-
};
|
|
447
|
-
};
|
|
448
|
-
|
|
449
|
-
adapterManager.registerAnalyticsAdapter({
|
|
450
|
-
adapter: liveyield,
|
|
451
|
-
code: 'liveyield'
|
|
452
|
-
});
|
|
453
|
-
|
|
454
|
-
export default liveyield;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# Overview
|
|
2
|
-
|
|
3
|
-
Module Name: LiveYield Analytics Adapter
|
|
4
|
-
|
|
5
|
-
Module Type: Analytics Adapter
|
|
6
|
-
|
|
7
|
-
Maintainer: liveyield@pubocean.com
|
|
8
|
-
|
|
9
|
-
# Description
|
|
10
|
-
|
|
11
|
-
To install the LiveYield Tracker following snippet shall be added at the top of
|
|
12
|
-
the page.
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
(function(i,s,o,g,r,a,m,z){i['RTAAnalyticsObject']=r;i[r]=i[r]||function(){
|
|
16
|
-
z=Array.prototype.slice.call(arguments);z.unshift(+new Date());
|
|
17
|
-
(i[r].q=i[r].q||[]).push(z)},i[r].t=1,i[r].l=1*new Date();a=s.createElement(o),
|
|
18
|
-
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
|
19
|
-
})(window,document,'script','https://rta.pubocean.com/lib/pubocean-tracker.min.js','rta');
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
# Test Parameters
|
|
23
|
-
|
|
24
|
-
The LiveYield team will provide you configurations for each of your sites, it
|
|
25
|
-
will be similar to:
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
{
|
|
29
|
-
provider: 'liveyield',
|
|
30
|
-
options: {
|
|
31
|
-
// will be provided by the LiveYield team
|
|
32
|
-
customerId: 'UUID',
|
|
33
|
-
// will be provided by the LiveYield team,
|
|
34
|
-
customerName: 'Customer Name',
|
|
35
|
-
// do NOT use window.location.host, use constant value
|
|
36
|
-
customerSite: 'Fixed Site Name',
|
|
37
|
-
// this is used to be inline with GA 'sessionizer' which closes the session on midnight (EST-time).
|
|
38
|
-
sessionTimezoneOffset: '-300'
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Additional documentation and support will be provided by the LiveYield team as
|
|
44
|
-
part of the onboarding process.
|
|
45
|
-
|
package/modules/mass.js
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This module adds MASS support to Prebid.js.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import {config} from '../src/config.js';
|
|
6
|
-
import {getHook} from '../src/hook.js';
|
|
7
|
-
import {auctionManager} from '../src/auctionManager.js';
|
|
8
|
-
import {timedBidResponseHook} from '../src/utils/perfMetrics.js';
|
|
9
|
-
|
|
10
|
-
const defaultCfg = {
|
|
11
|
-
dealIdPattern: /^MASS/i
|
|
12
|
-
};
|
|
13
|
-
let cfg;
|
|
14
|
-
|
|
15
|
-
export let listenerAdded = false;
|
|
16
|
-
export let isEnabled = false;
|
|
17
|
-
|
|
18
|
-
const matchedBids = {};
|
|
19
|
-
let renderers;
|
|
20
|
-
|
|
21
|
-
config.getConfig('mass', config => init(config.mass));
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Module init.
|
|
25
|
-
*/
|
|
26
|
-
export function init(userCfg) {
|
|
27
|
-
cfg = Object.assign({}, defaultCfg, window.massConfig && window.massConfig.mass, userCfg);
|
|
28
|
-
|
|
29
|
-
if (cfg.enabled === false) {
|
|
30
|
-
if (isEnabled) {
|
|
31
|
-
getHook('addBidResponse').getHooks({hook: addBidResponseHook}).remove();
|
|
32
|
-
isEnabled = false;
|
|
33
|
-
}
|
|
34
|
-
} else {
|
|
35
|
-
if (!isEnabled) {
|
|
36
|
-
getHook('addBidResponse').before(addBidResponseHook);
|
|
37
|
-
isEnabled = true;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
if (isEnabled) {
|
|
42
|
-
updateRenderers();
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Update the list of renderers based on current config.
|
|
48
|
-
*/
|
|
49
|
-
export function updateRenderers() {
|
|
50
|
-
renderers = [];
|
|
51
|
-
|
|
52
|
-
// official MASS renderer:
|
|
53
|
-
if (cfg.dealIdPattern && cfg.renderUrl) {
|
|
54
|
-
renderers.push({
|
|
55
|
-
match: isMassBid,
|
|
56
|
-
render: useDefaultRender(cfg.renderUrl, 'mass')
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// add any custom renderer defined in the config:
|
|
61
|
-
(cfg.custom || []).forEach(renderer => {
|
|
62
|
-
if (!renderer.match && renderer.dealIdPattern) {
|
|
63
|
-
renderer.match = useDefaultMatch(renderer.dealIdPattern);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (!renderer.render && renderer.renderUrl && renderer.namespace) {
|
|
67
|
-
renderer.render = useDefaultRender(renderer.renderUrl, renderer.namespace);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (renderer.match && renderer.render) {
|
|
71
|
-
renderers.push(renderer);
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
return renderers;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Before hook for 'addBidResponse'.
|
|
80
|
-
*/
|
|
81
|
-
export const addBidResponseHook = timedBidResponseHook('mass', function addBidResponseHook(next, adUnitCode, bid, reject, {index = auctionManager.index} = {}) {
|
|
82
|
-
let renderer;
|
|
83
|
-
for (let i = 0; i < renderers.length; i++) {
|
|
84
|
-
if (renderers[i].match(bid)) {
|
|
85
|
-
renderer = renderers[i];
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
if (renderer) {
|
|
91
|
-
const bidRequest = index.getBidRequest(bid);
|
|
92
|
-
|
|
93
|
-
matchedBids[bid.requestId] = {
|
|
94
|
-
renderer,
|
|
95
|
-
payload: {
|
|
96
|
-
bidRequest,
|
|
97
|
-
bid,
|
|
98
|
-
adm: bid.ad
|
|
99
|
-
}
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
bid.ad = '<script>window.parent.postMessage({massBidId: "' + bid.requestId + '"}, "*");\x3c/script>';
|
|
103
|
-
|
|
104
|
-
addListenerOnce();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
next(adUnitCode, bid, reject);
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Add listener for the "message" event sent by the winning bid
|
|
112
|
-
*/
|
|
113
|
-
export function addListenerOnce() {
|
|
114
|
-
if (!listenerAdded) {
|
|
115
|
-
window.addEventListener('message', e => {
|
|
116
|
-
if (!e || !e.data || !e.data.massBidId) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const matchedBid = matchedBids[e.data.massBidId];
|
|
121
|
-
if (matchedBid) {
|
|
122
|
-
const payload = {
|
|
123
|
-
type: 'prebid',
|
|
124
|
-
event: e,
|
|
125
|
-
...matchedBid.payload
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
delete payload.bid.ad;
|
|
129
|
-
|
|
130
|
-
matchedBid.renderer.render(payload);
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
listenerAdded = true;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Check if a bid is MASS.
|
|
140
|
-
*/
|
|
141
|
-
export function isMassBid(bid) {
|
|
142
|
-
// either bid.meta.mass is set or deal ID matches a publisher specified pattern:
|
|
143
|
-
if (!((bid.meta && bid.meta.mass) || (cfg.dealIdPattern && cfg.dealIdPattern.test(bid.dealId)))) {
|
|
144
|
-
return false;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
// there must be a 'mass://' or 'pcreative?' in the ad markup:
|
|
148
|
-
return /mass:\/\/|\/pcreative\?/i.test(bid.ad);
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Default match (factory).
|
|
153
|
-
*/
|
|
154
|
-
export function useDefaultMatch(dealIdPattern) {
|
|
155
|
-
return function(bid) {
|
|
156
|
-
return dealIdPattern.test(bid.dealId);
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Default render (factory).
|
|
162
|
-
*/
|
|
163
|
-
export function useDefaultRender(renderUrl, namespace) {
|
|
164
|
-
return function render(payload) {
|
|
165
|
-
const ns = window[namespace] = window[namespace] || {};
|
|
166
|
-
ns.queue = ns.queue || [];
|
|
167
|
-
|
|
168
|
-
ns.queue.push(payload);
|
|
169
|
-
|
|
170
|
-
if (!ns.loaded) {
|
|
171
|
-
const s = document.createElement('script');
|
|
172
|
-
s.type = 'text/javascript';
|
|
173
|
-
s.async = true;
|
|
174
|
-
s.src = renderUrl;
|
|
175
|
-
|
|
176
|
-
const x = document.getElementsByTagName('script')[0];
|
|
177
|
-
x.parentNode.insertBefore(s, x);
|
|
178
|
-
|
|
179
|
-
ns.loaded = true;
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
init();
|