prebid.js 7.43.0 → 7.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/acuityAdsBidAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
- package/dist/admixerIdSystem.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adrinoBidAdapter.js +1 -1
- package/dist/adriverIdSystem.js +1 -1
- package/dist/adsinteractiveBidAdapter.js +1 -0
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/airgridRtdProvider.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/akamaiDapRtdProvider.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/appushBidAdapter.js +1 -1
- package/dist/apstreamBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/atsAnalyticsAdapter.js +1 -1
- package/dist/audiencerunBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bedigitechBidAdapter.js +1 -0
- package/dist/beyondmediaBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/blueconicRtdProvider.js +1 -1
- package/dist/braveBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/brightcomBidAdapter.js +1 -1
- package/dist/brightcomSSPBidAdapter.js +1 -1
- package/dist/browsiRtdProvider.js +1 -1
- package/dist/byDataAnalyticsAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/coinzillaBidAdapter.js +1 -1
- package/dist/compassBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contentexchangeBidAdapter.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/cwireBidAdapter.js +1 -1
- package/dist/czechAdIdSystem.js +1 -1
- package/dist/dacIdSystem.js +1 -1
- package/dist/deepintentDpesIdSystem.js +1 -1
- package/dist/dependencies.json +15 -0
- package/dist/discoveryBidAdapter.js +1 -1
- package/dist/domainOverrideToRootDomain.js +1 -0
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/fledgeForGpt.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/ftrackIdSystem.js +1 -1
- package/dist/gdprEnforcement.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/globalsunBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/gnetBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gravitoIdSystem.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -0
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronAnalyticsAdapter.js +1 -1
- package/dist/hadronIdSystem.js +1 -1
- package/dist/hadronRtdProvider.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/idWardRtdProvider.js +1 -1
- package/dist/identityLinkIdSystem.js +1 -1
- package/dist/idxIdSystem.js +1 -1
- package/dist/imRtdProvider.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/imuIdSystem.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqIdSystem.js +1 -1
- package/dist/invibesBidAdapter.js +1 -1
- package/dist/iqzoneBidAdapter.js +1 -1
- package/dist/ivsBidAdapter.js +1 -0
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerVideoProvider.js +1 -1
- package/dist/kargoBidAdapter.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/liveIntentIdSystem.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.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/marsmediaBidAdapter.js +1 -1
- package/dist/mathildeadsBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/merkleIdSystem.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/mgidRtdProvider.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/mwOpenLinkIdSystem.js +1 -1
- package/dist/naveggIdSystem.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +232 -227
- package/dist/novatiqIdSystem.js +1 -1
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/onomagicBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/openxOrtbBidAdapter.js +1 -1
- package/dist/operaadsBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/ortbConverter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
- package/dist/pubCommonId.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxBidAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/quantcastIdSystem.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/realvuAnalyticsAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/roxotAnalyticsAdapter.js +1 -1
- package/dist/rtbhouseBidAdapter.js +1 -1
- package/dist/rtdModule.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/sharedIdSystem.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/sigmoidAnalyticsAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smarthubBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/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/stroeerCoreBidAdapter.js +1 -1
- package/dist/stvBidAdapter.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/teadsIdSystem.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/truereachBidAdapter.js +1 -1
- package/dist/trustpidSystem.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/userId.js +1 -1
- package/dist/validationFpdModule.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/videoheroesBidAdapter.js +1 -1
- package/dist/vidoomyBidAdapter.js +1 -1
- package/dist/visiblemeasuresBidAdapter.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/yahoosspBidAdapter.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/zeotapIdPlusIdSystem.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/libraries/domainOverrideToRootDomain/index.js +39 -0
- package/libraries/ortbConverter/converter.js +3 -2
- package/modules/33acrossIdSystem.js +5 -2
- package/modules/acuityAdsBidAdapter.js +1 -1
- package/modules/adagioBidAdapter.js +3 -4
- package/modules/adkernelAdnAnalyticsAdapter.js +4 -2
- package/modules/admixerIdSystem.js +4 -2
- package/modules/adnuntiusBidAdapter.js +1 -1
- package/modules/adqueryBidAdapter.js +1 -1
- package/modules/adqueryIdSystem.js +2 -1
- package/modules/adrinoBidAdapter.js +24 -16
- package/modules/adriverIdSystem.js +3 -2
- package/modules/adsinteractiveBidAdapter.js +144 -0
- package/modules/adsinteractiveBidAdapter.md +31 -0
- package/modules/adyoulikeBidAdapter.js +2 -3
- package/modules/aidemBidAdapter.js +5 -0
- package/modules/airgridRtdProvider.js +4 -2
- package/modules/ajaBidAdapter.js +38 -16
- package/modules/akamaiDapRtdProvider.js +2 -1
- package/modules/amxBidAdapter.js +12 -10
- package/modules/amxIdSystem.js +23 -20
- package/modules/amxIdSystem.md +7 -7
- package/modules/appnexusBidAdapter.js +8 -8
- package/modules/appushBidAdapter.js +1 -1
- package/modules/apstreamBidAdapter.js +1 -1
- package/modules/atsAnalyticsAdapter.js +4 -2
- package/modules/audiencerunBidAdapter.js +9 -10
- package/modules/bedigitechBidAdapter.js +67 -0
- package/modules/bedigitechBidAdapter.md +32 -0
- package/modules/beyondmediaBidAdapter.js +1 -1
- package/modules/bluebillywigBidAdapter.js +2 -4
- package/modules/blueconicRtdProvider.js +2 -1
- package/modules/braveBidAdapter.js +1 -1
- package/modules/brightcomBidAdapter.js +1 -2
- package/modules/brightcomSSPBidAdapter.js +1 -2
- package/modules/browsiRtdProvider.js +4 -2
- package/modules/byDataAnalyticsAdapter.js +6 -3
- package/modules/coinzillaBidAdapter.js +1 -2
- package/modules/compassBidAdapter.js +1 -1
- package/modules/concertBidAdapter.js +14 -7
- package/modules/connectIdSystem.js +96 -21
- package/modules/connectIdSystem.md +6 -5
- package/modules/connectadBidAdapter.js +2 -4
- package/modules/contentexchangeBidAdapter.js +1 -1
- package/modules/craftBidAdapter.js +29 -24
- package/modules/criteoBidAdapter.js +4 -2
- package/modules/criteoIdSystem.js +6 -2
- package/modules/czechAdIdSystem.js +3 -2
- package/modules/dacIdSystem.js +4 -3
- package/modules/deepintentDpesIdSystem.js +3 -2
- package/modules/discoveryBidAdapter.js +1 -1
- package/modules/dspxBidAdapter.js +223 -15
- package/modules/fintezaAnalyticsAdapter.js +5 -3
- package/modules/fledgeForGpt.js +54 -6
- package/modules/freewheel-sspBidAdapter.js +8 -0
- package/modules/ftrackIdSystem.js +6 -6
- package/modules/gdprEnforcement.js +56 -68
- package/modules/glimpseBidAdapter.js +2 -6
- package/modules/globalsunBidAdapter.js +1 -1
- package/modules/gnetBidAdapter.js +1 -2
- package/modules/gravitoIdSystem.js +5 -3
- package/modules/greenbidsAnalyticsAdapter.js +181 -0
- package/modules/greenbidsAnalyticsAdapter.md +23 -0
- package/modules/gridBidAdapter.js +14 -8
- package/modules/gridNMBidAdapter.js +1 -1
- package/modules/growthCodeAnalyticsAdapter.js +3 -2
- package/modules/growthCodeIdSystem.js +21 -17
- package/modules/gumgumBidAdapter.js +8 -18
- package/modules/hadronAnalyticsAdapter.js +5 -3
- package/modules/hadronIdSystem.js +3 -1
- package/modules/hadronRtdProvider.js +4 -2
- package/modules/id5IdSystem.js +4 -2
- package/modules/idWardRtdProvider.js +2 -1
- package/modules/identityLinkIdSystem.js +5 -2
- package/modules/idxIdSystem.js +3 -2
- package/modules/imRtdProvider.js +3 -1
- package/modules/impactifyBidAdapter.js +2 -4
- package/modules/imuIdSystem.js +6 -3
- package/modules/insticatorBidAdapter.js +1 -1
- package/modules/intentIqIdSystem.js +3 -2
- package/modules/invibesBidAdapter.js +1 -1
- package/modules/iqzoneBidAdapter.js +1 -1
- package/modules/ivsBidAdapter.js +85 -0
- package/modules/ivsBidAdapter.md +34 -0
- package/modules/ixBidAdapter.js +43 -106
- package/modules/jixieBidAdapter.js +3 -6
- package/modules/jwplayerVideoProvider.js +25 -32
- package/modules/kargoBidAdapter.js +1 -1
- package/modules/koblerBidAdapter.js +1 -2
- package/modules/kueezBidAdapter.js +1 -1
- package/modules/kueezRtbBidAdapter.js +1 -1
- package/modules/liveIntentIdSystem.js +11 -2
- package/modules/lotamePanoramaIdSystem.js +3 -2
- package/modules/luponmediaBidAdapter.js +1 -1
- package/modules/magniteAnalyticsAdapter.js +101 -9
- package/modules/mathildeadsBidAdapter.js +1 -1
- package/modules/mediafuseBidAdapter.js +1 -1
- package/modules/mediagoBidAdapter.js +1 -1
- package/modules/mediakeysBidAdapter.js +2 -3
- package/modules/medianetBidAdapter.js +1 -1
- package/modules/merkleIdSystem.js +2 -1
- package/modules/mgidBidAdapter.js +179 -27
- package/modules/mgidRtdProvider.js +3 -1
- package/modules/minutemediaBidAdapter.js +1 -1
- package/modules/minutemediaplusBidAdapter.js +1 -1
- package/modules/mwOpenLinkIdSystem.js +3 -2
- package/modules/naveggIdSystem.js +3 -2
- package/modules/nexx360BidAdapter.js +0 -1
- package/modules/nobidBidAdapter.js +1 -1
- package/modules/novatiqIdSystem.js +6 -3
- package/modules/oguryBidAdapter.js +3 -2
- package/modules/onetagBidAdapter.js +1 -1
- package/modules/onomagicBidAdapter.js +1 -2
- package/modules/openxBidAdapter.js +192 -563
- package/modules/openxBidAdapter.md +22 -20
- package/modules/openxOrtbBidAdapter.js +24 -10
- package/modules/openxOrtbBidAdapter.md +11 -8
- package/modules/operaadsBidAdapter.js +1 -1
- package/modules/parrableIdSystem.js +4 -2
- package/modules/permutiveRtdProvider.js +2 -1
- package/modules/prebidServerBidAdapter/index.js +9 -3
- package/modules/prebidServerBidAdapter/ortbConverter.js +12 -2
- package/modules/prebidmanagerAnalyticsAdapter.js +3 -2
- package/modules/pubCommonId.js +6 -3
- package/modules/publinkIdSystem.js +2 -1
- package/modules/pubmaticAnalyticsAdapter.js +12 -1
- package/modules/pubmaticBidAdapter.js +193 -223
- package/modules/pubwiseAnalyticsAdapter.js +5 -3
- package/modules/pubxBidAdapter.js +5 -2
- package/modules/quantcastBidAdapter.js +1 -1
- package/modules/quantcastIdSystem.js +5 -3
- package/modules/realvuAnalyticsAdapter.js +6 -3
- package/modules/riseBidAdapter.js +1 -1
- package/modules/roxotAnalyticsAdapter.js +5 -2
- package/modules/rtbhouseBidAdapter.js +5 -3
- package/modules/rtdModule/index.js +3 -0
- package/modules/rubiconAnalyticsAdapter.js +3 -2
- package/modules/rubiconBidAdapter.js +1 -0
- package/modules/sharedIdSystem.js +16 -36
- package/modules/sharethroughBidAdapter.js +2 -3
- package/modules/shinezBidAdapter.js +1 -1
- package/modules/sigmoidAnalyticsAdapter.js +4 -2
- package/modules/smartadserverBidAdapter.js +2 -3
- package/modules/smarthubBidAdapter.js +1 -1
- package/modules/sovrnBidAdapter.js +2 -3
- package/modules/staqAnalyticsAdapter.js +5 -3
- package/modules/stroeerCoreBidAdapter.js +3 -2
- package/modules/synacormediaBidAdapter.js +1 -3
- package/modules/taboolaBidAdapter.js +4 -2
- package/modules/teadsBidAdapter.js +1 -1
- package/modules/teadsIdSystem.js +2 -1
- package/modules/tripleliftBidAdapter.js +1 -1
- package/modules/truereachBidAdapter.js +1 -2
- package/modules/trustpidSystem.js +3 -2
- package/modules/ttdBidAdapter.js +11 -5
- package/modules/uid2IdSystem.js +3 -2
- package/modules/undertoneBidAdapter.js +1 -0
- package/modules/userId/eids.js +18 -0
- package/modules/userId/eids.md +16 -0
- package/modules/userId/index.js +5 -2
- package/modules/validationFpdModule/index.js +3 -2
- package/modules/vidazooBidAdapter.js +14 -5
- package/modules/videoheroesBidAdapter.js +1 -1
- package/modules/vidoomyBidAdapter.js +51 -2
- package/modules/visiblemeasuresBidAdapter.js +1 -1
- package/modules/vrtcalBidAdapter.js +1 -1
- package/modules/weboramaRtdProvider.js +3 -1
- package/modules/yieldmoBidAdapter.js +2 -3
- package/modules/yieldoneBidAdapter.js +1 -1
- package/modules/yuktamediaAnalyticsAdapter.js +4 -2
- package/modules/zeotapIdPlusIdSystem.js +3 -2
- package/modules/zeta_global_sspBidAdapter.js +3 -0
- package/package.json +1 -1
- package/plugins/eslint/validateImports.js +13 -14
- package/plugins/pbjsGlobals.js +3 -1
- package/src/Renderer.js +2 -1
- package/src/activities/modules.js +5 -0
- package/src/adapterManager.js +4 -8
- package/src/adapters/bidderFactory.js +30 -16
- package/src/consentHandler.js +42 -0
- package/src/native.js +5 -1
- package/src/refererDetection.js +39 -21
- package/src/secureCreatives.js +2 -2
- package/src/storageManager.js +33 -47
- package/src/userSync.js +7 -4
- package/test/spec/auctionmanager_spec.js +2 -2
- package/test/spec/libraries/domainOverrideToRootDomain/index_spec.js +77 -0
- package/test/spec/modules/33acrossIdSystem_spec.js +1 -1
- package/test/spec/modules/acuityAdsBidAdapter_spec.js +2 -1
- package/test/spec/modules/adagioBidAdapter_spec.js +11 -17
- package/test/spec/modules/admixerIdSystem_spec.js +0 -3
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +6 -6
- package/test/spec/modules/adrinoBidAdapter_spec.js +65 -34
- package/test/spec/modules/adsinteractiveBidAdapter_spec.js +207 -0
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -11
- package/test/spec/modules/aidemBidAdapter_spec.js +72 -8
- package/test/spec/modules/amxBidAdapter_spec.js +4 -1
- package/test/spec/modules/amxIdSystem_spec.js +13 -26
- package/test/spec/modules/appushBidAdapter_spec.js +2 -1
- package/test/spec/modules/atsAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/audiencerunBidAdapter_spec.js +8 -11
- package/test/spec/modules/bedigitechBidAdapter_spec.js +145 -0
- package/test/spec/modules/beyondmediaBidAdapter_spec.js +2 -1
- package/test/spec/modules/bluebillywigBidAdapter_spec.js +1 -3
- package/test/spec/modules/compassBidAdapter_spec.js +2 -1
- package/test/spec/modules/concertBidAdapter_spec.js +3 -8
- package/test/spec/modules/connectIdSystem_spec.js +420 -242
- package/test/spec/modules/connectadBidAdapter_spec.js +11 -3
- package/test/spec/modules/contentexchangeBidAdapter_spec.js +2 -1
- package/test/spec/modules/criteoBidAdapter_spec.js +29 -0
- package/test/spec/modules/criteoIdSystem_spec.js +38 -0
- package/test/spec/modules/datablocksBidAdapter_spec.js +0 -1
- package/test/spec/modules/dspxBidAdapter_spec.js +184 -13
- package/test/spec/modules/eids_spec.js +30 -0
- package/test/spec/modules/fledge_spec.js +173 -2
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +37 -0
- package/test/spec/modules/gdprEnforcement_spec.js +134 -164
- package/test/spec/modules/globalsunBidAdapter_spec.js +2 -1
- package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +418 -0
- package/test/spec/modules/gridBidAdapter_spec.js +9 -5
- package/test/spec/modules/growthCodeIdSystem_spec.js +2 -1
- package/test/spec/modules/id5IdSystem_spec.js +41 -4
- package/test/spec/modules/identityLinkIdSystem_spec.js +2 -2
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +10 -3
- package/test/spec/modules/iqzoneBidAdapter_spec.js +2 -1
- package/test/spec/modules/ivsBidAdapter_spec.js +197 -0
- package/test/spec/modules/ixBidAdapter_spec.js +84 -71
- package/test/spec/modules/jixieBidAdapter_spec.js +42 -60
- package/test/spec/modules/koblerBidAdapter_spec.js +0 -20
- package/test/spec/modules/liveIntentIdSystem_spec.js +10 -0
- package/test/spec/modules/luponmediaBidAdapter_spec.js +1 -1
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +129 -1
- package/test/spec/modules/mathildeadsBidAdapter_spec.js +2 -1
- package/test/spec/modules/mediakeysBidAdapter_spec.js +12 -16
- package/test/spec/modules/mgidBidAdapter_spec.js +184 -36
- package/test/spec/modules/oguryBidAdapter_spec.js +19 -4
- package/test/spec/modules/openxBidAdapter_spec.js +1157 -1936
- package/test/spec/modules/openxOrtbBidAdapter_spec.js +108 -50
- package/test/spec/modules/prebidServerBidAdapter_spec.js +68 -2
- package/test/spec/modules/publinkIdSystem_spec.js +3 -2
- package/test/spec/modules/pubmaticBidAdapter_spec.js +67 -10
- package/test/spec/modules/pubxBidAdapter_spec.js +10 -2
- package/test/spec/modules/realTimeDataModule_spec.js +22 -0
- package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -1
- package/test/spec/modules/relaidoBidAdapter_spec.js +5 -5
- package/test/spec/modules/rubiconBidAdapter_spec.js +2 -1
- package/test/spec/modules/sharedIdSystem_spec.js +0 -46
- package/test/spec/modules/sharethroughBidAdapter_spec.js +99 -22
- package/test/spec/modules/smartadserverBidAdapter_spec.js +74 -12
- package/test/spec/modules/smarthubBidAdapter_spec.js +2 -1
- package/test/spec/modules/sovrnBidAdapter_spec.js +25 -6
- package/test/spec/modules/stroeerCoreBidAdapter_spec.js +13 -18
- package/test/spec/modules/synacormediaBidAdapter_spec.js +0 -26
- package/test/spec/modules/taboolaBidAdapter_spec.js +101 -0
- package/test/spec/modules/ttdBidAdapter_spec.js +25 -7
- package/test/spec/modules/userId_spec.js +68 -0
- package/test/spec/modules/vidazooBidAdapter_spec.js +13 -0
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +17 -4
- package/test/spec/modules/vidoomyBidAdapter_spec.js +68 -0
- package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +2 -1
- package/test/spec/modules/vrtcalBidAdapter_spec.js +3 -2
- package/test/spec/modules/yieldmoBidAdapter_spec.js +18 -2
- package/test/spec/modules/zeotapIdPlusIdSystem_spec.js +3 -2
- package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +8 -0
- package/test/spec/refererDetection_spec.js +56 -1
- package/test/spec/renderer_spec.js +1 -2
- package/test/spec/unit/core/adapterManager_spec.js +21 -58
- package/test/spec/unit/core/bidderFactory_spec.js +28 -10
- package/test/spec/unit/core/consentHandler_spec.js +29 -1
- package/test/spec/unit/core/storageManager_spec.js +31 -21
- package/test/spec/userSync_spec.js +2 -1
|
@@ -1,14 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
debugTurnedOn,
|
|
3
|
+
deepAccess,
|
|
4
|
+
deepClone,
|
|
5
|
+
deepSetValue,
|
|
6
|
+
generateUUID,
|
|
7
|
+
getWindowLocation,
|
|
8
|
+
isAdUnitCodeMatchingSlot,
|
|
9
|
+
isEmpty,
|
|
10
|
+
isGptPubadsDefined,
|
|
11
|
+
isNumber,
|
|
12
|
+
logError,
|
|
13
|
+
logInfo,
|
|
14
|
+
logWarn,
|
|
15
|
+
mergeDeep,
|
|
16
|
+
parseQS,
|
|
17
|
+
parseUrl,
|
|
18
|
+
pick
|
|
19
|
+
} from '../src/utils.js';
|
|
2
20
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
21
|
import adapterManager from '../src/adapterManager.js';
|
|
4
22
|
import CONSTANTS from '../src/constants.json';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
23
|
+
import {ajax} from '../src/ajax.js';
|
|
24
|
+
import {config} from '../src/config.js';
|
|
25
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
26
|
+
import {getStorageManager} from '../src/storageManager.js';
|
|
27
|
+
import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
|
|
9
28
|
|
|
10
29
|
const RUBICON_GVL_ID = 52;
|
|
11
|
-
export const storage = getStorageManager({
|
|
30
|
+
export const storage = getStorageManager({ moduleType: MODULE_TYPE_ANALYTICS, moduleName: 'magnite' });
|
|
12
31
|
const COOKIE_NAME = 'mgniSession';
|
|
13
32
|
const LAST_SEEN_EXPIRE_TIME = 1800000; // 30 mins
|
|
14
33
|
const END_EXPIRE_TIME = 21600000; // 6 hours
|
|
@@ -37,7 +56,8 @@ const {
|
|
|
37
56
|
BIDDER_DONE,
|
|
38
57
|
BID_TIMEOUT,
|
|
39
58
|
BID_WON,
|
|
40
|
-
BILLABLE_EVENT
|
|
59
|
+
BILLABLE_EVENT,
|
|
60
|
+
SEAT_NON_BID
|
|
41
61
|
},
|
|
42
62
|
STATUS: {
|
|
43
63
|
GOOD,
|
|
@@ -464,7 +484,7 @@ const findMatchingAdUnitFromAuctions = (matchesFunction, returnFirstMatch) => {
|
|
|
464
484
|
}
|
|
465
485
|
}
|
|
466
486
|
return matches;
|
|
467
|
-
}
|
|
487
|
+
};
|
|
468
488
|
|
|
469
489
|
const getRenderingIds = bidWonData => {
|
|
470
490
|
// if bid caching off -> return the bidWon auction id
|
|
@@ -821,7 +841,16 @@ magniteAdapter.track = ({ eventType, args }) => {
|
|
|
821
841
|
auctionEntry.floors.dealsEnforced = args.floorData.enforcements.floorDeals;
|
|
822
842
|
}
|
|
823
843
|
|
|
824
|
-
//
|
|
844
|
+
// no-bid from server. report it!
|
|
845
|
+
if (!bid && args.seatBidId) {
|
|
846
|
+
bid = adUnit.bids[args.seatBidId] = {
|
|
847
|
+
bidder: args.bidderCode,
|
|
848
|
+
source: 'server',
|
|
849
|
+
bidId: args.seatBidId,
|
|
850
|
+
unknownBid: true
|
|
851
|
+
};
|
|
852
|
+
}
|
|
853
|
+
|
|
825
854
|
if (!bid) {
|
|
826
855
|
logError(`${MODULE_NAME}: Could not find associated bid request for bid response with requestId: `, args.requestId);
|
|
827
856
|
break;
|
|
@@ -852,6 +881,9 @@ magniteAdapter.track = ({ eventType, args }) => {
|
|
|
852
881
|
bid.pbsBidId = pbsBidId;
|
|
853
882
|
}
|
|
854
883
|
break;
|
|
884
|
+
case SEAT_NON_BID:
|
|
885
|
+
handleNonBidEvent(args);
|
|
886
|
+
break;
|
|
855
887
|
case BIDDER_DONE:
|
|
856
888
|
const serverError = deepAccess(args, 'serverErrors.0');
|
|
857
889
|
const serverResponseTimeMs = args.serverResponseTimeMs;
|
|
@@ -939,6 +971,66 @@ magniteAdapter.track = ({ eventType, args }) => {
|
|
|
939
971
|
}
|
|
940
972
|
};
|
|
941
973
|
|
|
974
|
+
const handleNonBidEvent = function(args) {
|
|
975
|
+
const {seatnonbid, auctionId} = args;
|
|
976
|
+
const auction = deepAccess(cache, `auctions.${auctionId}.auction`);
|
|
977
|
+
// if no auction just bail
|
|
978
|
+
if (!auction) {
|
|
979
|
+
logWarn(`Unable to match nonbid to auction`);
|
|
980
|
+
return;
|
|
981
|
+
}
|
|
982
|
+
const adUnits = auction.adUnits;
|
|
983
|
+
seatnonbid.forEach(seatnonbid => {
|
|
984
|
+
let {seat} = seatnonbid;
|
|
985
|
+
seatnonbid.nonbid.forEach(nonbid => {
|
|
986
|
+
try {
|
|
987
|
+
const {status, impid} = nonbid;
|
|
988
|
+
const matchingTid = Object.keys(adUnits).find(tid => adUnits[tid].adUnitCode === impid);
|
|
989
|
+
const adUnit = adUnits[matchingTid];
|
|
990
|
+
const statusInfo = statusMap[status] || { status: 'no-bid' };
|
|
991
|
+
adUnit.bids[generateUUID()] = {
|
|
992
|
+
bidder: seat,
|
|
993
|
+
source: 'server',
|
|
994
|
+
isSeatNonBid: true,
|
|
995
|
+
clientLatencyMillis: Date.now() - auction.auctionStart,
|
|
996
|
+
...statusInfo
|
|
997
|
+
};
|
|
998
|
+
} catch (error) {
|
|
999
|
+
logWarn(`Unable to match nonbid to adUnit`);
|
|
1000
|
+
}
|
|
1001
|
+
});
|
|
1002
|
+
});
|
|
1003
|
+
};
|
|
1004
|
+
|
|
1005
|
+
const statusMap = {
|
|
1006
|
+
0: {
|
|
1007
|
+
status: 'no-bid'
|
|
1008
|
+
},
|
|
1009
|
+
100: {
|
|
1010
|
+
status: 'error',
|
|
1011
|
+
error: {
|
|
1012
|
+
code: 'request-error',
|
|
1013
|
+
description: 'general error'
|
|
1014
|
+
}
|
|
1015
|
+
},
|
|
1016
|
+
101: {
|
|
1017
|
+
status: 'error',
|
|
1018
|
+
error: {
|
|
1019
|
+
code: 'timeout-error',
|
|
1020
|
+
description: 'prebid server timeout'
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
200: {
|
|
1024
|
+
status: 'rejected'
|
|
1025
|
+
},
|
|
1026
|
+
202: {
|
|
1027
|
+
status: 'rejected'
|
|
1028
|
+
},
|
|
1029
|
+
301: {
|
|
1030
|
+
status: 'rejected-ipf'
|
|
1031
|
+
}
|
|
1032
|
+
};
|
|
1033
|
+
|
|
942
1034
|
adapterManager.registerAnalyticsAdapter({
|
|
943
1035
|
adapter: magniteAdapter,
|
|
944
1036
|
code: 'magnite',
|
|
@@ -155,7 +155,7 @@ export const spec = {
|
|
|
155
155
|
coppa: config.getConfig('coppa') === true ? 1 : 0,
|
|
156
156
|
ccpa: bidderRequest.uspConsent || undefined,
|
|
157
157
|
gdpr: bidderRequest.gdprConsent || undefined,
|
|
158
|
-
tmax:
|
|
158
|
+
tmax: bidderRequest.timeout
|
|
159
159
|
};
|
|
160
160
|
|
|
161
161
|
const len = validBidRequests.length;
|
|
@@ -62,7 +62,7 @@ const SCRIPT_TAG_START = '<script';
|
|
|
62
62
|
const VIEWABILITY_URL_START = /\/\/cdn\.adnxs\.com\/v|\/\/cdn\.adnxs\-simple\.com\/v/;
|
|
63
63
|
const VIEWABILITY_FILE_NAME = 'trk.js';
|
|
64
64
|
const GVLID = 32;
|
|
65
|
-
const storage = getStorageManager({
|
|
65
|
+
const storage = getStorageManager({bidderCode: BIDDER_CODE});
|
|
66
66
|
|
|
67
67
|
export const spec = {
|
|
68
68
|
code: BIDDER_CODE,
|
|
@@ -15,7 +15,7 @@ const ENDPOINT_URL =
|
|
|
15
15
|
'https://rtb-us.mediago.io/api/bid?tn=';
|
|
16
16
|
const TIME_TO_LIVE = 500;
|
|
17
17
|
// const ENDPOINT_URL = '/api/bid?tn=';
|
|
18
|
-
const storage = getStorageManager();
|
|
18
|
+
const storage = getStorageManager({bidderCode: BIDDER_CODE});
|
|
19
19
|
let globals = {};
|
|
20
20
|
let itemMaps = {};
|
|
21
21
|
|
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
21
21
|
import {config} from '../src/config.js';
|
|
22
22
|
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
|
|
23
|
-
import {createEidsArray} from './userId/eids.js';
|
|
24
23
|
import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
|
|
25
24
|
|
|
26
25
|
const AUCTION_TYPE = 1;
|
|
@@ -638,8 +637,8 @@ export const spec = {
|
|
|
638
637
|
deepSetValue(payload, 'regs.coppa', 1);
|
|
639
638
|
}
|
|
640
639
|
|
|
641
|
-
if (deepAccess(validBidRequests[0], '
|
|
642
|
-
deepSetValue(payload, 'user.ext.eids',
|
|
640
|
+
if (deepAccess(validBidRequests[0], 'userIdAsEids')) {
|
|
641
|
+
deepSetValue(payload, 'user.ext.eids', validBidRequests[0].userIdAsEids);
|
|
643
642
|
}
|
|
644
643
|
|
|
645
644
|
// Assign payload.site from refererinfo
|
|
@@ -334,7 +334,7 @@ function generatePayload(bidRequests, bidderRequests) {
|
|
|
334
334
|
id: bidRequests[0].auctionId,
|
|
335
335
|
imp: bidRequests.map(request => slotParams(request)),
|
|
336
336
|
ortb2: bidderRequests.ortb2,
|
|
337
|
-
tmax: bidderRequests.timeout
|
|
337
|
+
tmax: bidderRequests.timeout
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
340
|
|
|
@@ -9,13 +9,14 @@ import { logInfo, logError, logWarn } from '../src/utils.js';
|
|
|
9
9
|
import * as ajaxLib from '../src/ajax.js';
|
|
10
10
|
import {submodule} from '../src/hook.js'
|
|
11
11
|
import {getStorageManager} from '../src/storageManager.js';
|
|
12
|
+
import {MODULE_TYPE_UID} from '../src/activities/modules.js';
|
|
12
13
|
|
|
13
14
|
const MODULE_NAME = 'merkleId';
|
|
14
15
|
const ID_URL = 'https://prebid.sv.rkdms.com/identity/';
|
|
15
16
|
const DEFAULT_REFRESH = 7 * 3600;
|
|
16
17
|
const SESSION_COOKIE_NAME = '_svsid';
|
|
17
18
|
|
|
18
|
-
export const storage = getStorageManager();
|
|
19
|
+
export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
|
|
19
20
|
|
|
20
21
|
function getSession(configParams) {
|
|
21
22
|
let session = null;
|
|
@@ -1,14 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
_each,
|
|
3
|
+
deepAccess,
|
|
4
|
+
isPlainObject,
|
|
5
|
+
isArray,
|
|
6
|
+
isStr,
|
|
7
|
+
logInfo,
|
|
8
|
+
parseUrl,
|
|
9
|
+
isEmpty,
|
|
10
|
+
triggerPixel,
|
|
11
|
+
logWarn,
|
|
12
|
+
getBidIdParameter,
|
|
13
|
+
isFn,
|
|
14
|
+
isNumber,
|
|
15
|
+
isBoolean,
|
|
16
|
+
isInteger, deepSetValue,
|
|
17
|
+
} from '../src/utils.js';
|
|
2
18
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
19
|
import {BANNER, NATIVE} from '../src/mediaTypes.js';
|
|
4
20
|
import {config} from '../src/config.js';
|
|
5
21
|
import { getStorageManager } from '../src/storageManager.js';
|
|
6
22
|
import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
|
|
23
|
+
import {USERSYNC_DEFAULT_CONFIG} from '../src/userSync.js';
|
|
7
24
|
|
|
8
25
|
const GVLID = 358;
|
|
9
26
|
const DEFAULT_CUR = 'USD';
|
|
10
27
|
const BIDDER_CODE = 'mgid';
|
|
11
|
-
export const storage = getStorageManager({
|
|
28
|
+
export const storage = getStorageManager({bidderCode: BIDDER_CODE});
|
|
12
29
|
const ENDPOINT_URL = 'https://prebid.mgid.com/prebid/';
|
|
13
30
|
const LOG_WARN_PREFIX = '[MGID warn]: ';
|
|
14
31
|
const LOG_INFO_PREFIX = '[MGID info]: ';
|
|
@@ -64,7 +81,7 @@ _each(NATIVE_ASSETS, anAsset => { _NATIVE_ASSET_ID_TO_KEY_MAP[anAsset.ID] = anAs
|
|
|
64
81
|
_each(NATIVE_ASSETS, anAsset => { _NATIVE_ASSET_KEY_TO_ASSET_MAP[anAsset.KEY] = anAsset });
|
|
65
82
|
|
|
66
83
|
export const spec = {
|
|
67
|
-
VERSION: '1.
|
|
84
|
+
VERSION: '1.6',
|
|
68
85
|
code: BIDDER_CODE,
|
|
69
86
|
gvlid: GVLID,
|
|
70
87
|
supportedMediaTypes: [BANNER, NATIVE],
|
|
@@ -115,22 +132,19 @@ export const spec = {
|
|
|
115
132
|
/**
|
|
116
133
|
* Make a server request from the list of BidRequests.
|
|
117
134
|
*
|
|
118
|
-
* @param {
|
|
135
|
+
* @param {BidRequest[]} validBidRequests A non-empty list of bid requests which should be sent to the Server.
|
|
136
|
+
* @param bidderRequest
|
|
119
137
|
* @return ServerRequest Info describing the request to the server.
|
|
120
138
|
*/
|
|
121
139
|
buildRequests: (validBidRequests, bidderRequest) => {
|
|
122
140
|
// convert Native ORTB definition to old-style prebid native definition
|
|
123
141
|
validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
|
|
124
|
-
|
|
142
|
+
const [bidRequest] = validBidRequests;
|
|
125
143
|
logInfo(LOG_INFO_PREFIX + `buildRequests`);
|
|
126
144
|
if (validBidRequests.length === 0) {
|
|
127
145
|
return;
|
|
128
146
|
}
|
|
129
147
|
const info = pageInfo();
|
|
130
|
-
// TODO: the fallback seems to never be used here, and probably in the wrong order
|
|
131
|
-
const page = info.location || deepAccess(bidderRequest, 'refererInfo.page')
|
|
132
|
-
const hostname = parseUrl(page).hostname;
|
|
133
|
-
let domain = extractDomainFromHost(hostname) || hostname;
|
|
134
148
|
const accountId = setOnAny(validBidRequests, 'params.accountId');
|
|
135
149
|
const muid = getLocalStorageSafely('mgMuidn');
|
|
136
150
|
let url = (setOnAny(validBidRequests, 'params.bidUrl') || ENDPOINT_URL) + accountId;
|
|
@@ -182,31 +196,108 @@ export const spec = {
|
|
|
182
196
|
|
|
183
197
|
let request = {
|
|
184
198
|
id: deepAccess(bidderRequest, 'bidderRequestId'),
|
|
185
|
-
site: {
|
|
199
|
+
site: ortb2Data?.site || {},
|
|
186
200
|
cur: [cur],
|
|
187
201
|
geo: {utcoffset: info.timeOffset},
|
|
188
|
-
device: {
|
|
189
|
-
ua: navigator.userAgent,
|
|
190
|
-
js: 1,
|
|
191
|
-
dnt: (navigator.doNotTrack === 'yes' || navigator.doNotTrack === '1' || navigator.msDoNotTrack === '1') ? 1 : 0,
|
|
192
|
-
h: screen.height,
|
|
193
|
-
w: screen.width,
|
|
194
|
-
language: getLanguage()
|
|
195
|
-
},
|
|
202
|
+
device: ortb2Data?.device || {},
|
|
196
203
|
ext: {
|
|
197
204
|
mgid_ver: spec.VERSION,
|
|
198
205
|
prebid_ver: '$prebid.version$',
|
|
199
|
-
...ortb2Data
|
|
200
206
|
},
|
|
201
|
-
imp
|
|
207
|
+
imp,
|
|
208
|
+
tmax: bidderRequest?.timeout || config.getConfig('bidderTimeout') || 500,
|
|
202
209
|
};
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
210
|
+
// request level
|
|
211
|
+
const bcat = ortb2Data?.bcat || bidRequest?.params?.bcat || [];
|
|
212
|
+
const badv = ortb2Data?.badv || bidRequest?.params?.badv || [];
|
|
213
|
+
const wlang = ortb2Data?.wlang || bidRequest?.params?.wlang || [];
|
|
214
|
+
if (bcat.length > 0) {
|
|
215
|
+
request.bcat = bcat;
|
|
216
|
+
}
|
|
217
|
+
if (badv.length > 0) {
|
|
218
|
+
request.badv = badv;
|
|
219
|
+
}
|
|
220
|
+
if (wlang.length > 0) {
|
|
221
|
+
request.wlang = wlang;
|
|
222
|
+
}
|
|
223
|
+
// site level
|
|
224
|
+
const page = deepAccess(bidderRequest, 'refererInfo.page') || info.location
|
|
225
|
+
if (!isStr(deepAccess(request.site, 'domain'))) {
|
|
226
|
+
const hostname = parseUrl(page).hostname;
|
|
227
|
+
request.site.domain = extractDomainFromHost(hostname) || hostname
|
|
228
|
+
}
|
|
229
|
+
if (!isStr(deepAccess(request.site, 'page'))) {
|
|
230
|
+
request.site.page = page
|
|
231
|
+
}
|
|
232
|
+
if (!isStr(deepAccess(request.site, 'ref'))) {
|
|
233
|
+
const ref = deepAccess(bidderRequest, 'refererInfo.ref') || info.referrer;
|
|
234
|
+
if (ref) {
|
|
235
|
+
request.site.ref = ref
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
// device level
|
|
239
|
+
if (!isStr(deepAccess(request.device, 'ua'))) {
|
|
240
|
+
request.device.ua = navigator.userAgent;
|
|
241
|
+
}
|
|
242
|
+
request.device.js = 1;
|
|
243
|
+
if (!isInteger(deepAccess(request.device, 'dnt'))) {
|
|
244
|
+
request.device.dnt = (navigator?.doNotTrack === 'yes' || navigator?.doNotTrack === '1' || navigator?.msDoNotTrack === '1') ? 1 : 0;
|
|
245
|
+
}
|
|
246
|
+
if (!isInteger(deepAccess(request.device, 'h'))) {
|
|
247
|
+
request.device.h = screen.height;
|
|
206
248
|
}
|
|
207
|
-
if (
|
|
208
|
-
request.
|
|
249
|
+
if (!isInteger(deepAccess(request.device, 'w'))) {
|
|
250
|
+
request.device.w = screen.width;
|
|
251
|
+
}
|
|
252
|
+
if (!isStr(deepAccess(request.device, 'language'))) {
|
|
253
|
+
request.device.language = getLanguage();
|
|
254
|
+
}
|
|
255
|
+
// user & regs & privacy
|
|
256
|
+
if (isPlainObject(ortb2Data?.user)) {
|
|
257
|
+
request.user = ortb2Data.user;
|
|
258
|
+
}
|
|
259
|
+
if (isPlainObject(ortb2Data?.regs)) {
|
|
260
|
+
request.regs = ortb2Data.regs;
|
|
261
|
+
}
|
|
262
|
+
if (bidderRequest && isPlainObject(bidderRequest.gdprConsent)) {
|
|
263
|
+
if (!isStr(deepAccess(request.user, 'ext.consent'))) {
|
|
264
|
+
deepSetValue(request, 'user.ext.consent', bidderRequest.gdprConsent?.consentString);
|
|
265
|
+
}
|
|
266
|
+
if (!isBoolean(deepAccess(request.regs, 'ext.gdpr'))) {
|
|
267
|
+
deepSetValue(request, 'regs.ext.gdpr', bidderRequest.gdprConsent?.gdprApplies ? 1 : 0);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
const userId = deepAccess(bidderRequest, 'userId')
|
|
271
|
+
if (isStr(userId)) {
|
|
272
|
+
deepSetValue(request, 'user.id', userId);
|
|
273
|
+
}
|
|
274
|
+
const eids = setOnAny(validBidRequests, 'userIdAsEids')
|
|
275
|
+
if (eids && eids.length > 0) {
|
|
276
|
+
deepSetValue(request, 'user.ext.eids', eids);
|
|
277
|
+
}
|
|
278
|
+
if (bidderRequest && isStr(bidderRequest.uspConsent)) {
|
|
279
|
+
if (!isBoolean(deepAccess(request.regs, 'ext.us_privacy'))) {
|
|
280
|
+
deepSetValue(request, 'regs.ext.us_privacy', bidderRequest.uspConsent);
|
|
281
|
+
}
|
|
209
282
|
}
|
|
283
|
+
if (bidderRequest && isPlainObject(bidderRequest.gppConsent)) {
|
|
284
|
+
if (!isStr(deepAccess(request.regs, 'gpp'))) {
|
|
285
|
+
deepSetValue(request, 'regs.gpp', bidderRequest.gppConsent?.gppString);
|
|
286
|
+
}
|
|
287
|
+
if (!isArray(deepAccess(request.regs, 'gpp_sid'))) {
|
|
288
|
+
deepSetValue(request, 'regs.gpp_sid', bidderRequest.gppConsent?.applicableSections);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
if (config.getConfig('coppa')) {
|
|
292
|
+
if (!isInteger(deepAccess(request.regs, 'coppa'))) {
|
|
293
|
+
deepSetValue(request, 'regs.coppa', 1);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
const schain = setOnAny(validBidRequests, 'schain');
|
|
297
|
+
if (schain) {
|
|
298
|
+
deepSetValue(request, 'source.ext.schain', schain);
|
|
299
|
+
}
|
|
300
|
+
|
|
210
301
|
logInfo(LOG_INFO_PREFIX + `buildRequest:`, request);
|
|
211
302
|
return {
|
|
212
303
|
method: 'POST',
|
|
@@ -218,6 +309,7 @@ export const spec = {
|
|
|
218
309
|
* Unpack the response from the server into a list of bids.
|
|
219
310
|
*
|
|
220
311
|
* @param {ServerResponse} serverResponse A successful response from the server.
|
|
312
|
+
* @param bidRequests
|
|
221
313
|
* @return {Bid[]} An array of bids which were nested inside the server.
|
|
222
314
|
*/
|
|
223
315
|
interpretResponse: (serverResponse, bidRequests) => {
|
|
@@ -268,8 +360,66 @@ export const spec = {
|
|
|
268
360
|
}
|
|
269
361
|
logInfo(LOG_INFO_PREFIX + `onBidWon`);
|
|
270
362
|
},
|
|
271
|
-
getUserSyncs: (syncOptions, serverResponses) => {
|
|
363
|
+
getUserSyncs: (syncOptions, serverResponses, gdprConsent, uspConsent, gppConsent) => {
|
|
272
364
|
logInfo(LOG_INFO_PREFIX + `getUserSyncs`);
|
|
365
|
+
const spb = isPlainObject(config.getConfig('userSync')) &&
|
|
366
|
+
isNumber(config.getConfig('userSync').syncsPerBidder)
|
|
367
|
+
? config.getConfig('userSync').syncsPerBidder : USERSYNC_DEFAULT_CONFIG.syncsPerBidder;
|
|
368
|
+
|
|
369
|
+
if (spb > 0 && isPlainObject(syncOptions) && (syncOptions.iframeEnabled || syncOptions.pixelEnabled)) {
|
|
370
|
+
let pixels = [];
|
|
371
|
+
if (serverResponses &&
|
|
372
|
+
isArray(serverResponses) &&
|
|
373
|
+
serverResponses.length > 0 &&
|
|
374
|
+
isPlainObject(serverResponses[0].body) &&
|
|
375
|
+
isPlainObject(serverResponses[0].body.ext) &&
|
|
376
|
+
isArray(serverResponses[0].body.ext.cm) &&
|
|
377
|
+
serverResponses[0].body.ext.cm.length > 0) {
|
|
378
|
+
pixels = serverResponses[0].body.ext.cm;
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
const syncs = [];
|
|
382
|
+
const query = [];
|
|
383
|
+
query.push('cbuster=' + Math.round(new Date().getTime()));
|
|
384
|
+
query.push('consentData=' + encodeURIComponent(isPlainObject(gdprConsent) && isStr(gdprConsent?.consentString) ? gdprConsent.consentString : ''));
|
|
385
|
+
if (isPlainObject(gdprConsent) && typeof gdprConsent?.gdprApplies === 'boolean' && gdprConsent.gdprApplies) {
|
|
386
|
+
query.push('gdprApplies=1');
|
|
387
|
+
} else {
|
|
388
|
+
query.push('gdprApplies=0');
|
|
389
|
+
}
|
|
390
|
+
if (isPlainObject(uspConsent) && uspConsent?.consentString) {
|
|
391
|
+
query.push(`uspString=${encodeURIComponent(uspConsent?.consentString)}`);
|
|
392
|
+
}
|
|
393
|
+
if (isPlainObject(gppConsent) && gppConsent?.gppString) {
|
|
394
|
+
query.push(`gppString=${encodeURIComponent(gppConsent?.gppString)}`);
|
|
395
|
+
}
|
|
396
|
+
if (config.getConfig('coppa')) {
|
|
397
|
+
query.push('coppa=1')
|
|
398
|
+
}
|
|
399
|
+
if (syncOptions.iframeEnabled) {
|
|
400
|
+
syncs.push({
|
|
401
|
+
type: 'iframe',
|
|
402
|
+
url: 'https://cm.mgid.com/i.html?' + query.join('&')
|
|
403
|
+
});
|
|
404
|
+
} else if (syncOptions.pixelEnabled) {
|
|
405
|
+
if (pixels.length === 0) {
|
|
406
|
+
for (let i = 0; i < spb; i++) {
|
|
407
|
+
syncs.push({
|
|
408
|
+
type: 'image',
|
|
409
|
+
url: 'https://cm.mgid.com/i.gif?' + query.join('&') // randomly selects partner if sync required
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
} else {
|
|
413
|
+
for (let i = 0; i < spb && i < pixels.length; i++) {
|
|
414
|
+
syncs.push({
|
|
415
|
+
type: 'image',
|
|
416
|
+
url: pixels[i] + (pixels[i].indexOf('?') > 0 ? '&' : '?') + query.join('&')
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
return syncs;
|
|
422
|
+
}
|
|
273
423
|
}
|
|
274
424
|
};
|
|
275
425
|
|
|
@@ -287,6 +437,7 @@ function setOnAny(collection, key) {
|
|
|
287
437
|
/**
|
|
288
438
|
* Unpack the Server's Bid into a Prebid-compatible one.
|
|
289
439
|
* @param serverBid
|
|
440
|
+
* @param cur
|
|
290
441
|
* @return Bid
|
|
291
442
|
*/
|
|
292
443
|
function prebidBid(serverBid, cur) {
|
|
@@ -330,7 +481,7 @@ function setMediaType(bid, newBid) {
|
|
|
330
481
|
}
|
|
331
482
|
|
|
332
483
|
function extractDomainFromHost(pageHost) {
|
|
333
|
-
if (pageHost
|
|
484
|
+
if (pageHost === 'localhost') {
|
|
334
485
|
return 'localhost'
|
|
335
486
|
}
|
|
336
487
|
let domain = null;
|
|
@@ -600,6 +751,7 @@ function pageInfo() {
|
|
|
600
751
|
* Get the floor price from bid.params for backward compatibility.
|
|
601
752
|
* If not found, then check floor module.
|
|
602
753
|
* @param bid A valid bid object
|
|
754
|
+
* @param cur
|
|
603
755
|
* @returns {*|number} floor price
|
|
604
756
|
*/
|
|
605
757
|
function getBidFloor(bid, cur) {
|
|
@@ -3,6 +3,7 @@ import {ajax} from '../src/ajax.js';
|
|
|
3
3
|
import {deepAccess, logError, logInfo, mergeDeep} from '../src/utils.js';
|
|
4
4
|
import {getStorageManager} from '../src/storageManager.js';
|
|
5
5
|
import {getRefererInfo} from '../src/refererDetection.js';
|
|
6
|
+
import {MODULE_TYPE_RTD} from '../src/activities/modules.js';
|
|
6
7
|
|
|
7
8
|
const MODULE_NAME = 'realTimeData';
|
|
8
9
|
const SUBMODULE_NAME = 'mgid';
|
|
@@ -13,7 +14,7 @@ const ORTB2_NAME = 'www.mgid.com'
|
|
|
13
14
|
const GVLID = 358;
|
|
14
15
|
/** @type {?Object} */
|
|
15
16
|
export const storage = getStorageManager({
|
|
16
|
-
|
|
17
|
+
moduleType: MODULE_TYPE_RTD,
|
|
17
18
|
moduleName: SUBMODULE_NAME
|
|
18
19
|
});
|
|
19
20
|
|
|
@@ -185,6 +186,7 @@ export const mgidSubmodule = {
|
|
|
185
186
|
name: SUBMODULE_NAME,
|
|
186
187
|
init: init,
|
|
187
188
|
getBidRequestData: getBidRequestData,
|
|
189
|
+
gvlid: GVLID
|
|
188
190
|
};
|
|
189
191
|
|
|
190
192
|
submodule(MODULE_NAME, mgidSubmodule);
|
|
@@ -366,7 +366,7 @@ function generateGeneralParams(generalObject, bidderRequest) {
|
|
|
366
366
|
const {syncEnabled, filterSettings} = config.getConfig('userSync') || {};
|
|
367
367
|
const {bidderCode} = bidderRequest;
|
|
368
368
|
const generalBidParams = generalObject.params;
|
|
369
|
-
const timeout =
|
|
369
|
+
const timeout = bidderRequest.timeout;
|
|
370
370
|
|
|
371
371
|
// these params are snake_case instead of camelCase to allow backwards compatability on the server.
|
|
372
372
|
// in the future, these will be converted to camelCase to match our convention.
|
|
@@ -23,7 +23,7 @@ export const SUPPORTED_ID_SYSTEMS = {
|
|
|
23
23
|
'tdid': 1,
|
|
24
24
|
'pubProvidedId': 1
|
|
25
25
|
};
|
|
26
|
-
const storage = getStorageManager({
|
|
26
|
+
const storage = getStorageManager({bidderCode: BIDDER_CODE});
|
|
27
27
|
|
|
28
28
|
function getTopWindowQueryParams() {
|
|
29
29
|
try {
|
|
@@ -8,14 +8,15 @@
|
|
|
8
8
|
import { timestamp, logError, deepClone, generateUUID, isPlainObject } from '../src/utils.js';
|
|
9
9
|
import { ajax } from '../src/ajax.js';
|
|
10
10
|
import { submodule } from '../src/hook.js';
|
|
11
|
-
import {
|
|
11
|
+
import {getStorageManager} from '../src/storageManager.js';
|
|
12
|
+
import {MODULE_TYPE_UID} from '../src/activities/modules.js';
|
|
12
13
|
|
|
13
14
|
const openLinkID = {
|
|
14
15
|
name: 'mwol',
|
|
15
16
|
cookie_expiration: (86400 * 1000 * 365 * 1) // 1 year
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
const storage = getStorageManager();
|
|
19
|
+
const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: openLinkID.name});
|
|
19
20
|
|
|
20
21
|
function getExpirationDate() {
|
|
21
22
|
return (new Date(timestamp() + openLinkID.cookie_expiration)).toGMTString();
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
import { isStr, isPlainObject, logError } from '../src/utils.js';
|
|
8
8
|
import { submodule } from '../src/hook.js';
|
|
9
9
|
import { ajax } from '../src/ajax.js';
|
|
10
|
-
import {
|
|
10
|
+
import {getStorageManager} from '../src/storageManager.js';
|
|
11
|
+
import {MODULE_TYPE_UID} from '../src/activities/modules.js';
|
|
11
12
|
|
|
12
13
|
const MODULE_NAME = 'naveggId';
|
|
13
14
|
const OLD_NAVEGG_ID = 'nid';
|
|
@@ -16,7 +17,7 @@ const BASE_URL = 'https://id.navegg.com/uid/';
|
|
|
16
17
|
const DEFAULT_EXPIRE = 8 * 24 * 3600 * 1000;
|
|
17
18
|
const INVALID_EXPIRE = 3600 * 1000;
|
|
18
19
|
|
|
19
|
-
export const storage = getStorageManager();
|
|
20
|
+
export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
|
|
20
21
|
|
|
21
22
|
function getNaveggIdFromApi() {
|
|
22
23
|
const callbacks = {
|
|
@@ -7,7 +7,7 @@ import {hasPurpose1Consent} from '../src/utils/gpdr.js';
|
|
|
7
7
|
|
|
8
8
|
const GVLID = 816;
|
|
9
9
|
const BIDDER_CODE = 'nobid';
|
|
10
|
-
const storage = getStorageManager({
|
|
10
|
+
const storage = getStorageManager({bidderCode: BIDDER_CODE});
|
|
11
11
|
window.nobidVersion = '1.3.3';
|
|
12
12
|
window.nobid = window.nobid || {};
|
|
13
13
|
window.nobid.bidResponses = window.nobid.bidResponses || {};
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
import { logInfo, getWindowLocation } from '../src/utils.js';
|
|
9
9
|
import { ajax } from '../src/ajax.js';
|
|
10
10
|
import { submodule } from '../src/hook.js';
|
|
11
|
-
import {
|
|
11
|
+
import {getStorageManager} from '../src/storageManager.js';
|
|
12
|
+
import {MODULE_TYPE_UID} from '../src/activities/modules.js';
|
|
13
|
+
|
|
14
|
+
const MODULE_NAME = 'novatiq';
|
|
12
15
|
|
|
13
16
|
/** @type {Submodule} */
|
|
14
17
|
export const novatiqIdSubmodule = {
|
|
@@ -17,7 +20,7 @@ export const novatiqIdSubmodule = {
|
|
|
17
20
|
* used to link submodule with config
|
|
18
21
|
* @type {string}
|
|
19
22
|
*/
|
|
20
|
-
name:
|
|
23
|
+
name: MODULE_NAME,
|
|
21
24
|
/**
|
|
22
25
|
* used to specify vendor id
|
|
23
26
|
* @type {number}
|
|
@@ -217,7 +220,7 @@ export const novatiqIdSubmodule = {
|
|
|
217
220
|
let sharedId = null;
|
|
218
221
|
if (this.useSharedId(configParams)) {
|
|
219
222
|
let cookieOrStorageID = this.getCookieOrStorageID(configParams);
|
|
220
|
-
const storage = getStorageManager({
|
|
223
|
+
const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
|
|
221
224
|
|
|
222
225
|
// first check local storage
|
|
223
226
|
if (storage.hasLocalStorage()) {
|
|
@@ -11,7 +11,7 @@ const DEFAULT_TIMEOUT = 1000;
|
|
|
11
11
|
const BID_HOST = 'https://mweb-hb.presage.io/api/header-bidding-request';
|
|
12
12
|
const TIMEOUT_MONITORING_HOST = 'https://ms-ads-monitoring-events.presage.io';
|
|
13
13
|
const MS_COOKIE_SYNC_DOMAIN = 'https://ms-cookie-sync.presage.io';
|
|
14
|
-
const ADAPTER_VERSION = '1.4.
|
|
14
|
+
const ADAPTER_VERSION = '1.4.1';
|
|
15
15
|
|
|
16
16
|
function getClientWidth() {
|
|
17
17
|
const documentElementClientWidth = window.top.document.documentElement.clientWidth
|
|
@@ -90,7 +90,8 @@ function buildRequests(validBidRequests, bidderRequest) {
|
|
|
90
90
|
},
|
|
91
91
|
device: {
|
|
92
92
|
w: getClientWidth(),
|
|
93
|
-
h: getClientHeight()
|
|
93
|
+
h: getClientHeight(),
|
|
94
|
+
pxratio: window.devicePixelRatio
|
|
94
95
|
}
|
|
95
96
|
};
|
|
96
97
|
|