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
|
@@ -46,9 +46,17 @@ describe('ConnectAd Adapter', function () {
|
|
|
46
46
|
auctionId: 'e76cbb58-f3e1-4ad9-9f4c-718c1919d0df',
|
|
47
47
|
bidderRequestId: '1c56ad30b9b8ca8',
|
|
48
48
|
transactionId: 'e76cbb58-f3e1-4ad9-9f4c-718c1919d0df',
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
userIdAsEids: [
|
|
50
|
+
{
|
|
51
|
+
'source': 'pubcid.org',
|
|
52
|
+
'uids': [
|
|
53
|
+
{
|
|
54
|
+
'atype': 1,
|
|
55
|
+
'id': '123456'
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
]
|
|
52
60
|
}];
|
|
53
61
|
|
|
54
62
|
bidderRequest = {
|
|
@@ -79,7 +79,8 @@ describe('ContentexchangeBidAdapter', function () {
|
|
|
79
79
|
gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
|
|
80
80
|
refererInfo: {
|
|
81
81
|
referer: 'https://test.com'
|
|
82
|
-
}
|
|
82
|
+
},
|
|
83
|
+
timeout: 500
|
|
83
84
|
};
|
|
84
85
|
|
|
85
86
|
describe('isBidRequestValid', function () {
|
|
@@ -883,6 +883,35 @@ describe('The Criteo bidding adapter', function () {
|
|
|
883
883
|
expect(request.data.user.uspIab).to.equal('1YNY');
|
|
884
884
|
});
|
|
885
885
|
|
|
886
|
+
it('should properly build a request with gpp consent field', function () {
|
|
887
|
+
const bidRequests = [
|
|
888
|
+
{
|
|
889
|
+
bidder: 'criteo',
|
|
890
|
+
adUnitCode: 'bid-123',
|
|
891
|
+
transactionId: 'transaction-123',
|
|
892
|
+
mediaTypes: {
|
|
893
|
+
banner: {
|
|
894
|
+
sizes: [[728, 90]]
|
|
895
|
+
}
|
|
896
|
+
},
|
|
897
|
+
params: {
|
|
898
|
+
zoneId: 123,
|
|
899
|
+
},
|
|
900
|
+
},
|
|
901
|
+
];
|
|
902
|
+
const ortb2 = {
|
|
903
|
+
regs: {
|
|
904
|
+
gpp: 'gpp_consent_string',
|
|
905
|
+
gpp_sid: [0, 1, 2]
|
|
906
|
+
}
|
|
907
|
+
};
|
|
908
|
+
|
|
909
|
+
const request = spec.buildRequests(bidRequests, { ...bidderRequest, ortb2 });
|
|
910
|
+
expect(request.data.regs).to.not.be.null;
|
|
911
|
+
expect(request.data.regs.gpp).to.equal('gpp_consent_string');
|
|
912
|
+
expect(request.data.regs.gpp_sid).to.deep.equal([0, 1, 2]);
|
|
913
|
+
});
|
|
914
|
+
|
|
886
915
|
it('should properly build a request with schain object', function () {
|
|
887
916
|
const expectedSchain = {
|
|
888
917
|
someProperty: 'someValue'
|
|
@@ -185,6 +185,44 @@ describe('CriteoId module', function () {
|
|
|
185
185
|
expect(setLocalStorageStub.calledWith('cto_pixel_test', 'ok')).to.be.true;
|
|
186
186
|
});
|
|
187
187
|
|
|
188
|
+
it('should call sync pixels and use error handler', function () {
|
|
189
|
+
const expirationTs = new Date(nowTimestamp + cookiesMaxAge).toString();
|
|
190
|
+
|
|
191
|
+
const result = criteoIdSubmodule.getId();
|
|
192
|
+
result.callback((id) => {
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
const response = {
|
|
196
|
+
pixels: [
|
|
197
|
+
{
|
|
198
|
+
pixelUrl: 'pixelUrlWithBundle',
|
|
199
|
+
writeBundleInStorage: true,
|
|
200
|
+
bundlePropertyName: 'abc',
|
|
201
|
+
storageKeyName: 'cto_pixel_test'
|
|
202
|
+
}
|
|
203
|
+
]
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
server.requests[0].respond(
|
|
207
|
+
200,
|
|
208
|
+
{ 'Content-Type': 'application/json' },
|
|
209
|
+
JSON.stringify(response)
|
|
210
|
+
);
|
|
211
|
+
|
|
212
|
+
server.requests[1].respond(
|
|
213
|
+
500,
|
|
214
|
+
{ 'Content-Type': 'application/json' },
|
|
215
|
+
JSON.stringify({
|
|
216
|
+
abc: 'ok'
|
|
217
|
+
})
|
|
218
|
+
);
|
|
219
|
+
|
|
220
|
+
expect(triggerPixelStub.called).to.be.false;
|
|
221
|
+
expect(setCookieStub.calledWith('cto_pixel_test', 'ok', expirationTs, null, '.com')).to.be.false;
|
|
222
|
+
expect(setCookieStub.calledWith('cto_pixel_test', 'ok', expirationTs, null, '.testdev.com')).to.be.false;
|
|
223
|
+
expect(setLocalStorageStub.calledWith('cto_pixel_test', 'ok')).to.be.false;
|
|
224
|
+
});
|
|
225
|
+
|
|
188
226
|
gdprConsentTestCases.forEach(testCase => it('should call user sync url with the gdprConsent', function () {
|
|
189
227
|
let callBackSpy = sinon.spy();
|
|
190
228
|
let result = criteoIdSubmodule.getId(undefined, testCase.consentData);
|
|
@@ -2,7 +2,6 @@ import { expect } from 'chai';
|
|
|
2
2
|
import { spec } from '../../../modules/datablocksBidAdapter.js';
|
|
3
3
|
import { BotClientTests } from '../../../modules/datablocksBidAdapter.js';
|
|
4
4
|
import { getStorageManager } from '../../../src/storageManager.js';
|
|
5
|
-
export let storage = getStorageManager();
|
|
6
5
|
|
|
7
6
|
const bid = {
|
|
8
7
|
bidId: '2dd581a2b6281d',
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { expect } from 'chai';
|
|
2
2
|
import { spec } from 'modules/dspxBidAdapter.js';
|
|
3
3
|
import { newBidder } from 'src/adapters/bidderFactory.js';
|
|
4
|
+
import { deepClone } from '../../../src/utils';
|
|
4
5
|
|
|
5
6
|
const ENDPOINT_URL = 'https://buyer.dspx.tv/request/';
|
|
6
7
|
const ENDPOINT_URL_DEV = 'https://dcbuyer.dspx.tv/request/';
|
|
@@ -65,7 +66,34 @@ describe('dspxAdapter', function () {
|
|
|
65
66
|
'adUnitCode': 'testDiv1',
|
|
66
67
|
'userId': {
|
|
67
68
|
'netId': '123',
|
|
68
|
-
'uid2': '456'
|
|
69
|
+
'uid2': {'id': '456'},
|
|
70
|
+
'pubcid': 'e09ab6a3-ae74-4f01-b2e8-81b141d6dc61',
|
|
71
|
+
'id5id': {
|
|
72
|
+
'uid': 'ID5-ZHMOcvSShIBZiIth_yYh9odjNFxVEmMQ_i5TArPfWw!ID5*dtrjfV5mPLasyya5TW2IE9oVzQZwx7xRPGyAYS4hcWkAAOoxoFef4bIoREpQys8x',
|
|
73
|
+
'ext': {
|
|
74
|
+
'linkType': 2
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
'sharedid': {
|
|
78
|
+
'id': '01EXPPGZ9C8NKG1MTXVHV98505',
|
|
79
|
+
'third': '01EXPPGZ9C8NKG1MTXVHV98505'
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
'crumbs': {
|
|
83
|
+
'pubcid': 'e09ab6a3-ae74-4f01-b2e8-81b141d6dc61'
|
|
84
|
+
},
|
|
85
|
+
'schain': {
|
|
86
|
+
'ver': '1.0',
|
|
87
|
+
'complete': 1,
|
|
88
|
+
'nodes': [
|
|
89
|
+
{
|
|
90
|
+
'asi': 'example.com',
|
|
91
|
+
'sid': '0',
|
|
92
|
+
'hp': 1,
|
|
93
|
+
'rid': 'bidrequestid',
|
|
94
|
+
'domain': 'example.com'
|
|
95
|
+
}
|
|
96
|
+
]
|
|
69
97
|
}
|
|
70
98
|
},
|
|
71
99
|
{
|
|
@@ -111,7 +139,10 @@ describe('dspxAdapter', function () {
|
|
|
111
139
|
'mediaTypes': {
|
|
112
140
|
'video': {
|
|
113
141
|
'playerSize': [640, 480],
|
|
114
|
-
'context': 'instream'
|
|
142
|
+
'context': 'instream',
|
|
143
|
+
'protocols': [1, 2],
|
|
144
|
+
'playbackmethod': [2],
|
|
145
|
+
'skip': 1
|
|
115
146
|
},
|
|
116
147
|
'banner': {
|
|
117
148
|
'sizes': [
|
|
@@ -135,14 +166,53 @@ describe('dspxAdapter', function () {
|
|
|
135
166
|
'mediaTypes': {
|
|
136
167
|
'video': {
|
|
137
168
|
'playerSize': [640, 480],
|
|
138
|
-
'context': 'instream'
|
|
169
|
+
'context': 'instream',
|
|
170
|
+
'protocols': [1, 2],
|
|
171
|
+
'playbackmethod': [2],
|
|
172
|
+
'skip': 1,
|
|
173
|
+
'renderer': {
|
|
174
|
+
url: 'example.com/videoRenderer.js',
|
|
175
|
+
render: function (bid) { alert('test'); }
|
|
176
|
+
}
|
|
139
177
|
}
|
|
140
178
|
},
|
|
141
179
|
'bidId': '30b31c1838de1e41',
|
|
142
180
|
'bidderRequestId': '22edbae2733bf67',
|
|
143
181
|
'auctionId': '1d1a030790a478',
|
|
144
182
|
'adUnitCode': 'testDiv4'
|
|
145
|
-
}
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
'bidder': 'dspx',
|
|
186
|
+
'params': {
|
|
187
|
+
'placement': '101',
|
|
188
|
+
'devMode': true,
|
|
189
|
+
'dev': {
|
|
190
|
+
'endpoint': 'http://localhost',
|
|
191
|
+
'placement': '107',
|
|
192
|
+
'pfilter': {'test': 1}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
'mediaTypes': {
|
|
196
|
+
'video': {
|
|
197
|
+
'playerSize': [640, 480],
|
|
198
|
+
'context': 'instream',
|
|
199
|
+
'mimes': ['video/mp4'],
|
|
200
|
+
'protocols': [1, 2],
|
|
201
|
+
'playbackmethod': [2],
|
|
202
|
+
'skip': 1
|
|
203
|
+
},
|
|
204
|
+
'banner': {
|
|
205
|
+
'sizes': [
|
|
206
|
+
[300, 250]
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
|
|
211
|
+
'bidId': '30b31c1838de1e4',
|
|
212
|
+
'bidderRequestId': '22edbae2733bf67',
|
|
213
|
+
'auctionId': '1d1a030790a478',
|
|
214
|
+
'adUnitCode': 'testDiv3'
|
|
215
|
+
},
|
|
146
216
|
|
|
147
217
|
];
|
|
148
218
|
|
|
@@ -163,7 +233,7 @@ describe('dspxAdapter', function () {
|
|
|
163
233
|
expect(request1.method).to.equal('GET');
|
|
164
234
|
expect(request1.url).to.equal(ENDPOINT_URL);
|
|
165
235
|
let data = request1.data.replace(/rnd=\d+\&/g, '').replace(/ref=.*\&bid/g, 'bid').replace(/pbver=.*?&/g, 'pbver=test&');
|
|
166
|
-
expect(data).to.equal('_f=auto&alternative=prebid_js&inventory_item_id=6682&srw=300&srh=250&idt=100&bid_id=30b31c1838de1e1&pbver=test&pfilter%5Bfloorprice%5D=1000000&pfilter%5Bprivate_auction%5D=0&pfilter%5Bgeo%5D%5Bcountry%5D=DE&pfilter%5Bgdpr_consent%5D=BOJ%2FP2HOJ%2FP2HABABMAAAAAZ%2BA%3D%3D&pfilter%5Bgdpr%5D=true&bcat=IAB2%2CIAB4&dvt=desktop&did_netid=123&did_uid2=456&auctionId=1d1a030790a475&pbcode=testDiv1&media_types%5Bbanner%5D=300x250');
|
|
236
|
+
expect(data).to.equal('_f=auto&alternative=prebid_js&inventory_item_id=6682&srw=300&srh=250&idt=100&bid_id=30b31c1838de1e1&pbver=test&pfilter%5Bfloorprice%5D=1000000&pfilter%5Bprivate_auction%5D=0&pfilter%5Bgeo%5D%5Bcountry%5D=DE&pfilter%5Bgdpr_consent%5D=BOJ%2FP2HOJ%2FP2HABABMAAAAAZ%2BA%3D%3D&pfilter%5Bgdpr%5D=true&bcat=IAB2%2CIAB4&dvt=desktop&did_netid=123&did_id5=ID5-ZHMOcvSShIBZiIth_yYh9odjNFxVEmMQ_i5TArPfWw!ID5*dtrjfV5mPLasyya5TW2IE9oVzQZwx7xRPGyAYS4hcWkAAOoxoFef4bIoREpQys8x&did_id5_linktype=2&did_uid2=456&did_sharedid=01EXPPGZ9C8NKG1MTXVHV98505&did_pubcid=e09ab6a3-ae74-4f01-b2e8-81b141d6dc61&did_cpubcid=e09ab6a3-ae74-4f01-b2e8-81b141d6dc61&schain%5Bver%5D=1.0&schain%5Bcomplete%5D=1&schain%5Bnodes%5D%5B0%5D%5Basi%5D=example.com&schain%5Bnodes%5D%5B0%5D%5Bsid%5D=0&schain%5Bnodes%5D%5B0%5D%5Bhp%5D=1&schain%5Bnodes%5D%5B0%5D%5Brid%5D=bidrequestid&schain%5Bnodes%5D%5B0%5D%5Bdomain%5D=example.com&auctionId=1d1a030790a475&pbcode=testDiv1&media_types%5Bbanner%5D=300x250');
|
|
167
237
|
});
|
|
168
238
|
|
|
169
239
|
var request2 = spec.buildRequests([bidRequests[1]], bidderRequest)[0];
|
|
@@ -193,14 +263,61 @@ describe('dspxAdapter', function () {
|
|
|
193
263
|
expect(request4.method).to.equal('GET');
|
|
194
264
|
expect(request4.url).to.equal(ENDPOINT_URL_DEV);
|
|
195
265
|
let data = request4.data.replace(/rnd=\d+\&/g, '').replace(/ref=.*\&bid/g, 'bid').replace(/pbver=.*?&/g, 'pbver=test&');
|
|
196
|
-
expect(data).to.equal('_f=auto&alternative=prebid_js&inventory_item_id=101&srw=300&srh=250&idt=100&bid_id=30b31c1838de1e4&pbver=test&prebidDevMode=1&auctionId=1d1a030790a478&pbcode=testDiv3&media_types%5Bvideo%5D=640x480&media_types%5Bbanner%5D=300x250');
|
|
266
|
+
expect(data).to.equal('_f=auto&alternative=prebid_js&inventory_item_id=101&srw=300&srh=250&idt=100&bid_id=30b31c1838de1e4&pbver=test&prebidDevMode=1&auctionId=1d1a030790a478&pbcode=testDiv3&media_types%5Bvideo%5D=640x480&media_types%5Bbanner%5D=300x250&vctx=instream&vpl%5Bprotocols%5D%5B0%5D=1&vpl%5Bprotocols%5D%5B1%5D=2&vpl%5Bplaybackmethod%5D%5B0%5D=2&vpl%5Bskip%5D=1');
|
|
197
267
|
});
|
|
198
268
|
|
|
199
269
|
var request5 = spec.buildRequests([bidRequests[4]], bidderRequestWithoutGdpr)[0];
|
|
200
270
|
it('sends bid video request to our endpoint via GET', function () {
|
|
201
271
|
expect(request5.method).to.equal('GET');
|
|
202
272
|
let data = request5.data.replace(/rnd=\d+\&/g, '').replace(/ref=.*\&bid/g, 'bid').replace(/pbver=.*?&/g, 'pbver=test&');
|
|
203
|
-
expect(data).to.equal('_f=auto&alternative=prebid_js&inventory_item_id=101&srw=640&srh=480&idt=100&bid_id=30b31c1838de1e41&pbver=test&
|
|
273
|
+
expect(data).to.equal('_f=auto&alternative=prebid_js&inventory_item_id=101&srw=640&srh=480&idt=100&bid_id=30b31c1838de1e41&pbver=test&prebidDevMode=1&auctionId=1d1a030790a478&pbcode=testDiv4&media_types%5Bvideo%5D=640x480&vctx=instream&vf=vast4&vpl%5Bprotocols%5D%5B0%5D=1&vpl%5Bprotocols%5D%5B1%5D=2&vpl%5Bplaybackmethod%5D%5B0%5D=2&vpl%5Bskip%5D=1');
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
var request6 = spec.buildRequests([bidRequests[5]], bidderRequestWithoutGdpr)[0];
|
|
277
|
+
it('sends bid request without gdprConsent to our DEV endpoint with overriden DEV params via GET', function () {
|
|
278
|
+
expect(request6.method).to.equal('GET');
|
|
279
|
+
expect(request6.url).to.equal('http://localhost');
|
|
280
|
+
let data = request6.data.replace(/rnd=\d+\&/g, '').replace(/ref=.*\&bid/g, 'bid').replace(/pbver=.*?&/g, 'pbver=test&');
|
|
281
|
+
expect(data).to.equal('_f=auto&alternative=prebid_js&inventory_item_id=107&srw=300&srh=250&idt=100&bid_id=30b31c1838de1e4&pbver=test&pfilter%5Btest%5D=1&prebidDevMode=1&auctionId=1d1a030790a478&pbcode=testDiv3&media_types%5Bvideo%5D=640x480&media_types%5Bbanner%5D=300x250&vctx=instream&vpl%5Bmimes%5D%5B0%5D=video%2Fmp4&vpl%5Bprotocols%5D%5B0%5D=1&vpl%5Bprotocols%5D%5B1%5D=2&vpl%5Bplaybackmethod%5D%5B0%5D=2&vpl%5Bskip%5D=1');
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
// bidfloor tests
|
|
285
|
+
const getFloorResponse = {currency: 'EUR', floor: 5};
|
|
286
|
+
let testBidRequest = deepClone(bidRequests[1]);
|
|
287
|
+
let floorRequest = spec.buildRequests([testBidRequest], bidderRequestWithoutGdpr)[0];
|
|
288
|
+
|
|
289
|
+
// 1. getBidFloor not exist AND bidfloor not exist - no floorprice in request
|
|
290
|
+
it('bidfloor is not exists in request', function () {
|
|
291
|
+
expect(floorRequest.data).to.not.contain('floorprice');
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
// 2. getBidFloor not exist AND pfilter.floorprice exist - use pfilter.floorprice property
|
|
295
|
+
it('bidfloor is equal 0.5', function () {
|
|
296
|
+
testBidRequest = deepClone(bidRequests[0]);
|
|
297
|
+
testBidRequest.params.pfilter = {
|
|
298
|
+
'floorprice': 0.5
|
|
299
|
+
};
|
|
300
|
+
floorRequest = spec.buildRequests([testBidRequest], bidderRequestWithoutGdpr)[0];
|
|
301
|
+
expect(floorRequest.data).to.contain('floorprice%5D=0.5');
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
// 3. getBidFloor exist AND pfilter.floorprice not exist - use getFloor method
|
|
305
|
+
it('bidfloor is equal 5', function () {
|
|
306
|
+
testBidRequest = deepClone(bidRequests[1]);
|
|
307
|
+
testBidRequest.getFloor = () => getFloorResponse;
|
|
308
|
+
floorRequest = spec.buildRequests([testBidRequest], bidderRequestWithoutGdpr)[0];
|
|
309
|
+
expect(floorRequest.data).to.contain('floorprice%5D=5');
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
// 4. getBidFloor exist AND pfilter.floorprice exist -> use getFloor method
|
|
313
|
+
it('bidfloor is equal 0.35', function () {
|
|
314
|
+
testBidRequest = deepClone(bidRequests[0]);
|
|
315
|
+
testBidRequest.getFloor = () => getFloorResponse;
|
|
316
|
+
testBidRequest.params.pfilter = {
|
|
317
|
+
'floorprice': 0.35
|
|
318
|
+
};
|
|
319
|
+
floorRequest = spec.buildRequests([testBidRequest], bidderRequestWithoutGdpr)[0];
|
|
320
|
+
expect(floorRequest.data).to.contain('floorprice%5D=0.35');
|
|
204
321
|
});
|
|
205
322
|
});
|
|
206
323
|
|
|
@@ -212,7 +329,7 @@ describe('dspxAdapter', function () {
|
|
|
212
329
|
'width': '300',
|
|
213
330
|
'height': '250',
|
|
214
331
|
'type': 'sspHTML',
|
|
215
|
-
'
|
|
332
|
+
'adTag': '<!-- test creative -->',
|
|
216
333
|
'requestId': '220ed41385952a',
|
|
217
334
|
'currency': 'EUR',
|
|
218
335
|
'ttl': 60,
|
|
@@ -233,7 +350,25 @@ describe('dspxAdapter', function () {
|
|
|
233
350
|
'currency': 'EUR',
|
|
234
351
|
'ttl': 60,
|
|
235
352
|
'netRevenue': true,
|
|
236
|
-
'zone': '6682'
|
|
353
|
+
'zone': '6682',
|
|
354
|
+
'renderer': {id: 1, url: '//player.example.com', options: {}}
|
|
355
|
+
}
|
|
356
|
+
};
|
|
357
|
+
let serverVideoResponseVastUrl = {
|
|
358
|
+
'body': {
|
|
359
|
+
'cpm': 5000000,
|
|
360
|
+
'crid': 100500,
|
|
361
|
+
'width': '300',
|
|
362
|
+
'height': '250',
|
|
363
|
+
'requestId': '220ed41385952a',
|
|
364
|
+
'type': 'vast2',
|
|
365
|
+
'currency': 'EUR',
|
|
366
|
+
'ttl': 60,
|
|
367
|
+
'netRevenue': true,
|
|
368
|
+
'zone': '6682',
|
|
369
|
+
'vastUrl': 'https://local/vasturl1',
|
|
370
|
+
'videoCacheKey': 'cache_123',
|
|
371
|
+
'bid_appendix': {'someField': 'someValue'}
|
|
237
372
|
}
|
|
238
373
|
};
|
|
239
374
|
|
|
@@ -246,10 +381,10 @@ describe('dspxAdapter', function () {
|
|
|
246
381
|
dealId: '',
|
|
247
382
|
currency: 'EUR',
|
|
248
383
|
netRevenue: true,
|
|
249
|
-
ttl:
|
|
384
|
+
ttl: 60,
|
|
250
385
|
type: 'sspHTML',
|
|
251
386
|
ad: '<!-- test creative -->',
|
|
252
|
-
meta: {advertiserDomains: ['bdomain']}
|
|
387
|
+
meta: {advertiserDomains: ['bdomain']},
|
|
253
388
|
}, {
|
|
254
389
|
requestId: '23beaa6af6cdde',
|
|
255
390
|
cpm: 0.5,
|
|
@@ -263,7 +398,24 @@ describe('dspxAdapter', function () {
|
|
|
263
398
|
type: 'vast2',
|
|
264
399
|
vastXml: '{"reason":7001,"status":"accepted"}',
|
|
265
400
|
mediaType: 'video',
|
|
266
|
-
meta: {advertiserDomains: []}
|
|
401
|
+
meta: {advertiserDomains: []},
|
|
402
|
+
renderer: {}
|
|
403
|
+
}, {
|
|
404
|
+
requestId: '23beaa6af6cdde',
|
|
405
|
+
cpm: 0.5,
|
|
406
|
+
width: 0,
|
|
407
|
+
height: 0,
|
|
408
|
+
creativeId: 100500,
|
|
409
|
+
dealId: '',
|
|
410
|
+
currency: 'EUR',
|
|
411
|
+
netRevenue: true,
|
|
412
|
+
ttl: 60,
|
|
413
|
+
type: 'vast2',
|
|
414
|
+
vastUrl: 'https://local/vasturl1',
|
|
415
|
+
videoCacheKey: 'cache_123',
|
|
416
|
+
mediaType: 'video',
|
|
417
|
+
meta: {advertiserDomains: []},
|
|
418
|
+
someField: 'someValue'
|
|
267
419
|
}];
|
|
268
420
|
|
|
269
421
|
it('should get the correct bid response by display ad', function () {
|
|
@@ -287,7 +439,7 @@ describe('dspxAdapter', function () {
|
|
|
287
439
|
'mediaTypes': {
|
|
288
440
|
'video': {
|
|
289
441
|
'playerSize': [640, 480],
|
|
290
|
-
'context': '
|
|
442
|
+
'context': 'outstream'
|
|
291
443
|
}
|
|
292
444
|
},
|
|
293
445
|
'data': {
|
|
@@ -299,6 +451,25 @@ describe('dspxAdapter', function () {
|
|
|
299
451
|
expect(result[0].meta.advertiserDomains.length).to.equal(0);
|
|
300
452
|
});
|
|
301
453
|
|
|
454
|
+
it('should get the correct dspx video bid response by display ad (vastUrl)', function () {
|
|
455
|
+
let bidRequest = [{
|
|
456
|
+
'method': 'GET',
|
|
457
|
+
'url': ENDPOINT_URL,
|
|
458
|
+
'mediaTypes': {
|
|
459
|
+
'video': {
|
|
460
|
+
'playerSize': [640, 480],
|
|
461
|
+
'context': 'instream'
|
|
462
|
+
}
|
|
463
|
+
},
|
|
464
|
+
'data': {
|
|
465
|
+
'bid_id': '30b31c1838de1e'
|
|
466
|
+
}
|
|
467
|
+
}];
|
|
468
|
+
let result = spec.interpretResponse(serverVideoResponseVastUrl, bidRequest[0]);
|
|
469
|
+
expect(Object.keys(result[0])).to.have.members(Object.keys(expectedResponse[2]));
|
|
470
|
+
expect(result[0].meta.advertiserDomains.length).to.equal(0);
|
|
471
|
+
});
|
|
472
|
+
|
|
302
473
|
it('handles empty bid response', function () {
|
|
303
474
|
let response = {
|
|
304
475
|
body: {}
|
|
@@ -172,6 +172,36 @@ describe('eids array generation for known sub-modules', function() {
|
|
|
172
172
|
});
|
|
173
173
|
});
|
|
174
174
|
|
|
175
|
+
it('bidswitch', function() {
|
|
176
|
+
const userId = {
|
|
177
|
+
bidswitch: {'id': 'sample_id'}
|
|
178
|
+
};
|
|
179
|
+
const newEids = createEidsArray(userId);
|
|
180
|
+
expect(newEids.length).to.equal(1);
|
|
181
|
+
expect(newEids[0]).to.deep.equal({
|
|
182
|
+
source: 'bidswitch.net',
|
|
183
|
+
uids: [{
|
|
184
|
+
id: 'sample_id',
|
|
185
|
+
atype: 3
|
|
186
|
+
}]
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
it('medianet', function() {
|
|
191
|
+
const userId = {
|
|
192
|
+
medianet: {'id': 'sample_id'}
|
|
193
|
+
};
|
|
194
|
+
const newEids = createEidsArray(userId);
|
|
195
|
+
expect(newEids.length).to.equal(1);
|
|
196
|
+
expect(newEids[0]).to.deep.equal({
|
|
197
|
+
source: 'media.net',
|
|
198
|
+
uids: [{
|
|
199
|
+
id: 'sample_id',
|
|
200
|
+
atype: 3
|
|
201
|
+
}]
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
|
|
175
205
|
it('liveIntentId; getValue call and NO ext', function() {
|
|
176
206
|
const userId = {
|
|
177
207
|
lipb: {
|
|
@@ -2,6 +2,13 @@ import {
|
|
|
2
2
|
expect
|
|
3
3
|
} from 'chai';
|
|
4
4
|
import * as fledge from 'modules/fledgeForGpt.js';
|
|
5
|
+
import {config} from '../../../src/config.js';
|
|
6
|
+
import adapterManager from '../../../src/adapterManager.js';
|
|
7
|
+
import * as utils from '../../../src/utils.js';
|
|
8
|
+
import {hook} from '../../../src/hook.js';
|
|
9
|
+
import 'modules/appnexusBidAdapter.js';
|
|
10
|
+
import 'modules/rubiconBidAdapter.js';
|
|
11
|
+
import {parseExtPrebidFledge, setImpExtAe, setResponseFledgeConfigs} from 'modules/fledgeForGpt.js';
|
|
5
12
|
|
|
6
13
|
const CODE = 'sampleBidder';
|
|
7
14
|
const AD_UNIT_CODE = 'mock/placement';
|
|
@@ -29,9 +36,173 @@ describe('fledgeForGpt module', function() {
|
|
|
29
36
|
nextFnSpy = sinon.spy();
|
|
30
37
|
});
|
|
31
38
|
|
|
32
|
-
it('should call next() when a proper
|
|
33
|
-
fledge.addComponentAuctionHook(nextFnSpy, bidRequest, fledgeAuctionConfig);
|
|
39
|
+
it('should call next() when a proper adUnitCode and fledgeAuctionConfig are provided', function() {
|
|
40
|
+
fledge.addComponentAuctionHook(nextFnSpy, bidRequest.adUnitCode, fledgeAuctionConfig);
|
|
34
41
|
expect(nextFnSpy.called).to.be.true;
|
|
35
42
|
});
|
|
36
43
|
});
|
|
37
44
|
});
|
|
45
|
+
|
|
46
|
+
describe('fledgeEnabled', function () {
|
|
47
|
+
const navProps = Object.fromEntries(['runAdAuction', 'joinAdInterestGroup'].map(p => [p, navigator[p]]))
|
|
48
|
+
|
|
49
|
+
before(function () {
|
|
50
|
+
// navigator.runAdAuction & co may not exist, so we can't stub it normally with
|
|
51
|
+
// sinon.stub(navigator, 'runAdAuction') or something
|
|
52
|
+
Object.keys(navProps).forEach(p => { navigator[p] = sinon.stub() });
|
|
53
|
+
hook.ready();
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
after(function() {
|
|
57
|
+
Object.entries(navProps).forEach(([p, orig]) => navigator[p] = orig);
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
afterEach(function () {
|
|
61
|
+
config.resetConfig();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('should set fledgeEnabled correctly per bidder', function () {
|
|
65
|
+
config.setConfig({bidderSequence: 'fixed'})
|
|
66
|
+
config.setBidderConfig({
|
|
67
|
+
bidders: ['appnexus'],
|
|
68
|
+
config: {
|
|
69
|
+
fledgeEnabled: true,
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
const adUnits = [{
|
|
74
|
+
'code': '/19968336/header-bid-tag1',
|
|
75
|
+
'mediaTypes': {
|
|
76
|
+
'banner': {
|
|
77
|
+
'sizes': [[728, 90]]
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
'bids': [
|
|
81
|
+
{
|
|
82
|
+
'bidder': 'appnexus',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
'bidder': 'rubicon',
|
|
86
|
+
},
|
|
87
|
+
]
|
|
88
|
+
}];
|
|
89
|
+
|
|
90
|
+
const bidRequests = adapterManager.makeBidRequests(
|
|
91
|
+
adUnits,
|
|
92
|
+
Date.now(),
|
|
93
|
+
utils.getUniqueIdentifierStr(),
|
|
94
|
+
function callback() {},
|
|
95
|
+
[]
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
expect(bidRequests[0].bids[0].bidder).equals('appnexus');
|
|
99
|
+
expect(bidRequests[0].fledgeEnabled).to.be.true;
|
|
100
|
+
|
|
101
|
+
expect(bidRequests[1].bids[0].bidder).equals('rubicon');
|
|
102
|
+
expect(bidRequests[1].fledgeEnabled).to.be.undefined;
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
describe('ortb processors for fledge', () => {
|
|
107
|
+
describe('imp.ext.ae', () => {
|
|
108
|
+
it('should be removed if fledge is not enabled', () => {
|
|
109
|
+
const imp = {ext: {ae: 1}};
|
|
110
|
+
setImpExtAe(imp, {}, {bidderRequest: {}});
|
|
111
|
+
expect(imp.ext.ae).to.not.exist;
|
|
112
|
+
})
|
|
113
|
+
it('should be left intact if fledge is enabled', () => {
|
|
114
|
+
const imp = {ext: {ae: false}};
|
|
115
|
+
setImpExtAe(imp, {}, {bidderRequest: {fledgeEnabled: true}});
|
|
116
|
+
expect(imp.ext.ae).to.equal(false);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
describe('parseExtPrebidFledge', () => {
|
|
120
|
+
function packageConfigs(configs) {
|
|
121
|
+
return {
|
|
122
|
+
ext: {
|
|
123
|
+
prebid: {
|
|
124
|
+
fledge: {
|
|
125
|
+
auctionconfigs: configs
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function generateImpCtx(fledgeFlags) {
|
|
133
|
+
return Object.fromEntries(Object.entries(fledgeFlags).map(([impid, fledgeEnabled]) => [impid, {imp: {ext: {ae: fledgeEnabled}}}]));
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function generateCfg(impid, ...ids) {
|
|
137
|
+
return ids.map((id) => ({impid, config: {id}}));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function extractResult(ctx) {
|
|
141
|
+
return Object.fromEntries(
|
|
142
|
+
Object.entries(ctx)
|
|
143
|
+
.map(([impid, ctx]) => [impid, ctx.fledgeConfigs?.map(cfg => cfg.config.id)])
|
|
144
|
+
.filter(([_, val]) => val != null)
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
it('should collect fledge configs by imp', () => {
|
|
149
|
+
const ctx = {
|
|
150
|
+
impContext: generateImpCtx({e1: 1, e2: 1, d1: 0})
|
|
151
|
+
};
|
|
152
|
+
const resp = packageConfigs(
|
|
153
|
+
generateCfg('e1', 1, 2, 3)
|
|
154
|
+
.concat(generateCfg('e2', 4)
|
|
155
|
+
.concat(generateCfg('d1', 5, 6)))
|
|
156
|
+
);
|
|
157
|
+
parseExtPrebidFledge({}, resp, ctx);
|
|
158
|
+
expect(extractResult(ctx.impContext)).to.eql({
|
|
159
|
+
e1: [1, 2, 3],
|
|
160
|
+
e2: [4],
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
it('should not choke if fledge config references unknown imp', () => {
|
|
164
|
+
const ctx = {impContext: generateImpCtx({i: 1})};
|
|
165
|
+
const resp = packageConfigs(generateCfg('unknown', 1));
|
|
166
|
+
parseExtPrebidFledge({}, resp, ctx);
|
|
167
|
+
expect(extractResult(ctx.impContext)).to.eql({});
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe('setResponseFledgeConfigs', () => {
|
|
171
|
+
it('should set fledgeAuctionConfigs paired with their corresponding bid id', () => {
|
|
172
|
+
const ctx = {
|
|
173
|
+
impContext: {
|
|
174
|
+
1: {
|
|
175
|
+
bidRequest: {bidId: 'bid1'},
|
|
176
|
+
fledgeConfigs: [{config: {id: 1}}, {config: {id: 2}}]
|
|
177
|
+
},
|
|
178
|
+
2: {
|
|
179
|
+
bidRequest: {bidId: 'bid2'},
|
|
180
|
+
fledgeConfigs: [{config: {id: 3}}]
|
|
181
|
+
},
|
|
182
|
+
3: {
|
|
183
|
+
bidRequest: {bidId: 'bid3'}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
const resp = {};
|
|
188
|
+
setResponseFledgeConfigs(resp, {}, ctx);
|
|
189
|
+
expect(resp.fledgeAuctionConfigs).to.eql([
|
|
190
|
+
{bidId: 'bid1', config: {id: 1}},
|
|
191
|
+
{bidId: 'bid1', config: {id: 2}},
|
|
192
|
+
{bidId: 'bid2', config: {id: 3}},
|
|
193
|
+
]);
|
|
194
|
+
});
|
|
195
|
+
it('should not set fledgeAuctionConfigs if none exist', () => {
|
|
196
|
+
const resp = {};
|
|
197
|
+
setResponseFledgeConfigs(resp, {}, {
|
|
198
|
+
impContext: {
|
|
199
|
+
1: {
|
|
200
|
+
fledgeConfigs: []
|
|
201
|
+
},
|
|
202
|
+
2: {}
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
expect(resp).to.eql({});
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
});
|