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
package/src/constants.js
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
export const JSON_MAPPING = {
|
|
2
|
+
PL_CODE: 'code',
|
|
3
|
+
PL_SIZE: 'sizes',
|
|
4
|
+
PL_BIDS: 'bids',
|
|
5
|
+
BD_BIDDER: 'bidder',
|
|
6
|
+
BD_ID: 'paramsd',
|
|
7
|
+
BD_PL_ID: 'placementId',
|
|
8
|
+
ADSERVER_TARGETING: 'adserverTargeting',
|
|
9
|
+
BD_SETTING_STANDARD: 'standard'
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export const DEBUG_MODE = 'pbjs_debug';
|
|
13
|
+
|
|
14
|
+
export const STATUS = {
|
|
15
|
+
GOOD: 1
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export const EVENTS = {
|
|
19
|
+
AUCTION_INIT: 'auctionInit',
|
|
20
|
+
AUCTION_TIMEOUT: 'auctionTimeout',
|
|
21
|
+
AUCTION_END: 'auctionEnd',
|
|
22
|
+
BID_ADJUSTMENT: 'bidAdjustment',
|
|
23
|
+
BID_TIMEOUT: 'bidTimeout',
|
|
24
|
+
BID_REQUESTED: 'bidRequested',
|
|
25
|
+
BID_RESPONSE: 'bidResponse',
|
|
26
|
+
BID_REJECTED: 'bidRejected',
|
|
27
|
+
NO_BID: 'noBid',
|
|
28
|
+
SEAT_NON_BID: 'seatNonBid',
|
|
29
|
+
BID_WON: 'bidWon',
|
|
30
|
+
BIDDER_DONE: 'bidderDone',
|
|
31
|
+
BIDDER_ERROR: 'bidderError',
|
|
32
|
+
SET_TARGETING: 'setTargeting',
|
|
33
|
+
BEFORE_REQUEST_BIDS: 'beforeRequestBids',
|
|
34
|
+
BEFORE_BIDDER_HTTP: 'beforeBidderHttp',
|
|
35
|
+
REQUEST_BIDS: 'requestBids',
|
|
36
|
+
ADD_AD_UNITS: 'addAdUnits',
|
|
37
|
+
AD_RENDER_FAILED: 'adRenderFailed',
|
|
38
|
+
AD_RENDER_SUCCEEDED: 'adRenderSucceeded',
|
|
39
|
+
TCF2_ENFORCEMENT: 'tcf2Enforcement',
|
|
40
|
+
AUCTION_DEBUG: 'auctionDebug',
|
|
41
|
+
BID_VIEWABLE: 'bidViewable',
|
|
42
|
+
STALE_RENDER: 'staleRender',
|
|
43
|
+
BILLABLE_EVENT: 'billableEvent',
|
|
44
|
+
BID_ACCEPTED: 'bidAccepted'
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export const AD_RENDER_FAILED_REASON = {
|
|
48
|
+
PREVENT_WRITING_ON_MAIN_DOCUMENT: 'preventWritingOnMainDocument',
|
|
49
|
+
NO_AD: 'noAd',
|
|
50
|
+
EXCEPTION: 'exception',
|
|
51
|
+
CANNOT_FIND_AD: 'cannotFindAd',
|
|
52
|
+
MISSING_DOC_OR_ADID: 'missingDocOrAdid'
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const EVENT_ID_PATHS = {
|
|
56
|
+
bidWon: 'adUnitCode'
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const GRANULARITY_OPTIONS = {
|
|
60
|
+
LOW: 'low',
|
|
61
|
+
MEDIUM: 'medium',
|
|
62
|
+
HIGH: 'high',
|
|
63
|
+
AUTO: 'auto',
|
|
64
|
+
DENSE: 'dense',
|
|
65
|
+
CUSTOM: 'custom'
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export const TARGETING_KEYS = {
|
|
69
|
+
BIDDER: 'hb_bidder',
|
|
70
|
+
AD_ID: 'hb_adid',
|
|
71
|
+
PRICE_BUCKET: 'hb_pb',
|
|
72
|
+
SIZE: 'hb_size',
|
|
73
|
+
DEAL: 'hb_deal',
|
|
74
|
+
SOURCE: 'hb_source',
|
|
75
|
+
FORMAT: 'hb_format',
|
|
76
|
+
UUID: 'hb_uuid',
|
|
77
|
+
CACHE_ID: 'hb_cache_id',
|
|
78
|
+
CACHE_HOST: 'hb_cache_host',
|
|
79
|
+
ADOMAIN: 'hb_adomain',
|
|
80
|
+
ACAT: 'hb_acat',
|
|
81
|
+
CRID: 'hb_crid',
|
|
82
|
+
DSP: 'hb_dsp'
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const DEFAULT_TARGETING_KEYS = {
|
|
86
|
+
BIDDER: 'hb_bidder',
|
|
87
|
+
AD_ID: 'hb_adid',
|
|
88
|
+
PRICE_BUCKET: 'hb_pb',
|
|
89
|
+
SIZE: 'hb_size',
|
|
90
|
+
DEAL: 'hb_deal',
|
|
91
|
+
FORMAT: 'hb_format',
|
|
92
|
+
UUID: 'hb_uuid',
|
|
93
|
+
CACHE_HOST: 'hb_cache_host'
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
export const NATIVE_KEYS = {
|
|
97
|
+
title: 'hb_native_title',
|
|
98
|
+
body: 'hb_native_body',
|
|
99
|
+
body2: 'hb_native_body2',
|
|
100
|
+
privacyLink: 'hb_native_privacy',
|
|
101
|
+
privacyIcon: 'hb_native_privicon',
|
|
102
|
+
sponsoredBy: 'hb_native_brand',
|
|
103
|
+
image: 'hb_native_image',
|
|
104
|
+
icon: 'hb_native_icon',
|
|
105
|
+
clickUrl: 'hb_native_linkurl',
|
|
106
|
+
displayUrl: 'hb_native_displayurl',
|
|
107
|
+
cta: 'hb_native_cta',
|
|
108
|
+
rating: 'hb_native_rating',
|
|
109
|
+
address: 'hb_native_address',
|
|
110
|
+
downloads: 'hb_native_downloads',
|
|
111
|
+
likes: 'hb_native_likes',
|
|
112
|
+
phone: 'hb_native_phone',
|
|
113
|
+
price: 'hb_native_price',
|
|
114
|
+
salePrice: 'hb_native_saleprice',
|
|
115
|
+
rendererUrl: 'hb_renderer_url',
|
|
116
|
+
adTemplate: 'hb_adTemplate'
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export const S2S = {
|
|
120
|
+
SRC: 's2s',
|
|
121
|
+
DEFAULT_ENDPOINT: 'https://prebid.adnxs.com/pbs/v1/openrtb2/auction',
|
|
122
|
+
SYNCED_BIDDERS_KEY: 'pbjsSyncs'
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
export const BID_STATUS = {
|
|
126
|
+
BID_TARGETING_SET: 'targetingSet',
|
|
127
|
+
RENDERED: 'rendered',
|
|
128
|
+
BID_REJECTED: 'bidRejected'
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export const REJECTION_REASON = {
|
|
132
|
+
INVALID: 'Bid has missing or invalid properties',
|
|
133
|
+
INVALID_REQUEST_ID: 'Invalid request ID',
|
|
134
|
+
BIDDER_DISALLOWED: 'Bidder code is not allowed by allowedAlternateBidderCodes / allowUnknownBidderCodes',
|
|
135
|
+
FLOOR_NOT_MET: 'Bid does not meet price floor',
|
|
136
|
+
CANNOT_CONVERT_CURRENCY: 'Unable to convert currency',
|
|
137
|
+
DSA_REQUIRED: 'Bid does not provide required DSA transparency info',
|
|
138
|
+
DSA_MISMATCH: 'Bid indicates inappropriate DSA rendering method'
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
export const PREBID_NATIVE_DATA_KEYS_TO_ORTB = {
|
|
142
|
+
body: 'desc',
|
|
143
|
+
body2: 'desc2',
|
|
144
|
+
sponsoredBy: 'sponsored',
|
|
145
|
+
cta: 'ctatext',
|
|
146
|
+
rating: 'rating',
|
|
147
|
+
address: 'address',
|
|
148
|
+
downloads: 'downloads',
|
|
149
|
+
likes: 'likes',
|
|
150
|
+
phone: 'phone',
|
|
151
|
+
price: 'price',
|
|
152
|
+
salePrice: 'saleprice',
|
|
153
|
+
displayUrl: 'displayurl'
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export const NATIVE_ASSET_TYPES = {
|
|
157
|
+
sponsored: 1,
|
|
158
|
+
desc: 2,
|
|
159
|
+
rating: 3,
|
|
160
|
+
likes: 4,
|
|
161
|
+
downloads: 5,
|
|
162
|
+
price: 6,
|
|
163
|
+
saleprice: 7,
|
|
164
|
+
phone: 8,
|
|
165
|
+
address: 9,
|
|
166
|
+
desc2: 10,
|
|
167
|
+
displayurl: 11,
|
|
168
|
+
ctatext: 12
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
export const NATIVE_IMAGE_TYPES = {
|
|
172
|
+
ICON: 1,
|
|
173
|
+
MAIN: 3
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export const NATIVE_KEYS_THAT_ARE_NOT_ASSETS = [
|
|
177
|
+
'privacyIcon',
|
|
178
|
+
'clickUrl',
|
|
179
|
+
'sendTargetingKeys',
|
|
180
|
+
'adTemplate',
|
|
181
|
+
'rendererUrl',
|
|
182
|
+
'type'
|
|
183
|
+
];
|
|
184
|
+
|
|
185
|
+
export const MESSAGES = {
|
|
186
|
+
REQUEST: 'Prebid Request',
|
|
187
|
+
RESPONSE: 'Prebid Response',
|
|
188
|
+
NATIVE: 'Prebid Native',
|
|
189
|
+
EVENT: 'Prebid Event'
|
|
190
|
+
};
|
package/src/events.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* events.js
|
|
3
3
|
*/
|
|
4
4
|
import * as utils from './utils.js'
|
|
5
|
-
import
|
|
5
|
+
import { EVENTS, EVENT_ID_PATHS } from './constants.js';
|
|
6
6
|
import {ttlCollection} from './utils/ttlCollection.js';
|
|
7
7
|
import {config} from './config.js';
|
|
8
8
|
const TTL_CONFIG = 'eventHistoryTTL';
|
|
@@ -28,9 +28,9 @@ let slice = Array.prototype.slice;
|
|
|
28
28
|
let push = Array.prototype.push;
|
|
29
29
|
|
|
30
30
|
// define entire events
|
|
31
|
-
let allEvents = Object.values(
|
|
31
|
+
let allEvents = Object.values(EVENTS);
|
|
32
32
|
|
|
33
|
-
const idPaths =
|
|
33
|
+
const idPaths = EVENT_ID_PATHS;
|
|
34
34
|
|
|
35
35
|
const _public = (function () {
|
|
36
36
|
let _handlers = {};
|
package/src/native.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from './utils.js';
|
|
14
14
|
import {includes} from './polyfill.js';
|
|
15
15
|
import {auctionManager} from './auctionManager.js';
|
|
16
|
-
import
|
|
16
|
+
import {NATIVE_ASSET_TYPES, NATIVE_IMAGE_TYPES, PREBID_NATIVE_DATA_KEYS_TO_ORTB, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS} from './constants.js';
|
|
17
17
|
import {NATIVE} from './mediaTypes.js';
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -23,8 +23,8 @@ import {NATIVE} from './mediaTypes.js';
|
|
|
23
23
|
|
|
24
24
|
export const nativeAdapters = [];
|
|
25
25
|
|
|
26
|
-
export const NATIVE_TARGETING_KEYS = Object.keys(
|
|
27
|
-
key =>
|
|
26
|
+
export const NATIVE_TARGETING_KEYS = Object.keys(NATIVE_KEYS).map(
|
|
27
|
+
key => NATIVE_KEYS[key]
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
export const IMAGE = {
|
|
@@ -84,8 +84,6 @@ const SUPPORTED_TYPES = {
|
|
|
84
84
|
image: IMAGE
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
-
const { NATIVE_ASSET_TYPES, NATIVE_IMAGE_TYPES, PREBID_NATIVE_DATA_KEYS_TO_ORTB, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS } = CONSTANTS;
|
|
88
|
-
|
|
89
87
|
// inverse native maps useful for converting to legacy
|
|
90
88
|
const PREBID_NATIVE_DATA_KEYS_TO_ORTB_INVERSE = inverse(PREBID_NATIVE_DATA_KEYS_TO_ORTB);
|
|
91
89
|
const NATIVE_ASSET_TYPES_INVERSE = inverse(NATIVE_ASSET_TYPES);
|
|
@@ -425,7 +423,7 @@ export function getNativeRenderingData(bid, adUnit, keys) {
|
|
|
425
423
|
const data = {
|
|
426
424
|
...getDefinedParams(bid.native, ['rendererUrl', 'adTemplate']),
|
|
427
425
|
assets: getNativeAssets(bid.native, keys),
|
|
428
|
-
nativeKeys:
|
|
426
|
+
nativeKeys: NATIVE_KEYS
|
|
429
427
|
};
|
|
430
428
|
if (bid.native.ortb) {
|
|
431
429
|
data.ortb = bid.native.ortb;
|
|
@@ -443,7 +441,7 @@ function assetsMessage(data, adObject, keys, {index = auctionManager.index} = {}
|
|
|
443
441
|
};
|
|
444
442
|
}
|
|
445
443
|
|
|
446
|
-
const NATIVE_KEYS_INVERTED = Object.fromEntries(Object.entries(
|
|
444
|
+
const NATIVE_KEYS_INVERTED = Object.fromEntries(Object.entries(NATIVE_KEYS).map(([k, v]) => [v, k]));
|
|
447
445
|
|
|
448
446
|
/**
|
|
449
447
|
* Constructs a message object containing asset values for each of the
|
|
@@ -476,7 +474,7 @@ function getNativeKeys(adUnit) {
|
|
|
476
474
|
}
|
|
477
475
|
|
|
478
476
|
return {
|
|
479
|
-
...
|
|
477
|
+
...NATIVE_KEYS,
|
|
480
478
|
...extraNativeKeys
|
|
481
479
|
}
|
|
482
480
|
}
|
package/src/prebid.js
CHANGED
|
@@ -30,11 +30,10 @@ import {isBidUsable, targeting} from './targeting.js';
|
|
|
30
30
|
import {hook, wrapHook} from './hook.js';
|
|
31
31
|
import {loadSession} from './debugging.js';
|
|
32
32
|
import {includes} from './polyfill.js';
|
|
33
|
-
import {adunitCounter} from './adUnits.js';
|
|
34
33
|
import {createBid} from './bidfactory.js';
|
|
35
34
|
import {storageCallbacks} from './storageManager.js';
|
|
36
35
|
import {default as adapterManager, getS2SBidderSet} from './adapterManager.js';
|
|
37
|
-
import
|
|
36
|
+
import { BID_STATUS, EVENTS, NATIVE_KEYS } from './constants.js';
|
|
38
37
|
import * as events from './events.js';
|
|
39
38
|
import {newMetrics, useMetrics} from './utils/perfMetrics.js';
|
|
40
39
|
import {defer, GreedyPromise} from './utils/promise.js';
|
|
@@ -48,7 +47,7 @@ const pbjsInstance = getGlobal();
|
|
|
48
47
|
const { triggerUserSyncs } = userSync;
|
|
49
48
|
|
|
50
49
|
/* private variables */
|
|
51
|
-
const { ADD_AD_UNITS, REQUEST_BIDS, SET_TARGETING } =
|
|
50
|
+
const { ADD_AD_UNITS, REQUEST_BIDS, SET_TARGETING } = EVENTS;
|
|
52
51
|
|
|
53
52
|
const eventValidators = {
|
|
54
53
|
bidWon: checkDefinedPlacement
|
|
@@ -143,7 +142,7 @@ function validateNativeMediaType(adUnit) {
|
|
|
143
142
|
const native = validatedAdUnit.mediaTypes.native;
|
|
144
143
|
// if native assets are specified in OpenRTB format, remove legacy assets and print a warn.
|
|
145
144
|
if (native.ortb) {
|
|
146
|
-
const legacyNativeKeys = Object.keys(
|
|
145
|
+
const legacyNativeKeys = Object.keys(NATIVE_KEYS).filter(key => NATIVE_KEYS[key].includes('hb_native_'));
|
|
147
146
|
const nativeKeys = Object.keys(native);
|
|
148
147
|
const intersection = nativeKeys.filter(nativeKey => legacyNativeKeys.includes(nativeKey));
|
|
149
148
|
if (intersection.length > 0) {
|
|
@@ -173,7 +172,7 @@ function validateAdUnitPos(adUnit, mediaType) {
|
|
|
173
172
|
let warning = `Value of property 'pos' on ad unit ${adUnit.code} should be of type: Number`;
|
|
174
173
|
|
|
175
174
|
logWarn(warning);
|
|
176
|
-
events.emit(
|
|
175
|
+
events.emit(EVENTS.AUCTION_DEBUG, { type: 'WARNING', arguments: warning });
|
|
177
176
|
delete adUnit.mediaTypes[mediaType].pos;
|
|
178
177
|
}
|
|
179
178
|
|
|
@@ -416,7 +415,7 @@ pbjsInstance.setTargetingForGPTAsync = function (adUnit, customSlotMatching) {
|
|
|
416
415
|
Object.keys(targetingSet).forEach((adUnitCode) => {
|
|
417
416
|
Object.keys(targetingSet[adUnitCode]).forEach((targetingKey) => {
|
|
418
417
|
if (targetingKey === 'hb_adid') {
|
|
419
|
-
auctionManager.setStatusForBids(targetingSet[adUnitCode][targetingKey],
|
|
418
|
+
auctionManager.setStatusForBids(targetingSet[adUnitCode][targetingKey], BID_STATUS.BID_TARGETING_SET);
|
|
420
419
|
}
|
|
421
420
|
});
|
|
422
421
|
});
|
|
@@ -593,11 +592,8 @@ export const startAuction = hook('async', function ({ bidsBackHandler, timeout:
|
|
|
593
592
|
// drop the bidder from the ad unit if it's not compatible
|
|
594
593
|
logWarn(unsupportedBidderMessage(adUnit, bidder));
|
|
595
594
|
adUnit.bids = adUnit.bids.filter(bid => bid.bidder !== bidder);
|
|
596
|
-
} else {
|
|
597
|
-
adunitCounter.incrementBidderRequestsCounter(adUnit.code, bidder);
|
|
598
595
|
}
|
|
599
596
|
});
|
|
600
|
-
adunitCounter.incrementRequestsCounter(adUnit.code);
|
|
601
597
|
});
|
|
602
598
|
if (!adUnits || adUnits.length === 0) {
|
|
603
599
|
logMessage('No adUnits configured. No bids requested.');
|
|
@@ -857,7 +853,7 @@ pbjsInstance.getAllWinningBids = function () {
|
|
|
857
853
|
*/
|
|
858
854
|
pbjsInstance.getAllPrebidWinningBids = function () {
|
|
859
855
|
return auctionManager.getBidsReceived()
|
|
860
|
-
.filter(bid => bid.status ===
|
|
856
|
+
.filter(bid => bid.status === BID_STATUS.BID_TARGETING_SET);
|
|
861
857
|
};
|
|
862
858
|
|
|
863
859
|
/**
|
package/src/secureCreatives.js
CHANGED
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
|
|
6
6
|
import * as events from './events.js';
|
|
7
7
|
import {getAllAssetsMessage, getAssetMessage} from './native.js';
|
|
8
|
-
import
|
|
8
|
+
import { BID_STATUS, EVENTS, MESSAGES } from './constants.js';
|
|
9
9
|
import {isApnGetTagDefined, isGptPubadsDefined, logError, logWarn} from './utils.js';
|
|
10
10
|
import {auctionManager} from './auctionManager.js';
|
|
11
11
|
import {find, includes} from './polyfill.js';
|
|
12
12
|
import {handleCreativeEvent, handleNativeMessage, handleRender} from './adRendering.js';
|
|
13
13
|
import {getCreativeRendererSource} from './creativeRenderers.js';
|
|
14
14
|
|
|
15
|
-
const {REQUEST, RESPONSE, NATIVE, EVENT} =
|
|
15
|
+
const { REQUEST, RESPONSE, NATIVE, EVENT } = MESSAGES;
|
|
16
16
|
|
|
17
|
-
const BID_WON =
|
|
17
|
+
const BID_WON = EVENTS.BID_WON;
|
|
18
18
|
|
|
19
19
|
const HANDLER_MAP = {
|
|
20
20
|
[REQUEST]: handleRenderRequest,
|
|
@@ -99,7 +99,7 @@ function handleNativeRequest(reply, data, adObject) {
|
|
|
99
99
|
return;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
-
if (adObject.status !==
|
|
102
|
+
if (adObject.status !== BID_STATUS.RENDERED) {
|
|
103
103
|
auctionManager.addWinningBid(adObject);
|
|
104
104
|
events.emit(BID_WON, adObject);
|
|
105
105
|
}
|
|
@@ -121,7 +121,7 @@ function handleEventRequest(reply, data, adObject) {
|
|
|
121
121
|
logError(`Cannot find ad '${data.adId}' for x-origin event request`);
|
|
122
122
|
return;
|
|
123
123
|
}
|
|
124
|
-
if (adObject.status !==
|
|
124
|
+
if (adObject.status !== BID_STATUS.RENDERED) {
|
|
125
125
|
logWarn(`Received x-origin event request without corresponding render request for ad '${adObject.adId}'`);
|
|
126
126
|
return;
|
|
127
127
|
}
|
package/src/targeting.js
CHANGED
|
@@ -21,7 +21,7 @@ import {ADPOD} from './mediaTypes.js';
|
|
|
21
21
|
import {hook} from './hook.js';
|
|
22
22
|
import {bidderSettings} from './bidderSettings.js';
|
|
23
23
|
import {find, includes} from './polyfill.js';
|
|
24
|
-
import
|
|
24
|
+
import { BID_STATUS, JSON_MAPPING, DEFAULT_TARGETING_KEYS, TARGETING_KEYS, NATIVE_KEYS, STATUS } from './constants.js';
|
|
25
25
|
import {getHighestCpm, getOldestHighestCpmBid} from './utils/reducers.js';
|
|
26
26
|
import {getTTL} from './bidTTL.js';
|
|
27
27
|
|
|
@@ -33,19 +33,19 @@ const CFG_ALLOW_TARGETING_KEYS = `targetingControls.allowTargetingKeys`;
|
|
|
33
33
|
const CFG_ADD_TARGETING_KEYS = `targetingControls.addTargetingKeys`;
|
|
34
34
|
const TARGETING_KEY_CONFIGURATION_ERROR_MSG = `Only one of "${CFG_ALLOW_TARGETING_KEYS}" or "${CFG_ADD_TARGETING_KEYS}" can be set`;
|
|
35
35
|
|
|
36
|
-
export const
|
|
37
|
-
key =>
|
|
36
|
+
export const TARGETING_KEYS_ARR = Object.keys(TARGETING_KEYS).map(
|
|
37
|
+
key => TARGETING_KEYS[key]
|
|
38
38
|
);
|
|
39
39
|
|
|
40
40
|
// return unexpired bids
|
|
41
41
|
const isBidNotExpired = (bid) => (bid.responseTimestamp + getTTL(bid) * 1000) > timestamp();
|
|
42
42
|
|
|
43
43
|
// return bids whose status is not set. Winning bids can only have a status of `rendered`.
|
|
44
|
-
const isUnusedBid = (bid) => bid && ((bid.status && !includes([
|
|
44
|
+
const isUnusedBid = (bid) => bid && ((bid.status && !includes([BID_STATUS.RENDERED], bid.status)) || !bid.status);
|
|
45
45
|
|
|
46
46
|
export let filters = {
|
|
47
47
|
isActualBid(bid) {
|
|
48
|
-
return bid.getStatusCode() ===
|
|
48
|
+
return bid.getStatusCode() === STATUS.GOOD
|
|
49
49
|
},
|
|
50
50
|
isBidNotExpired,
|
|
51
51
|
isUnusedBid
|
|
@@ -195,7 +195,7 @@ export function newTargeting(auctionManager) {
|
|
|
195
195
|
*/
|
|
196
196
|
function getDealBids(adUnitCodes, bidsReceived) {
|
|
197
197
|
if (config.getConfig('targetingControls.alwaysIncludeDeals') === true) {
|
|
198
|
-
const standardKeys = FEATURES.NATIVE ?
|
|
198
|
+
const standardKeys = FEATURES.NATIVE ? TARGETING_KEYS_ARR.concat(NATIVE_TARGETING_KEYS) : TARGETING_KEYS_ARR.slice();
|
|
199
199
|
|
|
200
200
|
// we only want the top bid from bidders who have multiple entries per ad unit code
|
|
201
201
|
const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm);
|
|
@@ -221,7 +221,7 @@ export function newTargeting(auctionManager) {
|
|
|
221
221
|
* @return {targetingArray} filtered targeting
|
|
222
222
|
*/
|
|
223
223
|
function getAllowedTargetingKeyValues(targeting, allowedKeys) {
|
|
224
|
-
const defaultKeyring = Object.assign({},
|
|
224
|
+
const defaultKeyring = Object.assign({}, TARGETING_KEYS, NATIVE_KEYS);
|
|
225
225
|
const defaultKeys = Object.keys(defaultKeyring);
|
|
226
226
|
const keyDispositions = {};
|
|
227
227
|
logInfo(`allowTargetingKeys - allowed keys [ ${allowedKeys.map(k => defaultKeyring[k]).join(', ')} ]`);
|
|
@@ -282,7 +282,7 @@ export function newTargeting(auctionManager) {
|
|
|
282
282
|
});
|
|
283
283
|
});
|
|
284
284
|
|
|
285
|
-
const defaultKeys = Object.keys(Object.assign({},
|
|
285
|
+
const defaultKeys = Object.keys(Object.assign({}, DEFAULT_TARGETING_KEYS, NATIVE_KEYS));
|
|
286
286
|
let allowedKeys = config.getConfig(CFG_ALLOW_TARGETING_KEYS);
|
|
287
287
|
const addedKeys = config.getConfig(CFG_ADD_TARGETING_KEYS);
|
|
288
288
|
|
|
@@ -547,7 +547,7 @@ export function newTargeting(auctionManager) {
|
|
|
547
547
|
.reduce((acc, key) => {
|
|
548
548
|
const targetingValue = [winner.adserverTargeting[key]];
|
|
549
549
|
const targeting = { [key.substring(0, MAX_DFP_KEYLENGTH)]: targetingValue };
|
|
550
|
-
if (key ===
|
|
550
|
+
if (key === TARGETING_KEYS.DEAL) {
|
|
551
551
|
const bidderCodeTargetingKey = `${key}_${winner.bidderCode}`.substring(0, MAX_DFP_KEYLENGTH);
|
|
552
552
|
const bidderCodeTargeting = { [bidderCodeTargetingKey]: targetingValue };
|
|
553
553
|
return [...acc, targeting, bidderCodeTargeting];
|
|
@@ -563,7 +563,7 @@ export function newTargeting(auctionManager) {
|
|
|
563
563
|
function getStandardKeys() {
|
|
564
564
|
return auctionManager.getStandardBidderAdServerTargeting() // in case using a custom standard key set
|
|
565
565
|
.map(targeting => targeting.key)
|
|
566
|
-
.concat(
|
|
566
|
+
.concat(TARGETING_KEYS_ARR).filter(uniques); // standard keys defined in the library.
|
|
567
567
|
}
|
|
568
568
|
|
|
569
569
|
/**
|
|
@@ -648,13 +648,13 @@ export function newTargeting(auctionManager) {
|
|
|
648
648
|
* @return {targetingArray} all non-winning bids targeting
|
|
649
649
|
*/
|
|
650
650
|
function getBidLandscapeTargeting(adUnitCodes, bidsReceived) {
|
|
651
|
-
const standardKeys = FEATURES.NATIVE ?
|
|
651
|
+
const standardKeys = FEATURES.NATIVE ? TARGETING_KEYS_ARR.concat(NATIVE_TARGETING_KEYS) : TARGETING_KEYS_ARR.slice();
|
|
652
652
|
const adUnitBidLimit = config.getConfig('sendBidsControl.bidLimit');
|
|
653
653
|
const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm, adUnitBidLimit);
|
|
654
654
|
const allowSendAllBidsTargetingKeys = config.getConfig('targetingControls.allowSendAllBidsTargetingKeys');
|
|
655
655
|
|
|
656
656
|
const allowedSendAllBidTargeting = allowSendAllBidsTargetingKeys
|
|
657
|
-
? allowSendAllBidsTargetingKeys.map((key) =>
|
|
657
|
+
? allowSendAllBidsTargetingKeys.map((key) => TARGETING_KEYS[key])
|
|
658
658
|
: standardKeys;
|
|
659
659
|
|
|
660
660
|
// populate targeting keys for the remaining bids
|
|
@@ -680,7 +680,7 @@ export function newTargeting(auctionManager) {
|
|
|
680
680
|
|
|
681
681
|
function getAdUnitTargeting(adUnitCodes) {
|
|
682
682
|
function getTargetingObj(adUnit) {
|
|
683
|
-
return deepAccess(adUnit,
|
|
683
|
+
return deepAccess(adUnit, JSON_MAPPING.ADSERVER_TARGETING);
|
|
684
684
|
}
|
|
685
685
|
|
|
686
686
|
function getTargetingValues(adUnit) {
|
package/src/utils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {config} from './config.js';
|
|
2
2
|
import clone from 'just-clone';
|
|
3
3
|
import {includes} from './polyfill.js';
|
|
4
|
-
import
|
|
4
|
+
import { EVENTS, S2S } from './constants.js';
|
|
5
5
|
import {GreedyPromise} from './utils/promise.js';
|
|
6
6
|
import {getGlobal} from './prebidGlobal.js';
|
|
7
7
|
|
|
@@ -202,7 +202,7 @@ export function logWarn() {
|
|
|
202
202
|
// eslint-disable-next-line no-console
|
|
203
203
|
console.warn.apply(console, decorateLog(arguments, 'WARNING:'));
|
|
204
204
|
}
|
|
205
|
-
emitEvent(
|
|
205
|
+
emitEvent(EVENTS.AUCTION_DEBUG, { type: 'WARNING', arguments: arguments });
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
export function logError() {
|
|
@@ -210,7 +210,7 @@ export function logError() {
|
|
|
210
210
|
// eslint-disable-next-line no-console
|
|
211
211
|
console.error.apply(console, decorateLog(arguments, 'ERROR:'));
|
|
212
212
|
}
|
|
213
|
-
emitEvent(
|
|
213
|
+
emitEvent(EVENTS.AUCTION_DEBUG, { type: 'ERROR', arguments: arguments });
|
|
214
214
|
}
|
|
215
215
|
|
|
216
216
|
export function prefixLog(prefix) {
|
|
@@ -444,7 +444,7 @@ export function triggerPixel(url, done, timeout) {
|
|
|
444
444
|
}
|
|
445
445
|
|
|
446
446
|
export function callBurl({ source, burl }) {
|
|
447
|
-
if (source ===
|
|
447
|
+
if (source === S2S.SRC && burl) {
|
|
448
448
|
internal.triggerPixel(burl);
|
|
449
449
|
}
|
|
450
450
|
}
|