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
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Overview
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
Module Name: Dailymotion Bid Adapter
|
|
5
|
+
Module Type: Bidder Adapter
|
|
6
|
+
Maintainer: ad-leo-engineering@dailymotion.com
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
# Description
|
|
10
|
+
|
|
11
|
+
Dailymotion prebid adapter.
|
|
12
|
+
|
|
13
|
+
# Configuration options
|
|
14
|
+
|
|
15
|
+
Before calling this adapter, you need to set at least the API key in the bid parameters:
|
|
16
|
+
|
|
17
|
+
```javascript
|
|
18
|
+
const adUnits = [
|
|
19
|
+
{
|
|
20
|
+
bids: [{
|
|
21
|
+
bidder: 'dailymotion',
|
|
22
|
+
params: {
|
|
23
|
+
apiKey: 'fake_api_key'
|
|
24
|
+
}
|
|
25
|
+
}]
|
|
26
|
+
}
|
|
27
|
+
];
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`apiKey` is your publisher API key. For testing purpose, you can use "dailymotion-testing".
|
|
31
|
+
|
|
32
|
+
# Test Parameters
|
|
33
|
+
|
|
34
|
+
By setting the following bid parameters, you'll get a constant response to any request, to validate your adapter integration:
|
|
35
|
+
|
|
36
|
+
```javascript
|
|
37
|
+
const adUnits = [
|
|
38
|
+
{
|
|
39
|
+
bids: [{
|
|
40
|
+
bidder: 'dailymotion',
|
|
41
|
+
params: {
|
|
42
|
+
apiKey: 'dailymotion-testing'
|
|
43
|
+
}
|
|
44
|
+
}]
|
|
45
|
+
}
|
|
46
|
+
];
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Please note that failing to set these will result in the adapter not bidding at all.
|
|
50
|
+
|
|
51
|
+
# Sample video AdUnit
|
|
52
|
+
|
|
53
|
+
To allow better targeting, you should provide as much context about the video as possible.
|
|
54
|
+
There are two ways of doing this depending on if you're using Dailymotion player or a third party one.
|
|
55
|
+
|
|
56
|
+
If you are using the Dailymotion player, you should only provide the video `xid` in your ad unit, example:
|
|
57
|
+
|
|
58
|
+
```javascript
|
|
59
|
+
const adUnits = [
|
|
60
|
+
{
|
|
61
|
+
bids: [{
|
|
62
|
+
bidder: 'dailymotion',
|
|
63
|
+
params: {
|
|
64
|
+
apiKey: 'dailymotion-testing'
|
|
65
|
+
}
|
|
66
|
+
}],
|
|
67
|
+
code: 'test-ad-unit',
|
|
68
|
+
mediaTypes: {
|
|
69
|
+
video: {
|
|
70
|
+
api: [2, 7],
|
|
71
|
+
context: 'instream',
|
|
72
|
+
playerSize: [ [1280, 720] ],
|
|
73
|
+
startDelay: 0,
|
|
74
|
+
xid: 'x123456' // Dailymotion infrastructure unique video ID
|
|
75
|
+
},
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
];
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
This will automatically fetch the most up-to-date information about the video.
|
|
82
|
+
If you provide any other metadata in addition to the `xid`, they will be ignored.
|
|
83
|
+
|
|
84
|
+
If you are using a third party video player, you should not provide any `xid` and instead fill the following members:
|
|
85
|
+
|
|
86
|
+
```javascript
|
|
87
|
+
const adUnits = [
|
|
88
|
+
{
|
|
89
|
+
bids: [{
|
|
90
|
+
bidder: 'dailymotion',
|
|
91
|
+
params: {
|
|
92
|
+
apiKey: 'dailymotion-testing',
|
|
93
|
+
video: {
|
|
94
|
+
description: 'overriden video description'
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}],
|
|
98
|
+
code: 'test-ad-unit',
|
|
99
|
+
mediaTypes: {
|
|
100
|
+
video: {
|
|
101
|
+
api: [2, 7],
|
|
102
|
+
context: 'instream',
|
|
103
|
+
description: 'this is a video description',
|
|
104
|
+
duration: 556,
|
|
105
|
+
iabcat2: ['6', '17'],
|
|
106
|
+
id: '54321',
|
|
107
|
+
lang: 'FR',
|
|
108
|
+
playerSize: [ [1280, 720] ],
|
|
109
|
+
private: false,
|
|
110
|
+
startDelay: 0,
|
|
111
|
+
tags: 'tag_1,tag_2,tag_3',
|
|
112
|
+
title: 'test video',
|
|
113
|
+
topics: 'topic_1, topic_2',
|
|
114
|
+
},
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
];
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Each of the following video metadata fields can be added in mediaTypes.video or bids.params.video.
|
|
121
|
+
If a field exists in both places, it will be overridden by bids.params.video.
|
|
122
|
+
|
|
123
|
+
* `description` - Video description
|
|
124
|
+
* `duration` - Video duration in seconds
|
|
125
|
+
* `iabcat2` - List of IAB category IDs from the [2.0 taxonomy](https://github.com/InteractiveAdvertisingBureau/Taxonomies/blob/main/Content%20Taxonomies/Content%20Taxonomy%202.0.tsv)
|
|
126
|
+
* `id` - Video unique ID in host video infrastructure
|
|
127
|
+
* `lang` - ISO 639-1 code for main language used in the video
|
|
128
|
+
* `private` - True if video is not publicly available
|
|
129
|
+
* `tags` - Tags for the video, comma separated
|
|
130
|
+
* `title` - Video title
|
|
131
|
+
* `topics` - Main topics for the video, comma separated
|
|
132
|
+
* `xid` - Dailymotion video identifier (only applicable if using the Dailymotion player)
|
|
133
|
+
|
|
134
|
+
# Integrating the adapter
|
|
135
|
+
|
|
136
|
+
To use the adapter with any non-test request, you first need to ask an API key from Dailymotion. Please contact us through **DailymotionPrebid.js@dailymotion.com**.
|
|
137
|
+
|
|
138
|
+
You will then be able to use it within the bid parameters before making a bid request.
|
|
139
|
+
|
|
140
|
+
This API key will ensure proper identification of your inventory and allow you to get real bids.
|
|
@@ -12,7 +12,7 @@ import { Renderer } from '../src/Renderer.js';
|
|
|
12
12
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
13
13
|
import { createBid } from '../src/bidfactory.js';
|
|
14
14
|
import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
|
|
15
|
-
import
|
|
15
|
+
import { STATUS } from '../src/constants.js';
|
|
16
16
|
import { OUTSTREAM, INSTREAM } from '../src/video.js';
|
|
17
17
|
|
|
18
18
|
/**
|
|
@@ -416,7 +416,7 @@ function buildBannerResponse(bidRequest, bidResponse) {
|
|
|
416
416
|
if (bidRequest) {
|
|
417
417
|
let bidResponse = createBid(1);
|
|
418
418
|
placementCode = bidRequest.placementCode;
|
|
419
|
-
bidRequest.status =
|
|
419
|
+
bidRequest.status = STATUS.GOOD;
|
|
420
420
|
responseCPM = parseFloat(bidderBid.price);
|
|
421
421
|
if (responseCPM === 0 || isNaN(responseCPM)) {
|
|
422
422
|
let bid = createBid(2);
|
|
@@ -457,7 +457,7 @@ function buildNativeResponse(bidRequest, response) {
|
|
|
457
457
|
if (bidRequest) {
|
|
458
458
|
let bidResponse = createBid(1);
|
|
459
459
|
placementCode = bidRequest.placementCode;
|
|
460
|
-
bidRequest.status =
|
|
460
|
+
bidRequest.status = STATUS.GOOD;
|
|
461
461
|
responseCPM = parseFloat(bidderBid.price);
|
|
462
462
|
if (responseCPM === 0 || isNaN(responseCPM)) {
|
|
463
463
|
let bid = createBid(2);
|
|
@@ -506,7 +506,7 @@ function buildVideoResponse(bidRequest, response) {
|
|
|
506
506
|
if (bidRequest) {
|
|
507
507
|
let bidResponse = createBid(1);
|
|
508
508
|
placementCode = bidRequest.placementCode;
|
|
509
|
-
bidRequest.status =
|
|
509
|
+
bidRequest.status = STATUS.GOOD;
|
|
510
510
|
responseCPM = parseFloat(bidderBid.price);
|
|
511
511
|
if (responseCPM === 0 || isNaN(responseCPM)) {
|
|
512
512
|
let bid = createBid(2);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {deepClone, delayExecution} from '../../src/utils.js';
|
|
2
|
-
import
|
|
2
|
+
import { STATUS } from '../../src/constants.js';
|
|
3
3
|
|
|
4
4
|
export function makePbsInterceptor({createBid}) {
|
|
5
5
|
return function pbsBidInterceptor(next, interceptBids, s2sBidRequest, bidRequests, ajax, {
|
|
@@ -17,7 +17,7 @@ export function makePbsInterceptor({createBid}) {
|
|
|
17
17
|
function addBid(bid, bidRequest) {
|
|
18
18
|
onBid({
|
|
19
19
|
adUnit: bidRequest.adUnitCode,
|
|
20
|
-
bid: Object.assign(createBid(
|
|
20
|
+
bid: Object.assign(createBid(STATUS.GOOD, bidRequest), bid)
|
|
21
21
|
})
|
|
22
22
|
}
|
|
23
23
|
bidRequests = bidRequests
|
|
@@ -20,7 +20,7 @@ import {getHook, submodule} from '../src/hook.js';
|
|
|
20
20
|
import {auctionManager} from '../src/auctionManager.js';
|
|
21
21
|
import {gdprDataHandler} from '../src/adapterManager.js';
|
|
22
22
|
import * as events from '../src/events.js';
|
|
23
|
-
import
|
|
23
|
+
import { EVENTS } from '../src/constants.js';
|
|
24
24
|
import {getPPID} from '../src/adserver.js';
|
|
25
25
|
import {getRefererInfo} from '../src/refererDetection.js';
|
|
26
26
|
import {CLIENT_SECTIONS} from '../src/fpd/oneClient.js';
|
|
@@ -360,7 +360,7 @@ function getCustParams(bid, options, urlCustParams) {
|
|
|
360
360
|
);
|
|
361
361
|
|
|
362
362
|
// TODO: WTF is this? just firing random events, guessing at the argument, hoping noone notices?
|
|
363
|
-
events.emit(
|
|
363
|
+
events.emit(EVENTS.SET_TARGETING, {[adUnit.code]: prebidTargetingSet});
|
|
364
364
|
|
|
365
365
|
// merge the prebid + publisher targeting sets
|
|
366
366
|
const publisherTargetingSet = deepAccess(options, 'params.cust_params');
|
package/modules/dsaControl.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {config} from '../src/config.js';
|
|
2
2
|
import {auctionManager} from '../src/auctionManager.js';
|
|
3
3
|
import {timedBidResponseHook} from '../src/utils/perfMetrics.js';
|
|
4
|
-
import
|
|
4
|
+
import { REJECTION_REASON } from '../src/constants.js';
|
|
5
5
|
import {getHook} from '../src/hook.js';
|
|
6
6
|
import {logInfo, logWarn} from '../src/utils.js';
|
|
7
7
|
|
|
@@ -18,18 +18,18 @@ export const addBidResponseHook = timedBidResponseHook('dsa', function (fn, adUn
|
|
|
18
18
|
if (!bid.meta?.dsa) {
|
|
19
19
|
if (dsaRequest.dsarequired === 1) {
|
|
20
20
|
// request says dsa is supported; response does not have dsa info; warn about it
|
|
21
|
-
logWarn(`dsaControl: ${
|
|
21
|
+
logWarn(`dsaControl: ${REJECTION_REASON.DSA_REQUIRED}; will still be accepted as regs.ext.dsa.dsarequired = 1`, bid);
|
|
22
22
|
} else if ([2, 3].includes(dsaRequest.dsarequired)) {
|
|
23
23
|
// request says dsa is required; response does not have dsa info; reject it
|
|
24
|
-
rejectReason =
|
|
24
|
+
rejectReason = REJECTION_REASON.DSA_REQUIRED;
|
|
25
25
|
}
|
|
26
26
|
} else {
|
|
27
27
|
if (dsaRequest.pubrender === 0 && bid.meta.dsa.adrender === 0) {
|
|
28
28
|
// request says publisher can't render; response says advertiser won't; reject it
|
|
29
|
-
rejectReason =
|
|
29
|
+
rejectReason = REJECTION_REASON.DSA_MISMATCH;
|
|
30
30
|
} else if (dsaRequest.pubrender === 2 && bid.meta.dsa.adrender === 1) {
|
|
31
31
|
// request says publisher will render; response says advertiser will; reject it
|
|
32
|
-
rejectReason =
|
|
32
|
+
rejectReason = REJECTION_REASON.DSA_MISMATCH;
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -2,7 +2,7 @@ import { logError } from '../src/utils.js';
|
|
|
2
2
|
import {ajax} from '../src/ajax.js';
|
|
3
3
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
|
-
import
|
|
5
|
+
import { EVENTS } from '../src/constants.js';
|
|
6
6
|
|
|
7
7
|
const analyticsType = 'endpoint';
|
|
8
8
|
const EPL_HOST = 'https://ads.us.e-planning.net/hba/1/';
|
|
@@ -64,18 +64,18 @@ function bidTimeoutHandler(args) {
|
|
|
64
64
|
function callHandler(evtype, args) {
|
|
65
65
|
let handler = null;
|
|
66
66
|
|
|
67
|
-
if (evtype ===
|
|
67
|
+
if (evtype === EVENTS.AUCTION_INIT) {
|
|
68
68
|
handler = auctionInitHandler;
|
|
69
69
|
eplAnalyticsAdapter.context.events = [];
|
|
70
|
-
} else if (evtype ===
|
|
70
|
+
} else if (evtype === EVENTS.AUCTION_END) {
|
|
71
71
|
handler = auctionEndHandler;
|
|
72
|
-
} else if (evtype ===
|
|
72
|
+
} else if (evtype === EVENTS.BID_REQUESTED) {
|
|
73
73
|
handler = bidRequestedHandler;
|
|
74
|
-
} else if (evtype ===
|
|
74
|
+
} else if (evtype === EVENTS.BID_RESPONSE) {
|
|
75
75
|
handler = bidResponseHandler
|
|
76
|
-
} else if (evtype ===
|
|
76
|
+
} else if (evtype === EVENTS.BID_TIMEOUT) {
|
|
77
77
|
handler = bidTimeoutHandler;
|
|
78
|
-
} else if (evtype ===
|
|
78
|
+
} else if (evtype === EVENTS.BID_WON) {
|
|
79
79
|
handler = bidWonHandler;
|
|
80
80
|
}
|
|
81
81
|
|
|
@@ -95,7 +95,7 @@ var eplAnalyticsAdapter = Object.assign(adapter(
|
|
|
95
95
|
callHandler(eventType, args);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
if (eventType ===
|
|
98
|
+
if (eventType === EVENTS.AUCTION_END) {
|
|
99
99
|
try {
|
|
100
100
|
let strjson = JSON.stringify(eplAnalyticsAdapter.context.events);
|
|
101
101
|
ajax(eplAnalyticsAdapter.context.host + eplAnalyticsAdapter.context.ci + '?d=' + encodeURIComponent(strjson));
|
|
@@ -3,7 +3,7 @@ import { ajax } from '../src/ajax.js';
|
|
|
3
3
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
5
|
import {getStorageManager} from '../src/storageManager.js';
|
|
6
|
-
import
|
|
6
|
+
import { EVENTS } from '../src/constants.js';
|
|
7
7
|
import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
|
|
8
8
|
|
|
9
9
|
const MODULE_CODE = 'finteza';
|
|
@@ -330,16 +330,16 @@ function prepareTrackData(evtype, args) {
|
|
|
330
330
|
let prepareParams = null;
|
|
331
331
|
|
|
332
332
|
switch (evtype) {
|
|
333
|
-
case
|
|
333
|
+
case EVENTS.BID_REQUESTED:
|
|
334
334
|
prepareParams = prepareBidRequestedParams;
|
|
335
335
|
break;
|
|
336
|
-
case
|
|
336
|
+
case EVENTS.BID_RESPONSE:
|
|
337
337
|
prepareParams = prepareBidResponseParams;
|
|
338
338
|
break;
|
|
339
|
-
case
|
|
339
|
+
case EVENTS.BID_WON:
|
|
340
340
|
prepareParams = prepareBidWonParams;
|
|
341
341
|
break;
|
|
342
|
-
case
|
|
342
|
+
case EVENTS.BID_TIMEOUT:
|
|
343
343
|
prepareParams = prepareBidTimeoutParams;
|
|
344
344
|
break;
|
|
345
345
|
}
|
|
@@ -6,7 +6,7 @@ import {deepAccess, logError, logWarn} from '../src/utils.js';
|
|
|
6
6
|
import {config} from '../src/config.js';
|
|
7
7
|
import adapterManager, {gdprDataHandler} from '../src/adapterManager.js';
|
|
8
8
|
import * as events from '../src/events.js';
|
|
9
|
-
import
|
|
9
|
+
import { EVENTS } from '../src/constants.js';
|
|
10
10
|
import {GDPR_GVLIDS, VENDORLESS_GVLID, FIRST_PARTY_GVLID} from '../src/consentHandler.js';
|
|
11
11
|
import {
|
|
12
12
|
MODULE_TYPE_ANALYTICS,
|
|
@@ -292,11 +292,11 @@ function emitTCF2FinalResults() {
|
|
|
292
292
|
geoBlocked: formatSet(geoBlocked)
|
|
293
293
|
};
|
|
294
294
|
|
|
295
|
-
events.emit(
|
|
295
|
+
events.emit(EVENTS.TCF2_ENFORCEMENT, tcf2FinalResults);
|
|
296
296
|
[storageBlocked, biddersBlocked, analyticsBlocked, ufpdBlocked, eidsBlocked, geoBlocked].forEach(el => el.clear());
|
|
297
297
|
}
|
|
298
298
|
|
|
299
|
-
events.on(
|
|
299
|
+
events.on(EVENTS.AUCTION_END, emitTCF2FinalResults);
|
|
300
300
|
|
|
301
301
|
/**
|
|
302
302
|
* A configuration function that initializes some module variables, as well as adds hooks
|
|
@@ -19,7 +19,7 @@ import { submodule } from '../src/hook.js';
|
|
|
19
19
|
import { ajax } from '../src/ajax.js';
|
|
20
20
|
import { generateUUID, createInvisibleIframe, insertElement, isEmpty, logError } from '../src/utils.js';
|
|
21
21
|
import * as events from '../src/events.js';
|
|
22
|
-
import
|
|
22
|
+
import { EVENTS } from '../src/constants.js';
|
|
23
23
|
import { loadExternalScript } from '../src/adloader.js';
|
|
24
24
|
import { auctionManager } from '../src/auctionManager.js';
|
|
25
25
|
import { getRefererInfo } from '../src/refererDetection.js';
|
|
@@ -237,7 +237,7 @@ function fireBillableEventsForApplicableBids(params) {
|
|
|
237
237
|
let data = message.data;
|
|
238
238
|
if (isBillingMessage(data, params)) {
|
|
239
239
|
let winningBid = auctionManager.findBidByAdId(data.adId);
|
|
240
|
-
events.emit(
|
|
240
|
+
events.emit(EVENTS.BILLABLE_EVENT, {
|
|
241
241
|
vendor: SUBMODULE_NAME,
|
|
242
242
|
billingId: data.impressionId,
|
|
243
243
|
type: winningBid ? 'impression' : data.type,
|
|
@@ -1,23 +1,21 @@
|
|
|
1
1
|
import {ajax} from '../src/ajax.js';
|
|
2
2
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
|
-
import
|
|
3
|
+
import { EVENTS } from '../src/constants.js';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
|
-
import {deepClone, generateUUID, logError, logInfo, logWarn} from '../src/utils.js';
|
|
5
|
+
import {deepClone, generateUUID, logError, logInfo, logWarn, getParameterByName} from '../src/utils.js';
|
|
6
6
|
|
|
7
7
|
const analyticsType = 'endpoint';
|
|
8
8
|
|
|
9
|
-
export const ANALYTICS_VERSION = '2.2.
|
|
9
|
+
export const ANALYTICS_VERSION = '2.2.1';
|
|
10
10
|
|
|
11
11
|
const ANALYTICS_SERVER = 'https://a.greenbids.ai';
|
|
12
12
|
|
|
13
13
|
const {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
} = CONSTANTS;
|
|
14
|
+
AUCTION_INIT,
|
|
15
|
+
AUCTION_END,
|
|
16
|
+
BID_TIMEOUT,
|
|
17
|
+
BILLABLE_EVENT,
|
|
18
|
+
} = EVENTS;
|
|
21
19
|
|
|
22
20
|
export const BIDDER_STATUS = {
|
|
23
21
|
BID: 'bid',
|
|
@@ -28,6 +26,11 @@ export const BIDDER_STATUS = {
|
|
|
28
26
|
const analyticsOptions = {};
|
|
29
27
|
|
|
30
28
|
export const isSampled = function(greenbidsId, samplingRate, exploratorySamplingSplit) {
|
|
29
|
+
const isSamplingForced = getParameterByName('greenbids_force_sampling');
|
|
30
|
+
if (isSamplingForced) {
|
|
31
|
+
logInfo('Greenbids Analytics: sampling flag detected, forcing analytics');
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
31
34
|
if (samplingRate < 0 || samplingRate > 1) {
|
|
32
35
|
logWarn('Sampling rate must be between 0 and 1');
|
|
33
36
|
return true;
|
|
@@ -2,7 +2,7 @@ import { logError, deepClone, generateUUID, deepSetValue, deepAccess } from '../
|
|
|
2
2
|
import { ajax } from '../src/ajax.js';
|
|
3
3
|
import { submodule } 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
|
const MODULE_NAME = 'greenbidsRtdProvider';
|
|
8
8
|
const MODULE_VERSION = '2.0.0';
|
|
@@ -28,7 +28,7 @@ function onAuctionInitEvent(auctionDetails) {
|
|
|
28
28
|
let greenbidsId = deepAccess(auctionDetails.adUnits[0], 'ortb2Imp.ext.greenbids.greenbidsId', defaultId);
|
|
29
29
|
/* greenbids was successfully called so we emit the event */
|
|
30
30
|
if (greenbidsId !== defaultId) {
|
|
31
|
-
events.emit(
|
|
31
|
+
events.emit(EVENTS.BILLABLE_EVENT, {
|
|
32
32
|
type: 'auction',
|
|
33
33
|
billingId: generateUUID(),
|
|
34
34
|
auctionId: auctionDetails.auctionId,
|
|
@@ -5,7 +5,7 @@ import { ajax } from '../src/ajax.js';
|
|
|
5
5
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
6
6
|
import adapterManager from '../src/adapterManager.js';
|
|
7
7
|
import * as utils from '../src/utils.js';
|
|
8
|
-
import
|
|
8
|
+
import { EVENTS } from '../src/constants.js';
|
|
9
9
|
import {getStorageManager} from '../src/storageManager.js';
|
|
10
10
|
import {getRefererInfo} from '../src/refererDetection.js';
|
|
11
11
|
import {logError, logInfo} from '../src/utils.js';
|
|
@@ -35,70 +35,70 @@ let growthCodeAnalyticsAdapter = Object.assign(adapter({url: url, analyticsType}
|
|
|
35
35
|
let data = {};
|
|
36
36
|
if (!trackEvents.includes(eventType)) return;
|
|
37
37
|
switch (eventType) {
|
|
38
|
-
case
|
|
38
|
+
case EVENTS.AUCTION_INIT: {
|
|
39
39
|
data = eventData;
|
|
40
40
|
startAuction = data.timestamp;
|
|
41
41
|
bidRequestTimeout = data.timeout;
|
|
42
42
|
break;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
case
|
|
45
|
+
case EVENTS.AUCTION_END: {
|
|
46
46
|
data = eventData;
|
|
47
47
|
data.start = startAuction;
|
|
48
48
|
data.end = Date.now();
|
|
49
49
|
break;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
case
|
|
52
|
+
case EVENTS.BID_ADJUSTMENT: {
|
|
53
53
|
data.bidders = eventData;
|
|
54
54
|
break;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
case
|
|
57
|
+
case EVENTS.BID_TIMEOUT: {
|
|
58
58
|
data.bidders = eventData;
|
|
59
59
|
data.duration = bidRequestTimeout;
|
|
60
60
|
break;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
case
|
|
63
|
+
case EVENTS.BID_REQUESTED: {
|
|
64
64
|
data = eventData;
|
|
65
65
|
break;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
case
|
|
68
|
+
case EVENTS.BID_RESPONSE: {
|
|
69
69
|
data = eventData;
|
|
70
70
|
delete data.ad;
|
|
71
71
|
break;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
case
|
|
74
|
+
case EVENTS.BID_WON: {
|
|
75
75
|
data = eventData;
|
|
76
76
|
delete data.ad;
|
|
77
77
|
delete data.adUrl;
|
|
78
78
|
break;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
case
|
|
81
|
+
case EVENTS.BIDDER_DONE: {
|
|
82
82
|
data = eventData;
|
|
83
83
|
break;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
case
|
|
86
|
+
case EVENTS.SET_TARGETING: {
|
|
87
87
|
data.targetings = eventData;
|
|
88
88
|
break;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
case
|
|
91
|
+
case EVENTS.REQUEST_BIDS: {
|
|
92
92
|
data = eventData;
|
|
93
93
|
break;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
case
|
|
96
|
+
case EVENTS.ADD_AD_UNITS: {
|
|
97
97
|
data = eventData;
|
|
98
98
|
break;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
case
|
|
101
|
+
case EVENTS.NO_BID: {
|
|
102
102
|
data = eventData
|
|
103
103
|
break;
|
|
104
104
|
}
|
|
@@ -170,7 +170,7 @@ function sendEvent(event) {
|
|
|
170
170
|
eventQueue.push(event);
|
|
171
171
|
logInfo(MODULE_NAME + 'Analytics Event: ' + event);
|
|
172
172
|
|
|
173
|
-
if ((event.eventType ===
|
|
173
|
+
if ((event.eventType === EVENTS.AUCTION_END) || (event.eventType === EVENTS.BID_WON)) {
|
|
174
174
|
logToServer();
|
|
175
175
|
}
|
|
176
176
|
}
|
|
@@ -2,7 +2,7 @@ import { ajax } from '../src/ajax.js';
|
|
|
2
2
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
3
|
import adapterManager from '../src/adapterManager.js';
|
|
4
4
|
import * as utils from '../src/utils.js';
|
|
5
|
-
import
|
|
5
|
+
import { EVENTS } from '../src/constants.js';
|
|
6
6
|
import {getStorageManager} from '../src/storageManager.js';
|
|
7
7
|
import {getRefererInfo} from '../src/refererDetection.js';
|
|
8
8
|
import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
|
|
@@ -57,70 +57,70 @@ let hadronAnalyticsAdapter = Object.assign(adapter({url: HADRON_ANALYTICS_URL, a
|
|
|
57
57
|
var data = {};
|
|
58
58
|
if (!eventsToTrack.includes(eventType)) return;
|
|
59
59
|
switch (eventType) {
|
|
60
|
-
case
|
|
60
|
+
case EVENTS.AUCTION_INIT: {
|
|
61
61
|
data = args;
|
|
62
62
|
startAuction = data.timestamp;
|
|
63
63
|
bidRequestTimeout = data.timeout;
|
|
64
64
|
break;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
case
|
|
67
|
+
case EVENTS.AUCTION_END: {
|
|
68
68
|
data = args;
|
|
69
69
|
data.start = startAuction;
|
|
70
70
|
data.end = Date.now();
|
|
71
71
|
break;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
case
|
|
74
|
+
case EVENTS.BID_ADJUSTMENT: {
|
|
75
75
|
data.bidders = args;
|
|
76
76
|
break;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
case
|
|
79
|
+
case EVENTS.BID_TIMEOUT: {
|
|
80
80
|
data.bidders = args;
|
|
81
81
|
data.duration = bidRequestTimeout;
|
|
82
82
|
break;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
case
|
|
85
|
+
case EVENTS.BID_REQUESTED: {
|
|
86
86
|
data = args;
|
|
87
87
|
break;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
case
|
|
90
|
+
case EVENTS.BID_RESPONSE: {
|
|
91
91
|
data = args;
|
|
92
92
|
delete data.ad;
|
|
93
93
|
break;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
case
|
|
96
|
+
case EVENTS.BID_WON: {
|
|
97
97
|
data = args;
|
|
98
98
|
delete data.ad;
|
|
99
99
|
delete data.adUrl;
|
|
100
100
|
break;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
case
|
|
103
|
+
case EVENTS.BIDDER_DONE: {
|
|
104
104
|
data = args;
|
|
105
105
|
break;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
case
|
|
108
|
+
case EVENTS.SET_TARGETING: {
|
|
109
109
|
data.targetings = args;
|
|
110
110
|
break;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
case
|
|
113
|
+
case EVENTS.REQUEST_BIDS: {
|
|
114
114
|
data = args;
|
|
115
115
|
break;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
case
|
|
118
|
+
case EVENTS.ADD_AD_UNITS: {
|
|
119
119
|
data = args;
|
|
120
120
|
break;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
case
|
|
123
|
+
case EVENTS.AD_RENDER_FAILED: {
|
|
124
124
|
data = args;
|
|
125
125
|
break;
|
|
126
126
|
}
|
|
@@ -186,7 +186,7 @@ function sendEvent(event) {
|
|
|
186
186
|
eventQueue.push(event);
|
|
187
187
|
utils.logInfo(`HADRON_ANALYTICS_EVENT ${event.eventType} `, event);
|
|
188
188
|
|
|
189
|
-
if (event.eventType ===
|
|
189
|
+
if (event.eventType === EVENTS.AUCTION_END) {
|
|
190
190
|
flush();
|
|
191
191
|
}
|
|
192
192
|
}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
triggerPixel,
|
|
7
7
|
} from '../src/utils.js';
|
|
8
8
|
import * as events from '../src/events.js';
|
|
9
|
-
import
|
|
9
|
+
import { EVENTS } from '../src/constants.js';
|
|
10
10
|
import {BANNER} from '../src/mediaTypes.js';
|
|
11
11
|
|
|
12
12
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
@@ -19,7 +19,7 @@ const TIME_TO_LIVE = 300
|
|
|
19
19
|
const TMAX = 500
|
|
20
20
|
let wurlMap = {}
|
|
21
21
|
|
|
22
|
-
events.on(
|
|
22
|
+
events.on(EVENTS.BID_WON, bidWonHandler)
|
|
23
23
|
|
|
24
24
|
export const spec = {
|
|
25
25
|
code: BIDDER_CODE,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import buildAdapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
2
|
-
import
|
|
2
|
+
import { EVENTS } from '../src/constants.js';
|
|
3
3
|
import adapterManager from '../src/adapterManager.js';
|
|
4
4
|
import { ajax } from '../src/ajax.js';
|
|
5
5
|
import { logInfo, logError } from '../src/utils.js';
|
|
@@ -7,14 +7,12 @@ import * as events from '../src/events.js';
|
|
|
7
7
|
import {getGlobal} from '../src/prebidGlobal.js';
|
|
8
8
|
|
|
9
9
|
const {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
} = CONSTANTS
|
|
10
|
+
AUCTION_END,
|
|
11
|
+
TCF2_ENFORCEMENT,
|
|
12
|
+
BID_WON,
|
|
13
|
+
BID_VIEWABLE,
|
|
14
|
+
AD_RENDER_FAILED
|
|
15
|
+
} = EVENTS
|
|
18
16
|
|
|
19
17
|
const GVLID = 131;
|
|
20
18
|
|