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
|
@@ -3,7 +3,7 @@ import * as events from 'src/events.js';
|
|
|
3
3
|
import * as utils from 'src/utils.js';
|
|
4
4
|
import * as sinon from 'sinon';
|
|
5
5
|
import { expect } from 'chai';
|
|
6
|
-
import
|
|
6
|
+
import { EVENTS } from 'src/constants.js';
|
|
7
7
|
|
|
8
8
|
describe('#bidViewabilityIO', function() {
|
|
9
9
|
const makeElement = (id) => {
|
|
@@ -97,7 +97,7 @@ describe('#bidViewabilityIO', function() {
|
|
|
97
97
|
expect(mockObserver.unobserve.calledOnce).to.be.true;
|
|
98
98
|
expect(emitSpy.calledOnce).to.be.true;
|
|
99
99
|
// expect(emitSpy.firstCall.args).to.be.false;
|
|
100
|
-
expect(emitSpy.firstCall.args[0]).to.eq(
|
|
100
|
+
expect(emitSpy.firstCall.args[0]).to.eq(EVENTS.BID_VIEWABLE);
|
|
101
101
|
});
|
|
102
102
|
})
|
|
103
103
|
|
|
@@ -5,7 +5,7 @@ import * as utils from 'src/utils.js';
|
|
|
5
5
|
import * as sinon from 'sinon';
|
|
6
6
|
import {expect, spy} from 'chai';
|
|
7
7
|
import * as prebidGlobal from 'src/prebidGlobal.js';
|
|
8
|
-
import
|
|
8
|
+
import { EVENTS } from 'src/constants.js';
|
|
9
9
|
import adapterManager, { gdprDataHandler, uspDataHandler } from 'src/adapterManager.js';
|
|
10
10
|
import parse from 'url-parse';
|
|
11
11
|
|
|
@@ -292,9 +292,9 @@ describe('#bidViewability', function() {
|
|
|
292
292
|
let call = callBidViewableBidderSpy.getCall(0);
|
|
293
293
|
expect(call.args[0]).to.equal(PBJS_WINNING_BID.bidder);
|
|
294
294
|
expect(call.args[1]).to.deep.equal(PBJS_WINNING_BID);
|
|
295
|
-
//
|
|
295
|
+
// EVENTS.BID_VIEWABLE is triggered
|
|
296
296
|
call = eventsEmitSpy.getCall(0);
|
|
297
|
-
expect(call.args[0]).to.equal(
|
|
297
|
+
expect(call.args[0]).to.equal(EVENTS.BID_VIEWABLE);
|
|
298
298
|
expect(call.args[1]).to.deep.equal(PBJS_WINNING_BID);
|
|
299
299
|
});
|
|
300
300
|
|
|
@@ -303,7 +303,7 @@ describe('#bidViewability', function() {
|
|
|
303
303
|
expect(triggerPixelSpy.callCount).to.equal(0);
|
|
304
304
|
// adapterManager.callBidViewableBidder is NOT called
|
|
305
305
|
expect(callBidViewableBidderSpy.callCount).to.equal(0);
|
|
306
|
-
//
|
|
306
|
+
// EVENTS.BID_VIEWABLE is NOT triggered
|
|
307
307
|
expect(eventsEmitSpy.callCount).to.equal(0);
|
|
308
308
|
});
|
|
309
309
|
|
|
@@ -2,9 +2,10 @@ import bidwatchAnalytics from 'modules/bidwatchAnalyticsAdapter.js';
|
|
|
2
2
|
import {dereferenceWithoutRenderer} from 'modules/bidwatchAnalyticsAdapter.js';
|
|
3
3
|
import { expect } from 'chai';
|
|
4
4
|
import { server } from 'test/mocks/xhr.js';
|
|
5
|
+
import { EVENTS } from 'src/constants.js';
|
|
6
|
+
|
|
5
7
|
let adapterManager = require('src/adapterManager').default;
|
|
6
8
|
let events = require('src/events');
|
|
7
|
-
let constants = require('src/constants.json');
|
|
8
9
|
|
|
9
10
|
describe('BidWatch Analytics', function () {
|
|
10
11
|
let timestamp = new Date() - 256;
|
|
@@ -301,10 +302,10 @@ describe('BidWatch Analytics', function () {
|
|
|
301
302
|
}
|
|
302
303
|
});
|
|
303
304
|
|
|
304
|
-
events.emit(
|
|
305
|
-
events.emit(
|
|
306
|
-
events.emit(
|
|
307
|
-
events.emit(
|
|
305
|
+
events.emit(EVENTS.BID_REQUESTED, auctionEnd['bidderRequests'][0]);
|
|
306
|
+
events.emit(EVENTS.BID_RESPONSE, auctionEnd['bidsReceived'][0]);
|
|
307
|
+
events.emit(EVENTS.BID_TIMEOUT, bidTimeout);
|
|
308
|
+
events.emit(EVENTS.AUCTION_END, auctionEnd);
|
|
308
309
|
expect(server.requests.length).to.equal(1);
|
|
309
310
|
let message = JSON.parse(server.requests[0].requestBody);
|
|
310
311
|
expect(message).to.have.property('auctionEnd').exist;
|
|
@@ -331,7 +332,7 @@ describe('BidWatch Analytics', function () {
|
|
|
331
332
|
domain: 'test'
|
|
332
333
|
}
|
|
333
334
|
});
|
|
334
|
-
events.emit(
|
|
335
|
+
events.emit(EVENTS.BID_WON, bidWon);
|
|
335
336
|
expect(server.requests.length).to.equal(1);
|
|
336
337
|
let message = JSON.parse(server.requests[0].requestBody);
|
|
337
338
|
expect(message).not.to.have.property('ad');
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import ascAdapter from 'modules/byDataAnalyticsAdapter';
|
|
2
2
|
import { expect } from 'chai';
|
|
3
|
+
import {EVENTS} from 'src/constants.js';
|
|
4
|
+
|
|
3
5
|
let adapterManager = require('src/adapterManager').default;
|
|
4
6
|
let events = require('src/events');
|
|
5
|
-
let constants = require('src/constants.json');
|
|
6
7
|
let auctionId = 'b70ef967-5c5b-4602-831e-f2cf16e59af2';
|
|
7
8
|
const initOptions = {
|
|
8
9
|
clientId: 'asc00000',
|
|
@@ -176,9 +177,9 @@ describe('byData Analytics Adapter ', () => {
|
|
|
176
177
|
});
|
|
177
178
|
});
|
|
178
179
|
it('sends and formatted auction data ', function () {
|
|
179
|
-
events.emit(
|
|
180
|
-
events.emit(
|
|
181
|
-
events.emit(
|
|
180
|
+
events.emit(EVENTS.BID_TIMEOUT, bidTimeoutArgs);
|
|
181
|
+
events.emit(EVENTS.NO_BID, noBidArgs);
|
|
182
|
+
events.emit(EVENTS.BID_WON, bidWonArgs)
|
|
182
183
|
var userToken = ascAdapter.getVisitorData(userData);
|
|
183
184
|
var newAuData = ascAdapter.dataProcess(auctionEndArgs);
|
|
184
185
|
var newBwData = ascAdapter.getBidWonData(bidWonArgs);
|
|
@@ -2,7 +2,7 @@ import { loadExternalScriptStub } from 'test/mocks/adloaderStub.js';
|
|
|
2
2
|
import * as utils from '../../../src/utils.js';
|
|
3
3
|
import * as hook from '../../../src/hook.js'
|
|
4
4
|
import * as events from '../../../src/events.js';
|
|
5
|
-
import
|
|
5
|
+
import { EVENTS } from '../../../src/constants.js';
|
|
6
6
|
|
|
7
7
|
import { __TEST__ } from '../../../modules/cleanioRtdProvider.js';
|
|
8
8
|
|
|
@@ -193,16 +193,16 @@ describe('clean.io RTD module', function () {
|
|
|
193
193
|
const eventCounter = { registerCleanioBillingEvent: function() {} };
|
|
194
194
|
sinon.spy(eventCounter, 'registerCleanioBillingEvent');
|
|
195
195
|
|
|
196
|
-
events.on(
|
|
196
|
+
events.on(EVENTS.BILLABLE_EVENT, (evt) => {
|
|
197
197
|
if (evt.vendor === 'clean.io') {
|
|
198
198
|
eventCounter.registerCleanioBillingEvent()
|
|
199
199
|
}
|
|
200
200
|
});
|
|
201
201
|
|
|
202
|
-
events.emit(
|
|
203
|
-
events.emit(
|
|
204
|
-
events.emit(
|
|
205
|
-
events.emit(
|
|
202
|
+
events.emit(EVENTS.BID_WON, {});
|
|
203
|
+
events.emit(EVENTS.BID_WON, {});
|
|
204
|
+
events.emit(EVENTS.BID_WON, {});
|
|
205
|
+
events.emit(EVENTS.BID_WON, {});
|
|
206
206
|
|
|
207
207
|
sinon.assert.callCount(eventCounter.registerCleanioBillingEvent, 4);
|
|
208
208
|
});
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import concertAnalytics from 'modules/concertAnalyticsAdapter.js';
|
|
2
2
|
import { expect } from 'chai';
|
|
3
3
|
import {expectEvents} from '../../helpers/analytics.js';
|
|
4
|
+
import { EVENTS } from 'src/constants.js';
|
|
5
|
+
|
|
4
6
|
const sinon = require('sinon');
|
|
5
7
|
let adapterManager = require('src/adapterManager').default;
|
|
6
8
|
let events = require('src/events');
|
|
7
|
-
let constants = require('src/constants.json');
|
|
8
9
|
|
|
9
10
|
describe('ConcertAnalyticsAdapter', function() {
|
|
10
11
|
let sandbox;
|
|
@@ -147,10 +148,10 @@ describe('ConcertAnalyticsAdapter', function() {
|
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
function fireBidEvents(events) {
|
|
150
|
-
events.emit(
|
|
151
|
-
events.emit(
|
|
152
|
-
events.emit(
|
|
153
|
-
events.emit(
|
|
154
|
-
events.emit(
|
|
151
|
+
events.emit(EVENTS.AUCTION_INIT, { timestamp, auctionId, timeout, adUnits });
|
|
152
|
+
events.emit(EVENTS.BID_REQUESTED, { bidder: 'concert' });
|
|
153
|
+
events.emit(EVENTS.BID_RESPONSE, bidResponse);
|
|
154
|
+
events.emit(EVENTS.AUCTION_END, {});
|
|
155
|
+
events.emit(EVENTS.BID_WON, bidWon);
|
|
155
156
|
}
|
|
156
157
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as utils from '../../../src/utils.js';
|
|
2
2
|
import * as hook from '../../../src/hook.js'
|
|
3
3
|
import * as events from '../../../src/events.js';
|
|
4
|
-
import
|
|
4
|
+
import { EVENTS } from '../../../src/constants.js';
|
|
5
5
|
|
|
6
6
|
import confiantModule from '../../../modules/confiantRtdProvider.js';
|
|
7
7
|
|
|
@@ -48,7 +48,7 @@ describe('Confiant RTD module', function () {
|
|
|
48
48
|
let billableEventsCounter = 0;
|
|
49
49
|
const propertyId = 'fff';
|
|
50
50
|
|
|
51
|
-
events.on(
|
|
51
|
+
events.on(EVENTS.BILLABLE_EVENT, (e) => {
|
|
52
52
|
if (e.vendor === 'confiant') {
|
|
53
53
|
billableEventsCounter++;
|
|
54
54
|
expect(e.type).to.equal('impression');
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import sinon from 'sinon';
|
|
2
|
-
import {expect} from 'chai';
|
|
3
|
-
import {default as conversantAnalytics, CNVR_CONSTANTS, cnvrHelper} from 'modules/conversantAnalyticsAdapter';
|
|
2
|
+
import { expect } from 'chai';
|
|
3
|
+
import { default as conversantAnalytics, CNVR_CONSTANTS, cnvrHelper } from 'modules/conversantAnalyticsAdapter';
|
|
4
4
|
import * as utils from 'src/utils.js';
|
|
5
5
|
import * as prebidGlobal from 'src/prebidGlobal';
|
|
6
|
-
import {server} from '../../mocks/xhr.js';
|
|
6
|
+
import { server } from '../../mocks/xhr.js';
|
|
7
7
|
|
|
8
|
-
import
|
|
8
|
+
import {EVENTS} from 'src/constants.js'
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
const events = require('src/events');
|
|
11
11
|
|
|
12
12
|
describe('Conversant analytics adapter tests', function() {
|
|
13
13
|
let sandbox; // sinon sandbox to make restoring all stubbed objects easier
|
|
@@ -39,7 +39,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
39
39
|
requests = server.requests;
|
|
40
40
|
sandbox = sinon.sandbox.create();
|
|
41
41
|
sandbox.stub(events, 'getEvents').returns([]); // need to stub this otherwise unwanted events seem to get fired during testing
|
|
42
|
-
|
|
42
|
+
const getGlobalStub = {
|
|
43
43
|
version: PREBID_VERSION,
|
|
44
44
|
getUserIds: function() { // userIdTargeting.js init() gets called on AUCTION_END so we need to mock this function.
|
|
45
45
|
return {};
|
|
@@ -98,7 +98,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
98
98
|
it('should NOT sample when sampling set to 0', function() {
|
|
99
99
|
sandbox.stub(utils, 'logError');
|
|
100
100
|
const NEVER_SAMPLE_CONFIG = utils.deepClone(VALID_ALWAYS_SAMPLE_CONFIG);
|
|
101
|
-
NEVER_SAMPLE_CONFIG
|
|
101
|
+
NEVER_SAMPLE_CONFIG.options.cnvr_sampling = 0;
|
|
102
102
|
conversantAnalytics.disableAnalytics();
|
|
103
103
|
conversantAnalytics.enableAnalytics(NEVER_SAMPLE_CONFIG);
|
|
104
104
|
expect(utils.logError.called).to.equal(false);
|
|
@@ -110,17 +110,17 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
110
110
|
it('should cleanup up cache objects', function() {
|
|
111
111
|
conversantAnalytics.enableAnalytics(VALID_CONFIGURATION);
|
|
112
112
|
|
|
113
|
-
cnvrHelper.adIdLookup
|
|
114
|
-
cnvrHelper.adIdLookup
|
|
113
|
+
cnvrHelper.adIdLookup.keep = { timeReceived: DATESTAMP + 1 };
|
|
114
|
+
cnvrHelper.adIdLookup.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE };
|
|
115
115
|
|
|
116
|
-
cnvrHelper.timeoutCache
|
|
117
|
-
cnvrHelper.timeoutCache
|
|
116
|
+
cnvrHelper.timeoutCache.keep = { timeReceived: DATESTAMP + 1 };
|
|
117
|
+
cnvrHelper.timeoutCache.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE };
|
|
118
118
|
|
|
119
|
-
cnvrHelper.auctionIdTimestampCache
|
|
120
|
-
cnvrHelper.auctionIdTimestampCache
|
|
119
|
+
cnvrHelper.auctionIdTimestampCache.keep = { timeReceived: DATESTAMP + 1 };
|
|
120
|
+
cnvrHelper.auctionIdTimestampCache.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE };
|
|
121
121
|
|
|
122
|
-
cnvrHelper.bidderErrorCache
|
|
123
|
-
cnvrHelper.bidderErrorCache
|
|
122
|
+
cnvrHelper.bidderErrorCache.keep = { timeReceived: DATESTAMP + 1, errors: [] };
|
|
123
|
+
cnvrHelper.bidderErrorCache.delete = { timeReceived: DATESTAMP - CNVR_CONSTANTS.MAX_MILLISECONDS_IN_CACHE, errors: [] };
|
|
124
124
|
|
|
125
125
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(2);
|
|
126
126
|
expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(2);
|
|
@@ -145,12 +145,12 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
145
145
|
it('createBid() should return correct object', function() {
|
|
146
146
|
const EVENT_CODE = 1;
|
|
147
147
|
const TIME = 2;
|
|
148
|
-
|
|
149
|
-
expect(bid).to.deep.equal({
|
|
148
|
+
const bid = cnvrHelper.createBid(EVENT_CODE, 2);
|
|
149
|
+
expect(bid).to.deep.equal({ eventCodes: [EVENT_CODE], timeToRespond: TIME });
|
|
150
150
|
});
|
|
151
151
|
|
|
152
152
|
it('createAdUnit() should return correct object', function() {
|
|
153
|
-
|
|
153
|
+
const adUnit = cnvrHelper.createAdUnit();
|
|
154
154
|
expect(adUnit).to.deep.equal({
|
|
155
155
|
sizes: [],
|
|
156
156
|
mediaTypes: [],
|
|
@@ -160,13 +160,13 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
160
160
|
|
|
161
161
|
it('createAdSize() should return correct object', function() {
|
|
162
162
|
let adSize = cnvrHelper.createAdSize(1, 2);
|
|
163
|
-
expect(adSize).to.deep.equal({w: 1, h: 2});
|
|
163
|
+
expect(adSize).to.deep.equal({ w: 1, h: 2 });
|
|
164
164
|
|
|
165
165
|
adSize = cnvrHelper.createAdSize();
|
|
166
|
-
expect(adSize).to.deep.equal({w: -1, h: -1});
|
|
166
|
+
expect(adSize).to.deep.equal({ w: -1, h: -1 });
|
|
167
167
|
|
|
168
168
|
adSize = cnvrHelper.createAdSize('foo', 'bar');
|
|
169
|
-
expect(adSize).to.deep.equal({w: -1, h: -1});
|
|
169
|
+
expect(adSize).to.deep.equal({ w: -1, h: -1 });
|
|
170
170
|
});
|
|
171
171
|
|
|
172
172
|
it('getLookupKey() should return correct object', function() {
|
|
@@ -183,7 +183,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
183
183
|
const myDate = Date.now();
|
|
184
184
|
conversantAnalytics.enableAnalytics(VALID_ALWAYS_SAMPLE_CONFIG);
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
const payload = cnvrHelper.createPayload(REQUEST_TYPE, AUCTION_ID, myDate);
|
|
187
187
|
expect(payload).to.deep.equal({
|
|
188
188
|
bidderErrors: [],
|
|
189
189
|
cnvrSampleRate: 1,
|
|
@@ -200,7 +200,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
200
200
|
});
|
|
201
201
|
|
|
202
202
|
it('keyExistsAndIsObject() should return correct data', function() {
|
|
203
|
-
|
|
203
|
+
const data = {
|
|
204
204
|
a: [],
|
|
205
205
|
b: 1,
|
|
206
206
|
c: 'foo',
|
|
@@ -216,21 +216,21 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
216
216
|
});
|
|
217
217
|
|
|
218
218
|
it('deduplicateArray() should return correct data', function () {
|
|
219
|
-
|
|
220
|
-
|
|
219
|
+
const arrayOfObjects = [{ w: 1, h: 2 }, { w: 2, h: 3 }, { w: 1, h: 2 }];
|
|
220
|
+
const array = [3, 2, 1, 1, 2, 3];
|
|
221
221
|
let empty;
|
|
222
|
-
|
|
223
|
-
|
|
222
|
+
const notArray = 3;
|
|
223
|
+
const emptyArray = [];
|
|
224
224
|
|
|
225
225
|
expect(JSON.stringify(cnvrHelper.deduplicateArray(array))).to.equal(JSON.stringify([3, 2, 1]));
|
|
226
|
-
expect(JSON.stringify(cnvrHelper.deduplicateArray(arrayOfObjects))).to.equal(JSON.stringify([{w: 1, h: 2}, {w: 2, h: 3}]));
|
|
226
|
+
expect(JSON.stringify(cnvrHelper.deduplicateArray(arrayOfObjects))).to.equal(JSON.stringify([{ w: 1, h: 2 }, { w: 2, h: 3 }]));
|
|
227
227
|
expect(JSON.stringify(cnvrHelper.deduplicateArray(emptyArray))).to.equal(JSON.stringify([]));
|
|
228
228
|
expect(cnvrHelper.deduplicateArray(empty)).to.be.undefined;
|
|
229
229
|
expect(cnvrHelper.deduplicateArray(notArray)).to.equal(notArray);
|
|
230
230
|
});
|
|
231
231
|
|
|
232
232
|
it('getSampleRate() should return correct data', function () {
|
|
233
|
-
|
|
233
|
+
const obj = {
|
|
234
234
|
sampling: 1,
|
|
235
235
|
cnvr_sampling: 0.5,
|
|
236
236
|
too_big: 1.2,
|
|
@@ -249,7 +249,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
249
249
|
});
|
|
250
250
|
|
|
251
251
|
it('getPageUrl() should return correct data', function() {
|
|
252
|
-
|
|
252
|
+
const url = cnvrHelper.getPageUrl();
|
|
253
253
|
expect(url.length).to.be.above(1);
|
|
254
254
|
});
|
|
255
255
|
|
|
@@ -313,20 +313,20 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
313
313
|
|
|
314
314
|
describe('Bid Timeout Event Tests', function() {
|
|
315
315
|
const BID_TIMEOUT_PAYLOAD = [{
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
316
|
+
bidId: '80882409358b8a8',
|
|
317
|
+
bidder: 'conversant',
|
|
318
|
+
adUnitCode: 'MedRect',
|
|
319
|
+
auctionId: 'afbd6e0b-e45b-46ab-87bf-c0bac0cb8881'
|
|
320
320
|
}, {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
321
|
+
bidId: '9da4c107a6f24c8',
|
|
322
|
+
bidder: 'conversant',
|
|
323
|
+
adUnitCode: 'Leaderboard',
|
|
324
|
+
auctionId: 'afbd6e0b-e45b-46ab-87bf-c0bac0cb8881'
|
|
325
325
|
}];
|
|
326
326
|
|
|
327
327
|
it('should put both items in timeout cache', function() {
|
|
328
328
|
expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(0);
|
|
329
|
-
events.emit(
|
|
329
|
+
events.emit(EVENTS.BID_TIMEOUT, BID_TIMEOUT_PAYLOAD);
|
|
330
330
|
expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(2);
|
|
331
331
|
|
|
332
332
|
BID_TIMEOUT_PAYLOAD.forEach(timeoutBid => {
|
|
@@ -358,7 +358,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
358
358
|
};
|
|
359
359
|
|
|
360
360
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1);
|
|
361
|
-
events.emit(
|
|
361
|
+
events.emit(EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD);
|
|
362
362
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0); // object should be removed
|
|
363
363
|
expect(requests).to.have.lengthOf(1);
|
|
364
364
|
const data = JSON.parse(requests[0].requestBody);
|
|
@@ -366,8 +366,8 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
366
366
|
expect(data.auction.auctionId).to.equal('auctionId');
|
|
367
367
|
expect(data.auction.preBidVersion).to.equal(PREBID_VERSION);
|
|
368
368
|
expect(data.auction.sid).to.equal(SITE_ID);
|
|
369
|
-
expect(data.adUnits
|
|
370
|
-
expect(data.adUnits
|
|
369
|
+
expect(data.adUnits.adUnitCode.bids.bidderCode[0].eventCodes.includes(CNVR_CONSTANTS.RENDER_FAILED)).to.be.true;
|
|
370
|
+
expect(data.adUnits.adUnitCode.bids.bidderCode[0].message).to.have.lengthOf.above(0);
|
|
371
371
|
});
|
|
372
372
|
|
|
373
373
|
it('should not send data if no adId', function() {
|
|
@@ -379,14 +379,14 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
379
379
|
};
|
|
380
380
|
|
|
381
381
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1);
|
|
382
|
-
events.emit(
|
|
382
|
+
events.emit(EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD_NO_ADID);
|
|
383
383
|
expect(requests).to.have.lengthOf(1);
|
|
384
384
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1); // same object in cache as before... no change
|
|
385
385
|
expect(cnvrHelper.adIdLookup[RENDER_FAILED_PAYLOAD.adId]).to.not.be.undefined;
|
|
386
386
|
|
|
387
387
|
expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors');
|
|
388
388
|
const data = JSON.parse(requests[0].requestBody);
|
|
389
|
-
expect(data.event).to.be.equal(
|
|
389
|
+
expect(data.event).to.be.equal(EVENTS.AD_RENDER_FAILED);
|
|
390
390
|
expect(data.siteId).to.be.equal(SITE_ID);
|
|
391
391
|
expect(data.message).to.not.be.undefined;
|
|
392
392
|
expect(data.prebidVersion).to.not.be.undefined;
|
|
@@ -402,13 +402,13 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
402
402
|
};
|
|
403
403
|
expect(requests).to.have.lengthOf(0);
|
|
404
404
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1);
|
|
405
|
-
events.emit(
|
|
405
|
+
events.emit(EVENTS.AD_RENDER_FAILED, RENDER_FAILED_PAYLOAD);
|
|
406
406
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0); // object should be removed but no call made to send data
|
|
407
407
|
expect(requests).to.have.lengthOf(1);
|
|
408
408
|
|
|
409
409
|
expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors');
|
|
410
410
|
const data = JSON.parse(requests[0].requestBody);
|
|
411
|
-
expect(data.event).to.be.equal(
|
|
411
|
+
expect(data.event).to.be.equal(EVENTS.AD_RENDER_FAILED);
|
|
412
412
|
expect(data.siteId).to.be.equal(SITE_ID);
|
|
413
413
|
expect(data.message).to.not.be.undefined;
|
|
414
414
|
expect(data.prebidVersion).to.not.be.undefined;
|
|
@@ -492,14 +492,14 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
492
492
|
it('should not send data or put a record in adIdLookup when bad data provided', function() {
|
|
493
493
|
expect(requests).to.have.lengthOf(0);
|
|
494
494
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0);
|
|
495
|
-
events.emit(
|
|
495
|
+
events.emit(EVENTS.BID_WON, BAD_BID_WON_ARGS);
|
|
496
496
|
expect(requests).to.have.lengthOf(1);
|
|
497
497
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0);
|
|
498
498
|
|
|
499
499
|
// check for error event
|
|
500
500
|
expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors');
|
|
501
501
|
const data = JSON.parse(requests[0].requestBody);
|
|
502
|
-
expect(data.event).to.be.equal(
|
|
502
|
+
expect(data.event).to.be.equal(EVENTS.BID_WON);
|
|
503
503
|
expect(data.siteId).to.be.equal(SITE_ID);
|
|
504
504
|
expect(data.message).to.not.be.undefined;
|
|
505
505
|
expect(data.prebidVersion).to.not.be.undefined;
|
|
@@ -509,11 +509,11 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
509
509
|
|
|
510
510
|
it('should send data and put a record in adIdLookup', function() {
|
|
511
511
|
const myAuctionStart = Date.now();
|
|
512
|
-
cnvrHelper.auctionIdTimestampCache[GOOD_BID_WON_ARGS.auctionId] = {timeReceived: myAuctionStart};
|
|
512
|
+
cnvrHelper.auctionIdTimestampCache[GOOD_BID_WON_ARGS.auctionId] = { timeReceived: myAuctionStart };
|
|
513
513
|
|
|
514
514
|
expect(requests).to.have.lengthOf(0);
|
|
515
515
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(0);
|
|
516
|
-
events.emit(
|
|
516
|
+
events.emit(EVENTS.BID_WON, GOOD_BID_WON_ARGS);
|
|
517
517
|
|
|
518
518
|
// Check that adIdLookup was set correctly
|
|
519
519
|
expect(Object.keys(cnvrHelper.adIdLookup)).to.have.lengthOf(1);
|
|
@@ -914,16 +914,16 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
914
914
|
it('should not do anything when auction id doesnt exist', function() {
|
|
915
915
|
sandbox.stub(utils, 'logError');
|
|
916
916
|
|
|
917
|
-
|
|
917
|
+
const BAD_ARGS = JSON.parse(JSON.stringify(AUCTION_END_PAYLOAD));
|
|
918
918
|
delete BAD_ARGS.auctionId;
|
|
919
919
|
expect(requests).to.have.lengthOf(0);
|
|
920
|
-
events.emit(
|
|
920
|
+
events.emit(EVENTS.AUCTION_END, BAD_ARGS);
|
|
921
921
|
expect(requests).to.have.lengthOf(1);
|
|
922
922
|
|
|
923
923
|
// check for error event
|
|
924
924
|
expect(requests[0].url).to.contain('cvx/event/prebidanalyticerrors');
|
|
925
925
|
const data = JSON.parse(requests[0].requestBody);
|
|
926
|
-
expect(data.event).to.be.equal(
|
|
926
|
+
expect(data.event).to.be.equal(EVENTS.AUCTION_END);
|
|
927
927
|
expect(data.siteId).to.be.equal(SITE_ID);
|
|
928
928
|
expect(data.message).to.not.be.undefined;
|
|
929
929
|
expect(data.prebidVersion).to.not.be.undefined;
|
|
@@ -961,7 +961,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
961
961
|
expect(Object.keys(cnvrHelper.auctionIdTimestampCache)).to.have.lengthOf(0);
|
|
962
962
|
expect(Object.keys(cnvrHelper.bidderErrorCache)).to.have.lengthOf(1);
|
|
963
963
|
|
|
964
|
-
events.emit(
|
|
964
|
+
events.emit(EVENTS.AUCTION_END, AUCTION_END_PAYLOAD);
|
|
965
965
|
expect(utils.logError.called).to.equal(false);
|
|
966
966
|
expect(requests).to.have.lengthOf(1);
|
|
967
967
|
expect(Object.keys(cnvrHelper.timeoutCache)).to.have.lengthOf(0);
|
|
@@ -993,7 +993,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
993
993
|
expect(data.adUnits[AD_UNIT_CODE_NATIVE].sizes).to.have.lengthOf(0);
|
|
994
994
|
|
|
995
995
|
expect(Object.keys(data.adUnits[AD_UNIT_CODE].bids)).to.have.lengthOf(2);
|
|
996
|
-
const cnvrBidsArray = data.adUnits[AD_UNIT_CODE].bids
|
|
996
|
+
const cnvrBidsArray = data.adUnits[AD_UNIT_CODE].bids.conversant;
|
|
997
997
|
// testing multiple bids from same bidder
|
|
998
998
|
expect(cnvrBidsArray).to.have.lengthOf(2);
|
|
999
999
|
expect(cnvrBidsArray[0].eventCodes.includes(CNVR_CONSTANTS.BID)).to.be.true;
|
|
@@ -1014,7 +1014,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
1014
1014
|
expect(cnvrBidsArray[1].adSize.h).to.equal(100);
|
|
1015
1015
|
expect(cnvrBidsArray[1].mediaType).to.equal('banner');
|
|
1016
1016
|
|
|
1017
|
-
const apnBidsArray = data.adUnits[AD_UNIT_CODE].bids
|
|
1017
|
+
const apnBidsArray = data.adUnits[AD_UNIT_CODE].bids.appnexus;
|
|
1018
1018
|
expect(apnBidsArray).to.have.lengthOf(2);
|
|
1019
1019
|
let apnBid = apnBidsArray[0];
|
|
1020
1020
|
expect(apnBid.originalCpm).to.be.undefined;
|
|
@@ -1034,7 +1034,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
1034
1034
|
expect(apnBid.mediaType).to.be.undefined;
|
|
1035
1035
|
|
|
1036
1036
|
expect(Object.keys(data.adUnits[AD_UNIT_CODE_NATIVE].bids)).to.have.lengthOf(1);
|
|
1037
|
-
const apnNativeBidsArray = data.adUnits[AD_UNIT_CODE_NATIVE].bids
|
|
1037
|
+
const apnNativeBidsArray = data.adUnits[AD_UNIT_CODE_NATIVE].bids.appnexus;
|
|
1038
1038
|
expect(apnNativeBidsArray).to.have.lengthOf(1);
|
|
1039
1039
|
const apnNativeBid = apnNativeBidsArray[0];
|
|
1040
1040
|
expect(apnNativeBid.eventCodes.includes(CNVR_CONSTANTS.BID)).to.be.true;
|
|
@@ -1075,7 +1075,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
1075
1075
|
bidderCode: 'myBidderCode',
|
|
1076
1076
|
bidderRequestId: '15246a574e859f',
|
|
1077
1077
|
bids: [{}],
|
|
1078
|
-
gdprConsent: {consentString: 'BOtmiBKOtmiBKABABAENAFAAAAACeAAA', vendorData: {}, gdprApplies: true},
|
|
1078
|
+
gdprConsent: { consentString: 'BOtmiBKOtmiBKABABAENAFAAAAACeAAA', vendorData: {}, gdprApplies: true },
|
|
1079
1079
|
refererInfo: {
|
|
1080
1080
|
canonicalUrl: null,
|
|
1081
1081
|
page: 'http://mypage.org?pbjs_debug=true',
|
|
@@ -1089,12 +1089,12 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
1089
1089
|
};
|
|
1090
1090
|
|
|
1091
1091
|
it('should record error when bidder_error called', function() {
|
|
1092
|
-
|
|
1092
|
+
const warnStub = sandbox.stub(utils, 'logWarn');
|
|
1093
1093
|
expect(requests).to.have.lengthOf(0);
|
|
1094
1094
|
expect(Object.keys(cnvrHelper.bidderErrorCache)).to.have.lengthOf(0);
|
|
1095
1095
|
expect(warnStub.calledOnce).to.be.false;
|
|
1096
1096
|
|
|
1097
|
-
events.emit(
|
|
1097
|
+
events.emit(EVENTS.BIDDER_ERROR, { error: XHR_ERROR_MOCK, bidderRequest: MOCK_BID_REQUEST });
|
|
1098
1098
|
expect(Object.keys(cnvrHelper.bidderErrorCache)).to.have.lengthOf(1);
|
|
1099
1099
|
expect(warnStub.calledOnce).to.be.true;
|
|
1100
1100
|
|
|
@@ -1105,7 +1105,7 @@ describe('Conversant analytics adapter tests', function() {
|
|
|
1105
1105
|
expect(errorObj.errors[0].bidderCode).to.equal(MOCK_BID_REQUEST.bidderCode);
|
|
1106
1106
|
expect(errorObj.errors[0].url).to.not.be.undefined;
|
|
1107
1107
|
|
|
1108
|
-
events.emit(
|
|
1108
|
+
events.emit(EVENTS.BIDDER_ERROR, { error: XHR_ERROR_MOCK, bidderRequest: MOCK_BID_REQUEST });
|
|
1109
1109
|
errorObj = cnvrHelper.bidderErrorCache[MOCK_BID_REQUEST.auctionId];
|
|
1110
1110
|
expect(errorObj.errors).to.have.lengthOf(2);
|
|
1111
1111
|
});
|