prebid.js 8.44.0 → 8.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/README.md +7 -1
- package/creative/constants.js +7 -7
- package/creative/renderers/display/constants.js +2 -2
- package/creative/renderers/native/constants.js +2 -2
- package/dist/33acrossAnalyticsAdapter.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/BTBidAdapter.js +1 -1
- package/dist/adWMGAnalyticsAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.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/adkernelBidAdapter.js +1 -1
- package/dist/adlooxAdServerVideo.js +1 -1
- package/dist/adlooxAnalyticsAdapter.js +1 -1
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adomikAnalyticsAdapter.js +1 -1
- package/dist/adpod.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adstirBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adxpremiumAnalyticsAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/agmaAnalyticsAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/analyticsAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/asteriobidAnalyticsAdapter.js +1 -1
- package/dist/atsAnalyticsAdapter.js +1 -1
- package/dist/automatadAnalyticsAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidViewability.js +1 -1
- package/dist/bidViewabilityIO.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/brandmetricsRtdProvider.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.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/chunk-core.js +1 -1
- package/dist/chunk-paapi.js +1 -1
- package/dist/cleanioRtdProvider.js +1 -1
- package/dist/concertAnalyticsAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/confiantRtdProvider.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagementUsp.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/creative-renderer-native.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailymotionBidAdapter.js +1 -0
- package/dist/datablocksAnalyticsAdapter.js +1 -1
- package/dist/datawrkzBidAdapter.js +1 -1
- package/dist/debugging-standalone.js +1 -1
- package/dist/debugging.js +1 -1
- package/dist/dependencies.json +3 -3
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dsaControl.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eplanningAnalyticsAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/gdprEnforcement.js +1 -1
- package/dist/genericAnalyticsAdapter.js +1 -1
- package/dist/geoedgeRtdProvider.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronAnalyticsAdapter.js +1 -1
- package/dist/holidBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/illuminBidAdapter.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/instreamTracking.js +1 -1
- package/dist/invisiblyAnalyticsAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoAnalyticsAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kimberliteBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentAnalyticsAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/livewrappedAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luceadBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafilterRtdProvider.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/missenaBidAdapter.js +1 -1
- package/dist/multibid.js +1 -1
- package/dist/neuwoRtdProvider.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidAnalyticsAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +237 -235
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openwebBidAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/optimonAnalyticsAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/oxxionAnalyticsAdapter.js +1 -1
- package/dist/oxxionRtdProvider.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pbsExtensions.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pgamsspBidAdapter.js +1 -1
- package/dist/pianoDmpAnalyticsAdapter.js +1 -1
- package/dist/pirIdSystem.js +1 -0
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
- package/dist/priceFloors.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/publirBidAdapter.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubperfAnalyticsAdapter.js +1 -1
- package/dist/pubstackAnalyticsAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pulsepointAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/qortexRtdProvider.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevantAnalyticsAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rivrAnalyticsAdapter.js +1 -1
- package/dist/roxotAnalyticsAdapter.js +1 -1
- package/dist/rtdModule.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/s2sTesting.js +1 -1
- package/dist/scaleableAnalyticsAdapter.js +1 -1
- package/dist/schain.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/shinezRtbBidAdapter.js +1 -1
- package/dist/sigmoidAnalyticsAdapter.js +1 -1
- package/dist/sizeMapping.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/sonobiAnalyticsAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/staqAnalyticsAdapter.js +1 -1
- package/dist/stnBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tagorasBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/themoneytizerBidAdapter.js +1 -1
- package/dist/topicsFpdModule.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videoModule.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.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/yandexAnalyticsAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/yuktamediaAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/gulpfile.js +9 -1
- package/integrationExamples/gpt/adnuntius_example.html +7 -1
- package/integrationExamples/gpt/azerionedgeRtdProvider_example.html +3 -3
- package/integrationExamples/gpt/top-level-paapi/decisionLogic.js +57 -0
- package/integrationExamples/gpt/top-level-paapi/tl_paapi_example.html +188 -0
- package/integrationExamples/gpt/x-domain/creative.html +1 -1
- package/libraries/analyticsAdapter/AnalyticsAdapter.js +4 -4
- package/libraries/creative-renderer-native/renderer.js +1 -1
- package/modules/33acrossAnalyticsAdapter.js +2 -4
- package/modules/33acrossIdSystem.js +1 -1
- package/modules/adWMGAnalyticsAdapter.js +9 -11
- package/modules/adagioAnalyticsAdapter.js +8 -8
- package/modules/adkernelAdnAnalyticsAdapter.js +8 -8
- package/modules/adkernelBidAdapter.js +9 -3
- package/modules/adlooxAdServerVideo.js +2 -2
- package/modules/adlooxAnalyticsAdapter.js +4 -4
- package/modules/adnuntiusBidAdapter.js +49 -31
- package/modules/adomikAnalyticsAdapter.js +7 -7
- package/modules/adpod.js +3 -3
- package/modules/adxcgAnalyticsAdapter.js +10 -10
- package/modules/adxpremiumAnalyticsAdapter.js +8 -10
- package/modules/agmaAnalyticsAdapter.js +2 -6
- package/modules/appierAnalyticsAdapter.js +5 -7
- package/modules/asteriobidAnalyticsAdapter.js +14 -14
- package/modules/atsAnalyticsAdapter.js +4 -4
- package/modules/automatadAnalyticsAdapter.js +20 -20
- package/modules/azerionedgeRtdProvider.md +4 -2
- package/modules/bidViewability.js +3 -3
- package/modules/bidViewabilityIO.js +3 -3
- package/modules/bidwatchAnalyticsAdapter.js +7 -9
- package/modules/brandmetricsRtdProvider.js +6 -6
- package/modules/browsiRtdProvider.js +3 -3
- package/modules/byDataAnalyticsAdapter.js +3 -3
- package/modules/cleanioRtdProvider.js +3 -3
- package/modules/concertAnalyticsAdapter.js +5 -7
- package/modules/confiantRtdProvider.js +2 -2
- package/modules/conversantAnalyticsAdapter.js +2 -4
- package/modules/criteoBidAdapter.js +51 -8
- package/modules/currency.js +7 -7
- package/modules/dailymotionBidAdapter.js +139 -0
- package/modules/dailymotionBidAdapter.md +140 -0
- package/modules/datawrkzBidAdapter.js +4 -4
- package/modules/debugging/pbsInterceptor.js +2 -2
- package/modules/dfpAdServerVideo.js +2 -2
- package/modules/dsaControl.js +5 -5
- package/modules/eplanningAnalyticsAdapter.js +8 -8
- package/modules/fintezaAnalyticsAdapter.js +5 -5
- package/modules/gdprEnforcement.js +3 -3
- package/modules/geoedgeRtdProvider.js +2 -2
- package/modules/greenbidsAnalyticsAdapter.js +13 -10
- package/modules/greenbidsRtdProvider.js +2 -2
- package/modules/growthCodeAnalyticsAdapter.js +14 -14
- package/modules/hadronAnalyticsAdapter.js +14 -14
- package/modules/holidBidAdapter.js +2 -2
- package/modules/id5AnalyticsAdapter.js +7 -9
- package/modules/improvedigitalBidAdapter.js +2 -1
- package/modules/insticatorBidAdapter.js +137 -27
- package/modules/instreamTracking.js +4 -4
- package/modules/invisiblyAnalyticsAdapter.js +15 -17
- package/modules/ixBidAdapter.js +3 -3
- package/modules/kargoAnalyticsAdapter.js +3 -3
- package/modules/kargoBidAdapter.js +5 -11
- package/modules/konduitAnalyticsAdapter.js +13 -13
- package/modules/liveIntentAnalyticsAdapter.js +2 -2
- package/modules/livewrappedAnalyticsAdapter.js +10 -10
- package/modules/magniteAnalyticsAdapter.js +25 -23
- package/modules/malltvAnalyticsAdapter.js +4 -6
- package/modules/mediafilterRtdProvider.js +2 -2
- package/modules/medianetAnalyticsAdapter.js +12 -12
- package/modules/medianetBidAdapter.js +1 -1
- package/modules/multibid/index.js +2 -2
- package/modules/neuwoRtdProvider.js +2 -2
- package/modules/nextMillenniumBidAdapter.js +4 -4
- package/modules/nobidAnalyticsAdapter.js +9 -11
- package/modules/ooloAnalyticsAdapter.js +2 -2
- package/modules/oxxionAnalyticsAdapter.js +7 -9
- package/modules/paapi.js +20 -6
- package/modules/permutiveRtdProvider.js +21 -2
- package/modules/pgamsspBidAdapter.js +26 -3
- package/modules/pirIdSystem.js +62 -0
- package/modules/pirIdSystem.md +27 -0
- package/modules/prebidServerBidAdapter/index.js +8 -8
- package/modules/prebidServerBidAdapter/ortbConverter.js +3 -3
- package/modules/prebidmanagerAnalyticsAdapter.js +14 -14
- package/modules/priceFloors.js +10 -5
- package/modules/pubmaticAnalyticsAdapter.js +32 -22
- package/modules/pubmaticBidAdapter.js +1 -17
- package/modules/pubwiseAnalyticsAdapter.js +11 -11
- package/modules/pubxaiAnalyticsAdapter.js +6 -6
- package/modules/qortexRtdProvider.js +2 -2
- package/modules/roxotAnalyticsAdapter.js +8 -10
- package/modules/rtdModule/index.js +7 -7
- package/modules/scaleableAnalyticsAdapter.js +5 -5
- package/modules/seedtagBidAdapter.js +12 -3
- package/modules/sigmoidAnalyticsAdapter.js +7 -7
- package/modules/smaatoBidAdapter.js +1 -2
- package/modules/sonobiAnalyticsAdapter.js +10 -12
- package/modules/sovrnAnalyticsAdapter.js +7 -9
- package/modules/sovrnBidAdapter.js +1 -1
- package/modules/staqAnalyticsAdapter.js +9 -9
- package/modules/terceptAnalyticsAdapter.js +7 -7
- package/modules/topicsFpdModule.js +3 -0
- package/modules/topicsFpdModule.md +4 -0
- package/modules/ucfunnelAnalyticsAdapter.js +5 -7
- package/modules/userId/index.js +3 -3
- package/modules/videoModule/index.js +4 -4
- package/modules/yandexAnalyticsAdapter.js +2 -2
- package/modules/yieldoneAnalyticsAdapter.js +7 -7
- package/modules/yuktamediaAnalyticsAdapter.js +9 -9
- package/modules/zeta_global_sspAnalyticsAdapter.js +5 -5
- package/modules/zeta_global_sspBidAdapter.js +8 -1
- package/package.json +1 -1
- package/src/adRendering.js +15 -15
- package/src/adUnits.js +9 -21
- package/src/adapterManager.js +23 -13
- package/src/adapters/bidderFactory.js +8 -8
- package/src/auction.js +26 -28
- package/src/auctionManager.js +4 -4
- package/src/bidderSettings.js +2 -2
- package/src/config.js +2 -2
- package/src/constants.js +190 -0
- package/src/events.js +3 -3
- package/src/native.js +6 -8
- package/src/prebid.js +6 -10
- package/src/secureCreatives.js +5 -5
- package/src/targeting.js +13 -13
- package/src/utils.js +4 -4
- package/test/fixtures/fixtures.js +44 -44
- package/test/helpers/analytics.js +6 -6
- package/test/spec/AnalyticsAdapter_spec.js +3 -3
- package/test/spec/auctionmanager_spec.js +82 -82
- package/test/spec/modules/33acrossAnalyticsAdapter_spec.js +1 -2
- package/test/spec/modules/33acrossIdSystem_spec.js +3 -3
- package/test/spec/modules/adWMGAnalyticsAdapter_spec.js +14 -14
- package/test/spec/modules/adagioAnalyticsAdapter_spec.js +26 -26
- package/test/spec/modules/adkernelAdnAnalytics_spec.js +6 -6
- package/test/spec/modules/adkernelBidAdapter_spec.js +9 -4
- package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +6 -6
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +8 -5
- package/test/spec/modules/adomikAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/adxcgAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/agmaAnalyticsAdapter_spec.js +14 -14
- package/test/spec/modules/appierAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/asteriobidAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/atsAnalyticsAdapter_spec.js +8 -8
- package/test/spec/modules/automatadAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/bidViewabilityIO_spec.js +2 -2
- package/test/spec/modules/bidViewability_spec.js +4 -4
- package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +7 -6
- package/test/spec/modules/byDataAnalyticsAdapter_spec.js +5 -4
- package/test/spec/modules/cleanioRtdProvider_spec.js +6 -6
- package/test/spec/modules/concertAnalyticsAdapter_spec.js +7 -6
- package/test/spec/modules/confiantRtdProvider_spec.js +2 -2
- package/test/spec/modules/conversantAnalyticsAdapter_spec.js +61 -61
- package/test/spec/modules/criteoBidAdapter_spec.js +111 -5
- package/test/spec/modules/currency_spec.js +6 -6
- package/test/spec/modules/dailymotionBidAdapter_spec.js +369 -0
- package/test/spec/modules/dsaControl_spec.js +4 -4
- package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +20 -13
- package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +5 -5
- package/test/spec/modules/genericAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/geoedgeRtdProvider_spec.js +37 -37
- package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +15 -2
- package/test/spec/modules/greenbidsRtdProvider_spec.js +2 -2
- package/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/hadronAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/id5AnalyticsAdapter_spec.js +5 -5
- package/test/spec/modules/id5IdSystem_spec.js +2 -2
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -3
- package/test/spec/modules/insticatorBidAdapter_spec.js +275 -22
- package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +40 -40
- package/test/spec/modules/kargoAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/konduitAnalyticsAdapter_spec.js +13 -13
- package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +1 -1
- package/test/spec/modules/liveIntentAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +15 -20
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +31 -15
- package/test/spec/modules/malltvAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/mediafilterRtdProvider_spec.js +2 -2
- package/test/spec/modules/medianetAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/nobidAnalyticsAdapter_spec.js +23 -23
- package/test/spec/modules/ooloAnalyticsAdapter_spec.js +33 -33
- package/test/spec/modules/optimonAnalyticsAdapter_spec.js +0 -1
- package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/paapi_spec.js +40 -14
- package/test/spec/modules/permutiveRtdProvider_spec.js +29 -1
- package/test/spec/modules/pgamsspBidAdapter_spec.js +50 -4
- package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +9 -9
- package/test/spec/modules/pirIdSystem_spec.js +77 -0
- package/test/spec/modules/prebidServerBidAdapter_spec.js +7 -7
- package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/priceFloors_spec.js +6 -5
- package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +12 -14
- package/test/spec/modules/pubmaticBidAdapter_spec.js +1 -1
- package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +0 -1
- package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +14 -14
- package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/qortexRtdProvider_spec.js +2 -2
- package/test/spec/modules/realTimeDataModule_spec.js +9 -9
- package/test/spec/modules/relevantAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/relevantdigitalBidAdapter_spec.js +2 -2
- package/test/spec/modules/rivrAnalyticsAdapter_spec.js +4 -4
- package/test/spec/modules/roxotAnalyticsAdapter_spec.js +25 -25
- package/test/spec/modules/scaleableAnalyticsAdapter_spec.js +5 -5
- package/test/spec/modules/seedtagBidAdapter_spec.js +56 -3
- package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +0 -1
- package/test/spec/modules/sonobiAnalyticsAdapter_spec.js +8 -7
- package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/sovrnBidAdapter_spec.js +5 -5
- package/test/spec/modules/staqAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/terceptAnalyticsAdapter_spec.js +7 -7
- package/test/spec/modules/trionBidAdapter_spec.js +1 -1
- package/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/userId_spec.js +4 -4
- package/test/spec/modules/videoModule/pbVideo_spec.js +3 -3
- package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +22 -21
- package/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js +33 -32
- package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +8 -8
- package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +1 -1
- package/test/spec/native_spec.js +19 -19
- package/test/spec/unit/adRendering_spec.js +14 -14
- package/test/spec/unit/adUnits_spec.js +1 -1
- package/test/spec/unit/core/adapterManager_spec.js +99 -59
- package/test/spec/unit/core/bidderFactory_spec.js +6 -6
- package/test/spec/unit/core/targeting_spec.js +47 -47
- package/test/spec/unit/pbjs_api_spec.js +81 -81
- package/test/spec/unit/secureCreatives_spec.js +27 -27
- package/test/spec/utils_spec.js +2 -2
- package/src/constants.json +0 -196
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
getServerTestingsAds,
|
|
13
13
|
getBidRequests
|
|
14
14
|
} from 'test/fixtures/fixtures.js';
|
|
15
|
-
import
|
|
15
|
+
import { EVENTS, S2S } from 'src/constants.js';
|
|
16
16
|
import * as utils from 'src/utils.js';
|
|
17
17
|
import { config } from 'src/config.js';
|
|
18
18
|
import { registerBidder } from 'src/adapters/bidderFactory.js';
|
|
@@ -24,11 +24,13 @@ import {auctionManager} from '../../../../src/auctionManager.js';
|
|
|
24
24
|
import {GDPR_GVLIDS} from '../../../../src/consentHandler.js';
|
|
25
25
|
import {MODULE_TYPE_ANALYTICS, MODULE_TYPE_BIDDER} from '../../../../src/activities/modules.js';
|
|
26
26
|
import {ACTIVITY_FETCH_BIDS, ACTIVITY_REPORT_ANALYTICS} from '../../../../src/activities/activities.js';
|
|
27
|
+
import {reset as resetAdUnitCounters} from '../../../../src/adUnits.js';
|
|
28
|
+
import {deepClone} from 'src/utils.js';
|
|
27
29
|
var events = require('../../../../src/events');
|
|
28
30
|
|
|
29
31
|
const CONFIG = {
|
|
30
32
|
enabled: true,
|
|
31
|
-
endpoint:
|
|
33
|
+
endpoint: S2S.DEFAULT_ENDPOINT,
|
|
32
34
|
timeout: 1000,
|
|
33
35
|
maxBids: 1,
|
|
34
36
|
adapter: 'prebidServer',
|
|
@@ -172,7 +174,7 @@ describe('adapterManager tests', function () {
|
|
|
172
174
|
// function to count BID_REQUESTED events
|
|
173
175
|
let cnt = 0;
|
|
174
176
|
let count = () => cnt++;
|
|
175
|
-
events.on(
|
|
177
|
+
events.on(EVENTS.BID_REQUESTED, count);
|
|
176
178
|
let bidRequests = [{
|
|
177
179
|
'bidderCode': 'appnexus',
|
|
178
180
|
'auctionId': '1863e370099523',
|
|
@@ -207,7 +209,7 @@ describe('adapterManager tests', function () {
|
|
|
207
209
|
adapterManager.callBids(adUnits, bidRequests, () => {}, () => {});
|
|
208
210
|
expect(cnt).to.equal(1);
|
|
209
211
|
sinon.assert.calledOnce(appnexusAdapterMock.callBids);
|
|
210
|
-
events.off(
|
|
212
|
+
events.off(EVENTS.BID_REQUESTED, count);
|
|
211
213
|
});
|
|
212
214
|
|
|
213
215
|
it('should give bidders access to bidder-specific config', function(done) {
|
|
@@ -390,7 +392,7 @@ describe('adapterManager tests', function () {
|
|
|
390
392
|
});
|
|
391
393
|
|
|
392
394
|
it('should NOT call onBidWon when the bid is S2S', () => {
|
|
393
|
-
bids[0].src =
|
|
395
|
+
bids[0].src = S2S.SRC
|
|
394
396
|
adapterManager.callBidWonBidder(bids[0].bidder, bids[0], adUnits);
|
|
395
397
|
sinon.assert.notCalled(criteoSpec.onBidWon);
|
|
396
398
|
})
|
|
@@ -407,7 +409,7 @@ describe('adapterManager tests', function () {
|
|
|
407
409
|
});
|
|
408
410
|
|
|
409
411
|
it('should NOT call onSetTargeting when bid is S2S', () => {
|
|
410
|
-
bids[0].src =
|
|
412
|
+
bids[0].src = S2S.SRC;
|
|
411
413
|
adapterManager.callSetTargetingBidder(bids[0].bidder, bids[0], adUnits);
|
|
412
414
|
sinon.assert.notCalled(criteoSpec.onSetTargeting);
|
|
413
415
|
})
|
|
@@ -421,7 +423,7 @@ describe('adapterManager tests', function () {
|
|
|
421
423
|
sinon.assert.called(criteoSpec.onBidViewable);
|
|
422
424
|
});
|
|
423
425
|
it('should NOT call onBidViewable when bid is S2S', () => {
|
|
424
|
-
bids[0].src =
|
|
426
|
+
bids[0].src = S2S.SRC;
|
|
425
427
|
adapterManager.callBidViewableBidder(bids[0].bidder, bids[0]);
|
|
426
428
|
sinon.assert.notCalled(criteoSpec.onBidViewable);
|
|
427
429
|
})
|
|
@@ -649,11 +651,11 @@ describe('adapterManager tests', function () {
|
|
|
649
651
|
beforeEach(function () {
|
|
650
652
|
prebidServerAdapterMock.callBids.reset();
|
|
651
653
|
cnt = 0;
|
|
652
|
-
events.on(
|
|
654
|
+
events.on(EVENTS.BID_REQUESTED, count);
|
|
653
655
|
});
|
|
654
656
|
|
|
655
657
|
afterEach(function () {
|
|
656
|
-
events.off(
|
|
658
|
+
events.off(EVENTS.BID_REQUESTED, count);
|
|
657
659
|
});
|
|
658
660
|
|
|
659
661
|
it('should fire for s2s requests', function () {
|
|
@@ -1037,11 +1039,11 @@ describe('adapterManager tests', function () {
|
|
|
1037
1039
|
beforeEach(function () {
|
|
1038
1040
|
prebidServerAdapterMock.callBids.reset();
|
|
1039
1041
|
cnt = 0;
|
|
1040
|
-
events.on(
|
|
1042
|
+
events.on(EVENTS.BID_REQUESTED, count);
|
|
1041
1043
|
});
|
|
1042
1044
|
|
|
1043
1045
|
afterEach(function () {
|
|
1044
|
-
events.off(
|
|
1046
|
+
events.off(EVENTS.BID_REQUESTED, count);
|
|
1045
1047
|
});
|
|
1046
1048
|
|
|
1047
1049
|
it('should fire for s2s requests', function () {
|
|
@@ -1675,12 +1677,24 @@ describe('adapterManager tests', function () {
|
|
|
1675
1677
|
describe('makeBidRequests', function () {
|
|
1676
1678
|
let adUnits;
|
|
1677
1679
|
beforeEach(function () {
|
|
1680
|
+
resetAdUnitCounters();
|
|
1678
1681
|
adUnits = utils.deepClone(getAdUnits()).map(adUnit => {
|
|
1679
1682
|
adUnit.bids = adUnit.bids.filter(bid => includes(['appnexus', 'rubicon'], bid.bidder));
|
|
1680
1683
|
return adUnit;
|
|
1681
1684
|
})
|
|
1682
1685
|
});
|
|
1683
1686
|
|
|
1687
|
+
function makeBidRequests(au = adUnits) {
|
|
1688
|
+
return adapterManager.makeBidRequests(
|
|
1689
|
+
au,
|
|
1690
|
+
Date.now(),
|
|
1691
|
+
utils.getUniqueIdentifierStr(),
|
|
1692
|
+
function callback() {
|
|
1693
|
+
},
|
|
1694
|
+
[]
|
|
1695
|
+
);
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1684
1698
|
if (FEATURES.NATIVE) {
|
|
1685
1699
|
it('should add nativeParams to adUnits after BEFORE_REQUEST_BIDS', () => {
|
|
1686
1700
|
function beforeReqBids(adUnits) {
|
|
@@ -1691,16 +1705,9 @@ describe('adapterManager tests', function () {
|
|
|
1691
1705
|
})
|
|
1692
1706
|
}
|
|
1693
1707
|
|
|
1694
|
-
events.on(
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
Date.now(),
|
|
1698
|
-
utils.getUniqueIdentifierStr(),
|
|
1699
|
-
function callback() {
|
|
1700
|
-
},
|
|
1701
|
-
[]
|
|
1702
|
-
);
|
|
1703
|
-
events.off(CONSTANTS.EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids);
|
|
1708
|
+
events.on(EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids);
|
|
1709
|
+
makeBidRequests();
|
|
1710
|
+
events.off(EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids);
|
|
1704
1711
|
expect(adUnits.map((u) => u.nativeParams).some(i => i == null)).to.be.false;
|
|
1705
1712
|
});
|
|
1706
1713
|
}
|
|
@@ -1708,13 +1715,7 @@ describe('adapterManager tests', function () {
|
|
|
1708
1715
|
it('should make separate bidder request objects for each bidder', () => {
|
|
1709
1716
|
adUnits = [utils.deepClone(getAdUnits()[0])];
|
|
1710
1717
|
|
|
1711
|
-
let bidRequests =
|
|
1712
|
-
adUnits,
|
|
1713
|
-
Date.now(),
|
|
1714
|
-
utils.getUniqueIdentifierStr(),
|
|
1715
|
-
function callback() {},
|
|
1716
|
-
[]
|
|
1717
|
-
);
|
|
1718
|
+
let bidRequests = makeBidRequests();
|
|
1718
1719
|
|
|
1719
1720
|
let sizes1 = bidRequests[1].bids[0].sizes;
|
|
1720
1721
|
let sizes2 = bidRequests[0].bids[0].sizes;
|
|
@@ -1725,6 +1726,70 @@ describe('adapterManager tests', function () {
|
|
|
1725
1726
|
expect(sizes1).not.to.deep.equal(sizes2);
|
|
1726
1727
|
});
|
|
1727
1728
|
|
|
1729
|
+
it('should set and increment bidRequestsCounter', () => {
|
|
1730
|
+
const [au1, au2] = adUnits;
|
|
1731
|
+
makeBidRequests([au1, au2]).flatMap(br => br.bids).forEach(bid => {
|
|
1732
|
+
expect(bid.bidRequestsCount).to.eql(1);
|
|
1733
|
+
})
|
|
1734
|
+
makeBidRequests([au1]);
|
|
1735
|
+
makeBidRequests([au1, au2]).flatMap(br => br.bids).forEach(bid => {
|
|
1736
|
+
expect(bid.bidRequestsCount).to.eql(bid.adUnitCode === au1.code ? 3 : 2);
|
|
1737
|
+
});
|
|
1738
|
+
})
|
|
1739
|
+
|
|
1740
|
+
describe('bidderRequestsCounter', () => {
|
|
1741
|
+
it('should be set and incremented', () => {
|
|
1742
|
+
const [au1, au2] = adUnits;
|
|
1743
|
+
makeBidRequests([au1, au2]).flatMap(br => br.bids).forEach(bid => {
|
|
1744
|
+
expect(bid.bidderRequestsCount).to.eql(1);
|
|
1745
|
+
});
|
|
1746
|
+
const au3 = {
|
|
1747
|
+
...au2,
|
|
1748
|
+
bids: [
|
|
1749
|
+
au2.bids[0]
|
|
1750
|
+
]
|
|
1751
|
+
}
|
|
1752
|
+
makeBidRequests([au3]);
|
|
1753
|
+
const counts = Object.fromEntries(
|
|
1754
|
+
makeBidRequests([au1, au2])
|
|
1755
|
+
.map(br => [br.bidderCode, Object.fromEntries(br.bids.map(bid => [bid.adUnitCode, bid.bidderRequestsCount]))])
|
|
1756
|
+
);
|
|
1757
|
+
expect(counts).to.eql({
|
|
1758
|
+
rubicon: {
|
|
1759
|
+
[au2.code]: 2
|
|
1760
|
+
},
|
|
1761
|
+
appnexus: {
|
|
1762
|
+
[au1.code]: 2,
|
|
1763
|
+
[au2.code]: 3
|
|
1764
|
+
},
|
|
1765
|
+
});
|
|
1766
|
+
});
|
|
1767
|
+
|
|
1768
|
+
it('should NOT be incremented for s2s bids', () => {
|
|
1769
|
+
config.setConfig({
|
|
1770
|
+
s2sConfig: {
|
|
1771
|
+
enabled: true,
|
|
1772
|
+
adapter: 'rubicon',
|
|
1773
|
+
bidders: ['appnexus']
|
|
1774
|
+
}
|
|
1775
|
+
});
|
|
1776
|
+
function expectBidderCounts(bidders) {
|
|
1777
|
+
makeBidRequests().forEach(br => {
|
|
1778
|
+
br.bids.forEach(bid => expect(bid.bidderRequestsCount).to.exist.and.eql(bidders[br.bidderCode]));
|
|
1779
|
+
})
|
|
1780
|
+
}
|
|
1781
|
+
expectBidderCounts({
|
|
1782
|
+
appnexus: 0,
|
|
1783
|
+
rubicon: 1
|
|
1784
|
+
});
|
|
1785
|
+
config.resetConfig();
|
|
1786
|
+
expectBidderCounts({
|
|
1787
|
+
appnexus: 1,
|
|
1788
|
+
rubicon: 2
|
|
1789
|
+
})
|
|
1790
|
+
})
|
|
1791
|
+
});
|
|
1792
|
+
|
|
1728
1793
|
describe('and activity controls', () => {
|
|
1729
1794
|
let redactOrtb2;
|
|
1730
1795
|
let redactBidRequest;
|
|
@@ -1757,13 +1822,7 @@ describe('adapterManager tests', function () {
|
|
|
1757
1822
|
componentType === MODULE_TYPE_BIDDER &&
|
|
1758
1823
|
allowed.includes(componentName);
|
|
1759
1824
|
});
|
|
1760
|
-
let reqs =
|
|
1761
|
-
adUnits,
|
|
1762
|
-
Date.now(),
|
|
1763
|
-
utils.getUniqueIdentifierStr(),
|
|
1764
|
-
function callback() {},
|
|
1765
|
-
[]
|
|
1766
|
-
);
|
|
1825
|
+
let reqs = makeBidRequests();
|
|
1767
1826
|
const bidders = Array.from(new Set(reqs.flatMap(br => br.bids).map(bid => bid.bidder)).keys());
|
|
1768
1827
|
expect(bidders).to.have.members(allowed);
|
|
1769
1828
|
});
|
|
@@ -1773,13 +1832,7 @@ describe('adapterManager tests', function () {
|
|
|
1773
1832
|
adUnits = [
|
|
1774
1833
|
{code: 'one', bids: [{bidder: 'mockBidder1'}]}
|
|
1775
1834
|
];
|
|
1776
|
-
let reqs =
|
|
1777
|
-
adUnits,
|
|
1778
|
-
Date.now(),
|
|
1779
|
-
utils.getUniqueIdentifierStr(),
|
|
1780
|
-
function callback() {},
|
|
1781
|
-
[]
|
|
1782
|
-
);
|
|
1835
|
+
let reqs = makeBidRequests();
|
|
1783
1836
|
sinon.assert.calledWith(redactBidRequest, reqs[0].bids[0]);
|
|
1784
1837
|
sinon.assert.calledWith(redactOrtb2, reqs[0].ortb2);
|
|
1785
1838
|
})
|
|
@@ -1812,13 +1865,7 @@ describe('adapterManager tests', function () {
|
|
|
1812
1865
|
{code: 'two', bids: [{module: 'pbsBidAdapter', params: {configName: 'mock1'}}, {module: 'pbsBidAdapter', params: {configName: 'mock2'}}]}
|
|
1813
1866
|
]
|
|
1814
1867
|
dep.isAllowed.callsFake(({componentType}) => componentType !== 'bidder');
|
|
1815
|
-
let bidRequests =
|
|
1816
|
-
adUnits,
|
|
1817
|
-
Date.now(),
|
|
1818
|
-
utils.getUniqueIdentifierStr(),
|
|
1819
|
-
function callback() {},
|
|
1820
|
-
[]
|
|
1821
|
-
);
|
|
1868
|
+
let bidRequests = makeBidRequests();
|
|
1822
1869
|
expect(new Set(bidRequests.map(br => br.uniquePbsTid)).size).to.equal(3);
|
|
1823
1870
|
});
|
|
1824
1871
|
|
|
@@ -1835,14 +1882,7 @@ describe('adapterManager tests', function () {
|
|
|
1835
1882
|
}
|
|
1836
1883
|
];
|
|
1837
1884
|
dep.isAllowed.callsFake((_, {configName, componentName}) => !(componentName === 'pbsBidAdapter' && configName === 'mock1'));
|
|
1838
|
-
let bidRequests =
|
|
1839
|
-
adUnits,
|
|
1840
|
-
Date.now(),
|
|
1841
|
-
utils.getUniqueIdentifierStr(),
|
|
1842
|
-
function callback() {
|
|
1843
|
-
},
|
|
1844
|
-
[]
|
|
1845
|
-
);
|
|
1885
|
+
let bidRequests = makeBidRequests();
|
|
1846
1886
|
expect(new Set(bidRequests.map(br => br.uniquePbsTid)).size).to.eql(2)
|
|
1847
1887
|
});
|
|
1848
1888
|
});
|
|
@@ -2075,11 +2115,11 @@ describe('adapterManager tests', function () {
|
|
|
2075
2115
|
const ortb2Fragments = {};
|
|
2076
2116
|
const req = {
|
|
2077
2117
|
bidderCode: 'appnexus',
|
|
2078
|
-
src:
|
|
2118
|
+
src: S2S.SRC,
|
|
2079
2119
|
adUnitsS2SCopy: adUnits,
|
|
2080
2120
|
bids: [{
|
|
2081
2121
|
bidder: 'appnexus',
|
|
2082
|
-
src:
|
|
2122
|
+
src: S2S.SRC
|
|
2083
2123
|
}]
|
|
2084
2124
|
};
|
|
2085
2125
|
adapterManager.callBids(adUnits, [req], sinon.stub(), sinon.stub(), {request: sinon.stub(), done: sinon.stub()}, 1000, sinon.stub(), ortb2Fragments);
|
|
@@ -5,7 +5,7 @@ import {expect} from 'chai';
|
|
|
5
5
|
import {userSync} from 'src/userSync.js';
|
|
6
6
|
import * as utils from 'src/utils.js';
|
|
7
7
|
import {config} from 'src/config.js';
|
|
8
|
-
import
|
|
8
|
+
import { EVENTS } from 'src/constants.js';
|
|
9
9
|
import * as events from 'src/events.js';
|
|
10
10
|
import {hook} from '../../../../src/hook.js';
|
|
11
11
|
import {auctionManager} from '../../../../src/auctionManager.js';
|
|
@@ -552,7 +552,7 @@ describe('bidderFactory', () => {
|
|
|
552
552
|
|
|
553
553
|
expect(ajaxStub.calledTwice).to.equal(true);
|
|
554
554
|
expect(eventEmitterSpy.getCalls()
|
|
555
|
-
.filter(call => call.args[0] ===
|
|
555
|
+
.filter(call => call.args[0] === EVENTS.BEFORE_BIDDER_HTTP)
|
|
556
556
|
).to.length(2);
|
|
557
557
|
|
|
558
558
|
eventEmitterSpy.restore();
|
|
@@ -863,7 +863,7 @@ describe('bidderFactory', () => {
|
|
|
863
863
|
expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
|
|
864
864
|
expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
|
|
865
865
|
expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
|
|
866
|
-
sinon.assert.calledWith(eventEmitterStub,
|
|
866
|
+
sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
|
|
867
867
|
error: xhrErrorMock,
|
|
868
868
|
bidderRequest: MOCK_BIDS_REQUEST
|
|
869
869
|
});
|
|
@@ -889,7 +889,7 @@ describe('bidderFactory', () => {
|
|
|
889
889
|
expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
|
|
890
890
|
expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
|
|
891
891
|
expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
|
|
892
|
-
sinon.assert.calledWith(eventEmitterStub,
|
|
892
|
+
sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
|
|
893
893
|
error: xhrErrorMock,
|
|
894
894
|
bidderRequest: MOCK_BIDS_REQUEST
|
|
895
895
|
});
|
|
@@ -915,7 +915,7 @@ describe('bidderFactory', () => {
|
|
|
915
915
|
expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
|
|
916
916
|
expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
|
|
917
917
|
expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
|
|
918
|
-
sinon.assert.calledWith(eventEmitterStub,
|
|
918
|
+
sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
|
|
919
919
|
error: xhrErrorMock,
|
|
920
920
|
bidderRequest: MOCK_BIDS_REQUEST
|
|
921
921
|
});
|
|
@@ -941,7 +941,7 @@ describe('bidderFactory', () => {
|
|
|
941
941
|
expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
|
|
942
942
|
expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
|
|
943
943
|
expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
|
|
944
|
-
sinon.assert.calledWith(eventEmitterStub,
|
|
944
|
+
sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
|
|
945
945
|
error: xhrErrorMock,
|
|
946
946
|
bidderRequest: MOCK_BIDS_REQUEST
|
|
947
947
|
});
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from 'src/targeting.js';
|
|
8
8
|
import {config} from 'src/config.js';
|
|
9
9
|
import {createBidReceived} from 'test/fixtures/fixtures.js';
|
|
10
|
-
import
|
|
10
|
+
import { DEFAULT_TARGETING_KEYS, JSON_MAPPING, NATIVE_KEYS, STATUS, TARGETING_KEYS } from 'src/constants.js';
|
|
11
11
|
import {auctionManager} from 'src/auctionManager.js';
|
|
12
12
|
import * as utils from 'src/utils.js';
|
|
13
13
|
import {deepClone} from 'src/utils.js';
|
|
@@ -15,7 +15,7 @@ import {createBid} from '../../../../src/bidfactory.js';
|
|
|
15
15
|
import {hook} from '../../../../src/hook.js';
|
|
16
16
|
import {getHighestCpm} from '../../../../src/utils/reducers.js';
|
|
17
17
|
|
|
18
|
-
function mkBid(bid, status =
|
|
18
|
+
function mkBid(bid, status = STATUS.GOOD) {
|
|
19
19
|
return Object.assign(createBid(status), bid);
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -40,10 +40,10 @@ const sampleBid = {
|
|
|
40
40
|
'size': '300x250',
|
|
41
41
|
'adserverTargeting': {
|
|
42
42
|
'foobar': '300x250',
|
|
43
|
-
[
|
|
44
|
-
[
|
|
45
|
-
[
|
|
46
|
-
[
|
|
43
|
+
[TARGETING_KEYS.BIDDER]: 'rubicon',
|
|
44
|
+
[TARGETING_KEYS.AD_ID]: '148018fe5e',
|
|
45
|
+
[TARGETING_KEYS.PRICE_BUCKET]: '0.53',
|
|
46
|
+
[TARGETING_KEYS.DEAL]: '1234'
|
|
47
47
|
},
|
|
48
48
|
'dealId': '1234',
|
|
49
49
|
'netRevenue': true,
|
|
@@ -74,9 +74,9 @@ const bid2 = mkBid({
|
|
|
74
74
|
'size': '300x250',
|
|
75
75
|
'adserverTargeting': {
|
|
76
76
|
'foobar': '300x250',
|
|
77
|
-
[
|
|
78
|
-
[
|
|
79
|
-
[
|
|
77
|
+
[TARGETING_KEYS.BIDDER]: 'rubicon',
|
|
78
|
+
[TARGETING_KEYS.AD_ID]: '5454545',
|
|
79
|
+
[TARGETING_KEYS.PRICE_BUCKET]: '0.25'
|
|
80
80
|
},
|
|
81
81
|
'netRevenue': true,
|
|
82
82
|
'currency': 'USD',
|
|
@@ -104,9 +104,9 @@ const bid3 = mkBid({
|
|
|
104
104
|
'size': '300x600',
|
|
105
105
|
'adserverTargeting': {
|
|
106
106
|
'foobar': '300x600',
|
|
107
|
-
[
|
|
108
|
-
[
|
|
109
|
-
[
|
|
107
|
+
[TARGETING_KEYS.BIDDER]: 'rubicon',
|
|
108
|
+
[TARGETING_KEYS.AD_ID]: '48747745',
|
|
109
|
+
[TARGETING_KEYS.PRICE_BUCKET]: '0.75'
|
|
110
110
|
},
|
|
111
111
|
'netRevenue': true,
|
|
112
112
|
'currency': 'USD',
|
|
@@ -166,18 +166,18 @@ const nativeBid1 = mkBid({
|
|
|
166
166
|
'pbCg': '',
|
|
167
167
|
'size': '0x0',
|
|
168
168
|
'adserverTargeting': {
|
|
169
|
-
[
|
|
170
|
-
[
|
|
171
|
-
[
|
|
172
|
-
[
|
|
173
|
-
[
|
|
174
|
-
[
|
|
175
|
-
[
|
|
176
|
-
[
|
|
177
|
-
[
|
|
178
|
-
[
|
|
179
|
-
[
|
|
180
|
-
[
|
|
169
|
+
[TARGETING_KEYS.BIDDER]: 'appnexus',
|
|
170
|
+
[TARGETING_KEYS.AD_ID]: '591e7c9354b633',
|
|
171
|
+
[TARGETING_KEYS.PRICE_BUCKET]: '10.00',
|
|
172
|
+
[TARGETING_KEYS.SIZE]: '0x0',
|
|
173
|
+
[TARGETING_KEYS.SOURCE]: 'client',
|
|
174
|
+
[TARGETING_KEYS.FORMAT]: 'native',
|
|
175
|
+
[NATIVE_KEYS.title]: 'This is a Prebid Native Creative',
|
|
176
|
+
[NATIVE_KEYS.body]: 'This is a Prebid Native Creative. There are many like it, but this one is mine.',
|
|
177
|
+
[NATIVE_KEYS.sponsoredBy]: 'Prebid.org',
|
|
178
|
+
[NATIVE_KEYS.clickUrl]: 'http://prebid.org/dev-docs/show-native-ads.html',
|
|
179
|
+
[NATIVE_KEYS.image]: 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg',
|
|
180
|
+
[NATIVE_KEYS.icon]: 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png'
|
|
181
181
|
}
|
|
182
182
|
});
|
|
183
183
|
|
|
@@ -225,17 +225,17 @@ const nativeBid2 = mkBid({
|
|
|
225
225
|
'pbCg': '',
|
|
226
226
|
'size': '0x0',
|
|
227
227
|
'adserverTargeting': {
|
|
228
|
-
[
|
|
229
|
-
[
|
|
230
|
-
[
|
|
231
|
-
[
|
|
232
|
-
[
|
|
233
|
-
[
|
|
234
|
-
[
|
|
235
|
-
[
|
|
236
|
-
[
|
|
237
|
-
[
|
|
238
|
-
[
|
|
228
|
+
[TARGETING_KEYS.BIDDER]: 'dgads',
|
|
229
|
+
[TARGETING_KEYS.AD_ID]: '6e0aba55ed54e5',
|
|
230
|
+
[TARGETING_KEYS.PRICE_BUCKET]: '1.90',
|
|
231
|
+
[TARGETING_KEYS.SIZE]: '0x0',
|
|
232
|
+
[TARGETING_KEYS.SOURCE]: 'client',
|
|
233
|
+
[TARGETING_KEYS.FORMAT]: 'native',
|
|
234
|
+
[NATIVE_KEYS.image]: 'https://ads-tr.bigmining.com/img/300x250.png',
|
|
235
|
+
[NATIVE_KEYS.title]: 'Test Title',
|
|
236
|
+
[NATIVE_KEYS.body]: 'Test Description',
|
|
237
|
+
[NATIVE_KEYS.sponsoredBy]: 'test.com',
|
|
238
|
+
[NATIVE_KEYS.clickUrl]: 'http://prebid.org/'
|
|
239
239
|
}
|
|
240
240
|
});
|
|
241
241
|
|
|
@@ -351,7 +351,7 @@ describe('targeting tests', function () {
|
|
|
351
351
|
return [
|
|
352
352
|
{
|
|
353
353
|
'code': adUnitCode,
|
|
354
|
-
[
|
|
354
|
+
[JSON_MAPPING.ADSERVER_TARGETING]: adServerTargeting
|
|
355
355
|
}
|
|
356
356
|
];
|
|
357
357
|
});
|
|
@@ -489,7 +489,7 @@ describe('targeting tests', function () {
|
|
|
489
489
|
});
|
|
490
490
|
|
|
491
491
|
const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);
|
|
492
|
-
let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(
|
|
492
|
+
let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
|
|
493
493
|
|
|
494
494
|
expect(limitedBids.length).to.equal(1);
|
|
495
495
|
});
|
|
@@ -502,7 +502,7 @@ describe('targeting tests', function () {
|
|
|
502
502
|
});
|
|
503
503
|
|
|
504
504
|
const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);
|
|
505
|
-
let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(
|
|
505
|
+
let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
|
|
506
506
|
|
|
507
507
|
expect(limitedBids.length).to.equal(2);
|
|
508
508
|
});
|
|
@@ -515,7 +515,7 @@ describe('targeting tests', function () {
|
|
|
515
515
|
});
|
|
516
516
|
|
|
517
517
|
const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);
|
|
518
|
-
let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(
|
|
518
|
+
let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
|
|
519
519
|
|
|
520
520
|
expect(limitedBids.length).to.equal(2);
|
|
521
521
|
});
|
|
@@ -611,7 +611,7 @@ describe('targeting tests', function () {
|
|
|
611
611
|
beforeEach(function () {
|
|
612
612
|
bidsReceived = [bid1, bid2, nativeBid1, nativeBid2].map(deepClone);
|
|
613
613
|
bidsReceived.forEach((bid) => {
|
|
614
|
-
bid.adserverTargeting[
|
|
614
|
+
bid.adserverTargeting[TARGETING_KEYS.SOURCE] = 'test-source';
|
|
615
615
|
bid.adUnitCode = 'adunit';
|
|
616
616
|
if (winningBid == null || bid.cpm > winningBid.cpm) {
|
|
617
617
|
winningBid = bid;
|
|
@@ -642,7 +642,7 @@ describe('targeting tests', function () {
|
|
|
642
642
|
addTargetingKeys: ['SOURCE']
|
|
643
643
|
}
|
|
644
644
|
});
|
|
645
|
-
expect(targetingResult()).to.include.all.keys(...expandKey(
|
|
645
|
+
expect(targetingResult()).to.include.all.keys(...expandKey(TARGETING_KEYS.SOURCE));
|
|
646
646
|
});
|
|
647
647
|
|
|
648
648
|
it('should keep default and native keys', function() {
|
|
@@ -651,9 +651,9 @@ describe('targeting tests', function () {
|
|
|
651
651
|
addTargetingKeys: ['SOURCE']
|
|
652
652
|
}
|
|
653
653
|
});
|
|
654
|
-
const defaultKeys = new Set(Object.values(
|
|
654
|
+
const defaultKeys = new Set(Object.values(DEFAULT_TARGETING_KEYS));
|
|
655
655
|
if (FEATURES.NATIVE) {
|
|
656
|
-
Object.values(
|
|
656
|
+
Object.values(NATIVE_KEYS).forEach((k) => defaultKeys.add(k));
|
|
657
657
|
}
|
|
658
658
|
|
|
659
659
|
const expectedKeys = new Set();
|
|
@@ -670,8 +670,8 @@ describe('targeting tests', function () {
|
|
|
670
670
|
it('should not be allowed together with allowTargetingKeys', function () {
|
|
671
671
|
config.setConfig({
|
|
672
672
|
targetingControls: {
|
|
673
|
-
allowTargetingKeys: [
|
|
674
|
-
addTargetingKeys: [
|
|
673
|
+
allowTargetingKeys: [TARGETING_KEYS.BIDDER],
|
|
674
|
+
addTargetingKeys: [TARGETING_KEYS.SOURCE]
|
|
675
675
|
}
|
|
676
676
|
});
|
|
677
677
|
expect(targetingResult).to.throw();
|
|
@@ -849,12 +849,12 @@ describe('targeting tests', function () {
|
|
|
849
849
|
// we should only get the targeting data for the one requested adunit
|
|
850
850
|
expect(Object.keys(targeting).length).to.equal(1);
|
|
851
851
|
|
|
852
|
-
let sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(
|
|
852
|
+
let sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
|
|
853
853
|
// we shouldn't get more than 1 key for hb_pb_${bidder}
|
|
854
854
|
expect(sendAllBidCpm.length).to.equal(1);
|
|
855
855
|
|
|
856
856
|
// expect the winning CPM to be equal to the sendAllBidCPM
|
|
857
|
-
expect(targeting['/123456/header-bid-tag-0'][
|
|
857
|
+
expect(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET + '_rubicon']).to.deep.equal(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET]);
|
|
858
858
|
});
|
|
859
859
|
|
|
860
860
|
if (FEATURES.NATIVE) {
|