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,12 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {deepAccess, getBidIdParameter, logError, logMessage, logWarn, isFn} from '../src/utils.js';
|
|
2
2
|
import {config} from '../src/config.js';
|
|
3
3
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
4
|
-
import {
|
|
4
|
+
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
5
|
+
import {Renderer} from '../src/Renderer.js';
|
|
6
|
+
import {includes} from '../src/polyfill.js';
|
|
5
7
|
|
|
6
8
|
const BIDDER_CODE = 'dspx';
|
|
7
9
|
const ENDPOINT_URL = 'https://buyer.dspx.tv/request/';
|
|
8
10
|
const ENDPOINT_URL_DEV = 'https://dcbuyer.dspx.tv/request/';
|
|
9
11
|
const GVLID = 602;
|
|
12
|
+
const VIDEO_ORTB_PARAMS = ['mimes', 'minduration', 'maxduration', 'protocols', 'w', 'h', 'startdelay', 'placement', 'linearity', 'skip', 'skipmin',
|
|
13
|
+
'skipafter', 'sequence', 'battr', 'maxextended', 'minbitrate', 'maxbitrate', 'boxingallowed', 'playbackmethod', 'playbackend', 'delivery', 'pos', 'companionad',
|
|
14
|
+
'api', 'companiontype', 'ext'];
|
|
10
15
|
|
|
11
16
|
export const spec = {
|
|
12
17
|
code: BIDDER_CODE,
|
|
@@ -17,24 +22,34 @@ export const spec = {
|
|
|
17
22
|
return !!(bid.params.placement);
|
|
18
23
|
},
|
|
19
24
|
buildRequests: function(validBidRequests, bidderRequest) {
|
|
25
|
+
let payload = {};
|
|
20
26
|
return validBidRequests.map(bidRequest => {
|
|
21
27
|
const params = bidRequest.params;
|
|
22
28
|
|
|
23
|
-
const placementId = params.placement;
|
|
24
29
|
const rnd = Math.floor(Math.random() * 99999999999);
|
|
25
30
|
const referrer = bidderRequest.refererInfo.page;
|
|
26
31
|
const bidId = bidRequest.bidId;
|
|
27
|
-
const isDev = params.devMode || false;
|
|
28
32
|
const pbcode = bidRequest.adUnitCode || false; // div id
|
|
29
33
|
const auctionId = bidRequest.auctionId || false;
|
|
34
|
+
const isDev = params.devMode || false;
|
|
30
35
|
|
|
31
36
|
let endpoint = isDev ? ENDPOINT_URL_DEV : ENDPOINT_URL;
|
|
37
|
+
let placementId = params.placement;
|
|
38
|
+
|
|
39
|
+
// dev config
|
|
40
|
+
if (isDev && params.dev) {
|
|
41
|
+
endpoint = params.dev.endpoint || endpoint;
|
|
42
|
+
placementId = params.dev.placement || placementId;
|
|
43
|
+
if (params.dev.pfilter !== undefined) {
|
|
44
|
+
params.pfilter = params.dev.pfilter;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
32
47
|
|
|
33
48
|
let mediaTypesInfo = getMediaTypesInfo(bidRequest);
|
|
34
49
|
let type = isBannerRequest(bidRequest) ? BANNER : VIDEO;
|
|
35
50
|
let sizes = mediaTypesInfo[type];
|
|
36
51
|
|
|
37
|
-
|
|
52
|
+
payload = {
|
|
38
53
|
_f: 'auto',
|
|
39
54
|
alternative: 'prebid_js',
|
|
40
55
|
inventory_item_id: placementId,
|
|
@@ -47,10 +62,6 @@ export const spec = {
|
|
|
47
62
|
pbver: '$prebid.version$'
|
|
48
63
|
};
|
|
49
64
|
|
|
50
|
-
if (mediaTypesInfo[VIDEO] !== undefined && params.vastFormat !== undefined) {
|
|
51
|
-
payload.vf = params.vastFormat;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
65
|
if (params.pfilter !== undefined) {
|
|
55
66
|
payload.pfilter = params.pfilter;
|
|
56
67
|
}
|
|
@@ -79,11 +90,49 @@ export const spec = {
|
|
|
79
90
|
payload.prebidDevMode = 1;
|
|
80
91
|
}
|
|
81
92
|
|
|
82
|
-
|
|
83
|
-
|
|
93
|
+
// fill userId params
|
|
94
|
+
if (bidRequest.userId) {
|
|
95
|
+
if (bidRequest.userId.netId) {
|
|
96
|
+
payload.did_netid = bidRequest.userId.netId;
|
|
97
|
+
}
|
|
98
|
+
if (bidRequest.userId.id5id) {
|
|
99
|
+
payload.did_id5 = bidRequest.userId.id5id.uid || '0';
|
|
100
|
+
if (bidRequest.userId.id5id.ext.linkType !== undefined) {
|
|
101
|
+
payload.did_id5_linktype = bidRequest.userId.id5id.ext.linkType;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
let uId2 = deepAccess(bidRequest, 'userId.uid2.id');
|
|
105
|
+
if (uId2) {
|
|
106
|
+
payload.did_uid2 = uId2;
|
|
107
|
+
}
|
|
108
|
+
let sharedId = deepAccess(bidRequest, 'userId.sharedid.id');
|
|
109
|
+
if (sharedId) {
|
|
110
|
+
payload.did_sharedid = sharedId;
|
|
111
|
+
}
|
|
112
|
+
let pubcId = deepAccess(bidRequest, 'userId.pubcid');
|
|
113
|
+
if (pubcId) {
|
|
114
|
+
payload.did_pubcid = pubcId;
|
|
115
|
+
}
|
|
116
|
+
let crumbsPubcid = deepAccess(bidRequest, 'crumbs.pubcid');
|
|
117
|
+
if (crumbsPubcid) {
|
|
118
|
+
payload.did_cpubcid = crumbsPubcid;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (bidRequest.schain) {
|
|
123
|
+
payload.schain = bidRequest.schain;
|
|
84
124
|
}
|
|
85
|
-
|
|
86
|
-
|
|
125
|
+
|
|
126
|
+
if (payload.pfilter === undefined || !payload.pfilter.floorprice) {
|
|
127
|
+
let bidFloor = getBidFloor(bidRequest);
|
|
128
|
+
if (bidFloor > 0) {
|
|
129
|
+
if (payload.pfilter !== undefined) {
|
|
130
|
+
payload.pfilter.floorprice = bidFloor;
|
|
131
|
+
} else {
|
|
132
|
+
payload.pfilter = { 'floorprice': bidFloor };
|
|
133
|
+
}
|
|
134
|
+
// payload.bidFloor = bidFloor;
|
|
135
|
+
}
|
|
87
136
|
}
|
|
88
137
|
|
|
89
138
|
if (auctionId) {
|
|
@@ -94,6 +143,17 @@ export const spec = {
|
|
|
94
143
|
}
|
|
95
144
|
|
|
96
145
|
payload.media_types = convertMediaInfoForRequest(mediaTypesInfo);
|
|
146
|
+
if (mediaTypesInfo[VIDEO] !== undefined) {
|
|
147
|
+
payload.vctx = getVideoContext(bidRequest);
|
|
148
|
+
if (params.vastFormat !== undefined) {
|
|
149
|
+
payload.vf = params.vastFormat;
|
|
150
|
+
}
|
|
151
|
+
payload.vpl = {};
|
|
152
|
+
let videoParams = deepAccess(bidRequest, 'mediaTypes.video');
|
|
153
|
+
Object.keys(videoParams)
|
|
154
|
+
.filter(key => includes(VIDEO_ORTB_PARAMS, key))
|
|
155
|
+
.forEach(key => payload.vpl[key] = videoParams[key]);
|
|
156
|
+
}
|
|
97
157
|
|
|
98
158
|
return {
|
|
99
159
|
method: 'GET',
|
|
@@ -103,6 +163,8 @@ export const spec = {
|
|
|
103
163
|
});
|
|
104
164
|
},
|
|
105
165
|
interpretResponse: function(serverResponse, bidRequest) {
|
|
166
|
+
logMessage('DSPx: serverResponse', serverResponse);
|
|
167
|
+
logMessage('DSPx: bidRequest', bidRequest);
|
|
106
168
|
const bidResponses = [];
|
|
107
169
|
const response = serverResponse.body;
|
|
108
170
|
const crid = response.crid || 0;
|
|
@@ -126,13 +188,33 @@ export const spec = {
|
|
|
126
188
|
advertiserDomains: response.adomain || []
|
|
127
189
|
}
|
|
128
190
|
};
|
|
191
|
+
|
|
192
|
+
if (response.vastUrl) {
|
|
193
|
+
bidResponse.vastUrl = response.vastUrl;
|
|
194
|
+
bidResponse.mediaType = 'video';
|
|
195
|
+
}
|
|
129
196
|
if (response.vastXml) {
|
|
130
197
|
bidResponse.vastXml = response.vastXml;
|
|
131
198
|
bidResponse.mediaType = 'video';
|
|
132
|
-
}
|
|
199
|
+
}
|
|
200
|
+
if (response.renderer) {
|
|
201
|
+
bidResponse.renderer = newRenderer(bidRequest, response);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
if (response.videoCacheKey) {
|
|
205
|
+
bidResponse.videoCacheKey = response.videoCacheKey;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (response.adTag) {
|
|
133
209
|
bidResponse.ad = response.adTag;
|
|
134
210
|
}
|
|
135
211
|
|
|
212
|
+
if (response.bid_appendix) {
|
|
213
|
+
Object.keys(response.bid_appendix).forEach(fieldName => {
|
|
214
|
+
bidResponse[fieldName] = response.bid_appendix[fieldName];
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
|
|
136
218
|
bidResponses.push(bidResponse);
|
|
137
219
|
}
|
|
138
220
|
return bidResponses;
|
|
@@ -217,12 +299,22 @@ function isVideoRequest(bid) {
|
|
|
217
299
|
* Get video sizes
|
|
218
300
|
*
|
|
219
301
|
* @param {BidRequest} bid - Bid request generated from ad slots
|
|
220
|
-
* @returns {object}
|
|
302
|
+
* @returns {object}
|
|
221
303
|
*/
|
|
222
304
|
function getVideoSizes(bid) {
|
|
223
305
|
return parseSizes(deepAccess(bid, 'mediaTypes.video.playerSize') || bid.sizes);
|
|
224
306
|
}
|
|
225
307
|
|
|
308
|
+
/**
|
|
309
|
+
* Get video context
|
|
310
|
+
*
|
|
311
|
+
* @param {BidRequest} bid - Bid request generated from ad slots
|
|
312
|
+
* @returns {object}
|
|
313
|
+
*/
|
|
314
|
+
function getVideoContext(bid) {
|
|
315
|
+
return deepAccess(bid, 'mediaTypes.video.context') || 'unknown';
|
|
316
|
+
}
|
|
317
|
+
|
|
226
318
|
/**
|
|
227
319
|
* Get banner sizes
|
|
228
320
|
*
|
|
@@ -296,4 +388,120 @@ function getMediaTypesInfo(bid) {
|
|
|
296
388
|
return mediaTypesInfo;
|
|
297
389
|
}
|
|
298
390
|
|
|
391
|
+
/**
|
|
392
|
+
* Get Bid Floor
|
|
393
|
+
* @param bid
|
|
394
|
+
* @returns {number|*}
|
|
395
|
+
*/
|
|
396
|
+
function getBidFloor(bid) {
|
|
397
|
+
if (!isFn(bid.getFloor)) {
|
|
398
|
+
return deepAccess(bid, 'params.bidfloor', 0);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
try {
|
|
402
|
+
const bidFloor = bid.getFloor({
|
|
403
|
+
currency: 'EUR',
|
|
404
|
+
mediaType: '*',
|
|
405
|
+
size: '*',
|
|
406
|
+
});
|
|
407
|
+
return bidFloor.floor;
|
|
408
|
+
} catch (_) {
|
|
409
|
+
return 0
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
/**
|
|
414
|
+
* Create a new renderer
|
|
415
|
+
*
|
|
416
|
+
* @param bidRequest
|
|
417
|
+
* @param response
|
|
418
|
+
* @returns {Renderer}
|
|
419
|
+
*/
|
|
420
|
+
function newRenderer(bidRequest, response) {
|
|
421
|
+
logMessage('DSPx: newRenderer', bidRequest, response);
|
|
422
|
+
const renderer = Renderer.install({
|
|
423
|
+
id: response.renderer.id || response.bid_id,
|
|
424
|
+
url: (bidRequest.params && bidRequest.params.rendererUrl) || response.renderer.url,
|
|
425
|
+
config: response.renderer.options || deepAccess(bidRequest, 'renderer.options'),
|
|
426
|
+
loaded: false
|
|
427
|
+
});
|
|
428
|
+
|
|
429
|
+
try {
|
|
430
|
+
renderer.setRender(outstreamRender);
|
|
431
|
+
} catch (err) {
|
|
432
|
+
logWarn('Prebid Error calling setRender on renderer', err);
|
|
433
|
+
}
|
|
434
|
+
return renderer;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Outstream Render Function
|
|
439
|
+
*
|
|
440
|
+
* @param bid
|
|
441
|
+
*/
|
|
442
|
+
function outstreamRender(bid) {
|
|
443
|
+
logMessage('DSPx: outstreamRender bid:', bid);
|
|
444
|
+
const embedCode = createOutstreamEmbedCode(bid);
|
|
445
|
+
try {
|
|
446
|
+
const inIframe = getBidIdParameter('iframe', bid.renderer.config);
|
|
447
|
+
if (inIframe && window.document.getElementById(inIframe).nodeName === 'IFRAME') {
|
|
448
|
+
const iframe = window.document.getElementById(inIframe);
|
|
449
|
+
let framedoc = iframe.contentDocument || (iframe.contentWindow && iframe.contentWindow.document);
|
|
450
|
+
framedoc.body.appendChild(embedCode);
|
|
451
|
+
if (typeof window.dspxRender === 'function') {
|
|
452
|
+
window.dspxRender(bid);
|
|
453
|
+
} else {
|
|
454
|
+
logError('[dspx][renderer] Error: dspxRender function is not found');
|
|
455
|
+
}
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
const slot = getBidIdParameter('slot', bid.renderer.config) || bid.adUnitCode;
|
|
460
|
+
if (slot && window.document.getElementById(slot)) {
|
|
461
|
+
window.document.getElementById(slot).appendChild(embedCode);
|
|
462
|
+
if (typeof window.dspxRender === 'function') {
|
|
463
|
+
window.dspxRender(bid);
|
|
464
|
+
} else {
|
|
465
|
+
logError('[dspx][renderer] Error: dspxRender function is not found');
|
|
466
|
+
}
|
|
467
|
+
} else if (slot) {
|
|
468
|
+
logError('[dspx][renderer] Error: slot not found');
|
|
469
|
+
}
|
|
470
|
+
} catch (err) {
|
|
471
|
+
logError('[dspx][renderer] Error:' + err.message)
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* create Outstream Embed Code Node
|
|
477
|
+
*
|
|
478
|
+
* @param bid
|
|
479
|
+
* @returns {DocumentFragment}
|
|
480
|
+
*/
|
|
481
|
+
function createOutstreamEmbedCode(bid) {
|
|
482
|
+
const fragment = window.document.createDocumentFragment();
|
|
483
|
+
let div = window.document.createElement('div');
|
|
484
|
+
div.innerHTML = deepAccess(bid, 'renderer.config.code', '');
|
|
485
|
+
fragment.appendChild(div);
|
|
486
|
+
|
|
487
|
+
// run scripts
|
|
488
|
+
var scripts = div.getElementsByTagName('script');
|
|
489
|
+
var scriptsClone = [];
|
|
490
|
+
for (var idx = 0; idx < scripts.length; idx++) {
|
|
491
|
+
scriptsClone.push(scripts[idx]);
|
|
492
|
+
}
|
|
493
|
+
for (var i = 0; i < scriptsClone.length; i++) {
|
|
494
|
+
var currentScript = scriptsClone[i];
|
|
495
|
+
var s = document.createElement('script');
|
|
496
|
+
for (var j = 0; j < currentScript.attributes.length; j++) {
|
|
497
|
+
var a = currentScript.attributes[j];
|
|
498
|
+
s.setAttribute(a.name, a.value);
|
|
499
|
+
}
|
|
500
|
+
s.appendChild(document.createTextNode(currentScript.innerHTML));
|
|
501
|
+
currentScript.parentNode.replaceChild(s, currentScript);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
return fragment;
|
|
505
|
+
}
|
|
506
|
+
|
|
299
507
|
registerBidder(spec);
|
|
@@ -2,10 +2,12 @@ import { parseUrl, logError } from '../src/utils.js';
|
|
|
2
2
|
import { ajax } from '../src/ajax.js';
|
|
3
3
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
|
-
import {
|
|
5
|
+
import {getStorageManager} from '../src/storageManager.js';
|
|
6
6
|
import CONSTANTS from '../src/constants.json';
|
|
7
|
+
import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
|
|
7
8
|
|
|
8
|
-
const
|
|
9
|
+
const MODULE_CODE = 'finteza';
|
|
10
|
+
const storage = getStorageManager({moduleType: MODULE_TYPE_ANALYTICS, moduleName: MODULE_CODE});
|
|
9
11
|
|
|
10
12
|
const ANALYTICS_TYPE = 'endpoint';
|
|
11
13
|
const FINTEZA_HOST = 'https://content.mql5.com/tr';
|
|
@@ -439,7 +441,7 @@ fntzAnalyticsAdapter.enableAnalytics = function (config) {
|
|
|
439
441
|
|
|
440
442
|
adapterManager.registerAnalyticsAdapter({
|
|
441
443
|
adapter: fntzAnalyticsAdapter,
|
|
442
|
-
code:
|
|
444
|
+
code: MODULE_CODE,
|
|
443
445
|
});
|
|
444
446
|
|
|
445
447
|
export default fntzAnalyticsAdapter;
|
package/modules/fledgeForGpt.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import { config } from '../src/config.js';
|
|
6
6
|
import { getHook } from '../src/hook.js';
|
|
7
7
|
import { getGptSlotForAdUnitCode, logInfo, logWarn } from '../src/utils.js';
|
|
8
|
+
import {IMP, PBS, registerOrtbProcessor, RESPONSE} from '../src/pbjsORTB.js';
|
|
8
9
|
|
|
9
10
|
const MODULE = 'fledgeForGpt'
|
|
10
11
|
|
|
@@ -21,22 +22,20 @@ export function init(cfg) {
|
|
|
21
22
|
getHook('addComponentAuction').before(addComponentAuctionHook);
|
|
22
23
|
isEnabled = true;
|
|
23
24
|
}
|
|
24
|
-
logInfo(MODULE
|
|
25
|
+
logInfo(`${MODULE} enabled (browser ${isFledgeSupported() ? 'supports' : 'does NOT support'} fledge)`, cfg);
|
|
25
26
|
} else {
|
|
26
27
|
if (isEnabled) {
|
|
27
28
|
getHook('addComponentAuction').getHooks({hook: addComponentAuctionHook}).remove();
|
|
28
29
|
isEnabled = false;
|
|
29
30
|
}
|
|
30
|
-
logInfo(MODULE
|
|
31
|
+
logInfo(`${MODULE} disabled`, cfg);
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
export function addComponentAuctionHook(next,
|
|
35
|
+
export function addComponentAuctionHook(next, adUnitCode, componentAuctionConfig) {
|
|
35
36
|
const seller = componentAuctionConfig.seller;
|
|
36
|
-
const adUnitCode = bidRequest.adUnitCode;
|
|
37
37
|
const gptSlot = getGptSlotForAdUnitCode(adUnitCode);
|
|
38
38
|
if (gptSlot && gptSlot.setConfig) {
|
|
39
|
-
delete componentAuctionConfig.bidId;
|
|
40
39
|
gptSlot.setConfig({
|
|
41
40
|
componentAuction: [{
|
|
42
41
|
configKey: seller,
|
|
@@ -48,5 +47,54 @@ export function addComponentAuctionHook(next, bidRequest, componentAuctionConfig
|
|
|
48
47
|
logWarn(MODULE, `unable to register component auction config for: ${adUnitCode} x ${seller}.`);
|
|
49
48
|
}
|
|
50
49
|
|
|
51
|
-
next(
|
|
50
|
+
next(adUnitCode, componentAuctionConfig);
|
|
52
51
|
}
|
|
52
|
+
|
|
53
|
+
function isFledgeSupported() {
|
|
54
|
+
return 'runAdAuction' in navigator && 'joinAdInterestGroup' in navigator
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function markForFledge(next, bidderRequests) {
|
|
58
|
+
if (isFledgeSupported()) {
|
|
59
|
+
bidderRequests.forEach((req) => {
|
|
60
|
+
req.fledgeEnabled = config.runWithBidder(req.bidderCode, () => config.getConfig('fledgeEnabled'))
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
next(bidderRequests);
|
|
64
|
+
}
|
|
65
|
+
getHook('makeBidRequests').after(markForFledge);
|
|
66
|
+
|
|
67
|
+
export function setImpExtAe(imp, bidRequest, context) {
|
|
68
|
+
if (!context.bidderRequest.fledgeEnabled) {
|
|
69
|
+
delete imp.ext?.ae;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
registerOrtbProcessor({type: IMP, name: 'impExtAe', fn: setImpExtAe});
|
|
73
|
+
|
|
74
|
+
// to make it easier to share code between the PBS adapter and adapters whose backend is PBS, break up
|
|
75
|
+
// fledge response processing in two steps: first aggregate all the auction configs by their imp...
|
|
76
|
+
|
|
77
|
+
export function parseExtPrebidFledge(response, ortbResponse, context) {
|
|
78
|
+
(ortbResponse.ext?.prebid?.fledge?.auctionconfigs || []).forEach((cfg) => {
|
|
79
|
+
const impCtx = context.impContext[cfg.impid];
|
|
80
|
+
if (!impCtx?.imp?.ext?.ae) {
|
|
81
|
+
logWarn('Received fledge auction configuration for an impression that was not in the request or did not ask for it', cfg, impCtx?.imp);
|
|
82
|
+
} else {
|
|
83
|
+
impCtx.fledgeConfigs = impCtx.fledgeConfigs || [];
|
|
84
|
+
impCtx.fledgeConfigs.push(cfg);
|
|
85
|
+
}
|
|
86
|
+
})
|
|
87
|
+
}
|
|
88
|
+
registerOrtbProcessor({type: RESPONSE, name: 'extPrebidFledge', fn: parseExtPrebidFledge, dialects: [PBS]});
|
|
89
|
+
|
|
90
|
+
// ...then, make them available in the adapter's response. This is the client side version, for which the
|
|
91
|
+
// interpretResponse api is {fledgeAuctionConfigs: [{bidId, config}]}
|
|
92
|
+
|
|
93
|
+
export function setResponseFledgeConfigs(response, ortbResponse, context) {
|
|
94
|
+
const configs = Object.values(context.impContext)
|
|
95
|
+
.flatMap((impCtx) => (impCtx.fledgeConfigs || []).map(cfg => ({bidId: impCtx.bidRequest.bidId, config: cfg.config})));
|
|
96
|
+
if (configs.length > 0) {
|
|
97
|
+
response.fledgeAuctionConfigs = configs;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
registerOrtbProcessor({type: RESPONSE, name: 'fledgeAuctionConfigs', priority: -1, fn: setResponseFledgeConfigs, dialects: [PBS]})
|
|
@@ -424,6 +424,14 @@ export const spec = {
|
|
|
424
424
|
requestParams.playerSize = playerSize[0] + 'x' + playerSize[1];
|
|
425
425
|
}
|
|
426
426
|
|
|
427
|
+
// Add video context and placement in requestParams
|
|
428
|
+
if (currentBidRequest.mediaTypes.video) {
|
|
429
|
+
var videoContext = currentBidRequest.mediaTypes.video.context ? currentBidRequest.mediaTypes.video.context : 'instream';
|
|
430
|
+
var videoPlacement = currentBidRequest.mediaTypes.video.placement ? currentBidRequest.mediaTypes.video.placement : 1;
|
|
431
|
+
requestParams.video_context = videoContext;
|
|
432
|
+
requestParams.video_placement = videoPlacement;
|
|
433
|
+
}
|
|
434
|
+
|
|
427
435
|
return {
|
|
428
436
|
method: 'GET',
|
|
429
437
|
url: FREEWHEEL_ADSSETUP,
|
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import * as utils from '../src/utils.js';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
9
|
+
import {submodule} from '../src/hook.js';
|
|
10
|
+
import {getStorageManager} from '../src/storageManager.js';
|
|
11
|
+
import {uspDataHandler} from '../src/adapterManager.js';
|
|
12
|
+
import {loadExternalScript} from '../src/adloader.js';
|
|
13
|
+
import {MODULE_TYPE_UID} from '../src/activities/modules.js';
|
|
13
14
|
|
|
14
15
|
const MODULE_NAME = 'ftrackId';
|
|
15
16
|
const LOG_PREFIX = 'FTRACK - ';
|
|
16
17
|
const LOCAL_STORAGE_EXP_DAYS = 30;
|
|
17
|
-
const VENDOR_ID = null;
|
|
18
18
|
const LOCAL_STORAGE = 'html5';
|
|
19
19
|
const FTRACK_STORAGE_NAME = 'ftrackId';
|
|
20
20
|
const FTRACK_PRIVACY_STORAGE_NAME = `${FTRACK_STORAGE_NAME}_privacy`;
|
|
21
|
-
const storage = getStorageManager({
|
|
21
|
+
const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
|
|
22
22
|
|
|
23
23
|
let consentInfo = {
|
|
24
24
|
gdpr: {
|