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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
layout: page_v2
|
|
3
|
-
title:
|
|
3
|
+
title: Azerion Edge RTD Provider
|
|
4
4
|
display_name: Azerion Edge RTD Provider
|
|
5
5
|
description: Client-side contextual cookieless audiences.
|
|
6
6
|
page_type: module
|
|
@@ -18,6 +18,8 @@ Client-side contextual cookieless audiences.
|
|
|
18
18
|
Azerion Edge RTD module helps publishers to capture users' interest
|
|
19
19
|
audiences on their site, and attach these into the bid request.
|
|
20
20
|
|
|
21
|
+
Please contact [edge@azerion.com](edge@azerion.com) for more information.
|
|
22
|
+
|
|
21
23
|
Maintainer: [azerion.com](https://www.azerion.com/)
|
|
22
24
|
|
|
23
25
|
{:.no_toc}
|
|
@@ -64,7 +66,7 @@ pbjs.setConfig(
|
|
|
64
66
|
| :--- | :------- | :------------------ | :--------------- |
|
|
65
67
|
| name | `String` | RTD sub module name | Always "azerionedge" |
|
|
66
68
|
| waitForIt | `Boolean` | Required to ensure that the auction is delayed for the module to respond. | Optional. Defaults to false but recommended to true. |
|
|
67
|
-
| params.key | `String` | Publisher partner specific key |
|
|
69
|
+
| params.key | `String` | Publisher partner specific key | Mandatory. The key is required for the module to work. If you haven't received one, please reach [support@improvedigital.com](support@improvedigital.com) |
|
|
68
70
|
| params.bidders | `Array` | Bidders with which to share segment information | Optional. Defaults to "improvedigital". |
|
|
69
71
|
| params.process | `Object` | Configuration for the Azerion Edge script. | Optional. Defaults to `{}`. |
|
|
70
72
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import {config} from '../src/config.js';
|
|
6
6
|
import * as events from '../src/events.js';
|
|
7
|
-
import
|
|
7
|
+
import { EVENTS } from '../src/constants.js';
|
|
8
8
|
import {isFn, logWarn, triggerPixel} from '../src/utils.js';
|
|
9
9
|
import {getGlobal} from '../src/prebidGlobal.js';
|
|
10
10
|
import adapterManager, {gdprDataHandler, uspDataHandler, gppDataHandler} from '../src/adapterManager.js';
|
|
@@ -82,12 +82,12 @@ export let impressionViewableHandler = (globalModuleConfig, slot, event) => {
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
// emit the BID_VIEWABLE event with bid details, this event can be consumed by bidders and analytics pixels
|
|
85
|
-
events.emit(
|
|
85
|
+
events.emit(EVENTS.BID_VIEWABLE, respectiveBid);
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
88
|
|
|
89
89
|
export let init = () => {
|
|
90
|
-
events.on(
|
|
90
|
+
events.on(EVENTS.AUCTION_INIT, () => {
|
|
91
91
|
// read the config for the module
|
|
92
92
|
const globalModuleConfig = config.getConfig(MODULE_NAME) || {};
|
|
93
93
|
// do nothing if module-config.enabled is not set to true
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logMessage } from '../src/utils.js';
|
|
2
2
|
import { config } from '../src/config.js';
|
|
3
3
|
import * as events from '../src/events.js';
|
|
4
|
-
import
|
|
4
|
+
import {EVENTS} from '../src/constants.js';
|
|
5
5
|
|
|
6
6
|
const MODULE_NAME = 'bidViewabilityIO';
|
|
7
7
|
const CONFIG_ENABLED = 'enabled';
|
|
@@ -42,7 +42,7 @@ export let getViewableOptions = (bid) => {
|
|
|
42
42
|
export let markViewed = (bid, entry, observer) => {
|
|
43
43
|
return () => {
|
|
44
44
|
observer.unobserve(entry.target);
|
|
45
|
-
events.emit(
|
|
45
|
+
events.emit(EVENTS.BID_VIEWABLE, bid);
|
|
46
46
|
_logMessage(`id: ${entry.target.getAttribute('id')} code: ${bid.adUnitCode} was viewed`);
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -77,7 +77,7 @@ export let init = () => {
|
|
|
77
77
|
if (conf[MODULE_NAME][CONFIG_ENABLED] && CLIENT_SUPPORTS_IO) {
|
|
78
78
|
// if the module is enabled and the browser supports Intersection Observer,
|
|
79
79
|
// then listen to AD_RENDER_SUCCEEDED to setup IO's for supported mediaTypes
|
|
80
|
-
events.on(
|
|
80
|
+
events.on(EVENTS.AD_RENDER_SUCCEEDED, ({doc, bid, id}) => {
|
|
81
81
|
if (isSupportedMediaType(bid)) {
|
|
82
82
|
let viewable = new IntersectionObserver(viewCallbackFactory(bid), getViewableOptions(bid));
|
|
83
83
|
let element = document.getElementById(bid.adUnitCode);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
2
2
|
import adapterManager from '../src/adapterManager.js';
|
|
3
|
-
import
|
|
3
|
+
import { EVENTS } from '../src/constants.js';
|
|
4
4
|
import { ajax } from '../src/ajax.js';
|
|
5
5
|
import { getRefererInfo } from '../src/refererDetection.js';
|
|
6
6
|
|
|
@@ -8,14 +8,12 @@ const analyticsType = 'endpoint';
|
|
|
8
8
|
const url = 'URL_TO_SERVER_ENDPOINT';
|
|
9
9
|
|
|
10
10
|
const {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
} = CONSTANTS;
|
|
11
|
+
AUCTION_END,
|
|
12
|
+
BID_WON,
|
|
13
|
+
BID_RESPONSE,
|
|
14
|
+
BID_REQUESTED,
|
|
15
|
+
BID_TIMEOUT,
|
|
16
|
+
} = EVENTS;
|
|
19
17
|
|
|
20
18
|
let saveEvents = {}
|
|
21
19
|
let allEvents = {}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* @module modules/brandmetricsRtdProvider
|
|
6
6
|
* @requires module:modules/realTimeData
|
|
7
7
|
*/
|
|
8
|
-
import {submodule} from '../src/hook.js';
|
|
9
|
-
import {deepAccess, deepSetValue, logError, mergeDeep, generateUUID} from '../src/utils.js';
|
|
10
|
-
import {loadExternalScript} from '../src/adloader.js';
|
|
8
|
+
import { submodule } from '../src/hook.js';
|
|
9
|
+
import { deepAccess, deepSetValue, logError, mergeDeep, generateUUID } from '../src/utils.js';
|
|
10
|
+
import { loadExternalScript } from '../src/adloader.js';
|
|
11
11
|
import * as events from '../src/events.js';
|
|
12
|
-
import
|
|
12
|
+
import { EVENTS } from '../src/constants.js';
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule
|
|
@@ -156,7 +156,7 @@ function initializeBillableEvents() {
|
|
|
156
156
|
handler: (ev) => {
|
|
157
157
|
if (ev.source && ev.source.type === 'pbj') {
|
|
158
158
|
const bid = ev.source.data;
|
|
159
|
-
events.emit(
|
|
159
|
+
events.emit(EVENTS.BILLABLE_EVENT, {
|
|
160
160
|
vendor: 'brandmetrics',
|
|
161
161
|
type: 'creative_in_view',
|
|
162
162
|
measurementId: ev.mid,
|
|
@@ -202,7 +202,7 @@ export const brandmetricsSubmodule = {
|
|
|
202
202
|
logError(e)
|
|
203
203
|
}
|
|
204
204
|
},
|
|
205
|
-
init
|
|
205
|
+
init
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
submodule('realTimeData', brandmetricsSubmodule)
|
|
@@ -23,7 +23,7 @@ import {getStorageManager} from '../src/storageManager.js';
|
|
|
23
23
|
import {find, includes} from '../src/polyfill.js';
|
|
24
24
|
import {getGlobal} from '../src/prebidGlobal.js';
|
|
25
25
|
import * as events from '../src/events.js';
|
|
26
|
-
import
|
|
26
|
+
import {EVENTS} from '../src/constants.js';
|
|
27
27
|
import {MODULE_TYPE_RTD} from '../src/activities/modules.js';
|
|
28
28
|
|
|
29
29
|
/**
|
|
@@ -67,7 +67,7 @@ export function addBrowsiTag(data) {
|
|
|
67
67
|
export function sendPageviewEvent(eventType) {
|
|
68
68
|
if (eventType === 'PAGEVIEW') {
|
|
69
69
|
window.addEventListener('browsi_pageview', () => {
|
|
70
|
-
events.emit(
|
|
70
|
+
events.emit(EVENTS.BILLABLE_EVENT, {
|
|
71
71
|
vendor: 'browsi',
|
|
72
72
|
type: 'pageview',
|
|
73
73
|
billingId: generateUUID()
|
|
@@ -363,7 +363,7 @@ function getTargetingData(uc, c, us, a) {
|
|
|
363
363
|
}
|
|
364
364
|
if (sendAdRequestEvent) {
|
|
365
365
|
const transactionId = a.adUnits.find(adUnit => adUnit.code === auc).transactionId;
|
|
366
|
-
events.emit(
|
|
366
|
+
events.emit(EVENTS.BILLABLE_EVENT, {
|
|
367
367
|
vendor: 'browsi',
|
|
368
368
|
type: 'adRequest',
|
|
369
369
|
billingId: generateUUID(),
|
|
@@ -3,7 +3,7 @@ import Base64 from 'crypto-js/enc-base64';
|
|
|
3
3
|
import hmacSHA512 from 'crypto-js/hmac-sha512';
|
|
4
4
|
import enc from 'crypto-js/enc-utf8';
|
|
5
5
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
6
|
-
import
|
|
6
|
+
import { EVENTS, BID_STATUS } from '../src/constants.js';
|
|
7
7
|
import adapterManager from '../src/adapterManager.js';
|
|
8
8
|
import {getStorageManager} from '../src/storageManager.js';
|
|
9
9
|
import { auctionManager } from '../src/auctionManager.js';
|
|
@@ -12,7 +12,7 @@ import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
|
|
|
12
12
|
|
|
13
13
|
const versionCode = '4.4.1'
|
|
14
14
|
const secretKey = 'bydata@123456'
|
|
15
|
-
const {
|
|
15
|
+
const { NO_BID, BID_TIMEOUT, AUCTION_END, AUCTION_INIT, BID_WON } = EVENTS
|
|
16
16
|
const DEFAULT_EVENT_URL = 'https://pbjs-stream.bydata.com/topics/prebid'
|
|
17
17
|
const analyticsType = 'endpoint'
|
|
18
18
|
const isBydata = isKeyInUrl('bydata_debug')
|
|
@@ -342,7 +342,7 @@ ascAdapter.dataProcess = function (t) {
|
|
|
342
342
|
})
|
|
343
343
|
});
|
|
344
344
|
|
|
345
|
-
var prebidWinningBids = auctionManager.getBidsReceived().filter(bid => bid.status ===
|
|
345
|
+
var prebidWinningBids = auctionManager.getBidsReceived().filter(bid => bid.status === BID_STATUS.BID_TARGETING_SET);
|
|
346
346
|
prebidWinningBids && prebidWinningBids.length > 0 && prebidWinningBids.forEach(pbbid => {
|
|
347
347
|
payload['auctionData'] && payload['auctionData'].forEach(rwData => {
|
|
348
348
|
if (rwData['bid'] === pbbid.requestId && rwData['brs'] === pbbid.size) {
|
|
@@ -10,7 +10,7 @@ import { submodule } from '../src/hook.js';
|
|
|
10
10
|
import { loadExternalScript } from '../src/adloader.js';
|
|
11
11
|
import { logError, generateUUID, insertElement } from '../src/utils.js';
|
|
12
12
|
import * as events from '../src/events.js';
|
|
13
|
-
import
|
|
13
|
+
import { EVENTS } from '../src/constants.js';
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
16
|
* @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule
|
|
@@ -158,8 +158,8 @@ function readConfig(config) {
|
|
|
158
158
|
let startBillableEvents = function() {
|
|
159
159
|
// Upon clean.io submodule initialization, every winner bid is considered to be protected
|
|
160
160
|
// and therefore, subjected to billing
|
|
161
|
-
events.on(
|
|
162
|
-
events.emit(
|
|
161
|
+
events.on(EVENTS.BID_WON, winnerBidResponse => {
|
|
162
|
+
events.emit(EVENTS.BILLABLE_EVENT, {
|
|
163
163
|
vendor: 'clean.io',
|
|
164
164
|
billingId: generateUUID(),
|
|
165
165
|
type: 'impression',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { logMessage } from '../src/utils.js';
|
|
2
2
|
import {ajax} from '../src/ajax.js';
|
|
3
3
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
4
|
-
import
|
|
4
|
+
import { EVENTS } from '../src/constants.js';
|
|
5
5
|
import adapterManager from '../src/adapterManager.js';
|
|
6
6
|
|
|
7
7
|
const analyticsType = 'endpoint';
|
|
@@ -13,12 +13,10 @@ const pageIncludedInSample = sampleAnalytics();
|
|
|
13
13
|
const url = 'https://bids.concert.io/analytics';
|
|
14
14
|
|
|
15
15
|
const {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
} = CONSTANTS;
|
|
16
|
+
BID_RESPONSE,
|
|
17
|
+
BID_WON,
|
|
18
|
+
AUCTION_END
|
|
19
|
+
} = EVENTS;
|
|
22
20
|
|
|
23
21
|
let queue = [];
|
|
24
22
|
|
|
@@ -12,7 +12,7 @@ import { submodule } from '../src/hook.js';
|
|
|
12
12
|
import { logError, generateUUID } from '../src/utils.js';
|
|
13
13
|
import { loadExternalScript } from '../src/adloader.js';
|
|
14
14
|
import * as events from '../src/events.js';
|
|
15
|
-
import
|
|
15
|
+
import { EVENTS } from '../src/constants.js';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Injects the Confiant Inc. configuration script into the page, based on proprtyId provided
|
|
@@ -89,7 +89,7 @@ function setUpMutationObserver() {
|
|
|
89
89
|
function getEventHandlerFunction(propertyId) {
|
|
90
90
|
return function reportBillableEvent(e) {
|
|
91
91
|
if (e.data.type.indexOf('cnft:reportBillableEvent:' + propertyId) > -1) {
|
|
92
|
-
events.emit(
|
|
92
|
+
events.emit(EVENTS.BILLABLE_EVENT, {
|
|
93
93
|
auctionId: e.data.auctionId,
|
|
94
94
|
billingId: generateUUID(),
|
|
95
95
|
transactionId: e.data.transactionId,
|
|
@@ -1,6 +1,6 @@
|
|
|
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 {getGlobal} from '../src/prebidGlobal.js';
|
|
5
5
|
import adapterManager from '../src/adapterManager.js';
|
|
6
6
|
import {logInfo, logWarn, logError, logMessage, deepAccess, isInteger} from '../src/utils.js';
|
|
@@ -8,9 +8,7 @@ import {getRefererInfo} from '../src/refererDetection.js';
|
|
|
8
8
|
|
|
9
9
|
// Maintainer: mediapsr@epsilon.com
|
|
10
10
|
|
|
11
|
-
const {
|
|
12
|
-
EVENTS: { AUCTION_END, AD_RENDER_FAILED, BID_TIMEOUT, BID_WON, BIDDER_ERROR }
|
|
13
|
-
} = CONSTANTS;
|
|
11
|
+
const { AUCTION_END, AD_RENDER_FAILED, BID_TIMEOUT, BID_WON, BIDDER_ERROR } = EVENTS;
|
|
14
12
|
// STALE_RENDER, TCF2_ENFORCEMENT would need to add extra calls for these as they likely occur after AUCTION_END?
|
|
15
13
|
const GVLID = 24;
|
|
16
14
|
const ANALYTICS_TYPE = 'endpoint';
|
|
@@ -55,16 +55,18 @@ export const spec = {
|
|
|
55
55
|
gvlid: GVLID,
|
|
56
56
|
supportedMediaTypes: [BANNER, VIDEO, NATIVE],
|
|
57
57
|
|
|
58
|
-
getUserSyncs: function (syncOptions, _, gdprConsent, uspConsent) {
|
|
59
|
-
|
|
60
|
-
if (canFastBid(fastBidVersion)) {
|
|
61
|
-
return [];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
const refererInfo = getRefererInfo();
|
|
65
|
-
const origin = 'criteoPrebidAdapter';
|
|
58
|
+
getUserSyncs: function (syncOptions, _, gdprConsent, uspConsent, gppConsent = {}) {
|
|
59
|
+
let { gppString = '', applicableSections = [] } = gppConsent;
|
|
66
60
|
|
|
67
61
|
if (syncOptions.iframeEnabled && hasPurpose1Consent(gdprConsent)) {
|
|
62
|
+
const fastBidVersion = config.getConfig('criteo.fastBidVersion');
|
|
63
|
+
if (canFastBid(fastBidVersion)) {
|
|
64
|
+
return [];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const refererInfo = getRefererInfo();
|
|
68
|
+
const origin = 'criteoPrebidAdapter';
|
|
69
|
+
|
|
68
70
|
const queryParams = [];
|
|
69
71
|
queryParams.push(`origin=${origin}`);
|
|
70
72
|
queryParams.push(`topUrl=${refererInfo.domain}`);
|
|
@@ -79,6 +81,12 @@ export const spec = {
|
|
|
79
81
|
if (uspConsent) {
|
|
80
82
|
queryParams.push(`us_privacy=${uspConsent}`);
|
|
81
83
|
}
|
|
84
|
+
queryParams.push(`gpp=${gppString}`);
|
|
85
|
+
if (Array.isArray(applicableSections)) {
|
|
86
|
+
for (const applicableSection of applicableSections) {
|
|
87
|
+
queryParams.push(`gpp_sid=${applicableSection}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
82
90
|
|
|
83
91
|
const requestId = Math.random().toString();
|
|
84
92
|
|
|
@@ -126,6 +134,32 @@ export const spec = {
|
|
|
126
134
|
type: 'iframe',
|
|
127
135
|
url: `https://gum.criteo.com/syncframe?${queryParams.join('&')}#${jsonHashSerialized}`
|
|
128
136
|
}];
|
|
137
|
+
} else if (syncOptions.pixelEnabled && hasPurpose1Consent(gdprConsent)) {
|
|
138
|
+
const queryParams = [];
|
|
139
|
+
queryParams.push(`profile=207`);
|
|
140
|
+
if (gdprConsent) {
|
|
141
|
+
if (gdprConsent.gdprApplies === true) {
|
|
142
|
+
queryParams.push(`gdprapplies=true`);
|
|
143
|
+
}
|
|
144
|
+
if (gdprConsent.consentString) {
|
|
145
|
+
queryParams.push(`gdpr=${gdprConsent.consentString}`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (uspConsent) {
|
|
149
|
+
queryParams.push(`ccpa=${uspConsent}`);
|
|
150
|
+
}
|
|
151
|
+
queryParams.push(`gpp=${gppString}`);
|
|
152
|
+
if (Array.isArray(applicableSections)) {
|
|
153
|
+
for (const applicableSection of applicableSections) {
|
|
154
|
+
queryParams.push(`gpp_sid=${applicableSection}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// gpp
|
|
158
|
+
// gpp_sid
|
|
159
|
+
return [{
|
|
160
|
+
type: 'image',
|
|
161
|
+
url: `https://ssp-sync.criteo.com/user-sync/redirect?${queryParams.join('&')}`
|
|
162
|
+
}];
|
|
129
163
|
}
|
|
130
164
|
return [];
|
|
131
165
|
},
|
|
@@ -473,6 +507,7 @@ function checkNativeSendId(bidRequest) {
|
|
|
473
507
|
*/
|
|
474
508
|
function buildCdbRequest(context, bidRequests, bidderRequest) {
|
|
475
509
|
let networkId;
|
|
510
|
+
let pubid;
|
|
476
511
|
let schain;
|
|
477
512
|
let userIdAsEids;
|
|
478
513
|
let regs = Object.assign({}, {
|
|
@@ -490,6 +525,7 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
|
|
|
490
525
|
userIdAsEids = bidRequest.userIdAsEids;
|
|
491
526
|
}
|
|
492
527
|
networkId = bidRequest.params.networkId || networkId;
|
|
528
|
+
pubid = bidRequest.params.pubid || pubid;
|
|
493
529
|
schain = bidRequest.schain || schain;
|
|
494
530
|
const slot = {
|
|
495
531
|
slotid: bidRequest.bidId,
|
|
@@ -513,6 +549,10 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
|
|
|
513
549
|
if (bidRequest.nativeOrtbRequest?.assets) {
|
|
514
550
|
slot.ext = Object.assign({}, slot.ext, { assets: bidRequest.nativeOrtbRequest.assets });
|
|
515
551
|
}
|
|
552
|
+
if (bidRequest.params.uid) {
|
|
553
|
+
slot.ext = Object.assign({}, slot.ext, { bidder: { uid: bidRequest.params.uid } });
|
|
554
|
+
}
|
|
555
|
+
|
|
516
556
|
if (bidRequest.params.publisherSubId) {
|
|
517
557
|
slot.publishersubid = bidRequest.params.publisherSubId;
|
|
518
558
|
}
|
|
@@ -581,6 +621,9 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
|
|
|
581
621
|
if (networkId) {
|
|
582
622
|
request.publisher.networkid = networkId;
|
|
583
623
|
}
|
|
624
|
+
if (pubid) {
|
|
625
|
+
request.publisher.id = pubid;
|
|
626
|
+
}
|
|
584
627
|
|
|
585
628
|
request.source = {
|
|
586
629
|
tid: bidderRequest.ortb2?.source?.tid
|
package/modules/currency.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {logError, logInfo, logMessage, logWarn} from '../src/utils.js';
|
|
2
2
|
import {getGlobal} from '../src/prebidGlobal.js';
|
|
3
|
-
import
|
|
3
|
+
import { EVENTS, REJECTION_REASON } from '../src/constants.js';
|
|
4
4
|
import {ajax} from '../src/ajax.js';
|
|
5
5
|
import {config} from '../src/config.js';
|
|
6
6
|
import {getHook} from '../src/hook.js';
|
|
@@ -163,8 +163,8 @@ function initCurrency() {
|
|
|
163
163
|
getGlobal().convertCurrency = (cpm, fromCurrency, toCurrency) => parseFloat(cpm) * getCurrencyConversion(fromCurrency, toCurrency);
|
|
164
164
|
getHook('addBidResponse').before(addBidResponseHook, 100);
|
|
165
165
|
getHook('responsesReady').before(responsesReadyHook);
|
|
166
|
-
onEvent(
|
|
167
|
-
onEvent(
|
|
166
|
+
onEvent(EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout);
|
|
167
|
+
onEvent(EVENTS.AUCTION_INIT, loadRates);
|
|
168
168
|
loadRates();
|
|
169
169
|
}
|
|
170
170
|
|
|
@@ -173,8 +173,8 @@ function resetCurrency() {
|
|
|
173
173
|
|
|
174
174
|
getHook('addBidResponse').getHooks({hook: addBidResponseHook}).remove();
|
|
175
175
|
getHook('responsesReady').getHooks({hook: responsesReadyHook}).remove();
|
|
176
|
-
offEvent(
|
|
177
|
-
offEvent(
|
|
176
|
+
offEvent(EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout);
|
|
177
|
+
offEvent(EVENTS.AUCTION_INIT, loadRates);
|
|
178
178
|
delete getGlobal().convertCurrency;
|
|
179
179
|
|
|
180
180
|
adServerCurrency = 'USD';
|
|
@@ -230,7 +230,7 @@ export const addBidResponseHook = timedBidResponseHook('currency', function addB
|
|
|
230
230
|
function rejectOnAuctionTimeout({auctionId}) {
|
|
231
231
|
bidResponseQueue = bidResponseQueue.filter(([fn, ctx, adUnitCode, bid, reject]) => {
|
|
232
232
|
if (bid.auctionId === auctionId) {
|
|
233
|
-
reject(
|
|
233
|
+
reject(REJECTION_REASON.CANNOT_CONVERT_CURRENCY)
|
|
234
234
|
} else {
|
|
235
235
|
return true;
|
|
236
236
|
}
|
|
@@ -250,7 +250,7 @@ function processBidResponseQueue() {
|
|
|
250
250
|
}
|
|
251
251
|
} catch (e) {
|
|
252
252
|
logWarn('getCurrencyConversion threw error: ', e);
|
|
253
|
-
reject(
|
|
253
|
+
reject(REJECTION_REASON.CANNOT_CONVERT_CURRENCY);
|
|
254
254
|
continue;
|
|
255
255
|
}
|
|
256
256
|
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
2
|
+
import { VIDEO } from '../src/mediaTypes.js';
|
|
3
|
+
import { deepAccess } from '../src/utils.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Get video metadata from bid request
|
|
7
|
+
*
|
|
8
|
+
* @param {BidRequest} bidRequest A valid bid requests that should be sent to the Server.
|
|
9
|
+
* @return video metadata
|
|
10
|
+
*/
|
|
11
|
+
function getVideoMetadata(bidRequest, bidderRequest) {
|
|
12
|
+
const videoAdUnit = deepAccess(bidRequest, 'mediaTypes.video', {});
|
|
13
|
+
const videoBidderParams = deepAccess(bidRequest, 'params.video', {});
|
|
14
|
+
|
|
15
|
+
const videoParams = {
|
|
16
|
+
...videoAdUnit,
|
|
17
|
+
...videoBidderParams, // Bidder Specific overrides
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
// Store as object keys to ensure uniqueness
|
|
21
|
+
const iabcat1 = {};
|
|
22
|
+
const iabcat2 = {};
|
|
23
|
+
|
|
24
|
+
deepAccess(bidderRequest, 'ortb2.site.content.data', []).forEach((data) => {
|
|
25
|
+
if ([4, 5, 6, 7].includes(data?.ext?.segtax)) {
|
|
26
|
+
(Array.isArray(data.segment) ? data.segment : []).forEach((segment) => {
|
|
27
|
+
if (typeof segment.id === 'string') {
|
|
28
|
+
// See https://docs.prebid.org/features/firstPartyData.html#segments-and-taxonomy
|
|
29
|
+
// Only take IAB cats of taxonomy V1
|
|
30
|
+
if (data.ext.segtax === 4) iabcat1[segment.id] = 1;
|
|
31
|
+
// Only take IAB cats of taxonomy V2 or higher
|
|
32
|
+
if ([5, 6, 7].includes(data.ext.segtax)) iabcat2[segment.id] = 1;
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const videoMetadata = {
|
|
39
|
+
description: videoParams.description || '',
|
|
40
|
+
duration: videoParams.duration || 0,
|
|
41
|
+
iabcat1: Object.keys(iabcat1),
|
|
42
|
+
iabcat2: Array.isArray(videoParams.iabcat2)
|
|
43
|
+
? videoParams.iabcat2
|
|
44
|
+
: Object.keys(iabcat2),
|
|
45
|
+
id: videoParams.id || '',
|
|
46
|
+
lang: videoParams.lang || '',
|
|
47
|
+
private: videoParams.private || false,
|
|
48
|
+
tags: videoParams.tags || '',
|
|
49
|
+
title: videoParams.title || '',
|
|
50
|
+
topics: videoParams.topics || '',
|
|
51
|
+
xid: videoParams.xid || '',
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
return videoMetadata;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const spec = {
|
|
58
|
+
code: 'dailymotion',
|
|
59
|
+
gvlid: 573,
|
|
60
|
+
supportedMediaTypes: [VIDEO],
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Determines whether or not the given bid request is valid.
|
|
64
|
+
* The only mandatory parameter for a bid to be valid is the API key.
|
|
65
|
+
* Other parameters are optional.
|
|
66
|
+
*
|
|
67
|
+
* @return boolean True if this is a valid bid, and false otherwise.
|
|
68
|
+
*/
|
|
69
|
+
isBidRequestValid: function (bid) {
|
|
70
|
+
return typeof bid?.params?.apiKey === 'string' && bid.params.apiKey.length > 10;
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Make a server request from the list of valid BidRequests (that already passed the isBidRequestValid call)
|
|
75
|
+
*
|
|
76
|
+
* @param {BidRequest[]} validBidRequests A non-empty list of valid bid requests that should be sent to the Server.
|
|
77
|
+
* @param {BidderRequest} bidderRequest
|
|
78
|
+
* @return ServerRequest Info describing the request to the server.
|
|
79
|
+
*/
|
|
80
|
+
buildRequests: (validBidRequests = [], bidderRequest) => validBidRequests.map(bid => ({
|
|
81
|
+
method: 'POST',
|
|
82
|
+
url: 'https://pb.dmxleo.com',
|
|
83
|
+
data: {
|
|
84
|
+
bidder_request: {
|
|
85
|
+
gdprConsent: {
|
|
86
|
+
apiVersion: bidderRequest?.gdprConsent?.apiVersion || 1,
|
|
87
|
+
consentString: bidderRequest?.gdprConsent?.consentString || '',
|
|
88
|
+
// Cast boolean in any case (eg: if value is int) to ensure type
|
|
89
|
+
gdprApplies: !!bidderRequest?.gdprConsent?.gdprApplies,
|
|
90
|
+
},
|
|
91
|
+
refererInfo: {
|
|
92
|
+
page: bidderRequest?.refererInfo?.page || '',
|
|
93
|
+
},
|
|
94
|
+
uspConsent: bidderRequest?.uspConsent || '',
|
|
95
|
+
gppConsent: {
|
|
96
|
+
gppString: deepAccess(bidderRequest, 'gppConsent.gppString') ||
|
|
97
|
+
deepAccess(bidderRequest, 'ortb2.regs.gpp', ''),
|
|
98
|
+
applicableSections: deepAccess(bidderRequest, 'gppConsent.applicableSections') ||
|
|
99
|
+
deepAccess(bidderRequest, 'ortb2.regs.gpp_sid', []),
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
config: {
|
|
103
|
+
api_key: bid.params.apiKey
|
|
104
|
+
},
|
|
105
|
+
// Cast boolean in any case (value should be 0 or 1) to ensure type
|
|
106
|
+
coppa: !!deepAccess(bidderRequest, 'ortb2.regs.coppa'),
|
|
107
|
+
request: {
|
|
108
|
+
adUnitCode: bid.adUnitCode || '',
|
|
109
|
+
auctionId: bid.auctionId || '',
|
|
110
|
+
bidId: bid.bidId || '',
|
|
111
|
+
mediaTypes: {
|
|
112
|
+
video: {
|
|
113
|
+
playerSize: bid.mediaTypes?.[VIDEO]?.playerSize || [],
|
|
114
|
+
api: bid.mediaTypes?.[VIDEO]?.api || [],
|
|
115
|
+
startDelay: bid.mediaTypes?.[VIDEO]?.startdelay || 0,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
sizes: bid.sizes || [],
|
|
119
|
+
},
|
|
120
|
+
video_metadata: getVideoMetadata(bid, bidderRequest),
|
|
121
|
+
},
|
|
122
|
+
options: {
|
|
123
|
+
withCredentials: true,
|
|
124
|
+
crossOrigin: true,
|
|
125
|
+
},
|
|
126
|
+
})),
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Map the response from the server into a list of bids.
|
|
130
|
+
* As dailymotion prebid server returns an entry with the correct Prebid structure,
|
|
131
|
+
* we directly include it as the only bid in the response.
|
|
132
|
+
*
|
|
133
|
+
* @param {*} serverResponse A successful response from the server.
|
|
134
|
+
* @return {Bid[]} An array of bids which were nested inside the server.
|
|
135
|
+
*/
|
|
136
|
+
interpretResponse: serverResponse => serverResponse?.body ? [serverResponse.body] : [],
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
registerBidder(spec);
|