prebid.js 8.43.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/discoveryBidAdapter.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/jwplayerRtdProvider.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/limelightDigitalBidAdapter.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/loyalBidAdapter.js +1 -0
- 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 +242 -239
- 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/sirdataRtdProvider.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/integrationExamples/{gpt → realTimeData}/jwplayerRtdProvider_example.html +28 -42
- 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 +49 -46
- package/modules/adkernelAdnAnalyticsAdapter.js +8 -8
- package/modules/adkernelBidAdapter.js +23 -102
- package/modules/adlooxAdServerVideo.js +2 -2
- package/modules/adlooxAnalyticsAdapter.js +4 -4
- package/modules/adnuntiusBidAdapter.js +50 -32
- 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 +6 -7
- package/modules/appierAnalyticsAdapter.js +5 -7
- package/modules/appnexusBidAdapter.js +1 -0
- 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 +53 -10
- 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/discoveryBidAdapter.js +21 -0
- 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/gridBidAdapter.js +2 -2
- package/modules/growthCodeAnalyticsAdapter.js +14 -14
- package/modules/gumgumBidAdapter.js +4 -1
- 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/jwplayerRtdProvider.js +93 -26
- package/modules/jwplayerRtdProvider.md +23 -2
- package/modules/kargoAnalyticsAdapter.js +3 -3
- package/modules/kargoBidAdapter.js +26 -31
- package/modules/konduitAnalyticsAdapter.js +13 -13
- package/modules/lassoBidAdapter.js +11 -2
- package/modules/limelightDigitalBidAdapter.js +2 -1
- package/modules/liveIntentAnalyticsAdapter.js +2 -2
- package/modules/livewrappedAnalyticsAdapter.js +10 -10
- package/modules/loyalBidAdapter.js +190 -0
- package/modules/loyalBidAdapter.md +79 -0
- 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/sirdataRtdProvider.js +2 -0
- package/modules/smaatoBidAdapter.js +1 -2
- package/modules/sonobiAnalyticsAdapter.js +10 -12
- package/modules/sonobiBidAdapter.js +2 -5
- package/modules/sovrnAnalyticsAdapter.js +7 -9
- package/modules/sovrnBidAdapter.js +1 -1
- package/modules/staqAnalyticsAdapter.js +9 -9
- package/modules/teadsBidAdapter.js +2 -0
- 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 +79 -55
- package/test/spec/modules/adkernelAdnAnalytics_spec.js +6 -6
- package/test/spec/modules/adkernelBidAdapter_spec.js +63 -24
- package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +6 -6
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +10 -7
- 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 +18 -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 +112 -6
- package/test/spec/modules/currency_spec.js +6 -6
- package/test/spec/modules/dailymotionBidAdapter_spec.js +369 -0
- package/test/spec/modules/discoveryBidAdapter_spec.js +35 -1
- 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/gridBidAdapter_spec.js +3 -1
- package/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/gumgumBidAdapter_spec.js +23 -0
- 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/jwplayerRtdProvider_spec.js +672 -29
- package/test/spec/modules/kargoAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/kargoBidAdapter_spec.js +36 -0
- package/test/spec/modules/konduitAnalyticsAdapter_spec.js +13 -13
- package/test/spec/modules/lassoBidAdapter_spec.js +1 -0
- package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +1 -1
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +16 -1
- package/test/spec/modules/liveIntentAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +15 -20
- package/test/spec/modules/loyalBidAdapter_spec .js +375 -0
- 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/sonobiBidAdapter_spec.js +4 -6
- 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/teadsBidAdapter_spec.js +35 -0
- 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
package/test/spec/native_spec.js
CHANGED
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
fireClickTrackers,
|
|
17
17
|
setNativeResponseProperties,
|
|
18
18
|
} from 'src/native.js';
|
|
19
|
-
import
|
|
19
|
+
import { NATIVE_KEYS } from 'src/constants.js';
|
|
20
20
|
import { stubAuctionIndex } from '../helpers/indexStub.js';
|
|
21
21
|
import { convertOrtbRequestToProprietaryNative, fromOrtbNativeRequest } from '../../src/native.js';
|
|
22
22
|
import {auctionManager} from '../../src/auctionManager.js';
|
|
@@ -199,9 +199,9 @@ describe('native.js', function () {
|
|
|
199
199
|
|
|
200
200
|
it('gets native targeting keys', function () {
|
|
201
201
|
const targeting = getNativeTargeting(bid);
|
|
202
|
-
expect(targeting[
|
|
203
|
-
expect(targeting[
|
|
204
|
-
expect(targeting[
|
|
202
|
+
expect(targeting[NATIVE_KEYS.title]).to.equal(bid.native.title);
|
|
203
|
+
expect(targeting[NATIVE_KEYS.body]).to.equal(bid.native.body);
|
|
204
|
+
expect(targeting[NATIVE_KEYS.clickUrl]).to.equal(
|
|
205
205
|
bid.native.clickUrl
|
|
206
206
|
);
|
|
207
207
|
expect(targeting.hb_native_foo).to.equal(bid.native.foo);
|
|
@@ -230,11 +230,11 @@ describe('native.js', function () {
|
|
|
230
230
|
};
|
|
231
231
|
const targeting = getNativeTargeting(bid, deps(adUnit));
|
|
232
232
|
|
|
233
|
-
expect(targeting[
|
|
234
|
-
expect(targeting[
|
|
233
|
+
expect(targeting[NATIVE_KEYS.title]).to.equal(bid.native.title);
|
|
234
|
+
expect(targeting[NATIVE_KEYS.body]).to.equal(
|
|
235
235
|
'hb_native_body:123'
|
|
236
236
|
);
|
|
237
|
-
expect(targeting[
|
|
237
|
+
expect(targeting[NATIVE_KEYS.clickUrl]).to.equal(
|
|
238
238
|
'hb_native_linkurl:123'
|
|
239
239
|
);
|
|
240
240
|
expect(targeting.hb_native_foo).to.equal(bid.native.ext.foo);
|
|
@@ -244,9 +244,9 @@ describe('native.js', function () {
|
|
|
244
244
|
it('sends placeholdes targetings with ortb native response', function () {
|
|
245
245
|
const targeting = getNativeTargeting(completeNativeBid);
|
|
246
246
|
|
|
247
|
-
expect(targeting[
|
|
248
|
-
expect(targeting[
|
|
249
|
-
expect(targeting[
|
|
247
|
+
expect(targeting[NATIVE_KEYS.title]).to.equal('Native Creative');
|
|
248
|
+
expect(targeting[NATIVE_KEYS.body]).to.equal('Cool description great stuff');
|
|
249
|
+
expect(targeting[NATIVE_KEYS.clickUrl]).to.equal('https://www.link.example');
|
|
250
250
|
});
|
|
251
251
|
|
|
252
252
|
it('should only include native targeting keys with values', function () {
|
|
@@ -269,9 +269,9 @@ describe('native.js', function () {
|
|
|
269
269
|
const targeting = getNativeTargeting(bidWithUndefinedFields, deps(adUnit));
|
|
270
270
|
|
|
271
271
|
expect(Object.keys(targeting)).to.deep.equal([
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
272
|
+
NATIVE_KEYS.title,
|
|
273
|
+
NATIVE_KEYS.sponsoredBy,
|
|
274
|
+
NATIVE_KEYS.clickUrl,
|
|
275
275
|
'hb_native_foo',
|
|
276
276
|
]);
|
|
277
277
|
});
|
|
@@ -294,7 +294,7 @@ describe('native.js', function () {
|
|
|
294
294
|
};
|
|
295
295
|
const targeting = getNativeTargeting(bid, deps(adUnit));
|
|
296
296
|
|
|
297
|
-
expect(Object.keys(targeting)).to.deep.equal([
|
|
297
|
+
expect(Object.keys(targeting)).to.deep.equal([NATIVE_KEYS.title]);
|
|
298
298
|
});
|
|
299
299
|
|
|
300
300
|
it('should only include targeting if sendTargetingKeys not set to false', function () {
|
|
@@ -342,10 +342,10 @@ describe('native.js', function () {
|
|
|
342
342
|
const targeting = getNativeTargeting(bid, deps(adUnit));
|
|
343
343
|
|
|
344
344
|
expect(Object.keys(targeting)).to.deep.equal([
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
345
|
+
NATIVE_KEYS.title,
|
|
346
|
+
NATIVE_KEYS.body,
|
|
347
|
+
NATIVE_KEYS.image,
|
|
348
|
+
NATIVE_KEYS.clickUrl,
|
|
349
349
|
'hb_native_foo',
|
|
350
350
|
]);
|
|
351
351
|
});
|
|
@@ -353,7 +353,7 @@ describe('native.js', function () {
|
|
|
353
353
|
it('should include rendererUrl in targeting', function () {
|
|
354
354
|
const rendererUrl = 'https://www.renderer.com/';
|
|
355
355
|
const targeting = getNativeTargeting({...bid, native: {...bid.native, rendererUrl: {url: rendererUrl}}}, deps({}));
|
|
356
|
-
expect(targeting[
|
|
356
|
+
expect(targeting[NATIVE_KEYS.rendererUrl]).to.eql(rendererUrl);
|
|
357
357
|
});
|
|
358
358
|
|
|
359
359
|
it('fires impression trackers', function () {
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
handleNativeMessage,
|
|
8
8
|
handleRender
|
|
9
9
|
} from '../../../src/adRendering.js';
|
|
10
|
-
import
|
|
10
|
+
import { AD_RENDER_FAILED_REASON, BID_STATUS, EVENTS } from 'src/constants.js';
|
|
11
11
|
import {expect} from 'chai/index.mjs';
|
|
12
12
|
import {config} from 'src/config.js';
|
|
13
13
|
import {VIDEO} from '../../../src/mediaTypes.js';
|
|
@@ -65,7 +65,7 @@ describe('adRendering', () => {
|
|
|
65
65
|
});
|
|
66
66
|
|
|
67
67
|
function expectAdRenderFailedEvent(reason) {
|
|
68
|
-
sinon.assert.calledWith(events.emit,
|
|
68
|
+
sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_FAILED, sinon.match({ adId, reason }));
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
describe('doRender', () => {
|
|
@@ -103,7 +103,7 @@ describe('adRendering', () => {
|
|
|
103
103
|
|
|
104
104
|
it('emits AD_RENDER_SUCCEDED', () => {
|
|
105
105
|
doRender({renderFn, bidResponse});
|
|
106
|
-
sinon.assert.calledWith(events.emit,
|
|
106
|
+
sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_SUCCEEDED, sinon.match({
|
|
107
107
|
bid: bidResponse,
|
|
108
108
|
adId: bidResponse.adId
|
|
109
109
|
}));
|
|
@@ -114,7 +114,7 @@ describe('adRendering', () => {
|
|
|
114
114
|
it('should emit AD_RENDER_FAILED on video bids', () => {
|
|
115
115
|
bidResponse.mediaType = VIDEO;
|
|
116
116
|
doRender({renderFn, bidResponse});
|
|
117
|
-
expectAdRenderFailedEvent(
|
|
117
|
+
expectAdRenderFailedEvent(AD_RENDER_FAILED_REASON.PREVENT_WRITING_ON_MAIN_DOCUMENT)
|
|
118
118
|
});
|
|
119
119
|
}
|
|
120
120
|
|
|
@@ -159,26 +159,26 @@ describe('adRendering', () => {
|
|
|
159
159
|
describe('should emit AD_RENDER_FAILED', () => {
|
|
160
160
|
it('when bidResponse is missing', () => {
|
|
161
161
|
handleRender({adId});
|
|
162
|
-
expectAdRenderFailedEvent(
|
|
162
|
+
expectAdRenderFailedEvent(AD_RENDER_FAILED_REASON.CANNOT_FIND_AD);
|
|
163
163
|
sinon.assert.notCalled(doRenderStub);
|
|
164
164
|
});
|
|
165
165
|
it('on exceptions', () => {
|
|
166
166
|
doRenderStub.throws(new Error());
|
|
167
167
|
handleRender({adId, bidResponse});
|
|
168
|
-
expectAdRenderFailedEvent(
|
|
168
|
+
expectAdRenderFailedEvent(AD_RENDER_FAILED_REASON.EXCEPTION);
|
|
169
169
|
});
|
|
170
170
|
})
|
|
171
171
|
|
|
172
172
|
describe('when bid was already rendered', () => {
|
|
173
173
|
beforeEach(() => {
|
|
174
|
-
bidResponse.status =
|
|
174
|
+
bidResponse.status = BID_STATUS.RENDERED;
|
|
175
175
|
});
|
|
176
176
|
afterEach(() => {
|
|
177
177
|
config.resetConfig();
|
|
178
178
|
})
|
|
179
179
|
it('should emit STALE_RENDER', () => {
|
|
180
180
|
handleRender({adId, bidResponse});
|
|
181
|
-
sinon.assert.calledWith(events.emit,
|
|
181
|
+
sinon.assert.calledWith(events.emit, EVENTS.STALE_RENDER, bidResponse);
|
|
182
182
|
sinon.assert.called(doRenderStub);
|
|
183
183
|
});
|
|
184
184
|
it('should skip rendering if suppressStaleRender', () => {
|
|
@@ -190,7 +190,7 @@ describe('adRendering', () => {
|
|
|
190
190
|
|
|
191
191
|
it('should mark bid as won and emit BID_WON', () => {
|
|
192
192
|
handleRender({renderFn, bidResponse});
|
|
193
|
-
sinon.assert.calledWith(events.emit,
|
|
193
|
+
sinon.assert.calledWith(events.emit, EVENTS.BID_WON, bidResponse);
|
|
194
194
|
sinon.assert.calledWith(auctionManager.addWinningBid, bidResponse);
|
|
195
195
|
})
|
|
196
196
|
})
|
|
@@ -201,17 +201,17 @@ describe('adRendering', () => {
|
|
|
201
201
|
beforeEach(() => {
|
|
202
202
|
sandbox.stub(events, 'emit');
|
|
203
203
|
bid = {
|
|
204
|
-
status:
|
|
204
|
+
status: BID_STATUS.RENDERED
|
|
205
205
|
}
|
|
206
206
|
});
|
|
207
207
|
it('emits AD_RENDER_FAILED with given reason', () => {
|
|
208
|
-
handleCreativeEvent({event:
|
|
209
|
-
sinon.assert.calledWith(events.emit,
|
|
208
|
+
handleCreativeEvent({ event: EVENTS.AD_RENDER_FAILED, info: { reason: 'reason', message: 'message' } }, bid);
|
|
209
|
+
sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_FAILED, sinon.match({ bid, reason: 'reason', message: 'message' }));
|
|
210
210
|
});
|
|
211
211
|
|
|
212
212
|
it('emits AD_RENDER_SUCCEEDED', () => {
|
|
213
|
-
handleCreativeEvent({event:
|
|
214
|
-
sinon.assert.calledWith(events.emit,
|
|
213
|
+
handleCreativeEvent({ event: EVENTS.AD_RENDER_SUCCEEDED }, bid);
|
|
214
|
+
sinon.assert.calledWith(events.emit, EVENTS.AD_RENDER_SUCCEEDED, sinon.match({ bid }));
|
|
215
215
|
});
|
|
216
216
|
|
|
217
217
|
it('logs an error on other events', () => {
|
|
@@ -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
|
});
|