prebid.js 10.2.0 → 10.4.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/.github/dependabot.yml +8 -0
- package/.github/workflows/scripts/codepath-notification +1 -0
- package/creative/renderers/display/renderer.js +3 -4
- package/dist/chunks/1plusXRtdProvider.js +1 -1
- package/dist/chunks/33acrossAnalyticsAdapter.js +1 -1
- package/dist/chunks/33acrossBidAdapter.js +1 -1
- package/dist/chunks/33acrossBidAdapter.metadata.js +1 -1
- package/dist/chunks/33acrossIdSystem.js +1 -1
- package/dist/chunks/33acrossIdSystem.metadata.js +1 -1
- package/dist/chunks/acuityadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/adagioAnalyticsAdapter.js +1 -1
- package/dist/chunks/adagioBidAdapter.js +1 -1
- package/dist/chunks/adagioBidAdapter.metadata.js +1 -1
- package/dist/chunks/adagioRtdProvider.metadata.js +1 -1
- package/dist/chunks/adagioUtils.js +1 -1
- package/dist/chunks/addefendBidAdapter.js +1 -1
- package/dist/chunks/addefendBidAdapter.metadata.js +1 -1
- package/dist/chunks/adfBidAdapter.metadata.js +1 -1
- package/dist/chunks/adfusionBidAdapter.metadata.js +1 -1
- package/dist/chunks/adgenerationBidAdapter.js +1 -1
- package/dist/chunks/adheseBidAdapter.metadata.js +1 -1
- package/dist/chunks/adkernelAdnBidAdapter.metadata.js +1 -1
- package/dist/chunks/adkernelBidAdapter.metadata.js +1 -1
- package/dist/chunks/adlooxRtdProvider.js +1 -1
- package/dist/chunks/admaticBidAdapter.metadata.js +1 -1
- package/dist/chunks/admixerBidAdapter.js +1 -1
- package/dist/chunks/admixerBidAdapter.metadata.js +1 -1
- package/dist/chunks/admixerIdSystem.metadata.js +1 -1
- package/dist/chunks/adnowBidAdapter.metadata.js +1 -1
- package/dist/chunks/adnuntiusBidAdapter.metadata.js +1 -1
- package/dist/chunks/adnuntiusRtdProvider.metadata.js +1 -1
- package/dist/chunks/adotBidAdapter.metadata.js +1 -1
- package/dist/chunks/adponeBidAdapter.metadata.js +1 -1
- package/dist/chunks/adqueryBidAdapter.js +1 -1
- package/dist/chunks/adqueryBidAdapter.metadata.js +1 -1
- package/dist/chunks/adqueryIdSystem.metadata.js +1 -1
- package/dist/chunks/adrelevantisBidAdapter.js +1 -1
- package/dist/chunks/adrinoBidAdapter.metadata.js +1 -1
- package/dist/chunks/ads_interactiveBidAdapter.metadata.js +1 -1
- package/dist/chunks/adstirBidAdapter.js +1 -1
- package/dist/chunks/adtargetBidAdapter.metadata.js +1 -1
- package/dist/chunks/adtelligentBidAdapter.metadata.js +1 -1
- package/dist/chunks/adtelligentIdSystem.metadata.js +1 -1
- package/dist/chunks/adtrgtmeBidAdapter.js +1 -1
- package/dist/chunks/aduptechBidAdapter.metadata.js +1 -1
- package/dist/chunks/advertisingBidAdapter.js +1 -1
- package/dist/chunks/adxcgAnalyticsAdapter.js +1 -1
- package/dist/chunks/adxcgBidAdapter.js +1 -1
- package/dist/chunks/adyoulikeBidAdapter.js +1 -1
- package/dist/chunks/adyoulikeBidAdapter.metadata.js +1 -1
- package/dist/chunks/agmaAnalyticsAdapter.js +1 -1
- package/dist/chunks/aidemBidAdapter.metadata.js +1 -1
- package/dist/chunks/airgridRtdProvider.metadata.js +1 -1
- package/dist/chunks/ajaBidAdapter.js +1 -1
- package/dist/chunks/alkimiBidAdapter.metadata.js +1 -1
- package/dist/chunks/ampliffyBidAdapter.metadata.js +1 -1
- package/dist/chunks/amxBidAdapter.js +1 -1
- package/dist/chunks/amxBidAdapter.metadata.js +1 -1
- package/dist/chunks/amxIdSystem.js +1 -1
- package/dist/chunks/amxIdSystem.metadata.js +1 -1
- package/dist/chunks/aniviewBidAdapter.js +1 -1
- package/dist/chunks/aniviewBidAdapter.metadata.js +1 -1
- package/dist/chunks/anonymisedRtdProvider.metadata.js +1 -1
- package/dist/chunks/appierAnalyticsAdapter.js +1 -1
- package/dist/chunks/appierBidAdapter.metadata.js +1 -1
- package/dist/chunks/appnexusBidAdapter.js +1 -1
- package/dist/chunks/appnexusBidAdapter.metadata.js +1 -1
- package/dist/chunks/appnexusUtils.js +1 -1
- package/dist/chunks/appushBidAdapter.metadata.js +1 -1
- package/dist/chunks/apstreamBidAdapter.metadata.js +1 -1
- package/dist/chunks/asoBidAdapter.js +1 -1
- package/dist/chunks/audiencerunBidAdapter.metadata.js +1 -1
- package/dist/chunks/axisBidAdapter.metadata.js +1 -1
- package/dist/chunks/axonixBidAdapter.js +1 -1
- package/dist/chunks/azerionedgeRtdProvider.metadata.js +1 -1
- package/dist/chunks/beopBidAdapter.js +1 -1
- package/dist/chunks/beopBidAdapter.metadata.js +1 -1
- package/dist/chunks/betweenBidAdapter.metadata.js +1 -1
- package/dist/chunks/bidglassBidAdapter.js +1 -1
- package/dist/chunks/bidmaticBidAdapter.metadata.js +1 -1
- package/dist/chunks/bidtheatreBidAdapter.metadata.js +1 -1
- package/dist/chunks/big-richmediaBidAdapter.js +1 -1
- package/dist/chunks/bitmediaBidAdapter.js +1 -1
- package/dist/chunks/bliinkBidAdapter.metadata.js +1 -1
- package/dist/chunks/blockthroughBidAdapter.js +1 -1
- package/dist/chunks/blockthroughBidAdapter.metadata.js +1 -1
- package/dist/chunks/blueBidAdapter.metadata.js +1 -1
- package/dist/chunks/bmsBidAdapter.metadata.js +1 -1
- package/dist/chunks/bmtmBidAdapter.js +1 -1
- package/dist/chunks/boldwinBidAdapter.metadata.js +1 -1
- package/dist/chunks/bridBidAdapter.js +1 -1
- package/dist/chunks/bridBidAdapter.metadata.js +1 -1
- package/dist/chunks/bridgewellBidAdapter.js +1 -1
- package/dist/chunks/browsiBidAdapter.metadata.js +1 -1
- package/dist/chunks/bucksenseBidAdapter.metadata.js +1 -1
- package/dist/chunks/carodaBidAdapter.js +1 -1
- package/dist/chunks/carodaBidAdapter.metadata.js +1 -1
- package/dist/chunks/categoryTranslation.metadata.js +1 -1
- package/dist/chunks/ccxBidAdapter.metadata.js +1 -1
- package/dist/chunks/ceeIdSystem.metadata.js +1 -1
- package/dist/chunks/chromeAiRtdProvider.metadata.js +1 -1
- package/dist/chunks/chtnwBidAdapter.js +1 -1
- package/dist/chunks/chunk-core.js +1 -1
- package/dist/chunks/compassBidAdapter.metadata.js +1 -1
- package/dist/chunks/conceptxBidAdapter.metadata.js +1 -1
- package/dist/chunks/concertBidAdapter.js +1 -1
- package/dist/chunks/connatixBidAdapter.metadata.js +1 -1
- package/dist/chunks/connectIdSystem.metadata.js +1 -1
- package/dist/chunks/connectadBidAdapter.js +1 -1
- package/dist/chunks/connectadBidAdapter.metadata.js +1 -1
- package/dist/chunks/consumableBidAdapter.js +1 -1
- package/dist/chunks/contentexchangeBidAdapter.metadata.js +1 -1
- package/dist/chunks/contxtfulBidAdapter.js +1 -1
- package/dist/chunks/conversantBidAdapter.js +1 -1
- package/dist/chunks/conversantBidAdapter.metadata.js +1 -1
- package/dist/chunks/copper6sspBidAdapter.metadata.js +1 -1
- package/dist/chunks/cpmstarBidAdapter.metadata.js +1 -1
- package/dist/chunks/craftBidAdapter.js +1 -1
- package/dist/chunks/creative-renderer-display.js +1 -1
- package/dist/chunks/criteoBidAdapter.js +1 -1
- package/dist/chunks/criteoBidAdapter.metadata.js +1 -1
- package/dist/chunks/criteoIdSystem.metadata.js +1 -1
- package/dist/chunks/cryptoUtils.js +1 -0
- package/dist/chunks/cwireBidAdapter.js +1 -1
- package/dist/chunks/cwireBidAdapter.metadata.js +1 -1
- package/dist/chunks/czechAdIdSystem.metadata.js +1 -1
- package/dist/chunks/dailymotionBidAdapter.js +1 -1
- package/dist/chunks/dailymotionBidAdapter.metadata.js +1 -1
- package/dist/chunks/debugging-standalone.js +1 -1
- package/dist/chunks/debugging.metadata.js +1 -1
- package/dist/chunks/deepintentBidAdapter.metadata.js +1 -1
- package/dist/chunks/deltaprojectsBidAdapter.metadata.js +1 -1
- package/dist/chunks/dependencies.json +13 -0
- package/dist/chunks/dianomiBidAdapter.metadata.js +1 -1
- package/dist/chunks/digitalMatterBidAdapter.metadata.js +1 -1
- package/dist/chunks/distroscaleBidAdapter.metadata.js +1 -1
- package/dist/chunks/docereeAdManagerBidAdapter.metadata.js +1 -1
- package/dist/chunks/docereeBidAdapter.metadata.js +1 -1
- package/dist/chunks/dspxBidAdapter.js +1 -1
- package/dist/chunks/dspxBidAdapter.metadata.js +1 -1
- package/dist/chunks/dxkultureBidAdapter.js +1 -1
- package/dist/chunks/e_volutionBidAdapter.metadata.js +1 -1
- package/dist/chunks/edge226BidAdapter.metadata.js +1 -1
- package/dist/chunks/eplanningBidAdapter.js +1 -1
- package/dist/chunks/equativBidAdapter.js +1 -1
- package/dist/chunks/equativBidAdapter.metadata.js +1 -1
- package/dist/chunks/eskimiBidAdapter.js +1 -1
- package/dist/chunks/eskimiBidAdapter.metadata.js +1 -1
- package/dist/chunks/etargetBidAdapter.metadata.js +1 -1
- package/dist/chunks/euidIdSystem.js +1 -1
- package/dist/chunks/euidIdSystem.metadata.js +1 -1
- package/dist/chunks/exadsBidAdapter.js +1 -1
- package/dist/chunks/exadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/excoBidAdapter.js +1 -1
- package/dist/chunks/feedadBidAdapter.js +1 -1
- package/dist/chunks/feedadBidAdapter.metadata.js +1 -1
- package/dist/chunks/finativeBidAdapter.js +1 -1
- package/dist/chunks/fwsspBidAdapter.metadata.js +1 -1
- package/dist/chunks/gamoshiBidAdapter.metadata.js +1 -1
- package/dist/chunks/getintentBidAdapter.js +1 -1
- package/dist/chunks/glomexBidAdapter.metadata.js +1 -1
- package/dist/chunks/gmosspBidAdapter.js +1 -1
- package/dist/chunks/goldbachBidAdapter.metadata.js +1 -1
- package/dist/chunks/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/chunks/greenbidsBidAdapter.js +1 -1
- package/dist/chunks/greenbidsBidAdapter.metadata.js +1 -1
- package/dist/chunks/greenbidsRtdProvider.js +1 -1
- package/dist/chunks/gridBidAdapter.js +1 -1
- package/dist/chunks/gridBidAdapter.metadata.js +1 -1
- package/dist/chunks/gumgumBidAdapter.js +1 -1
- package/dist/chunks/gumgumBidAdapter.metadata.js +1 -1
- package/dist/chunks/h12mediaBidAdapter.js +1 -1
- package/dist/chunks/hadronIdSystem.metadata.js +1 -1
- package/dist/chunks/hadronRtdProvider.metadata.js +1 -1
- package/dist/chunks/holidBidAdapter.metadata.js +1 -1
- package/dist/chunks/hybridBidAdapter.metadata.js +1 -1
- package/dist/chunks/hypelabBidAdapter.js +1 -1
- package/dist/chunks/iasRtdProvider.js +1 -1
- package/dist/chunks/id5AnalyticsAdapter.js +1 -1
- package/dist/chunks/id5IdSystem.js +1 -1
- package/dist/chunks/id5IdSystem.metadata.js +1 -1
- package/dist/chunks/identityLinkIdSystem.metadata.js +1 -1
- package/dist/chunks/illuminBidAdapter.metadata.js +1 -1
- package/dist/chunks/impactifyBidAdapter.metadata.js +1 -1
- package/dist/chunks/improvedigitalBidAdapter.js +1 -1
- package/dist/chunks/improvedigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/inmobiBidAdapter.js +1 -1
- package/dist/chunks/inmobiBidAdapter.metadata.js +1 -1
- package/dist/chunks/innityBidAdapter.metadata.js +1 -1
- package/dist/chunks/insticatorBidAdapter.js +1 -1
- package/dist/chunks/insticatorBidAdapter.metadata.js +1 -1
- package/dist/chunks/intentIqAnalyticsAdapter.js +1 -1
- package/dist/chunks/intentIqIdSystem.metadata.js +1 -1
- package/dist/chunks/invibesBidAdapter.metadata.js +1 -1
- package/dist/chunks/ipromBidAdapter.metadata.js +1 -1
- package/dist/chunks/ixBidAdapter.js +1 -1
- package/dist/chunks/ixBidAdapter.metadata.js +1 -1
- package/dist/chunks/jixieBidAdapter.js +1 -1
- package/dist/chunks/justIdSystem.metadata.js +1 -1
- package/dist/chunks/justpremiumBidAdapter.js +1 -1
- package/dist/chunks/justpremiumBidAdapter.metadata.js +1 -1
- package/dist/chunks/jwplayerBidAdapter.metadata.js +1 -1
- package/dist/chunks/jwplayerRtdProvider.js +1 -1
- package/dist/chunks/jwplayerVideoProvider.js +1 -1
- package/dist/chunks/kargoBidAdapter.js +1 -1
- package/dist/chunks/kargoBidAdapter.metadata.js +1 -1
- package/dist/chunks/kimberliteBidAdapter.js +1 -1
- package/dist/chunks/kubientBidAdapter.js +1 -1
- package/dist/chunks/kubientBidAdapter.metadata.js +1 -1
- package/dist/chunks/kueezRtbBidAdapter.metadata.js +1 -1
- package/dist/chunks/lassoBidAdapter.js +1 -1
- package/dist/chunks/lifestreetBidAdapter.js +1 -1
- package/dist/chunks/limelightDigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/liveIntentId.js +1 -1
- package/dist/chunks/liveIntentIdSystem.metadata.js +1 -1
- package/dist/chunks/liveIntentRtdProvider.metadata.js +1 -1
- package/dist/chunks/livewrappedBidAdapter.metadata.js +1 -1
- package/dist/chunks/logicadBidAdapter.js +1 -1
- package/dist/chunks/loopmeBidAdapter.metadata.js +1 -1
- package/dist/chunks/lotamePanoramaIdSystem.metadata.js +1 -1
- package/dist/chunks/luceadBidAdapter.js +1 -1
- package/dist/chunks/luceadBidAdapter.metadata.js +1 -1
- package/dist/chunks/luponmediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/mabidderBidAdapter.js +1 -1
- package/dist/chunks/madsenseBidAdapter.js +1 -1
- package/dist/chunks/madvertiseBidAdapter.metadata.js +1 -1
- package/dist/chunks/magniteAnalyticsAdapter.js +1 -1
- package/dist/chunks/malltvAnalyticsAdapter.js +1 -1
- package/dist/chunks/marsmediaBidAdapter.js +1 -1
- package/dist/chunks/marsmediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediaConsortiumBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediaforceBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediafuseBidAdapter.js +1 -1
- package/dist/chunks/mediafuseBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediagoBidAdapter.metadata.js +1 -1
- package/dist/chunks/mediakeysBidAdapter.metadata.js +1 -1
- package/dist/chunks/medianetBidAdapter.js +1 -1
- package/dist/chunks/medianetBidAdapter.metadata.js +1 -1
- package/dist/chunks/medianetUtils.js +1 -1
- package/dist/chunks/mediasquareBidAdapter.js +1 -1
- package/dist/chunks/mediasquareBidAdapter.metadata.js +1 -1
- package/dist/chunks/mgidBidAdapter.js +1 -1
- package/dist/chunks/mgidBidAdapter.metadata.js +1 -1
- package/dist/chunks/mgidRtdProvider.metadata.js +1 -1
- package/dist/chunks/mgidXBidAdapter.metadata.js +1 -1
- package/dist/chunks/minutemediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/missenaBidAdapter.js +1 -1
- package/dist/chunks/missenaBidAdapter.metadata.js +1 -1
- package/dist/chunks/mobianRtdProvider.metadata.js +1 -1
- package/dist/chunks/mobilefuseBidAdapter.js +1 -1
- package/dist/chunks/mobilefuseBidAdapter.metadata.js +1 -1
- package/dist/chunks/mobkoiBidAdapter.metadata.js +1 -1
- package/dist/chunks/mobkoiIdSystem.metadata.js +1 -1
- package/dist/chunks/nativeryBidAdapter.metadata.js +1 -1
- package/dist/chunks/nativoBidAdapter.metadata.js +1 -1
- package/dist/chunks/newspassidBidAdapter.metadata.js +1 -1
- package/dist/chunks/nextMillenniumBidAdapter.js +1 -1
- package/dist/chunks/nextMillenniumBidAdapter.metadata.js +1 -1
- package/dist/chunks/nextrollBidAdapter.metadata.js +1 -1
- package/dist/chunks/nexx360BidAdapter.metadata.js +1 -1
- package/dist/chunks/nexx360Utils.js +1 -1
- package/dist/chunks/nobidAnalyticsAdapter.js +1 -1
- package/dist/chunks/nobidBidAdapter.js +1 -1
- package/dist/chunks/nobidBidAdapter.metadata.js +1 -1
- package/dist/chunks/nodalsAiRtdProvider.js +1 -1
- package/dist/chunks/nodalsAiRtdProvider.metadata.js +1 -1
- package/dist/chunks/novatiqIdSystem.metadata.js +1 -1
- package/dist/chunks/oguryBidAdapter.js +1 -1
- package/dist/chunks/oguryBidAdapter.metadata.js +1 -1
- package/dist/chunks/omsBidAdapter.metadata.js +1 -1
- package/dist/chunks/onetagBidAdapter.js +1 -1
- package/dist/chunks/onetagBidAdapter.metadata.js +1 -1
- package/dist/chunks/ooloAnalyticsAdapter.js +1 -1
- package/dist/chunks/openwebBidAdapter.metadata.js +1 -1
- package/dist/chunks/openxBidAdapter.js +1 -1
- package/dist/chunks/openxBidAdapter.metadata.js +1 -1
- package/dist/chunks/operaadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/optidigitalBidAdapter.js +1 -1
- package/dist/chunks/optidigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/optoutBidAdapter.metadata.js +1 -1
- package/dist/chunks/orbidderBidAdapter.js +1 -1
- package/dist/chunks/orbidderBidAdapter.metadata.js +1 -1
- package/dist/chunks/outbrainBidAdapter.js +1 -1
- package/dist/chunks/outbrainBidAdapter.metadata.js +1 -1
- package/dist/chunks/ozoneBidAdapter.metadata.js +1 -1
- package/dist/chunks/pairIdSystem.metadata.js +1 -1
- package/dist/chunks/performaxBidAdapter.metadata.js +1 -1
- package/dist/chunks/pgamsspBidAdapter.metadata.js +1 -1
- package/dist/chunks/pixfutureBidAdapter.js +1 -1
- package/dist/chunks/pixfutureBidAdapter.metadata.js +1 -1
- package/dist/chunks/playdigoBidAdapter.metadata.js +1 -1
- package/dist/chunks/prebid-core.metadata.js +1 -1
- package/dist/chunks/precisoBidAdapter.metadata.js +1 -1
- package/dist/chunks/prismaBidAdapter.metadata.js +1 -1
- package/dist/chunks/programmaticXBidAdapter.metadata.js +1 -1
- package/dist/chunks/proxistoreBidAdapter.metadata.js +1 -1
- package/dist/chunks/publinkIdSystem.js +1 -1
- package/dist/chunks/publinkIdSystem.metadata.js +1 -1
- package/dist/chunks/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/chunks/pubmaticBidAdapter.js +1 -1
- package/dist/chunks/pubmaticBidAdapter.metadata.js +1 -1
- package/dist/chunks/pubmaticIdSystem.metadata.js +1 -1
- package/dist/chunks/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/chunks/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/chunks/pulsepointBidAdapter.js +1 -1
- package/dist/chunks/pulsepointBidAdapter.metadata.js +1 -1
- package/dist/chunks/pwbidBidAdapter.metadata.js +1 -1
- package/dist/chunks/pxyzBidAdapter.js +1 -1
- package/dist/chunks/qtBidAdapter.metadata.js +1 -1
- package/dist/chunks/quantcastBidAdapter.js +1 -1
- package/dist/chunks/quantcastBidAdapter.metadata.js +1 -1
- package/dist/chunks/quantcastIdSystem.metadata.js +1 -1
- package/dist/chunks/r2b2BidAdapter.metadata.js +1 -1
- package/dist/chunks/raynRtdProvider.metadata.js +1 -1
- package/dist/chunks/readpeakBidAdapter.js +1 -1
- package/dist/chunks/readpeakBidAdapter.metadata.js +1 -1
- package/dist/chunks/relaidoBidAdapter.js +1 -1
- package/dist/chunks/relayBidAdapter.metadata.js +1 -1
- package/dist/chunks/relevantdigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/resetdigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/responsiveAdsBidAdapter.metadata.js +1 -1
- package/dist/chunks/retailspotBidAdapter.js +1 -1
- package/dist/chunks/retailspotBidAdapter.metadata.js +1 -1
- package/dist/chunks/revcontentBidAdapter.metadata.js +1 -1
- package/dist/chunks/rhythmoneBidAdapter.js +1 -1
- package/dist/chunks/rhythmoneBidAdapter.metadata.js +1 -1
- package/dist/chunks/richaudienceBidAdapter.metadata.js +1 -1
- package/dist/chunks/riseBidAdapter.metadata.js +1 -1
- package/dist/chunks/riseUtils.js +1 -1
- package/dist/chunks/rixengineBidAdapter.metadata.js +1 -1
- package/dist/chunks/rtbhouseBidAdapter.metadata.js +1 -1
- package/dist/chunks/rubiconBidAdapter.js +1 -1
- package/dist/chunks/rubiconBidAdapter.metadata.js +1 -1
- package/dist/chunks/rumbleBidAdapter.js +1 -0
- package/dist/chunks/rumbleBidAdapter.metadata.js +1 -0
- package/dist/chunks/scatteredBidAdapter.metadata.js +1 -1
- package/dist/chunks/seedingAllianceBidAdapter.js +1 -1
- package/dist/chunks/seedingAllianceBidAdapter.metadata.js +1 -1
- package/dist/chunks/seedtagBidAdapter.js +1 -1
- package/dist/chunks/seedtagBidAdapter.metadata.js +1 -1
- package/dist/chunks/semantiqRtdProvider.metadata.js +1 -1
- package/dist/chunks/setupadBidAdapter.metadata.js +1 -1
- package/dist/chunks/sevioBidAdapter.js +1 -0
- package/dist/chunks/sevioBidAdapter.metadata.js +1 -0
- package/dist/chunks/sharedIdSystem.metadata.js +1 -1
- package/dist/chunks/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/chunks/sharethroughBidAdapter.js +1 -1
- package/dist/chunks/sharethroughBidAdapter.metadata.js +1 -1
- package/dist/chunks/showheroes-bsBidAdapter.js +1 -1
- package/dist/chunks/showheroes-bsBidAdapter.metadata.js +1 -1
- package/dist/chunks/silvermobBidAdapter.metadata.js +1 -1
- package/dist/chunks/sirdataRtdProvider.metadata.js +1 -1
- package/dist/chunks/slimcutBidAdapter.metadata.js +1 -1
- package/dist/chunks/smaatoBidAdapter.js +1 -1
- package/dist/chunks/smaatoBidAdapter.metadata.js +1 -1
- package/dist/chunks/smartadserverBidAdapter.js +1 -1
- package/dist/chunks/smartadserverBidAdapter.metadata.js +1 -1
- package/dist/chunks/smartxBidAdapter.js +1 -1
- package/dist/chunks/smartxBidAdapter.metadata.js +1 -1
- package/dist/chunks/smartyadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/smilewantedBidAdapter.js +1 -1
- package/dist/chunks/smilewantedBidAdapter.metadata.js +1 -1
- package/dist/chunks/snigelBidAdapter.js +1 -1
- package/dist/chunks/snigelBidAdapter.metadata.js +1 -1
- package/dist/chunks/sonaradsBidAdapter.js +1 -1
- package/dist/chunks/sonaradsBidAdapter.metadata.js +1 -1
- package/dist/chunks/sonobiBidAdapter.js +1 -1
- package/dist/chunks/sonobiBidAdapter.metadata.js +1 -1
- package/dist/chunks/sovrnBidAdapter.js +1 -1
- package/dist/chunks/sovrnBidAdapter.metadata.js +1 -1
- package/dist/chunks/sparteoBidAdapter.js +1 -1
- package/dist/chunks/sparteoBidAdapter.metadata.js +1 -1
- package/dist/chunks/ssmasBidAdapter.metadata.js +1 -1
- package/dist/chunks/sspBCBidAdapter.js +1 -1
- package/dist/chunks/sspBCBidAdapter.metadata.js +1 -1
- package/dist/chunks/stackadaptBidAdapter.metadata.js +1 -1
- package/dist/chunks/startioBidAdapter.metadata.js +1 -1
- package/dist/chunks/stroeerCoreBidAdapter.metadata.js +1 -1
- package/dist/chunks/stvBidAdapter.js +1 -1
- package/dist/chunks/stvBidAdapter.metadata.js +1 -1
- package/dist/chunks/sublimeBidAdapter.js +1 -1
- package/dist/chunks/sublimeBidAdapter.metadata.js +1 -1
- package/dist/chunks/taboolaBidAdapter.js +1 -1
- package/dist/chunks/taboolaBidAdapter.metadata.js +1 -1
- package/dist/chunks/taboolaIdSystem.metadata.js +1 -1
- package/dist/chunks/tappxBidAdapter.js +1 -1
- package/dist/chunks/tappxBidAdapter.metadata.js +1 -1
- package/dist/chunks/targetVideoBidAdapter.js +1 -1
- package/dist/chunks/targetVideoBidAdapter.metadata.js +1 -1
- package/dist/chunks/teadsBidAdapter.js +1 -1
- package/dist/chunks/teadsBidAdapter.metadata.js +1 -1
- package/dist/chunks/teadsIdSystem.metadata.js +1 -1
- package/dist/chunks/tealBidAdapter.metadata.js +1 -1
- package/dist/chunks/terceptAnalyticsAdapter.js +1 -1
- package/dist/chunks/themoneytizerBidAdapter.js +1 -1
- package/dist/chunks/themoneytizerBidAdapter.metadata.js +1 -1
- package/dist/chunks/tncIdSystem.metadata.js +1 -1
- package/dist/chunks/topicsFpdModule.metadata.js +1 -1
- package/dist/chunks/trionBidAdapter.js +1 -1
- package/dist/chunks/tripleliftBidAdapter.js +1 -1
- package/dist/chunks/tripleliftBidAdapter.metadata.js +1 -1
- package/dist/chunks/ttdBidAdapter.js +1 -1
- package/dist/chunks/ttdBidAdapter.metadata.js +1 -1
- package/dist/chunks/twistDigitalBidAdapter.metadata.js +1 -1
- package/dist/chunks/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/chunks/uid2IdSystem.js +1 -1
- package/dist/chunks/underdogmediaBidAdapter.js +1 -1
- package/dist/chunks/underdogmediaBidAdapter.metadata.js +1 -1
- package/dist/chunks/undertoneBidAdapter.js +1 -1
- package/dist/chunks/undertoneBidAdapter.metadata.js +1 -1
- package/dist/chunks/unifiedIdSystem.metadata.js +1 -1
- package/dist/chunks/unrulyBidAdapter.js +1 -1
- package/dist/chunks/unrulyBidAdapter.metadata.js +1 -1
- package/dist/chunks/userId.js +1 -1
- package/dist/chunks/userId.metadata.js +1 -1
- package/dist/chunks/validationFpdModule.metadata.js +1 -1
- package/dist/chunks/vidazooBidAdapter.metadata.js +1 -1
- package/dist/chunks/vidazooUtils.js +1 -1
- package/dist/chunks/videobyteBidAdapter.js +1 -1
- package/dist/chunks/vidoomyBidAdapter.metadata.js +1 -1
- package/dist/chunks/viewdeosDXBidAdapter.metadata.js +1 -1
- package/dist/chunks/viouslyBidAdapter.metadata.js +1 -1
- package/dist/chunks/visxBidAdapter.js +1 -1
- package/dist/chunks/visxBidAdapter.metadata.js +1 -1
- package/dist/chunks/vlybyBidAdapter.metadata.js +1 -1
- package/dist/chunks/voxBidAdapter.metadata.js +1 -1
- package/dist/chunks/vrtcalBidAdapter.metadata.js +1 -1
- package/dist/chunks/vuukleBidAdapter.js +1 -1
- package/dist/chunks/vuukleBidAdapter.metadata.js +1 -1
- package/dist/chunks/weboramaRtdProvider.js +1 -1
- package/dist/chunks/weboramaRtdProvider.metadata.js +1 -1
- package/dist/chunks/welectBidAdapter.metadata.js +1 -1
- package/dist/chunks/widespaceBidAdapter.js +1 -1
- package/dist/chunks/winrBidAdapter.js +1 -1
- package/dist/chunks/yahooAdsBidAdapter.js +1 -1
- package/dist/chunks/yahooAdsBidAdapter.metadata.js +1 -1
- package/dist/chunks/yandexBidAdapter.js +1 -1
- package/dist/chunks/yieldlabBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldliftBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldloveBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldmoBidAdapter.js +1 -1
- package/dist/chunks/yieldmoBidAdapter.metadata.js +1 -1
- package/dist/chunks/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/chunks/zeotapIdPlusIdSystem.metadata.js +1 -1
- package/dist/chunks/zeta_globalBidAdapter.metadata.js +1 -1
- package/dist/chunks/zeta_global_sspBidAdapter.metadata.js +1 -1
- package/dist/not-for-prod/prebid.js +443 -438
- package/dist/src/creative/renderers/display/renderer.js +3 -4
- package/dist/src/creative/renderers/display/renderer.js.map +1 -1
- package/dist/src/libraries/adagioUtils/adagioUtils.js +1 -1
- package/dist/src/libraries/analyticsAdapter/AnalyticsAdapter.js.map +1 -1
- package/dist/src/libraries/appnexusUtils/anKeywords.js +15 -1
- package/dist/src/libraries/appnexusUtils/anKeywords.js.map +1 -1
- package/dist/src/libraries/consentManagement/cmUtils.js.map +1 -1
- package/dist/src/libraries/creative-renderer-display/renderer.d.ts +1 -1
- package/dist/src/libraries/creative-renderer-display/renderer.js +1 -1
- package/dist/src/libraries/creative-renderer-display/renderer.js.map +1 -1
- package/dist/src/libraries/cryptoUtils/wallets.js +14 -0
- package/dist/src/libraries/cryptoUtils/wallets.js.map +1 -0
- package/dist/src/libraries/dspxUtils/bidderUtils.js.map +1 -1
- package/dist/src/libraries/impUtils.js +36 -0
- package/dist/src/libraries/impUtils.js.map +1 -0
- package/dist/src/libraries/liveIntentId/externalIdSystem.js +1 -1
- package/dist/src/libraries/liveIntentId/idSystem.js +1 -1
- package/dist/src/libraries/liveIntentId/shared.js +20 -0
- package/dist/src/libraries/liveIntentId/shared.js.map +1 -1
- package/dist/src/libraries/medianetUtils/constants.js +1 -1
- package/dist/src/libraries/nexx360Utils/index.js +1 -1
- package/dist/src/libraries/nexx360Utils/index.js.map +1 -1
- package/dist/src/libraries/ortbConverter/converter.js.map +1 -1
- package/dist/src/libraries/riseUtils/index.js +1 -1
- package/dist/src/libraries/vidazooUtils/bidderUtils.js +1 -1
- package/dist/src/libraries/video/constants/events.js.map +1 -1
- package/dist/src/metadata/modules/33acrossBidAdapter.js +1 -1
- package/dist/src/metadata/modules/33acrossIdSystem.js +1 -1
- package/dist/src/metadata/modules/acuityadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adagioBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adagioRtdProvider.js +1 -1
- package/dist/src/metadata/modules/addefendBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adfBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adfusionBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adheseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adkernelAdnBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adkernelBidAdapter.js +1 -1
- package/dist/src/metadata/modules/admaticBidAdapter.js +1 -1
- package/dist/src/metadata/modules/admixerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/admixerIdSystem.js +1 -1
- package/dist/src/metadata/modules/adnowBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adnuntiusBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adnuntiusRtdProvider.js +1 -1
- package/dist/src/metadata/modules/adotBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adponeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adqueryBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adqueryIdSystem.js +1 -1
- package/dist/src/metadata/modules/adrinoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ads_interactiveBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adtargetBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adtelligentBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adtelligentIdSystem.js +1 -1
- package/dist/src/metadata/modules/aduptechBidAdapter.js +1 -1
- package/dist/src/metadata/modules/adyoulikeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/aidemBidAdapter.js +1 -1
- package/dist/src/metadata/modules/airgridRtdProvider.js +1 -1
- package/dist/src/metadata/modules/alkimiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ampliffyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/amxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/amxIdSystem.js +1 -1
- package/dist/src/metadata/modules/aniviewBidAdapter.js +1 -1
- package/dist/src/metadata/modules/anonymisedRtdProvider.js +1 -1
- package/dist/src/metadata/modules/appierBidAdapter.js +1 -1
- package/dist/src/metadata/modules/appnexusBidAdapter.js +1 -1
- package/dist/src/metadata/modules/appushBidAdapter.js +1 -1
- package/dist/src/metadata/modules/apstreamBidAdapter.js +1 -1
- package/dist/src/metadata/modules/audiencerunBidAdapter.js +1 -1
- package/dist/src/metadata/modules/axisBidAdapter.js +1 -1
- package/dist/src/metadata/modules/azerionedgeRtdProvider.js +1 -1
- package/dist/src/metadata/modules/beopBidAdapter.js +1 -1
- package/dist/src/metadata/modules/betweenBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bidmaticBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bidtheatreBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bliinkBidAdapter.js +1 -1
- package/dist/src/metadata/modules/blockthroughBidAdapter.js +1 -1
- package/dist/src/metadata/modules/blueBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bmsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/boldwinBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bridBidAdapter.js +1 -1
- package/dist/src/metadata/modules/browsiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/bucksenseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/carodaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/categoryTranslation.js +1 -1
- package/dist/src/metadata/modules/ccxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ceeIdSystem.js +1 -1
- package/dist/src/metadata/modules/chromeAiRtdProvider.js +1 -1
- package/dist/src/metadata/modules/compassBidAdapter.js +1 -1
- package/dist/src/metadata/modules/conceptxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/connatixBidAdapter.js +1 -1
- package/dist/src/metadata/modules/connectIdSystem.js +1 -1
- package/dist/src/metadata/modules/connectadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/contentexchangeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/conversantBidAdapter.js +1 -1
- package/dist/src/metadata/modules/copper6sspBidAdapter.js +1 -1
- package/dist/src/metadata/modules/cpmstarBidAdapter.js +1 -1
- package/dist/src/metadata/modules/criteoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/criteoIdSystem.js +1 -1
- package/dist/src/metadata/modules/cwireBidAdapter.js +1 -1
- package/dist/src/metadata/modules/czechAdIdSystem.js +1 -1
- package/dist/src/metadata/modules/dailymotionBidAdapter.js +1 -1
- package/dist/src/metadata/modules/debugging.js +1 -1
- package/dist/src/metadata/modules/deepintentBidAdapter.js +1 -1
- package/dist/src/metadata/modules/deltaprojectsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/dianomiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/digitalMatterBidAdapter.js +1 -1
- package/dist/src/metadata/modules/distroscaleBidAdapter.js +1 -1
- package/dist/src/metadata/modules/docereeAdManagerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/docereeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/dspxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/e_volutionBidAdapter.js +1 -1
- package/dist/src/metadata/modules/edge226BidAdapter.js +1 -1
- package/dist/src/metadata/modules/equativBidAdapter.js +1 -1
- package/dist/src/metadata/modules/eskimiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/etargetBidAdapter.js +1 -1
- package/dist/src/metadata/modules/euidIdSystem.js +1 -1
- package/dist/src/metadata/modules/exadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/feedadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/fwsspBidAdapter.js +1 -1
- package/dist/src/metadata/modules/gamoshiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/glomexBidAdapter.js +1 -1
- package/dist/src/metadata/modules/goldbachBidAdapter.js +1 -1
- package/dist/src/metadata/modules/greenbidsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/gridBidAdapter.js +1 -1
- package/dist/src/metadata/modules/gumgumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/hadronIdSystem.js +1 -1
- package/dist/src/metadata/modules/hadronRtdProvider.js +1 -1
- package/dist/src/metadata/modules/holidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/hybridBidAdapter.js +1 -1
- package/dist/src/metadata/modules/id5IdSystem.js +1 -1
- package/dist/src/metadata/modules/identityLinkIdSystem.js +1 -1
- package/dist/src/metadata/modules/illuminBidAdapter.js +1 -1
- package/dist/src/metadata/modules/impactifyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/improvedigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/inmobiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/innityBidAdapter.js +1 -1
- package/dist/src/metadata/modules/insticatorBidAdapter.js +1 -1
- package/dist/src/metadata/modules/intentIqIdSystem.js +1 -1
- package/dist/src/metadata/modules/invibesBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ipromBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ixBidAdapter.js +1 -1
- package/dist/src/metadata/modules/justIdSystem.js +1 -1
- package/dist/src/metadata/modules/justpremiumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/jwplayerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/kargoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/kubientBidAdapter.js +1 -1
- package/dist/src/metadata/modules/kueezRtbBidAdapter.js +1 -1
- package/dist/src/metadata/modules/limelightDigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/liveIntentIdSystem.js +1 -1
- package/dist/src/metadata/modules/liveIntentRtdProvider.js +1 -1
- package/dist/src/metadata/modules/livewrappedBidAdapter.js +1 -1
- package/dist/src/metadata/modules/loopmeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/lotamePanoramaIdSystem.js +1 -1
- package/dist/src/metadata/modules/luceadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/luponmediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/madvertiseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/marsmediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediaConsortiumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediaforceBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediafuseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediagoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediakeysBidAdapter.js +1 -1
- package/dist/src/metadata/modules/medianetBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mediasquareBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mgidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mgidRtdProvider.js +1 -1
- package/dist/src/metadata/modules/mgidXBidAdapter.js +1 -1
- package/dist/src/metadata/modules/minutemediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/missenaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mobianRtdProvider.js +1 -1
- package/dist/src/metadata/modules/mobilefuseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mobkoiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/mobkoiIdSystem.js +1 -1
- package/dist/src/metadata/modules/nativeryBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nativoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/newspassidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nextMillenniumBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nextrollBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nexx360BidAdapter.js +1 -1
- package/dist/src/metadata/modules/nobidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/nodalsAiRtdProvider.js +1 -1
- package/dist/src/metadata/modules/novatiqIdSystem.js +1 -1
- package/dist/src/metadata/modules/oguryBidAdapter.js +1 -1
- package/dist/src/metadata/modules/omsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/onetagBidAdapter.js +1 -1
- package/dist/src/metadata/modules/openwebBidAdapter.js +1 -1
- package/dist/src/metadata/modules/openxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/operaadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/optidigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/optoutBidAdapter.js +1 -1
- package/dist/src/metadata/modules/orbidderBidAdapter.js +1 -1
- package/dist/src/metadata/modules/outbrainBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ozoneBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pairIdSystem.js +1 -1
- package/dist/src/metadata/modules/performaxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pgamsspBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pixfutureBidAdapter.js +1 -1
- package/dist/src/metadata/modules/playdigoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/prebid-core.js +1 -1
- package/dist/src/metadata/modules/precisoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/prismaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/programmaticXBidAdapter.js +1 -1
- package/dist/src/metadata/modules/proxistoreBidAdapter.js +1 -1
- package/dist/src/metadata/modules/publinkIdSystem.js +1 -1
- package/dist/src/metadata/modules/pubmaticBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pubmaticIdSystem.js +1 -1
- package/dist/src/metadata/modules/pulsepointBidAdapter.js +1 -1
- package/dist/src/metadata/modules/pwbidBidAdapter.js +1 -1
- package/dist/src/metadata/modules/qtBidAdapter.js +1 -1
- package/dist/src/metadata/modules/quantcastBidAdapter.js +1 -1
- package/dist/src/metadata/modules/quantcastIdSystem.js +1 -1
- package/dist/src/metadata/modules/r2b2BidAdapter.js +1 -1
- package/dist/src/metadata/modules/raynRtdProvider.js +1 -1
- package/dist/src/metadata/modules/readpeakBidAdapter.js +1 -1
- package/dist/src/metadata/modules/relayBidAdapter.js +1 -1
- package/dist/src/metadata/modules/relevantdigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/resetdigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/responsiveAdsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/retailspotBidAdapter.js +1 -1
- package/dist/src/metadata/modules/revcontentBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rhythmoneBidAdapter.js +1 -1
- package/dist/src/metadata/modules/richaudienceBidAdapter.js +1 -1
- package/dist/src/metadata/modules/riseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rixengineBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rtbhouseBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rubiconBidAdapter.js +1 -1
- package/dist/src/metadata/modules/rumbleBidAdapter.js +2 -0
- package/dist/src/metadata/modules/scatteredBidAdapter.js +1 -1
- package/dist/src/metadata/modules/seedingAllianceBidAdapter.js +1 -1
- package/dist/src/metadata/modules/seedtagBidAdapter.js +1 -1
- package/dist/src/metadata/modules/semantiqRtdProvider.js +1 -1
- package/dist/src/metadata/modules/setupadBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sevioBidAdapter.js +2 -0
- package/dist/src/metadata/modules/sharedIdSystem.js +1 -1
- package/dist/src/metadata/modules/sharethroughBidAdapter.js +1 -1
- package/dist/src/metadata/modules/showheroes-bsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/silvermobBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sirdataRtdProvider.js +1 -1
- package/dist/src/metadata/modules/slimcutBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smaatoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smartadserverBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smartxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smartyadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/smilewantedBidAdapter.js +1 -1
- package/dist/src/metadata/modules/snigelBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sonaradsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sonobiBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sovrnBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sparteoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ssmasBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sspBCBidAdapter.js +1 -1
- package/dist/src/metadata/modules/stackadaptBidAdapter.js +1 -1
- package/dist/src/metadata/modules/startioBidAdapter.js +1 -1
- package/dist/src/metadata/modules/stroeerCoreBidAdapter.js +1 -1
- package/dist/src/metadata/modules/stvBidAdapter.js +1 -1
- package/dist/src/metadata/modules/sublimeBidAdapter.js +1 -1
- package/dist/src/metadata/modules/taboolaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/taboolaIdSystem.js +1 -1
- package/dist/src/metadata/modules/tappxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/targetVideoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/teadsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/teadsIdSystem.js +1 -1
- package/dist/src/metadata/modules/tealBidAdapter.js +1 -1
- package/dist/src/metadata/modules/themoneytizerBidAdapter.js +1 -1
- package/dist/src/metadata/modules/tncIdSystem.js +1 -1
- package/dist/src/metadata/modules/topicsFpdModule.js +1 -1
- package/dist/src/metadata/modules/tripleliftBidAdapter.js +1 -1
- package/dist/src/metadata/modules/ttdBidAdapter.js +1 -1
- package/dist/src/metadata/modules/twistDigitalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/underdogmediaBidAdapter.js +1 -1
- package/dist/src/metadata/modules/undertoneBidAdapter.js +1 -1
- package/dist/src/metadata/modules/unifiedIdSystem.js +1 -1
- package/dist/src/metadata/modules/unrulyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/userId.js +1 -1
- package/dist/src/metadata/modules/validationFpdModule.js +1 -1
- package/dist/src/metadata/modules/vidazooBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vidoomyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/viewdeosDXBidAdapter.js +1 -1
- package/dist/src/metadata/modules/viouslyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/visxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vlybyBidAdapter.js +1 -1
- package/dist/src/metadata/modules/voxBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vrtcalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/vuukleBidAdapter.js +1 -1
- package/dist/src/metadata/modules/weboramaRtdProvider.js +1 -1
- package/dist/src/metadata/modules/welectBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yahooAdsBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldlabBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldliftBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldloveBidAdapter.js +1 -1
- package/dist/src/metadata/modules/yieldmoBidAdapter.js +1 -1
- package/dist/src/metadata/modules/zeotapIdPlusIdSystem.js +1 -1
- package/dist/src/metadata/modules/zeta_globalBidAdapter.js +1 -1
- package/dist/src/metadata/modules/zeta_global_sspBidAdapter.js +1 -1
- package/dist/src/modules/1plusXRtdProvider.js +6 -2
- package/dist/src/modules/1plusXRtdProvider.js.map +1 -1
- package/dist/src/modules/33acrossAnalyticsAdapter.js +1 -1
- package/dist/src/modules/33acrossBidAdapter.js +1 -1
- package/dist/src/modules/33acrossIdSystem.js +1 -1
- package/dist/src/modules/adWMGBidAdapter.js.map +1 -1
- package/dist/src/modules/adagioAnalyticsAdapter.js +1 -1
- package/dist/src/modules/adagioBidAdapter.js +1 -1
- package/dist/src/modules/addefendBidAdapter.js +1 -1
- package/dist/src/modules/adgenerationBidAdapter.js +1 -1
- package/dist/src/modules/adlooxRtdProvider.js +1 -1
- package/dist/src/modules/admixerBidAdapter.js +5 -4
- package/dist/src/modules/admixerBidAdapter.js.map +1 -1
- package/dist/src/modules/adqueryBidAdapter.js +1 -1
- package/dist/src/modules/adrelevantisBidAdapter.js +1 -1
- package/dist/src/modules/adspiritBidAdapter.js.map +1 -1
- package/dist/src/modules/adstirBidAdapter.js +1 -1
- package/dist/src/modules/adtrgtmeBidAdapter.js +1 -1
- package/dist/src/modules/adtrgtmeBidAdapter.js.map +1 -1
- package/dist/src/modules/advertisingBidAdapter.js +2 -2
- package/dist/src/modules/adxcgAnalyticsAdapter.js +1 -1
- package/dist/src/modules/adxcgBidAdapter.js +4 -39
- package/dist/src/modules/adxcgBidAdapter.js.map +1 -1
- package/dist/src/modules/adyoulikeBidAdapter.js +1 -1
- package/dist/src/modules/agmaAnalyticsAdapter.js +1 -1
- package/dist/src/modules/ajaBidAdapter.js +1 -1
- package/dist/src/modules/amxBidAdapter.js +2 -2
- package/dist/src/modules/amxBidAdapter.js.map +1 -1
- package/dist/src/modules/amxIdSystem.js +1 -1
- package/dist/src/modules/aniviewBidAdapter.js +1 -1
- package/dist/src/modules/appierAnalyticsAdapter.js +1 -1
- package/dist/src/modules/appnexusBidAdapter.js +2 -2
- package/dist/src/modules/asoBidAdapter.js +1 -1
- package/dist/src/modules/axonixBidAdapter.js +1 -1
- package/dist/src/modules/beopBidAdapter.js +2 -2
- package/dist/src/modules/bidglassBidAdapter.js +1 -1
- package/dist/src/modules/bitmediaBidAdapter.js +1 -1
- package/dist/src/modules/blockthroughBidAdapter.js +1 -1
- package/dist/src/modules/bmtmBidAdapter.js +1 -1
- package/dist/src/modules/bridBidAdapter.js +1 -1
- package/dist/src/modules/bridgewellBidAdapter.js +1 -1
- package/dist/src/modules/carodaBidAdapter.js +1 -1
- package/dist/src/modules/chromeAiRtdProvider.js.map +1 -1
- package/dist/src/modules/chtnwBidAdapter.js +1 -1
- package/dist/src/modules/concertBidAdapter.js +1 -1
- package/dist/src/modules/connectadBidAdapter.js +1 -1
- package/dist/src/modules/consentManagementGpp.js.map +1 -1
- package/dist/src/modules/consentManagementTcf.js.map +1 -1
- package/dist/src/modules/consentManagementUsp.js.map +1 -1
- package/dist/src/modules/consumableBidAdapter.js +1 -1
- package/dist/src/modules/contxtfulBidAdapter.js +1 -1
- package/dist/src/modules/conversantBidAdapter.js +1 -1
- package/dist/src/modules/craftBidAdapter.js +1 -1
- package/dist/src/modules/criteoBidAdapter.js +2 -2
- package/dist/src/modules/currency.js.map +1 -1
- package/dist/src/modules/cwireBidAdapter.js +1 -1
- package/dist/src/modules/cwireBidAdapter.js.map +1 -1
- package/dist/src/modules/dailymotionBidAdapter.js +1 -1
- package/dist/src/modules/dailymotionBidAdapter.js.map +1 -1
- package/dist/src/modules/dchain.js.map +1 -1
- package/dist/src/modules/dspxBidAdapter.js +1 -1
- package/dist/src/modules/dspxBidAdapter.js.map +1 -1
- package/dist/src/modules/dxkultureBidAdapter.js +1 -1
- package/dist/src/modules/eightPodBidAdapter.js.map +1 -1
- package/dist/src/modules/eplanningBidAdapter.js +1 -1
- package/dist/src/modules/equativBidAdapter.js +1 -1
- package/dist/src/modules/eskimiBidAdapter.js +1 -1
- package/dist/src/modules/euidIdSystem.js +1 -1
- package/dist/src/modules/exadsBidAdapter.js +1 -1
- package/dist/src/modules/excoBidAdapter.js +3 -3
- package/dist/src/modules/feedadBidAdapter.js +2 -2
- package/dist/src/modules/finativeBidAdapter.js +1 -1
- package/dist/src/modules/genericAnalyticsAdapter.js.map +1 -1
- package/dist/src/modules/geolocationRtdProvider.js.map +1 -1
- package/dist/src/modules/getintentBidAdapter.js +4 -2
- package/dist/src/modules/getintentBidAdapter.js.map +1 -1
- package/dist/src/modules/gmosspBidAdapter.js +1 -1
- package/dist/src/modules/gmosspBidAdapter.js.map +1 -1
- package/dist/src/modules/gppControl_usstates.js.map +1 -1
- package/dist/src/modules/gptPreAuction.d.ts +3 -3
- package/dist/src/modules/gptPreAuction.js.map +1 -1
- package/dist/src/modules/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/src/modules/greenbidsBidAdapter.js +1 -1
- package/dist/src/modules/greenbidsRtdProvider.js +1 -1
- package/dist/src/modules/gridBidAdapter.js +2 -2
- package/dist/src/modules/gumgumBidAdapter.js +2 -2
- package/dist/src/modules/h12mediaBidAdapter.js +1 -1
- package/dist/src/modules/hypelabBidAdapter.js +1 -1
- package/dist/src/modules/iasRtdProvider.js +110 -5
- package/dist/src/modules/iasRtdProvider.js.map +1 -1
- package/dist/src/modules/id5AnalyticsAdapter.js +1 -1
- package/dist/src/modules/id5IdSystem.js +1 -1
- package/dist/src/modules/improvedigitalBidAdapter.js +1 -1
- package/dist/src/modules/inmobiBidAdapter.js +1 -1
- package/dist/src/modules/insticatorBidAdapter.js +1 -1
- package/dist/src/modules/intentIqAnalyticsAdapter.js +1 -1
- package/dist/src/modules/intentIqAnalyticsAdapter.js.map +1 -1
- package/dist/src/modules/intentIqIdSystem.js.map +1 -1
- package/dist/src/modules/ixBidAdapter.js +1 -1
- package/dist/src/modules/jixieBidAdapter.js +1 -1
- package/dist/src/modules/justpremiumBidAdapter.js +1 -1
- package/dist/src/modules/jwplayerRtdProvider.js +6 -2
- package/dist/src/modules/jwplayerRtdProvider.js.map +1 -1
- package/dist/src/modules/jwplayerVideoProvider.js +12 -9
- package/dist/src/modules/jwplayerVideoProvider.js.map +1 -1
- package/dist/src/modules/kargoBidAdapter.js +1 -1
- package/dist/src/modules/kimberliteBidAdapter.js +1 -1
- package/dist/src/modules/kubientBidAdapter.js +0 -1
- package/dist/src/modules/kubientBidAdapter.js.map +1 -1
- package/dist/src/modules/lassoBidAdapter.js +1 -1
- package/dist/src/modules/lifestreetBidAdapter.js +1 -1
- package/dist/src/modules/logicadBidAdapter.js +1 -1
- package/dist/src/modules/luceadBidAdapter.js +1 -1
- package/dist/src/modules/mabidderBidAdapter.js +1 -1
- package/dist/src/modules/madsenseBidAdapter.js +1 -1
- package/dist/src/modules/magniteAnalyticsAdapter.js +1 -1
- package/dist/src/modules/malltvAnalyticsAdapter.js +1 -1
- package/dist/src/modules/marsmediaBidAdapter.js +1 -1
- package/dist/src/modules/mediafuseBidAdapter.js +2 -2
- package/dist/src/modules/medianetAnalyticsAdapter.js.map +1 -1
- package/dist/src/modules/medianetBidAdapter.js +6 -2
- package/dist/src/modules/medianetBidAdapter.js.map +1 -1
- package/dist/src/modules/mediasquareBidAdapter.js +2 -2
- package/dist/src/modules/mgidBidAdapter.js +1 -1
- package/dist/src/modules/michaoBidAdapter.js.map +1 -1
- package/dist/src/modules/missenaBidAdapter.js +1 -1
- package/dist/src/modules/mobilefuseBidAdapter.js +1 -1
- package/dist/src/modules/multibid/index.js.map +1 -1
- package/dist/src/modules/nextMillenniumBidAdapter.js +1 -1
- package/dist/src/modules/nexverseBidAdapter.js.map +1 -1
- package/dist/src/modules/nobidAnalyticsAdapter.js +1 -1
- package/dist/src/modules/nobidBidAdapter.js +1 -1
- package/dist/src/modules/nodalsAiRtdProvider.js +4 -2
- package/dist/src/modules/nodalsAiRtdProvider.js.map +1 -1
- package/dist/src/modules/oguryBidAdapter.js +1 -1
- package/dist/src/modules/onetagBidAdapter.js +1 -1
- package/dist/src/modules/onetagBidAdapter.js.map +1 -1
- package/dist/src/modules/ooloAnalyticsAdapter.js +1 -1
- package/dist/src/modules/openxBidAdapter.js +7 -2
- package/dist/src/modules/openxBidAdapter.js.map +1 -1
- package/dist/src/modules/optidigitalBidAdapter.js +1 -1
- package/dist/src/modules/orbidderBidAdapter.js +1 -1
- package/dist/src/modules/outbrainBidAdapter.js +1 -1
- package/dist/src/modules/pixfutureBidAdapter.js +2 -2
- package/dist/src/modules/prebidServerBidAdapter/index.js.map +1 -1
- package/dist/src/modules/priceFloors.d.ts +2 -2
- package/dist/src/modules/priceFloors.js.map +1 -1
- package/dist/src/modules/publinkIdSystem.js +1 -1
- package/dist/src/modules/pubmaticAnalyticsAdapter.js +2 -2
- package/dist/src/modules/pubmaticBidAdapter.js +23 -3
- package/dist/src/modules/pubmaticBidAdapter.js.map +1 -1
- package/dist/src/modules/pubmaticRtdProvider.js.map +1 -1
- package/dist/src/modules/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/src/modules/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/src/modules/pulsepointBidAdapter.js +2 -38
- package/dist/src/modules/pulsepointBidAdapter.js.map +1 -1
- package/dist/src/modules/pxyzBidAdapter.js +1 -1
- package/dist/src/modules/quantcastBidAdapter.js +1 -1
- package/dist/src/modules/readpeakBidAdapter.js +1 -1
- package/dist/src/modules/readpeakBidAdapter.js.map +1 -1
- package/dist/src/modules/relaidoBidAdapter.js +1 -1
- package/dist/src/modules/retailspotBidAdapter.js +1 -1
- package/dist/src/modules/rhythmoneBidAdapter.js +1 -1
- package/dist/src/modules/rtdModule/index.js.map +1 -1
- package/dist/src/modules/rtdModule/spec.js.map +1 -1
- package/dist/src/modules/rubiconBidAdapter.js +6 -2
- package/dist/src/modules/rubiconBidAdapter.js.map +1 -1
- package/dist/src/modules/rumbleBidAdapter.js +103 -0
- package/dist/src/modules/rumbleBidAdapter.js.map +1 -0
- package/dist/src/modules/schain.js.map +1 -1
- package/dist/src/modules/seedingAllianceBidAdapter.js +1 -1
- package/dist/src/modules/seedtagBidAdapter.js +1 -1
- package/dist/src/modules/sevioBidAdapter.js +254 -0
- package/dist/src/modules/sevioBidAdapter.js.map +1 -0
- package/dist/src/modules/sharedIdSystem.js.map +1 -1
- package/dist/src/modules/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/src/modules/sharethroughBidAdapter.js +1 -1
- package/dist/src/modules/showheroes-bsBidAdapter.js +1 -1
- package/dist/src/modules/smaatoBidAdapter.js +1 -1
- package/dist/src/modules/smartadserverBidAdapter.js +1 -1
- package/dist/src/modules/smartxBidAdapter.js +1 -1
- package/dist/src/modules/smilewantedBidAdapter.js +1 -1
- package/dist/src/modules/snigelBidAdapter.js +1 -1
- package/dist/src/modules/sonaradsBidAdapter.js +2 -2
- package/dist/src/modules/sonobiBidAdapter.js +1 -1
- package/dist/src/modules/sovrnBidAdapter.js +1 -1
- package/dist/src/modules/sparteoBidAdapter.js +1 -1
- package/dist/src/modules/sspBCBidAdapter.js +1 -1
- package/dist/src/modules/storageControl.js.map +1 -1
- package/dist/src/modules/stvBidAdapter.js +1 -1
- package/dist/src/modules/sublimeBidAdapter.js +2 -2
- package/dist/src/modules/taboolaBidAdapter.js +1 -1
- package/dist/src/modules/tappxBidAdapter.js +1 -1
- package/dist/src/modules/targetVideoBidAdapter.js +1 -1
- package/dist/src/modules/tcfControl.js.map +1 -1
- package/dist/src/modules/teadsBidAdapter.js +1 -1
- package/dist/src/modules/terceptAnalyticsAdapter.js +1 -1
- package/dist/src/modules/themoneytizerBidAdapter.js +1 -3
- package/dist/src/modules/themoneytizerBidAdapter.js.map +1 -1
- package/dist/src/modules/trionBidAdapter.js +1 -1
- package/dist/src/modules/tripleliftBidAdapter.js +1 -1
- package/dist/src/modules/ttdBidAdapter.js +9 -2
- package/dist/src/modules/ttdBidAdapter.js.map +1 -1
- package/dist/src/modules/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/src/modules/uid2IdSystem.js +1 -1
- package/dist/src/modules/underdogmediaBidAdapter.js +1 -1
- package/dist/src/modules/undertoneBidAdapter.js +1 -1
- package/dist/src/modules/unrulyBidAdapter.js +1 -1
- package/dist/src/modules/userId/index.js +12 -8
- package/dist/src/modules/userId/index.js.map +1 -1
- package/dist/src/modules/userId/spec.js.map +1 -1
- package/dist/src/modules/validationFpdModule/index.js.map +1 -1
- package/dist/src/modules/videoModule/index.js.map +1 -1
- package/dist/src/modules/videobyteBidAdapter.js +1 -1
- package/dist/src/modules/visxBidAdapter.js +1 -1
- package/dist/src/modules/vuukleBidAdapter.js +1 -1
- package/dist/src/modules/weboramaRtdProvider.js +30 -11
- package/dist/src/modules/weboramaRtdProvider.js.map +1 -1
- package/dist/src/modules/welectBidAdapter.js.map +1 -1
- package/dist/src/modules/widespaceBidAdapter.js +1 -1
- package/dist/src/modules/winrBidAdapter.js +1 -1
- package/dist/src/modules/yahooAdsBidAdapter.js +1 -1
- package/dist/src/modules/yandexBidAdapter.js +47 -15
- package/dist/src/modules/yandexBidAdapter.js.map +1 -1
- package/dist/src/modules/yieldmoBidAdapter.js +2 -2
- package/dist/src/modules/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/src/package.json +2 -3
- package/dist/src/public/rumbleBidAdapter.js +1 -0
- package/dist/src/public/sevioBidAdapter.js +1 -0
- package/dist/src/src/activities/params.d.ts +5 -0
- package/dist/src/src/activities/params.js +6 -0
- package/dist/src/src/activities/params.js.map +1 -1
- package/dist/src/src/activities/redactor.js.map +1 -1
- package/dist/src/src/adRendering.js.map +1 -1
- package/dist/src/src/adUnits.js.map +1 -1
- package/dist/src/src/adapterManager.js.map +1 -1
- package/dist/src/src/adapters/bidderFactory.js.map +1 -1
- package/dist/src/src/ajax.js.map +1 -1
- package/dist/src/src/auction.js.map +1 -1
- package/dist/src/src/banner.js.map +1 -1
- package/dist/src/src/bidTTL.js.map +1 -1
- package/dist/src/src/bidderSettings.js.map +1 -1
- package/dist/src/src/bidfactory.js.map +1 -1
- package/dist/src/src/config.js +3 -3
- package/dist/src/src/config.js.map +1 -1
- package/dist/src/src/consentHandler.js.map +1 -1
- package/dist/src/src/constants.js.map +1 -1
- package/dist/src/src/cpmBucketManager.js.map +1 -1
- package/dist/src/src/debugging.js +1 -1
- package/dist/src/src/events.js.map +1 -1
- package/dist/src/src/fpd/enrichment.js.map +1 -1
- package/dist/src/src/hook.js.map +1 -1
- package/dist/src/src/mediaTypes.js.map +1 -1
- package/dist/src/src/native.js.map +1 -1
- package/dist/src/src/prebid.js +2 -2
- package/dist/src/src/prebid.js.map +1 -1
- package/dist/src/src/prebidGlobal.js.map +1 -1
- package/dist/src/src/refererDetection.js.map +1 -1
- package/dist/src/src/storageManager.js +26 -25
- package/dist/src/src/storageManager.js.map +1 -1
- package/dist/src/src/targeting.d.ts +7 -7
- package/dist/src/src/targeting.js.map +1 -1
- package/dist/src/src/types/common.d.js.map +1 -1
- package/dist/src/src/types/common.d.ts +29 -29
- package/dist/src/src/types/local/buildOptions.d.js.map +1 -1
- package/dist/src/src/types/local/shim.d.js.map +1 -1
- package/dist/src/src/types/objects.d.js.map +1 -1
- package/dist/src/src/types/objects.d.ts +15 -15
- package/dist/src/src/types/ortb/common.d.js.map +1 -1
- package/dist/src/src/types/ortb/common.d.ts +1 -1
- package/dist/src/src/types/ortb/ext/dchain.d.js.map +1 -1
- package/dist/src/src/types/ortb/ext/dchain.d.ts +69 -69
- package/dist/src/src/types/ortb/ext/dsa.d.js.map +1 -1
- package/dist/src/src/types/ortb/ext/dsa.d.ts +50 -50
- package/dist/src/src/types/ortb/request.d.js.map +1 -1
- package/dist/src/src/types/ortb/request.d.ts +21 -21
- package/dist/src/src/types/ortb/response.d.js.map +1 -1
- package/dist/src/src/types/ortb/response.d.ts +6 -6
- package/dist/src/src/types/summary/core.d.ts +5 -5
- package/dist/src/src/userSync.js.map +1 -1
- package/dist/src/src/utils/objects.js.map +1 -1
- package/dist/src/src/utils/perfMetrics.js.map +1 -1
- package/dist/src/src/utils/promise.js.map +1 -1
- package/dist/src/src/utils/ttlCollection.js.map +1 -1
- package/dist/src/src/video.js.map +1 -1
- package/dist/src/src/videoCache.js.map +1 -1
- package/dist/src/test/helpers/index_adapter_utils.js +1 -1
- package/dist/src/test/helpers/index_adapter_utils.js.map +1 -1
- package/dist/src/test/helpers/refererDetectionHelper.js.map +1 -1
- package/dist/src/test/mocks/timers.js +12 -12
- package/dist/src/test/mocks/timers.js.map +1 -1
- package/dist/src/test/spec/adloader_spec.js.map +1 -1
- package/dist/src/test/spec/config_spec.js +9 -3
- package/dist/src/test/spec/config_spec.js.map +1 -1
- package/dist/src/test/spec/libraries/greedy/greedyPromise_spec.js +2 -2
- package/dist/src/test/spec/libraries/greedy/greedyPromise_spec.js.map +1 -1
- package/dist/src/test/spec/modules/1plusXRtdProvider_spec.js +2 -9
- package/dist/src/test/spec/modules/1plusXRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/33acrossAnalyticsAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/33acrossBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/33acrossIdSystem_spec.js +1 -1
- package/dist/src/test/spec/modules/adagioAnalyticsAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/adgridBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adkernelAdnBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adkernelBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/admediaBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adnuntiusBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adqueryBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/adrelevantisBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/adspiritBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adtrgtmeBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/adtrgtmeBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adtrueBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/advertisingBidAdapter_spec.js +9 -9
- package/dist/src/test/spec/modules/advertisingBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/adyoulikeBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/ajaBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/amxBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/appierAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/appnexusBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/asoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/bidmaticBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/blockthroughBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/bridBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/criteoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/dailymotionBidAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/datablocksBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/deepintentBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dexertoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dochaseBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dspxBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/dxkultureBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/ehealthcaresolutionsBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/enrichmentLiftMeasurement_spec.js.map +1 -1
- package/dist/src/test/spec/modules/eplanningBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/equativBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/equativBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/excoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/feedadBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/finativeBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ftrackIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/fwsspBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/gmosspBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/gridBidAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/gumgumBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/hypelabBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/iasRtdProvider_spec.js +104 -1
- package/dist/src/test/spec/modules/iasRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/id5IdSystem_spec.js +4 -4
- package/dist/src/test/spec/modules/insticatorBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/intentIqIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/invibesBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ixBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/justpremiumBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/kargoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/kargoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/lane4BidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/lemmaDigitalBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentExternalIdSystem_spec.js +29 -10
- package/dist/src/test/spec/modules/liveIntentExternalIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentIdMinimalSystem_spec.js +19 -0
- package/dist/src/test/spec/modules/liveIntentIdMinimalSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentIdSystem_spec.js +58 -1
- package/dist/src/test/spec/modules/liveIntentIdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/liveIntentRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/magniteAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/malltvAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/mediaeyesBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/mediafuseBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/mediagoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/medianetBidAdapter_spec.js +43 -26
- package/dist/src/test/spec/modules/medianetBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/mediasquareBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/missenaBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/nexx360BidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/nobidAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/nobidBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/nobidBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/oguryBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/onetagBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/openxBidAdapter_spec.js +113 -0
- package/dist/src/test/spec/modules/openxBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/optoutBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/orbitsoftBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/outbrainBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/oxxionAnalyticsAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ozoneBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/prebidServerBidAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/prebidServerBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/prismaBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/publinkIdSystem_spec.js +5 -5
- package/dist/src/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/pubmaticBidAdapter_spec.js +58 -0
- package/dist/src/test/spec/modules/pubmaticBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/pubmaticRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/pwbidBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/quantcastBidAdapter_spec.js +6 -6
- package/dist/src/test/spec/modules/readpeakBidAdapter_spec.js +4 -4
- package/dist/src/test/spec/modules/relaidoBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/relevadRtdProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/relevatehealthBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/richaudienceBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/rubiconBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/rubiconBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/rumbleBidAdapter_spec.js +110 -0
- package/dist/src/test/spec/modules/rumbleBidAdapter_spec.js.map +1 -0
- package/dist/src/test/spec/modules/sevioBidAdapter_spec.js +182 -0
- package/dist/src/test/spec/modules/sevioBidAdapter_spec.js.map +1 -0
- package/dist/src/test/spec/modules/smaatoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/smarticoBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/smartxBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/sonaradsBidAdapter_spec.js +5 -5
- package/dist/src/test/spec/modules/sovrnBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/sparteoBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/sspBCBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/stvBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/taboolaBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/tapnativeBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/targetVideoBidAdapter_spec.js +2 -2
- package/dist/src/test/spec/modules/themoneytizerBidAdapter_spec.js +0 -5
- package/dist/src/test/spec/modules/themoneytizerBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/trionBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/ttdBidAdapter_spec.js +24 -3
- package/dist/src/test/spec/modules/ttdBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/uid2IdSystem_spec.js.map +1 -1
- package/dist/src/test/spec/modules/unrulyBidAdapter_spec.js +3 -3
- package/dist/src/test/spec/modules/userId_spec.js +41 -6
- package/dist/src/test/spec/modules/userId_spec.js.map +1 -1
- package/dist/src/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +1738 -9
- package/dist/src/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js.map +1 -1
- package/dist/src/test/spec/modules/videobyteBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/visxBidAdapter_spec.js +12 -12
- package/dist/src/test/spec/modules/winrBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/yahooAdsBidAdapter_spec.js +1 -1
- package/dist/src/test/spec/modules/yandexBidAdapter_spec.js +107 -2
- package/dist/src/test/spec/modules/yandexBidAdapter_spec.js.map +1 -1
- package/dist/src/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +2 -2
- package/dist/src/test/spec/refererDetection_spec.js.map +1 -1
- package/dist/src/test/spec/unit/core/storageManager_spec.js +18 -1
- package/dist/src/test/spec/unit/core/storageManager_spec.js.map +1 -1
- package/dist/src/test/spec/unit/core/targeting_spec.js.map +1 -1
- package/dist/src/test/spec/utils_spec.js.map +1 -1
- package/eslint.config.js +2 -6
- package/gulpfile.js +0 -7
- package/libraries/analyticsAdapter/AnalyticsAdapter.ts +28 -28
- package/libraries/appnexusUtils/anKeywords.js +11 -0
- package/libraries/consentManagement/cmUtils.ts +18 -18
- package/libraries/creative-renderer-display/renderer.js +1 -1
- package/libraries/cryptoUtils/wallets.js +38 -0
- package/libraries/dspxUtils/bidderUtils.js +1 -1
- package/libraries/impUtils.js +33 -0
- package/libraries/liveIntentId/shared.js +16 -0
- package/libraries/nexx360Utils/index.js +8 -8
- package/libraries/ortbConverter/converter.ts +79 -79
- package/libraries/video/constants/events.ts +5 -5
- package/metadata/modules/33acrossBidAdapter.json +1 -1
- package/metadata/modules/33acrossIdSystem.json +1 -1
- package/metadata/modules/acuityadsBidAdapter.json +1 -1
- package/metadata/modules/adagioBidAdapter.json +1 -1
- package/metadata/modules/adagioRtdProvider.json +1 -1
- package/metadata/modules/addefendBidAdapter.json +1 -1
- package/metadata/modules/adfBidAdapter.json +1 -1
- package/metadata/modules/adfusionBidAdapter.json +1 -1
- package/metadata/modules/adheseBidAdapter.json +1 -1
- package/metadata/modules/adkernelAdnBidAdapter.json +1 -1
- package/metadata/modules/adkernelBidAdapter.json +4 -4
- package/metadata/modules/admaticBidAdapter.json +2 -2
- package/metadata/modules/admixerBidAdapter.json +8 -1
- package/metadata/modules/admixerIdSystem.json +1 -1
- package/metadata/modules/adnowBidAdapter.json +1 -1
- package/metadata/modules/adnuntiusBidAdapter.json +1 -1
- package/metadata/modules/adnuntiusRtdProvider.json +1 -1
- package/metadata/modules/adotBidAdapter.json +1 -1
- package/metadata/modules/adponeBidAdapter.json +1 -1
- package/metadata/modules/adqueryBidAdapter.json +1 -1
- package/metadata/modules/adqueryIdSystem.json +1 -1
- package/metadata/modules/adrinoBidAdapter.json +1 -1
- package/metadata/modules/ads_interactiveBidAdapter.json +1 -1
- package/metadata/modules/adtargetBidAdapter.json +1 -1
- package/metadata/modules/adtelligentBidAdapter.json +3 -3
- package/metadata/modules/adtelligentIdSystem.json +1 -1
- package/metadata/modules/aduptechBidAdapter.json +1 -1
- package/metadata/modules/adyoulikeBidAdapter.json +1 -1
- package/metadata/modules/aidemBidAdapter.json +1 -1
- package/metadata/modules/airgridRtdProvider.json +1 -1
- package/metadata/modules/alkimiBidAdapter.json +1 -1
- package/metadata/modules/ampliffyBidAdapter.json +1 -1
- package/metadata/modules/amxBidAdapter.json +1 -1
- package/metadata/modules/amxIdSystem.json +1 -1
- package/metadata/modules/aniviewBidAdapter.json +1 -1
- package/metadata/modules/anonymisedRtdProvider.json +1 -1
- package/metadata/modules/appierBidAdapter.json +15 -29
- package/metadata/modules/appnexusBidAdapter.json +5 -5
- package/metadata/modules/appushBidAdapter.json +1 -1
- package/metadata/modules/apstreamBidAdapter.json +1 -1
- package/metadata/modules/audiencerunBidAdapter.json +1 -1
- package/metadata/modules/axisBidAdapter.json +1 -1
- package/metadata/modules/azerionedgeRtdProvider.json +1 -1
- package/metadata/modules/beopBidAdapter.json +1 -1
- package/metadata/modules/betweenBidAdapter.json +1 -1
- package/metadata/modules/bidmaticBidAdapter.json +1 -1
- package/metadata/modules/bidtheatreBidAdapter.json +1 -1
- package/metadata/modules/bliinkBidAdapter.json +1 -1
- package/metadata/modules/blockthroughBidAdapter.json +1 -1
- package/metadata/modules/blueBidAdapter.json +1 -1
- package/metadata/modules/bmsBidAdapter.json +1 -1
- package/metadata/modules/boldwinBidAdapter.json +1 -1
- package/metadata/modules/bridBidAdapter.json +1 -1
- package/metadata/modules/browsiBidAdapter.json +1 -1
- package/metadata/modules/bucksenseBidAdapter.json +1 -1
- package/metadata/modules/carodaBidAdapter.json +1 -1
- package/metadata/modules/categoryTranslation.json +1 -1
- package/metadata/modules/ccxBidAdapter.json +1 -1
- package/metadata/modules/ceeIdSystem.json +1 -1
- package/metadata/modules/chromeAiRtdProvider.json +1 -1
- package/metadata/modules/compassBidAdapter.json +1 -1
- package/metadata/modules/conceptxBidAdapter.json +1 -1
- package/metadata/modules/connatixBidAdapter.json +1 -1
- package/metadata/modules/connectIdSystem.json +1 -1
- package/metadata/modules/connectadBidAdapter.json +1 -1
- package/metadata/modules/contentexchangeBidAdapter.json +1 -1
- package/metadata/modules/conversantBidAdapter.json +1 -1
- package/metadata/modules/copper6sspBidAdapter.json +1 -1
- package/metadata/modules/cpmstarBidAdapter.json +1 -1
- package/metadata/modules/criteoBidAdapter.json +1 -1
- package/metadata/modules/criteoIdSystem.json +1 -1
- package/metadata/modules/cwireBidAdapter.json +1 -1
- package/metadata/modules/czechAdIdSystem.json +1 -1
- package/metadata/modules/dailymotionBidAdapter.json +1 -1
- package/metadata/modules/debugging.json +1 -1
- package/metadata/modules/deepintentBidAdapter.json +1 -1
- package/metadata/modules/deltaprojectsBidAdapter.json +1 -1
- package/metadata/modules/dianomiBidAdapter.json +1 -1
- package/metadata/modules/digitalMatterBidAdapter.json +1 -1
- package/metadata/modules/distroscaleBidAdapter.json +1 -1
- package/metadata/modules/docereeAdManagerBidAdapter.json +3 -3
- package/metadata/modules/docereeBidAdapter.json +3 -3
- package/metadata/modules/dspxBidAdapter.json +1 -1
- package/metadata/modules/e_volutionBidAdapter.json +1 -1
- package/metadata/modules/edge226BidAdapter.json +3 -3
- package/metadata/modules/equativBidAdapter.json +1 -1
- package/metadata/modules/eskimiBidAdapter.json +1 -1
- package/metadata/modules/etargetBidAdapter.json +1 -1
- package/metadata/modules/euidIdSystem.json +1 -1
- package/metadata/modules/exadsBidAdapter.json +1 -1
- package/metadata/modules/feedadBidAdapter.json +1 -1
- package/metadata/modules/fwsspBidAdapter.json +1 -1
- package/metadata/modules/gamoshiBidAdapter.json +1 -1
- package/metadata/modules/glomexBidAdapter.json +1 -1
- package/metadata/modules/goldbachBidAdapter.json +1 -1
- package/metadata/modules/greenbidsBidAdapter.json +1 -1
- package/metadata/modules/gridBidAdapter.json +1 -1
- package/metadata/modules/gumgumBidAdapter.json +1 -1
- package/metadata/modules/hadronIdSystem.json +1 -1
- package/metadata/modules/hadronRtdProvider.json +1 -1
- package/metadata/modules/holidBidAdapter.json +1 -1
- package/metadata/modules/hybridBidAdapter.json +1 -1
- package/metadata/modules/id5IdSystem.json +1 -1
- package/metadata/modules/identityLinkIdSystem.json +1 -1
- package/metadata/modules/illuminBidAdapter.json +1 -1
- package/metadata/modules/impactifyBidAdapter.json +1 -1
- package/metadata/modules/improvedigitalBidAdapter.json +1 -1
- package/metadata/modules/inmobiBidAdapter.json +1 -1
- package/metadata/modules/innityBidAdapter.json +1 -1
- package/metadata/modules/insticatorBidAdapter.json +1 -1
- package/metadata/modules/intentIqIdSystem.json +1 -1
- package/metadata/modules/invibesBidAdapter.json +1 -1
- package/metadata/modules/ipromBidAdapter.json +1 -1
- package/metadata/modules/ixBidAdapter.json +1 -1
- package/metadata/modules/justIdSystem.json +1 -1
- package/metadata/modules/justpremiumBidAdapter.json +1 -1
- package/metadata/modules/jwplayerBidAdapter.json +1 -1
- package/metadata/modules/kargoBidAdapter.json +1 -1
- package/metadata/modules/kubientBidAdapter.json +3 -8
- package/metadata/modules/kueezRtbBidAdapter.json +1 -1
- package/metadata/modules/limelightDigitalBidAdapter.json +2 -2
- package/metadata/modules/liveIntentIdSystem.json +1 -1
- package/metadata/modules/liveIntentRtdProvider.json +1 -1
- package/metadata/modules/livewrappedBidAdapter.json +1 -1
- package/metadata/modules/loopmeBidAdapter.json +1 -1
- package/metadata/modules/lotamePanoramaIdSystem.json +1 -1
- package/metadata/modules/luceadBidAdapter.json +1 -1
- package/metadata/modules/luponmediaBidAdapter.json +1 -1
- package/metadata/modules/madvertiseBidAdapter.json +1 -1
- package/metadata/modules/marsmediaBidAdapter.json +1 -1
- package/metadata/modules/mediaConsortiumBidAdapter.json +1 -1
- package/metadata/modules/mediaforceBidAdapter.json +1 -1
- package/metadata/modules/mediafuseBidAdapter.json +1 -1
- package/metadata/modules/mediagoBidAdapter.json +1 -1
- package/metadata/modules/mediakeysBidAdapter.json +1 -1
- package/metadata/modules/medianetBidAdapter.json +2 -2
- package/metadata/modules/mediasquareBidAdapter.json +1 -1
- package/metadata/modules/mgidBidAdapter.json +1 -1
- package/metadata/modules/mgidRtdProvider.json +1 -1
- package/metadata/modules/mgidXBidAdapter.json +1 -1
- package/metadata/modules/minutemediaBidAdapter.json +1 -1
- package/metadata/modules/missenaBidAdapter.json +1 -1
- package/metadata/modules/mobianRtdProvider.json +1 -1
- package/metadata/modules/mobilefuseBidAdapter.json +1 -1
- package/metadata/modules/mobkoiBidAdapter.json +1 -1
- package/metadata/modules/mobkoiIdSystem.json +1 -1
- package/metadata/modules/nativeryBidAdapter.json +1 -1
- package/metadata/modules/nativoBidAdapter.json +1 -1
- package/metadata/modules/newspassidBidAdapter.json +1 -1
- package/metadata/modules/nextMillenniumBidAdapter.json +1 -1
- package/metadata/modules/nextrollBidAdapter.json +1 -1
- package/metadata/modules/nexx360BidAdapter.json +8 -8
- package/metadata/modules/nobidBidAdapter.json +2 -2
- package/metadata/modules/nodalsAiRtdProvider.json +1 -1
- package/metadata/modules/novatiqIdSystem.json +1 -1
- package/metadata/modules/oguryBidAdapter.json +1 -1
- package/metadata/modules/omsBidAdapter.json +1 -1
- package/metadata/modules/onetagBidAdapter.json +1 -1
- package/metadata/modules/openwebBidAdapter.json +1 -1
- package/metadata/modules/openxBidAdapter.json +1 -1
- package/metadata/modules/operaadsBidAdapter.json +1 -1
- package/metadata/modules/optidigitalBidAdapter.json +1 -1
- package/metadata/modules/optoutBidAdapter.json +1 -1
- package/metadata/modules/orbidderBidAdapter.json +1 -1
- package/metadata/modules/outbrainBidAdapter.json +1 -1
- package/metadata/modules/ozoneBidAdapter.json +1 -1
- package/metadata/modules/pairIdSystem.json +1 -1
- package/metadata/modules/performaxBidAdapter.json +4 -5
- package/metadata/modules/pgamsspBidAdapter.json +1 -1
- package/metadata/modules/pixfutureBidAdapter.json +1 -1
- package/metadata/modules/playdigoBidAdapter.json +1 -1
- package/metadata/modules/prebid-core.json +2 -2
- package/metadata/modules/precisoBidAdapter.json +1 -1
- package/metadata/modules/prismaBidAdapter.json +1 -1
- package/metadata/modules/programmaticXBidAdapter.json +1 -1
- package/metadata/modules/proxistoreBidAdapter.json +1 -1
- package/metadata/modules/publinkIdSystem.json +1 -1
- package/metadata/modules/pubmaticBidAdapter.json +1 -1
- package/metadata/modules/pubmaticIdSystem.json +1 -1
- package/metadata/modules/pulsepointBidAdapter.json +1 -1
- package/metadata/modules/pwbidBidAdapter.json +1 -1
- package/metadata/modules/qtBidAdapter.json +1 -1
- package/metadata/modules/quantcastBidAdapter.json +1 -1
- package/metadata/modules/quantcastIdSystem.json +1 -1
- package/metadata/modules/r2b2BidAdapter.json +1 -1
- package/metadata/modules/raynRtdProvider.json +1 -1
- package/metadata/modules/readpeakBidAdapter.json +1 -1
- package/metadata/modules/relayBidAdapter.json +1 -1
- package/metadata/modules/relevantdigitalBidAdapter.json +1 -1
- package/metadata/modules/resetdigitalBidAdapter.json +1 -1
- package/metadata/modules/responsiveAdsBidAdapter.json +1 -1
- package/metadata/modules/retailspotBidAdapter.json +1 -1
- package/metadata/modules/revcontentBidAdapter.json +7 -117
- package/metadata/modules/rhythmoneBidAdapter.json +1 -1
- package/metadata/modules/richaudienceBidAdapter.json +1 -1
- package/metadata/modules/riseBidAdapter.json +2 -2
- package/metadata/modules/rixengineBidAdapter.json +1 -1
- package/metadata/modules/rtbhouseBidAdapter.json +1 -1
- package/metadata/modules/rubiconBidAdapter.json +1 -1
- package/metadata/modules/rumbleBidAdapter.json +13 -0
- package/metadata/modules/scatteredBidAdapter.json +1 -1
- package/metadata/modules/seedingAllianceBidAdapter.json +1 -1
- package/metadata/modules/seedtagBidAdapter.json +1 -1
- package/metadata/modules/semantiqRtdProvider.json +1 -1
- package/metadata/modules/setupadBidAdapter.json +1 -1
- package/metadata/modules/sevioBidAdapter.json +18 -0
- package/metadata/modules/sharedIdSystem.json +1 -1
- package/metadata/modules/sharethroughBidAdapter.json +1 -1
- package/metadata/modules/showheroes-bsBidAdapter.json +1 -1
- package/metadata/modules/silvermobBidAdapter.json +1 -1
- package/metadata/modules/sirdataRtdProvider.json +1 -1
- package/metadata/modules/slimcutBidAdapter.json +1 -1
- package/metadata/modules/smaatoBidAdapter.json +1 -1
- package/metadata/modules/smartadserverBidAdapter.json +1 -1
- package/metadata/modules/smartxBidAdapter.json +1 -1
- package/metadata/modules/smartyadsBidAdapter.json +1 -1
- package/metadata/modules/smilewantedBidAdapter.json +1 -1
- package/metadata/modules/snigelBidAdapter.json +1 -1
- package/metadata/modules/sonaradsBidAdapter.json +1 -1
- package/metadata/modules/sonobiBidAdapter.json +1 -1
- package/metadata/modules/sovrnBidAdapter.json +4 -4
- package/metadata/modules/sparteoBidAdapter.json +1 -1
- package/metadata/modules/ssmasBidAdapter.json +1 -1
- package/metadata/modules/sspBCBidAdapter.json +1 -1
- package/metadata/modules/stackadaptBidAdapter.json +1 -1
- package/metadata/modules/startioBidAdapter.json +1 -1
- package/metadata/modules/stroeerCoreBidAdapter.json +1 -1
- package/metadata/modules/stvBidAdapter.json +1 -1
- package/metadata/modules/sublimeBidAdapter.json +1 -1
- package/metadata/modules/taboolaBidAdapter.json +1 -1
- package/metadata/modules/taboolaIdSystem.json +1 -1
- package/metadata/modules/tappxBidAdapter.json +1 -1
- package/metadata/modules/targetVideoBidAdapter.json +1 -1
- package/metadata/modules/teadsBidAdapter.json +1 -1
- package/metadata/modules/teadsIdSystem.json +1 -1
- package/metadata/modules/tealBidAdapter.json +1 -1
- package/metadata/modules/themoneytizerBidAdapter.json +3 -8
- package/metadata/modules/tncIdSystem.json +1 -1
- package/metadata/modules/topicsFpdModule.json +1 -1
- package/metadata/modules/tripleliftBidAdapter.json +1 -1
- package/metadata/modules/ttdBidAdapter.json +1 -1
- package/metadata/modules/twistDigitalBidAdapter.json +1 -1
- package/metadata/modules/underdogmediaBidAdapter.json +1 -1
- package/metadata/modules/undertoneBidAdapter.json +1 -1
- package/metadata/modules/unifiedIdSystem.json +1 -1
- package/metadata/modules/unrulyBidAdapter.json +1 -1
- package/metadata/modules/userId.json +1 -1
- package/metadata/modules/validationFpdModule.json +1 -1
- package/metadata/modules/vidazooBidAdapter.json +1 -1
- package/metadata/modules/vidoomyBidAdapter.json +1 -1
- package/metadata/modules/viewdeosDXBidAdapter.json +1 -1
- package/metadata/modules/viouslyBidAdapter.json +1 -1
- package/metadata/modules/visxBidAdapter.json +1 -1
- package/metadata/modules/vlybyBidAdapter.json +1 -1
- package/metadata/modules/voxBidAdapter.json +1 -1
- package/metadata/modules/vrtcalBidAdapter.json +1 -1
- package/metadata/modules/vuukleBidAdapter.json +1 -1
- package/metadata/modules/weboramaRtdProvider.json +1 -1
- package/metadata/modules/welectBidAdapter.json +1 -1
- package/metadata/modules/yahooAdsBidAdapter.json +1 -1
- package/metadata/modules/yieldlabBidAdapter.json +1 -1
- package/metadata/modules/yieldliftBidAdapter.json +1 -1
- package/metadata/modules/yieldloveBidAdapter.json +1 -1
- package/metadata/modules/yieldmoBidAdapter.json +1 -1
- package/metadata/modules/zeotapIdPlusIdSystem.json +1 -1
- package/metadata/modules/zeta_globalBidAdapter.json +1 -1
- package/metadata/modules/zeta_global_sspBidAdapter.json +1 -1
- package/metadata/modules.json +23 -2
- package/modules/1plusXRtdProvider.js +6 -2
- package/modules/adWMGBidAdapter.js +8 -8
- package/modules/admixerBidAdapter.js +9 -4
- package/modules/adspiritBidAdapter.js +8 -8
- package/modules/adtrgtmeBidAdapter.js +2 -2
- package/modules/adxcgBidAdapter.js +2 -36
- package/modules/amxBidAdapter.js +3 -3
- package/modules/chromeAiRtdProvider.js +5 -5
- package/modules/consentManagementGpp.ts +11 -11
- package/modules/consentManagementTcf.ts +33 -33
- package/modules/consentManagementUsp.ts +14 -14
- package/modules/currency.ts +59 -59
- package/modules/cwireBidAdapter.js +2 -2
- package/modules/dailymotionBidAdapter.js +4 -4
- package/modules/dchain.ts +4 -4
- package/modules/dspxBidAdapter.js +8 -8
- package/modules/eightPodBidAdapter.js +8 -8
- package/modules/genericAnalyticsAdapter.ts +50 -50
- package/modules/geolocationRtdProvider.ts +48 -48
- package/modules/getintentBidAdapter.js +4 -2
- package/modules/gmosspBidAdapter.js +1 -1
- package/modules/gppControl_usstates.ts +40 -40
- package/modules/gptPreAuction.ts +34 -34
- package/modules/iasRtdProvider.js +87 -5
- package/modules/intentIqAnalyticsAdapter.js +8 -8
- package/modules/intentIqIdSystem.js +2 -2
- package/modules/jwplayerRtdProvider.js +6 -2
- package/modules/jwplayerVideoProvider.js +13 -9
- package/modules/kubientBidAdapter.js +0 -1
- package/modules/medianetAnalyticsAdapter.js +5 -5
- package/modules/medianetBidAdapter.js +5 -1
- package/modules/michaoBidAdapter.ts +7 -7
- package/modules/multibid/index.ts +31 -31
- package/modules/nexverseBidAdapter.js +1 -1
- package/modules/nodalsAiRtdProvider.js +4 -2
- package/modules/onetagBidAdapter.js +12 -12
- package/modules/openxBidAdapter.js +6 -1
- package/modules/prebidServerBidAdapter/index.ts +130 -130
- package/modules/priceFloors.ts +131 -131
- package/modules/pubmaticBidAdapter.js +21 -1
- package/modules/pubmaticRtdProvider.js +143 -143
- package/modules/pulsepointBidAdapter.js +3 -38
- package/modules/readpeakBidAdapter.js +17 -17
- package/modules/rtdModule/index.ts +8 -8
- package/modules/rtdModule/spec.ts +30 -30
- package/modules/rubiconBidAdapter.js +5 -1
- package/modules/rumbleBidAdapter.js +128 -0
- package/modules/rumbleBidAdapter.md +114 -0
- package/modules/schain.ts +4 -4
- package/modules/sevioBidAdapter.js +262 -0
- package/modules/sevioBidAdapter.md +29 -0
- package/modules/sharedIdSystem.ts +29 -29
- package/modules/storageControl.ts +72 -72
- package/modules/tcfControl.ts +60 -60
- package/modules/themoneytizerBidAdapter.js +2 -4
- package/modules/ttdBidAdapter.js +11 -1
- package/modules/ttdBidAdapter.md +3 -1
- package/modules/userId/index.ts +129 -119
- package/modules/userId/spec.ts +136 -136
- package/modules/validationFpdModule/index.ts +4 -4
- package/modules/videoModule/index.ts +37 -37
- package/modules/weboramaRtdProvider.js +30 -11
- package/modules/welectBidAdapter.js +3 -3
- package/modules/yandexBidAdapter.js +67 -24
- package/package.json +2 -3
- package/src/activities/params.js +6 -0
- package/src/activities/redactor.ts +8 -8
- package/src/adRendering.ts +61 -61
- package/src/adUnits.ts +100 -100
- package/src/adapterManager.ts +605 -605
- package/src/adapters/bidderFactory.ts +99 -99
- package/src/ajax.ts +39 -39
- package/src/auction.ts +217 -217
- package/src/banner.ts +28 -28
- package/src/bidTTL.ts +16 -16
- package/src/bidderSettings.ts +46 -46
- package/src/bidfactory.ts +107 -107
- package/src/config.ts +65 -65
- package/src/consentHandler.ts +25 -25
- package/src/constants.ts +14 -14
- package/src/cpmBucketManager.ts +7 -7
- package/src/events.ts +75 -75
- package/src/fpd/enrichment.ts +8 -8
- package/src/hook.ts +14 -14
- package/src/mediaTypes.ts +16 -16
- package/src/native.ts +62 -62
- package/src/prebid.ts +362 -362
- package/src/prebidGlobal.ts +18 -18
- package/src/refererDetection.ts +54 -54
- package/src/storageManager.ts +76 -73
- package/src/targeting.ts +215 -215
- package/src/types/common.d.ts +29 -29
- package/src/types/local/buildOptions.d.ts +3 -3
- package/src/types/local/shim.d.ts +6 -6
- package/src/types/objects.d.ts +15 -15
- package/src/types/ortb/common.d.ts +1 -1
- package/src/types/ortb/ext/dchain.d.ts +69 -69
- package/src/types/ortb/ext/dsa.d.ts +50 -50
- package/src/types/ortb/request.d.ts +21 -21
- package/src/types/ortb/response.d.ts +6 -6
- package/src/userSync.ts +32 -32
- package/src/utils/objects.ts +11 -11
- package/src/utils/perfMetrics.ts +193 -193
- package/src/utils/promise.ts +14 -14
- package/src/utils/ttlCollection.ts +25 -25
- package/src/video.ts +73 -73
- package/src/videoCache.ts +60 -60
- package/test/helpers/index_adapter_utils.js +1 -2
- package/test/helpers/refererDetectionHelper.js +2 -2
- package/test/mocks/timers.js +12 -9
- package/test/spec/adloader_spec.js +13 -13
- package/test/spec/config_spec.js +9 -3
- package/test/spec/libraries/greedy/greedyPromise_spec.js +2 -2
- package/test/spec/modules/1plusXRtdProvider_spec.js +2 -9
- package/test/spec/modules/adgridBidAdapter_spec.js +6 -6
- package/test/spec/modules/adkernelAdnBidAdapter_spec.js +127 -127
- package/test/spec/modules/adkernelBidAdapter_spec.js +308 -308
- package/test/spec/modules/admediaBidAdapter_spec.js +34 -34
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +7 -7
- package/test/spec/modules/adspiritBidAdapter_spec.js +1 -1
- package/test/spec/modules/adtrgtmeBidAdapter_spec.js +3 -3
- package/test/spec/modules/adtrueBidAdapter_spec.js +19 -19
- package/test/spec/modules/advertisingBidAdapter_spec.js +2 -2
- package/test/spec/modules/bidmaticBidAdapter_spec.js +2 -2
- package/test/spec/modules/datablocksBidAdapter_spec.js +115 -115
- package/test/spec/modules/deepintentBidAdapter_spec.js +51 -51
- package/test/spec/modules/dexertoBidAdapter_spec.js +16 -16
- package/test/spec/modules/dochaseBidAdapter_spec.js +17 -17
- package/test/spec/modules/dspxBidAdapter_spec.js +23 -23
- package/test/spec/modules/ehealthcaresolutionsBidAdapter_spec.js +17 -17
- package/test/spec/modules/enrichmentLiftMeasurement_spec.js +8 -8
- package/test/spec/modules/equativBidAdapter_spec.js +1 -1
- package/test/spec/modules/finativeBidAdapter_spec.js +11 -11
- package/test/spec/modules/ftrackIdSystem_spec.js +16 -16
- package/test/spec/modules/fwsspBidAdapter_spec.js +5 -5
- package/test/spec/modules/hypelabBidAdapter_spec.js +9 -9
- package/test/spec/modules/iasRtdProvider_spec.js +89 -8
- package/test/spec/modules/intentIqIdSystem_spec.js +3 -3
- package/test/spec/modules/invibesBidAdapter_spec.js +2 -2
- package/test/spec/modules/kargoBidAdapter_spec.js +7 -7
- package/test/spec/modules/lane4BidAdapter_spec.js +17 -17
- package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +37 -37
- package/test/spec/modules/liveIntentExternalIdSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +5 -0
- package/test/spec/modules/liveIntentIdSystem_spec.js +38 -0
- package/test/spec/modules/liveIntentRtdProvider_spec.js +2 -2
- package/test/spec/modules/mediaeyesBidAdapter_spec.js +166 -166
- package/test/spec/modules/mediagoBidAdapter_spec.js +1 -1
- package/test/spec/modules/medianetBidAdapter_spec.js +1724 -1707
- package/test/spec/modules/mediasquareBidAdapter_spec.js +7 -7
- package/test/spec/modules/nexx360BidAdapter_spec.js +6 -6
- package/test/spec/modules/nobidBidAdapter_spec.js +16 -16
- package/test/spec/modules/onetagBidAdapter_spec.js +47 -47
- package/test/spec/modules/openxBidAdapter_spec.js +129 -0
- package/test/spec/modules/optoutBidAdapter_spec.js +1 -1
- package/test/spec/modules/orbitsoftBidAdapter_spec.js +85 -85
- package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/ozoneBidAdapter_spec.js +439 -439
- package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -2
- package/test/spec/modules/prismaBidAdapter_spec.js +6 -6
- package/test/spec/modules/pubmaticBidAdapter_spec.js +73 -3
- package/test/spec/modules/pubmaticRtdProvider_spec.js +1389 -1389
- package/test/spec/modules/pwbidBidAdapter_spec.js +25 -25
- package/test/spec/modules/relevadRtdProvider_spec.js +1 -1
- package/test/spec/modules/relevatehealthBidAdapter_spec.js +16 -16
- package/test/spec/modules/richaudienceBidAdapter_spec.js +10 -10
- package/test/spec/modules/rubiconBidAdapter_spec.js +7 -7
- package/test/spec/modules/rumbleBidAdapter_spec.js +125 -0
- package/test/spec/modules/sevioBidAdapter_spec.js +209 -0
- package/test/spec/modules/smaatoBidAdapter_spec.js +30 -30
- package/test/spec/modules/smarticoBidAdapter_spec.js +10 -10
- package/test/spec/modules/stvBidAdapter_spec.js +32 -32
- package/test/spec/modules/tapnativeBidAdapter_spec.js +17 -17
- package/test/spec/modules/themoneytizerBidAdapter_spec.js +0 -6
- package/test/spec/modules/ttdBidAdapter_spec.js +27 -2
- package/test/spec/modules/uid2IdSystem_spec.js +3 -3
- package/test/spec/modules/userId_spec.js +41 -7
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +1953 -154
- package/test/spec/modules/yandexBidAdapter_spec.js +128 -0
- package/test/spec/refererDetection_spec.js +11 -11
- package/test/spec/unit/core/storageManager_spec.js +20 -1
- package/test/spec/unit/core/targeting_spec.js +8 -8
- package/test/spec/utils_spec.js +25 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"targeting_spec.js","names":["expect","getGPTSlotsForAdUnits","filters","getHighestCpmBidsFromBidPool","sortByDealAndPriceBucketOrCpm","targeting","targetingInstance","config","createBidReceived","DEFAULT_TARGETING_KEYS","JSON_MAPPING","NATIVE_KEYS","TARGETING_KEYS","auctionManager","utils","deepClone","createBid","hook","setupBeforeHookFnOnce","getHighestCpm","mkBid","bid","Object","assign","sampleBid","BIDDER","AD_ID","PRICE_BUCKET","DEAL","bid1","bid2","bid3","nativeBid1","SIZE","SOURCE","FORMAT","title","body","sponsoredBy","clickUrl","image","icon","nativeBid2","describe","sandbox","enableSendAllBids","useBidCache","bidCacheFilterFunction","undef","before","ready","beforeEach","sinon","createSandbox","origGetConfig","getConfig","stub","callsFake","key","apply","arguments","afterEach","restore","clock","useFakeTimers","entries","bid.ttlBuffer","ttlBuffer","setConfig({ttlBuffer})","_","setConfig","forEach","_ref","t","setup","it","responseTimestamp","ttl","isBidNotExpired","to","be","true","tick","false","amBidsReceivedStub","amGetAdUnitsStub","bidExpiryStub","logWarnStub","logErrorStub","bidsReceived","map","returns","resetConfig","adUnitCode","adServerTargeting","getAdUnitsStub","ADSERVER_TARGETING","after","test_type","pairs","_ref2","type","value","result","getAllTargeting","is","equal","bid4","adserverTargeting","bidder","bidderCode","cpm","push","targetingControls","alwaysIncludeDeals","contain","keys","deep","auctionKeyMaxChars","adId","calledOnce","calledTwice","code","au2","not","exist","sendBidsControl","bidLimit","dealPrioritization","bids","length","limitedBids","filter","indexOf","bidderSettingsStorage","pbjs","bidderSettings","hb_pb","hb_adid","hb_bidder","standard","allowZeroCpmBids","include","all","hb_deal","dealId","allowTargetingKeys","have","winningBid","expandKey","Set","add","substr","targetingResult","addTargetingKeys","defaultKeys","values","expectedKeys","reduce","left","right","concat","has","k","throw","allowSendAllBidsTargetingKeys","bid5","foobar","losingBid","allBidsCustomTargeting","property","custom1","custom2","sendAllBidCpm","nativeAdUnitCode","hb_pb_dgads","and","pbMg","adpodBid","video","context","durationSeconds","durationBucket","fn","highestCpmCallback","adUnitBidLimit","undefined","hasModified","call","getHooks","remove","auctionManagerStub","auctionId","adUnitCodes","getWinningBids","setLatestAuctionForAdUnit","latestTargetedAuctionId","mediaType","bcffCalled","status","timestampStub","sort","apnTagStub","window","apntag","setKeywords","orig","setTargetingForAst","called","resetPresetTargetingAST","callCount","getCall","args","HB_BIDDER","mockSlot","path","elId","getAdUnitPath","getSlotElementId","slots","paths","eql","elementIds","missing","csm","slot","au"],"sourceRoot":"../../../../../..","sources":["test/spec/unit/core/targeting_spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {\n getGPTSlotsForAdUnits,\n filters,\n getHighestCpmBidsFromBidPool,\n sortByDealAndPriceBucketOrCpm,\n targeting as targetingInstance\n} from 'src/targeting.js';\nimport {config} from 'src/config.js';\nimport {createBidReceived} from 'test/fixtures/fixtures.js';\nimport { DEFAULT_TARGETING_KEYS, JSON_MAPPING, NATIVE_KEYS, TARGETING_KEYS } from 'src/constants.js';\nimport {auctionManager} from 'src/auctionManager.js';\nimport * as utils from 'src/utils.js';\nimport {deepClone} from 'src/utils.js';\nimport {createBid} from '../../../../src/bidfactory.js';\nimport { hook, setupBeforeHookFnOnce } from '../../../../src/hook.js';\nimport {getHighestCpm} from '../../../../src/utils/reducers.js';\n\nfunction mkBid(bid) {\n return Object.assign(createBid(), bid);\n}\n\nconst sampleBid = {\n 'bidderCode': 'rubicon',\n 'width': '300',\n 'height': '250',\n 'statusMessage': 'Bid available',\n 'adId': '148018fe5e',\n 'cpm': 0.537234,\n 'ad': 'markup',\n 'ad_id': '3163950',\n 'sizeId': '15',\n 'requestTimestamp': 1454535718610,\n 'responseTimestamp': 1454535724863,\n 'timeToRespond': 123,\n 'pbLg': '0.50',\n 'pbMg': '0.50',\n 'pbHg': '0.53',\n 'adUnitCode': '/123456/header-bid-tag-0',\n 'bidder': 'rubicon',\n 'size': '300x250',\n 'adserverTargeting': {\n 'foobar': '300x250',\n [TARGETING_KEYS.BIDDER]: 'rubicon',\n [TARGETING_KEYS.AD_ID]: '148018fe5e',\n [TARGETING_KEYS.PRICE_BUCKET]: '0.53',\n [TARGETING_KEYS.DEAL]: '1234'\n },\n 'dealId': '1234',\n 'netRevenue': true,\n 'currency': 'USD',\n 'ttl': 300\n};\n\nconst bid1 = mkBid(sampleBid);\n\nconst bid2 = mkBid({\n 'bidderCode': 'rubicon',\n 'width': '300',\n 'height': '250',\n 'statusMessage': 'Bid available',\n 'adId': '5454545',\n 'cpm': 0.25,\n 'ad': 'markup',\n 'ad_id': '3163950',\n 'sizeId': '15',\n 'requestTimestamp': 1454535718610,\n 'responseTimestamp': 1454535724863,\n 'timeToRespond': 123,\n 'pbLg': '0.25',\n 'pbMg': '0.25',\n 'pbHg': '0.25',\n 'adUnitCode': '/123456/header-bid-tag-0',\n 'bidder': 'rubicon',\n 'size': '300x250',\n 'adserverTargeting': {\n 'foobar': '300x250',\n [TARGETING_KEYS.BIDDER]: 'rubicon',\n [TARGETING_KEYS.AD_ID]: '5454545',\n [TARGETING_KEYS.PRICE_BUCKET]: '0.25'\n },\n 'netRevenue': true,\n 'currency': 'USD',\n 'ttl': 300\n});\n\nconst bid3 = mkBid({\n 'bidderCode': 'rubicon',\n 'width': '300',\n 'height': '600',\n 'statusMessage': 'Bid available',\n 'adId': '48747745',\n 'cpm': 0.75,\n 'ad': 'markup',\n 'ad_id': '3163950',\n 'sizeId': '15',\n 'requestTimestamp': 1454535718610,\n 'responseTimestamp': 1454535724863,\n 'timeToRespond': 123,\n 'pbLg': '0.75',\n 'pbMg': '0.75',\n 'pbHg': '0.75',\n 'adUnitCode': '/123456/header-bid-tag-1',\n 'bidder': 'rubicon',\n 'size': '300x600',\n 'adserverTargeting': {\n 'foobar': '300x600',\n [TARGETING_KEYS.BIDDER]: 'rubicon',\n [TARGETING_KEYS.AD_ID]: '48747745',\n [TARGETING_KEYS.PRICE_BUCKET]: '0.75'\n },\n 'netRevenue': true,\n 'currency': 'USD',\n 'ttl': 300\n});\n\nconst nativeBid1 = mkBid({\n 'bidderCode': 'appnexus',\n 'width': 0,\n 'height': 0,\n 'statusMessage': 'Bid available',\n 'adId': '591e7c9354b633',\n 'requestId': '24aae81e32d6f6',\n 'mediaType': 'native',\n 'source': 'client',\n 'cpm': 10,\n 'creativeId': 97494403,\n 'currency': 'USD',\n 'netRevenue': true,\n 'ttl': 300,\n 'adUnitCode': '/19968336/prebid_native_example_1',\n 'appnexus': {\n 'buyerMemberId': 9325\n },\n 'meta': {\n 'advertiserId': 2529885\n },\n 'native': {\n 'title': 'This is a Prebid Native Creative',\n 'body': 'This is a Prebid Native Creative. There are many like it, but this one is mine.',\n 'sponsoredBy': 'Prebid.org',\n 'clickUrl': 'http://prebid.org/dev-docs/show-native-ads.html',\n 'clickTrackers': ['http://www.clickUrl.com/404'],\n 'impressionTrackers': ['http://imp.trackerUrl.com/it1'],\n 'javascriptTrackers': '<script>//js script here</script>',\n 'image': {\n 'url': 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg',\n 'height': 2250,\n 'width': 3000\n },\n 'icon': {\n 'url': 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png',\n 'height': 83,\n 'width': 127\n }\n },\n 'auctionId': '72138a4a-b747-4192-9192-dcc41d675de8',\n 'responseTimestamp': 1565785219461,\n 'requestTimestamp': 1565785219405,\n 'bidder': 'appnexus',\n 'timeToRespond': 56,\n 'pbLg': '5.00',\n 'pbMg': '10.00',\n 'pbHg': '10.00',\n 'pbAg': '10.00',\n 'pbDg': '10.00',\n 'pbCg': '',\n 'size': '0x0',\n 'adserverTargeting': {\n [TARGETING_KEYS.BIDDER]: 'appnexus',\n [TARGETING_KEYS.AD_ID]: '591e7c9354b633',\n [TARGETING_KEYS.PRICE_BUCKET]: '10.00',\n [TARGETING_KEYS.SIZE]: '0x0',\n [TARGETING_KEYS.SOURCE]: 'client',\n [TARGETING_KEYS.FORMAT]: 'native',\n [NATIVE_KEYS.title]: 'This is a Prebid Native Creative',\n [NATIVE_KEYS.body]: 'This is a Prebid Native Creative. There are many like it, but this one is mine.',\n [NATIVE_KEYS.sponsoredBy]: 'Prebid.org',\n [NATIVE_KEYS.clickUrl]: 'http://prebid.org/dev-docs/show-native-ads.html',\n [NATIVE_KEYS.image]: 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg',\n [NATIVE_KEYS.icon]: 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png'\n }\n});\n\nconst nativeBid2 = mkBid({\n 'bidderCode': 'dgads',\n 'width': 0,\n 'height': 0,\n 'statusMessage': 'Bid available',\n 'adId': '6e0aba55ed54e5',\n 'requestId': '4de26ec83d9661',\n 'mediaType': 'native',\n 'source': 'client',\n 'cpm': 1.90909091,\n 'creativeId': 'xuidx6c901261b0x2b2',\n 'currency': 'JPY',\n 'netRevenue': true,\n 'ttl': 60,\n 'referrer': 'http://test.localhost:9999/integrationExamples/gpt/demo_native.html?pbjs_debug=true',\n 'native': {\n 'image': {\n 'url': 'https://ads-tr.bigmining.com/img/300x250.png',\n 'width': 300,\n 'height': 250\n },\n 'title': 'Test Title',\n 'body': 'Test Description',\n 'sponsoredBy': 'test.com',\n 'clickUrl': 'http://prebid.org/',\n 'clickTrackers': ['https://www.clickUrl.com/404'],\n 'impressionTrackers': [\n 'http://imp.trackerUrl.com/it2'\n ]\n },\n 'auctionId': '72138a4a-b747-4192-9192-dcc41d675de8',\n 'responseTimestamp': 1565785219607,\n 'requestTimestamp': 1565785219409,\n 'bidder': 'dgads',\n 'adUnitCode': '/19968336/prebid_native_example_1',\n 'timeToRespond': 198,\n 'pbLg': '1.50',\n 'pbMg': '1.90',\n 'pbHg': '1.90',\n 'pbAg': '1.90',\n 'pbDg': '1.90',\n 'pbCg': '',\n 'size': '0x0',\n 'adserverTargeting': {\n [TARGETING_KEYS.BIDDER]: 'dgads',\n [TARGETING_KEYS.AD_ID]: '6e0aba55ed54e5',\n [TARGETING_KEYS.PRICE_BUCKET]: '1.90',\n [TARGETING_KEYS.SIZE]: '0x0',\n [TARGETING_KEYS.SOURCE]: 'client',\n [TARGETING_KEYS.FORMAT]: 'native',\n [NATIVE_KEYS.image]: 'https://ads-tr.bigmining.com/img/300x250.png',\n [NATIVE_KEYS.title]: 'Test Title',\n [NATIVE_KEYS.body]: 'Test Description',\n [NATIVE_KEYS.sponsoredBy]: 'test.com',\n [NATIVE_KEYS.clickUrl]: 'http://prebid.org/'\n }\n});\n\ndescribe('targeting tests', function () {\n let sandbox;\n let enableSendAllBids = false;\n let useBidCache;\n let bidCacheFilterFunction;\n let undef;\n\n before(() => {\n hook.ready();\n });\n\n beforeEach(function() {\n sandbox = sinon.createSandbox();\n\n useBidCache = true;\n\n const origGetConfig = config.getConfig;\n sandbox.stub(config, 'getConfig').callsFake(function (key) {\n if (key === 'enableSendAllBids') {\n return enableSendAllBids;\n }\n if (key === 'useBidCache') {\n return useBidCache;\n }\n if (key === 'bidCacheFilterFunction') {\n return bidCacheFilterFunction;\n }\n return origGetConfig.apply(config, arguments);\n });\n });\n\n afterEach(function () {\n sandbox.restore();\n bidCacheFilterFunction = undef;\n });\n\n describe('isBidNotExpired', () => {\n let clock;\n beforeEach(() => {\n clock = sandbox.useFakeTimers(0);\n });\n\n Object.entries({\n 'bid.ttlBuffer': (bid, ttlBuffer) => {\n bid.ttlBuffer = ttlBuffer\n },\n 'setConfig({ttlBuffer})': (_, ttlBuffer) => {\n config.setConfig({ttlBuffer})\n },\n }).forEach(([t, setup]) => {\n describe(`respects ${t}`, () => {\n [0, 2].forEach(ttlBuffer => {\n it(`when ttlBuffer is ${ttlBuffer}`, () => {\n const bid = {\n responseTimestamp: 0,\n ttl: 10,\n }\n setup(bid, ttlBuffer);\n\n expect(filters.isBidNotExpired(bid)).to.be.true;\n clock.tick((bid.ttl - ttlBuffer) * 1000 - 100);\n expect(filters.isBidNotExpired(bid)).to.be.true;\n clock.tick(101);\n expect(filters.isBidNotExpired(bid)).to.be.false;\n });\n });\n });\n });\n });\n\n describe('getAllTargeting', function () {\n let amBidsReceivedStub;\n let amGetAdUnitsStub;\n let bidExpiryStub;\n let logWarnStub;\n let logErrorStub;\n let bidsReceived;\n\n beforeEach(function () {\n bidsReceived = [bid1, bid2, bid3].map(deepClone);\n\n amBidsReceivedStub = sandbox.stub(auctionManager, 'getBidsReceived').callsFake(function() {\n return bidsReceived;\n });\n amGetAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnitCodes').callsFake(function() {\n return ['/123456/header-bid-tag-0'];\n });\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n logWarnStub = sinon.stub(utils, 'logWarn');\n logErrorStub = sinon.stub(utils, 'logError');\n });\n\n afterEach(function() {\n config.resetConfig();\n logWarnStub.restore();\n logErrorStub.restore();\n amBidsReceivedStub.restore();\n amGetAdUnitsStub.restore();\n bidExpiryStub.restore();\n });\n\n describe('when handling different adunit targeting value types', function () {\n const adUnitCode = '/123456/header-bid-tag-0';\n const adServerTargeting = {};\n\n let getAdUnitsStub;\n\n before(function() {\n getAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnits').callsFake(function() {\n return [\n {\n 'code': adUnitCode,\n [JSON_MAPPING.ADSERVER_TARGETING]: adServerTargeting\n }\n ];\n });\n });\n\n after(function() {\n getAdUnitsStub.restore();\n });\n\n afterEach(function() {\n delete adServerTargeting.test_type;\n });\n\n const pairs = [\n ['string', '2.3', '2.3'],\n ['number', 2.3, '2.3'],\n ['boolean', true, 'true'],\n ['string-separated', '2.3, 4.5', '2.3,4.5'],\n ['array-of-string', ['2.3', '4.5'], '2.3,4.5'],\n ['array-of-number', [2.3, 4.5], '2.3,4.5'],\n ['array-of-boolean', [true, false], 'true,false']\n ];\n pairs.forEach(([type, value, result]) => {\n it(`accepts ${type}`, function() {\n adServerTargeting.test_type = value;\n\n const targeting = targetingInstance.getAllTargeting([adUnitCode]);\n\n expect(targeting[adUnitCode].test_type).is.equal(result);\n });\n });\n });\n\n describe('when hb_deal is present in bid.adserverTargeting', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting['hb_bidder'] = bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0;\n enableSendAllBids = true;\n\n bidsReceived.push(bid4);\n });\n\n after(function() {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: false\n }\n });\n enableSendAllBids = false;\n })\n\n it('returns targeting with both hb_deal and hb_deal_{bidder_code}', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // We should add both keys rather than one or the other\n expect(targeting['/123456/header-bid-tag-0']).to.contain.keys('hb_deal', `hb_deal_${bid1.bidderCode}`, `hb_deal_${bid4.bidderCode}`);\n\n // We should assign both keys the same value\n expect(targeting['/123456/header-bid-tag-0']['hb_deal']).to.deep.equal(targeting['/123456/header-bid-tag-0'][`hb_deal_${bid1.bidderCode}`]);\n });\n });\n\n it('will enforce a limit on the number of auction keys when auctionKeyMaxChars setting is active', function () {\n config.setConfig({\n targetingControls: {\n auctionKeyMaxChars: 150\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0', '/123456/header-bid-tag-1']);\n expect(targeting['/123456/header-bid-tag-1']).to.deep.equal({});\n expect(targeting['/123456/header-bid-tag-0']).to.contain.keys('hb_pb', 'hb_adid', 'hb_bidder', 'hb_deal');\n expect(targeting['/123456/header-bid-tag-0']['hb_adid']).to.equal(bid1.adId);\n expect(logWarnStub.calledOnce).to.be.true;\n });\n\n it('will return an error when auctionKeyMaxChars setting is set too low for any auction keys to be allowed', function () {\n config.setConfig({\n targetingControls: {\n auctionKeyMaxChars: 50\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0', '/123456/header-bid-tag-1']);\n expect(targeting['/123456/header-bid-tag-1']).to.deep.equal({});\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({});\n expect(logWarnStub.calledTwice).to.be.true;\n expect(logErrorStub.calledOnce).to.be.true;\n });\n\n it('does not include adunit targeting for ad units that are not requested', () => {\n sandbox.stub(auctionManager, 'getAdUnits').callsFake(() => ([\n {\n code: 'au1',\n [JSON_MAPPING.ADSERVER_TARGETING]: {'aut': 'v1'}\n },\n {\n code: 'au2',\n [JSON_MAPPING.ADSERVER_TARGETING]: {'aut': 'v2'}\n }\n ]));\n expect(targetingInstance.getAllTargeting('au1').au2).to.not.exist;\n })\n\n describe('when bidLimit is present in setConfig', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting['hb_bidder'] = bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 2.25;\n bid4.adId = '8383838';\n enableSendAllBids = true;\n\n bidsReceived.push(bid4);\n });\n\n it('when sendBidsControl.bidLimit is set greater than 0 in getHighestCpmBidsFromBidPool', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 2,\n dealPrioritization: true\n }\n });\n\n const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm, 2);\n\n expect(bids.length).to.equal(3);\n expect(bids[0].adId).to.equal('8383838');\n expect(bids[1].adId).to.equal('148018fe5e');\n expect(bids[2].adId).to.equal('48747745');\n });\n\n it('when sendBidsControl.bidLimit is set greater than 0 and deal priortization is false in getHighestCpmBidsFromBidPool', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 2,\n dealPrioritization: false\n }\n });\n\n const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm, 2);\n\n expect(bids.length).to.equal(3);\n expect(bids[0].adId).to.equal('8383838');\n expect(bids[1].adId).to.equal('148018fe5e');\n expect(bids[2].adId).to.equal('48747745');\n });\n\n it('selects the top n number of bids when enableSendAllBids is true and and bitLimit is set', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 1\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n const limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n\n expect(limitedBids.length).to.equal(1);\n });\n\n it('sends all bids when enableSendAllBids is true and and bitLimit is above total number of bids received', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 50\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n const limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n\n expect(limitedBids.length).to.equal(2);\n });\n\n it('Sends all bids when enableSendAllBids is true and and bidLimit is set to 0', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 0\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n const limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n\n expect(limitedBids.length).to.equal(2);\n });\n });\n\n describe('targetingControls.allowZeroCpmBids', function () {\n let bid4;\n let bidderSettingsStorage;\n\n before(function() {\n bidderSettingsStorage = $$PREBID_GLOBAL$$.bidderSettings;\n });\n\n beforeEach(function () {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_pb: '0.0',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0;\n bidsReceived = [bid4];\n });\n\n after(function() {\n $$PREBID_GLOBAL$$.bidderSettings = bidderSettingsStorage;\n enableSendAllBids = false;\n })\n\n it('targeting should not include a 0 cpm by default', function() {\n bid4.adserverTargeting = {};\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({});\n });\n\n it('targeting should allow a 0 cpm with targetingControls.allowZeroCpmBids set to true', function () {\n $$PREBID_GLOBAL$$.bidderSettings = {\n standard: {\n allowZeroCpmBids: true\n }\n };\n\n enableSendAllBids = true;\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_pb', 'hb_bidder', 'hb_adid', 'hb_bidder_appnexus', 'hb_adid_appnexus', 'hb_pb_appnexus');\n expect(targeting['/123456/header-bid-tag-0']['hb_pb']).to.equal('0.0')\n });\n });\n\n describe('targetingControls.allowTargetingKeys', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0.1; // losing bid so not included if enableSendAllBids === false\n bid4.dealId = '4321';\n enableSendAllBids = true;\n config.setConfig({\n targetingControls: {\n allowTargetingKeys: ['BIDDER', 'AD_ID', 'PRICE_BUCKET']\n }\n });\n bidsReceived.push(bid4);\n });\n\n it('targeting should include custom keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('foobar');\n });\n\n it('targeting should include keys prefixed by allowed default targeting keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder_rubicon', 'hb_adid_rubicon', 'hb_pb_rubicon');\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder_appnexus', 'hb_adid_appnexus', 'hb_pb_appnexus');\n });\n\n it('targeting should not include keys prefixed by disallowed default targeting keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.not.have.all.keys(['hb_deal_appnexus', 'hb_deal_rubicon']);\n });\n });\n\n describe('targetingControls.addTargetingKeys', function () {\n let winningBid = null;\n\n beforeEach(function () {\n bidsReceived = [bid1, bid2, nativeBid1, nativeBid2].map(deepClone);\n bidsReceived.forEach((bid) => {\n bid.adserverTargeting[TARGETING_KEYS.SOURCE] = 'test-source';\n bid.adUnitCode = 'adunit';\n if (winningBid == null || bid.cpm > winningBid.cpm) {\n winningBid = bid;\n }\n });\n enableSendAllBids = true;\n });\n\n const expandKey = function (key) {\n const keys = new Set();\n if (winningBid.adserverTargeting[key] != null) {\n keys.add(key);\n }\n bidsReceived\n .filter((bid) => bid.adserverTargeting[key] != null)\n .map((bid) => bid.bidderCode)\n .forEach((code) => keys.add(`${key}_${code}`.substr(0, 20)));\n return [...keys];\n }\n\n const targetingResult = function () {\n return targetingInstance.getAllTargeting(['adunit'])['adunit'];\n }\n\n it('should include added keys', function () {\n config.setConfig({\n targetingControls: {\n addTargetingKeys: ['SOURCE']\n }\n });\n expect(targetingResult()).to.include.all.keys(...expandKey(TARGETING_KEYS.SOURCE));\n });\n\n it('should keep default and native keys', function() {\n config.setConfig({\n targetingControls: {\n addTargetingKeys: ['SOURCE']\n }\n });\n const defaultKeys = new Set(Object.values(DEFAULT_TARGETING_KEYS));\n\n const expectedKeys = new Set();\n bidsReceived\n .map((bid) => Object.keys(bid.adserverTargeting))\n .reduce((left, right) => left.concat(right), [])\n .filter((key) => defaultKeys.has(key))\n .map(expandKey)\n .reduce((left, right) => left.concat(right), [])\n .forEach((k) => expectedKeys.add(k));\n expect(targetingResult()).to.include.all.keys(...expectedKeys);\n });\n\n it('should not be allowed together with allowTargetingKeys', function () {\n config.setConfig({\n targetingControls: {\n allowTargetingKeys: [TARGETING_KEYS.BIDDER],\n addTargetingKeys: [TARGETING_KEYS.SOURCE]\n }\n });\n expect(targetingResult).to.throw();\n });\n });\n\n describe('targetingControls.allowSendAllBidsTargetingKeys', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0.1; // losing bid so not included if enableSendAllBids === false\n bid4.dealId = '4321';\n enableSendAllBids = true;\n config.setConfig({\n targetingControls: {\n allowTargetingKeys: ['BIDDER', 'AD_ID', 'PRICE_BUCKET'],\n allowSendAllBidsTargetingKeys: ['PRICE_BUCKET', 'AD_ID']\n }\n });\n bidsReceived.push(bid4);\n });\n\n it('targeting should include custom keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('foobar');\n });\n\n it('targeting should only include keys prefixed by allowed default send all bids targeting keys and standard keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder', 'hb_adid', 'hb_pb');\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_adid_rubicon', 'hb_pb_rubicon');\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder', 'hb_adid', 'hb_pb', 'hb_adid_appnexus', 'hb_pb_appnexus');\n });\n\n it('targeting should not include keys prefixed by disallowed default targeting keys and disallowed send all bid targeting keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.not.have.all.keys(['hb_deal', 'hb_bidder_rubicon', 'hb_bidder_appnexus', 'hb_deal_appnexus', 'hb_deal_rubicon']);\n });\n });\n\n describe('targetingControls.alwaysIncludeDeals', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0.1; // losing bid so not included if enableSendAllBids === false\n bid4.dealId = '4321';\n enableSendAllBids = false;\n\n bidsReceived.push(bid4);\n });\n\n it('does not include losing deals when alwaysIncludeDeals not set', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Rubicon wins bid and has deal, but alwaysIncludeDeals is false, so only top bid plus deal_id\n // appnexus does not get sent since alwaysIncludeDeals is not defined\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_deal_rubicon': '1234',\n 'hb_deal': '1234',\n 'hb_pb': '0.53',\n 'hb_adid': '148018fe5e',\n 'hb_bidder': 'rubicon',\n 'foobar': '300x250'\n });\n });\n\n it('does not include losing deals when alwaysIncludeDeals set to false', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: false\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Rubicon wins bid and has deal, but alwaysIncludeDeals is false, so only top bid plus deal_id\n // appnexus does not get sent since alwaysIncludeDeals is false\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_deal_rubicon': '1234', // This is just how it works before this PR, always added no matter what for winner if they have deal\n 'hb_deal': '1234',\n 'hb_pb': '0.53',\n 'hb_adid': '148018fe5e',\n 'hb_bidder': 'rubicon',\n 'foobar': '300x250'\n });\n });\n\n it('includes losing deals when alwaysIncludeDeals set to true and also winning deals bidder KVPs', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Rubicon wins bid and has a deal, so all KVPs for them are passed (top plus bidder specific)\n // Appnexus had deal so passed through\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_deal_rubicon': '1234',\n 'hb_deal': '1234',\n 'hb_pb': '0.53',\n 'hb_adid': '148018fe5e',\n 'hb_bidder': 'rubicon',\n 'foobar': '300x250',\n 'hb_pb_rubicon': '0.53',\n 'hb_adid_rubicon': '148018fe5e',\n 'hb_bidder_rubicon': 'rubicon',\n 'hb_deal_appnexus': '4321',\n 'hb_pb_appnexus': '0.1',\n 'hb_adid_appnexus': '567891011',\n 'hb_bidder_appnexus': 'appnexus'\n });\n });\n\n it('includes winning bid even when it is not a deal, plus other deal KVPs', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n const bid5 = utils.deepClone(bid4);\n bid5.adserverTargeting = {\n hb_pb: '3.0',\n hb_adid: '111111',\n hb_bidder: 'pubmatic',\n foobar: '300x250'\n };\n bid5.bidder = bid5.bidderCode = 'pubmatic';\n bid5.cpm = 3.0; // winning bid!\n delete bid5.dealId; // no deal with winner\n bidsReceived.push(bid5);\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Pubmatic wins but no deal. So only top bid KVPs for them is sent\n // Rubicon has a dealId so passed through\n // Appnexus has a dealId so passed through\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_bidder': 'pubmatic',\n 'hb_adid': '111111',\n 'hb_pb': '3.0',\n 'foobar': '300x250',\n 'hb_deal_rubicon': '1234',\n 'hb_pb_rubicon': '0.53',\n 'hb_adid_rubicon': '148018fe5e',\n 'hb_bidder_rubicon': 'rubicon',\n 'hb_deal_appnexus': '4321',\n 'hb_pb_appnexus': '0.1',\n 'hb_adid_appnexus': '567891011',\n 'hb_bidder_appnexus': 'appnexus'\n });\n });\n });\n\n describe('targetingControls.alwaysIncludeDeals with enableSendAllBids', function () {\n beforeEach(function() {\n enableSendAllBids = true;\n });\n\n it('includes bids w/o deal when enableSendAllBids and alwaysIncludeDeals set to true', function () {\n config.setConfig({\n enableSendAllBids: true,\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n\n const bid5 = utils.deepClone(bid1);\n bid5.adserverTargeting = {\n hb_pb: '3.0',\n hb_adid: '111111',\n hb_bidder: 'pubmatic',\n foobar: '300x250'\n };\n bid5.bidder = bid5.bidderCode = 'pubmatic';\n bid5.cpm = 3.0; // winning bid!\n delete bid5.dealId; // no deal with winner\n bidsReceived.push(bid5);\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Pubmatic wins but no deal. But enableSendAllBids is true.\n // So Pubmatic is passed through\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_bidder': 'pubmatic',\n 'hb_adid': '111111',\n 'hb_pb': '3.0',\n 'foobar': '300x250',\n 'hb_pb_pubmatic': '3.0',\n 'hb_adid_pubmatic': '111111',\n 'hb_bidder_pubmatic': 'pubmatic',\n 'hb_deal_rubicon': '1234',\n 'hb_pb_rubicon': '0.53',\n 'hb_adid_rubicon': '148018fe5e',\n 'hb_bidder_rubicon': 'rubicon'\n });\n });\n });\n\n describe('targetingControls.allBidsCustomTargeting', function () {\n beforeEach(function () {\n const winningBid = deepClone(bid1);\n winningBid.adserverTargeting.foobar = 'winner';\n\n const losingBid = utils.deepClone(bid2);\n losingBid.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n foobar: 'loser'\n };\n losingBid.bidder = losingBid.bidderCode = 'appnexus';\n losingBid.cpm = 0.1;\n\n bidsReceived = [winningBid, losingBid];\n enableSendAllBids = false;\n });\n\n afterEach(function () {\n config.resetConfig();\n });\n\n it('should merge custom targeting from all bids when allBidsCustomTargeting: true', function () {\n // Default behavior - no specific configuration\n config.setConfig({targetingControls: {allBidsCustomTargeting: true}});\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Custom key values from both bids should be combined to maintain existing functionality\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0']['foobar']).to.equal('winner,loser');\n });\n\n it('should use custom targeting from winning bid when allBidsCustomTargeting=false', function () {\n // Set allBidsCustomTargeting to false\n config.setConfig({\n targetingControls: {\n allBidsCustomTargeting: false\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Only the winning bid's custom key value should be used\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0']['foobar']).to.equal('winner');\n });\n\n it('should use custom targeting from winning bid when allBidsCustomTargeting is not set', function () {\n // allBidsCustomTargeting defaults to false\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Only the winning bid's custom key value should be used\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0']['foobar']).to.equal('winner');\n });\n\n it('should handle multiple custom keys correctly when allBidsCustomTargeting=false', function () {\n // Add another custom key to the bids\n bidsReceived[0].adserverTargeting.custom1 = 'value1';\n bidsReceived[1].adserverTargeting.custom2 = 'value2';\n\n config.setConfig({\n targetingControls: {\n allBidsCustomTargeting: false\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Only winning bid's custom values should be present\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0'].foobar).to.equal('winner');\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('custom1');\n expect(targeting['/123456/header-bid-tag-0']).to.not.have.property('custom2');\n });\n });\n\n it('selects the top bid when enableSendAllBids true', function () {\n enableSendAllBids = true;\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // we should only get the targeting data for the one requested adunit\n expect(Object.keys(targeting).length).to.equal(1);\n\n const sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n // we shouldn't get more than 1 key for hb_pb_${bidder}\n expect(sendAllBidCpm.length).to.equal(1);\n\n // expect the winning CPM to be equal to the sendAllBidCPM\n expect(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET + '_rubicon']).to.deep.equal(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET]);\n });\n\n if (FEATURES.NATIVE) {\n it('ensures keys are properly generated when enableSendAllBids is true and multiple bidders use native', function () {\n const nativeAdUnitCode = '/19968336/prebid_native_example_1';\n enableSendAllBids = true;\n\n // update mocks for this test to return native bids\n amBidsReceivedStub.callsFake(function () {\n return [nativeBid1, nativeBid2];\n });\n amGetAdUnitsStub.callsFake(function () {\n return [nativeAdUnitCode];\n });\n\n const targeting = targetingInstance.getAllTargeting([nativeAdUnitCode]);\n expect(targeting[nativeAdUnitCode].hb_pb_dgads).to.exist.and.to.equal(nativeBid2.pbMg);\n });\n }\n\n it('does not include adpod type bids in the getBidsReceived results', function () {\n const adpodBid = utils.deepClone(bid1);\n adpodBid.video = { context: 'adpod', durationSeconds: 15, durationBucket: 15 };\n adpodBid.cpm = 5;\n bidsReceived.push(adpodBid);\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.contain.keys('hb_deal', 'hb_adid', 'hb_bidder');\n expect(targeting['/123456/header-bid-tag-0']['hb_adid']).to.equal(bid1.adId);\n });\n }); // end getAllTargeting tests\n\n describe('getAllTargeting will work correctly when a hook raises has modified flag in getHighestCpmBidsFromBidPool', function () {\n let bidsReceived;\n let amGetAdUnitsStub;\n let amBidsReceivedStub;\n let bidExpiryStub;\n\n beforeEach(function () {\n bidsReceived = [bid2, bid1].map(deepClone);\n\n amBidsReceivedStub = sandbox.stub(auctionManager, 'getBidsReceived').callsFake(function() {\n return bidsReceived;\n });\n amGetAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnitCodes').callsFake(function() {\n return ['/123456/header-bid-tag-0'];\n });\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n\n setupBeforeHookFnOnce(getHighestCpmBidsFromBidPool, function (fn, bidsReceived, highestCpmCallback, adUnitBidLimit = 0, hasModified = false) {\n fn.call(this, bidsReceived, highestCpmCallback, adUnitBidLimit, true);\n });\n });\n\n afterEach(function () {\n getHighestCpmBidsFromBidPool.getHooks().remove();\n })\n\n it('will apply correct targeting', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n expect(targeting['/123456/header-bid-tag-0']['hb_pb']).to.equal('0.53');\n expect(targeting['/123456/header-bid-tag-0']['hb_adid']).to.equal('148018fe5e');\n })\n });\n\n describe('getAllTargeting without bids return empty object', function () {\n let amBidsReceivedStub;\n let amGetAdUnitsStub;\n let bidExpiryStub;\n\n beforeEach(function () {\n enableSendAllBids = false;\n amBidsReceivedStub = sandbox.stub(auctionManager, 'getBidsReceived').callsFake(function() {\n return [];\n });\n amGetAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnitCodes').callsFake(function() {\n return ['/123456/header-bid-tag-0'];\n });\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n });\n\n it('returns targetingSet correctly', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // we should only get the targeting data for the one requested adunit to at least exist even though it has no keys to set\n expect(Object.keys(targeting).length).to.equal(1);\n });\n }); // end getAllTargeting without bids return empty object\n\n describe('Targeting in concurrent auctions', function () {\n describe('check getOldestBid', function () {\n let bidExpiryStub;\n let auctionManagerStub;\n beforeEach(function () {\n enableSendAllBids = false;\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n auctionManagerStub = sandbox.stub(auctionManager, 'getBidsReceived');\n });\n\n it('should use bids from pool to get Winning Bid', function () {\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-1', adId: 'adid-2'}),\n createBidReceived({bidder: 'appnexus', cpm: 6, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-1', adId: 'adid-4'}),\n ];\n const adUnitCodes = ['code-0', 'code-1'];\n\n const bids = targetingInstance.getWinningBids(adUnitCodes, bidsReceived);\n\n expect(bids.length).to.equal(2);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[1].adId).to.equal('adid-2');\n });\n\n it('should honor useBidCache', function() {\n useBidCache = true;\n\n auctionManagerStub.returns([\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1'}),\n createBidReceived({bidder: 'appnexus', cpm: 5, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-2'}),\n ]);\n\n const adUnitCodes = ['code-0'];\n targetingInstance.setLatestAuctionForAdUnit('code-0', 2);\n\n let bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n\n useBidCache = false;\n\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n });\n\n it('should use bidCacheFilterFunction', function() {\n auctionManagerStub.returns([\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 5, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-2', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 6, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-1', adId: 'adid-3', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 8, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-1', adId: 'adid-4', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 27, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-2', adId: 'adid-5', mediaType: 'video'}),\n createBidReceived({bidder: 'appnexus', cpm: 25, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-2', adId: 'adid-6', mediaType: 'video'}),\n createBidReceived({bidder: 'appnexus', cpm: 26, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-3', adId: 'adid-7', mediaType: 'video'}),\n createBidReceived({bidder: 'appnexus', cpm: 28, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-3', adId: 'adid-8', mediaType: 'video'}),\n ]);\n\n const adUnitCodes = ['code-0', 'code-1', 'code-2', 'code-3'];\n targetingInstance.setLatestAuctionForAdUnit('code-0', 2);\n targetingInstance.setLatestAuctionForAdUnit('code-1', 2);\n targetingInstance.setLatestAuctionForAdUnit('code-2', 2);\n targetingInstance.setLatestAuctionForAdUnit('code-3', 2);\n\n // Bid Caching On, No Filter Function\n useBidCache = true;\n bidCacheFilterFunction = undef;\n let bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-5');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n\n // Bid Caching Off, No Filter Function\n useBidCache = false;\n bidCacheFilterFunction = undef;\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-6');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n\n // Bid Caching On AGAIN, No Filter Function (should be same as first time)\n useBidCache = true;\n bidCacheFilterFunction = undef;\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-5');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n\n // Bid Caching On, with Filter Function to Exclude video\n useBidCache = true;\n let bcffCalled = 0;\n bidCacheFilterFunction = bid => {\n bcffCalled++;\n return bid.mediaType !== 'video';\n }\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-6');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n // filter function should have been called for each cached bid (4 times)\n expect(bcffCalled).to.equal(4);\n\n // Bid Caching Off, with Filter Function to Exclude video\n // - should not use cached bids or call the filter function\n useBidCache = false;\n bcffCalled = 0;\n bidCacheFilterFunction = bid => {\n bcffCalled++;\n return bid.mediaType !== 'video';\n }\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-6');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n // filter function should not have been called\n expect(bcffCalled).to.equal(0);\n });\n\n it('should not use rendered bid to get winning bid', function () {\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 8, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1', status: 'rendered'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-1', adId: 'adid-2'}),\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-1', adId: 'adid-4'}),\n ];\n auctionManagerStub.returns(bidsReceived);\n\n const adUnitCodes = ['code-0', 'code-1'];\n const bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(2);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[1].adId).to.equal('adid-3');\n });\n\n it('should use highest cpm bid from bid pool to get winning bid', function () {\n // Pool is having 4 bids from 2 auctions. There are 2 bids from rubicon, #2 which is highest cpm bid will be selected to take part in auction.\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 8, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1'}),\n createBidReceived({bidder: 'rubicon', cpm: 9, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-0', adId: 'adid-2'}),\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3'}),\n createBidReceived({bidder: 'rubicon', cpm: 8, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-0', adId: 'adid-4'}),\n ];\n auctionManagerStub.returns(bidsReceived);\n\n const adUnitCodes = ['code-0'];\n const bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-2');\n });\n });\n\n describe('check bidExpiry', function () {\n let auctionManagerStub;\n let timestampStub;\n beforeEach(function () {\n auctionManagerStub = sandbox.stub(auctionManager, 'getBidsReceived');\n timestampStub = sandbox.stub(utils, 'timestamp');\n });\n\n it('should not include expired bids in the auction', function () {\n timestampStub.returns(200000);\n // Pool is having 4 bids from 2 auctions. All the bids are expired and only bid #3 is passing the bidExpiry check.\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 18, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1', ttl: 150}),\n createBidReceived({bidder: 'sampleBidder', cpm: 16, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-0', adId: 'adid-2', ttl: 100}),\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3', ttl: 300}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-0', adId: 'adid-4', ttl: 50}),\n ];\n auctionManagerStub.returns(bidsReceived);\n\n const adUnitCodes = ['code-0', 'code-1'];\n const bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-3');\n });\n });\n });\n\n describe('sortByDealAndPriceBucketOrCpm', function() {\n it('will properly sort bids when some bids have deals and some do not', function () {\n const bids = [{\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00',\n hb_deal: '1234'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.50',\n }\n }, {\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '20.00',\n hb_deal: '4532'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '9.00',\n hb_deal: '9864'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'mno',\n hb_pb: '50.00',\n }\n }, {\n adserverTargeting: {\n hb_adid: 'pqr',\n hb_pb: '100.00',\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm());\n expect(bids[0].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('pqr');\n expect(bids[4].adserverTargeting.hb_adid).to.equal('mno');\n expect(bids[5].adserverTargeting.hb_adid).to.equal('def');\n });\n\n it('will properly sort bids when all bids have deals', function () {\n const bids = [{\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00',\n hb_deal: '1234'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.50',\n hb_deal: '4321'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '2.50',\n hb_deal: '4532'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '2.00',\n hb_deal: '9864'\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm());\n expect(bids[0].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('def');\n });\n\n it('will properly sort bids when no bids have deals', function () {\n const bids = [{\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.10'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '10.00'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '10.01'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'mno',\n hb_pb: '1.00'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'pqr',\n hb_pb: '100.00'\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm());\n expect(bids[0].adserverTargeting.hb_adid).to.equal('pqr');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[4].adserverTargeting.hb_adid).to.equal('mno');\n expect(bids[5].adserverTargeting.hb_adid).to.equal('def');\n });\n\n it('will properly sort bids when some bids have deals and some do not and by cpm when flag is set to true', function () {\n const bids = [{\n cpm: 1.04,\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00',\n hb_deal: '1234'\n }\n }, {\n cpm: 0.50,\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.50',\n hb_deal: '4532'\n }\n }, {\n cpm: 0.53,\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '0.50',\n hb_deal: '4532'\n }\n }, {\n cpm: 9.04,\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '9.00',\n hb_deal: '9864'\n }\n }, {\n cpm: 50.00,\n adserverTargeting: {\n hb_adid: 'mno',\n hb_pb: '50.00',\n }\n }, {\n cpm: 100.00,\n adserverTargeting: {\n hb_adid: 'pqr',\n hb_pb: '100.00',\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm(true));\n expect(bids[0].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('def');\n expect(bids[4].adserverTargeting.hb_adid).to.equal('pqr');\n expect(bids[5].adserverTargeting.hb_adid).to.equal('mno');\n });\n });\n\n describe('setTargetingForAst', function () {\n let sandbox,\n apnTagStub;\n\n before(() => {\n if (window.apntag?.setKeywords == null) {\n const orig = window.apntag;\n window.apntag = {setKeywords: () => {}}\n after(() => {\n window.apntag = orig;\n })\n }\n });\n\n beforeEach(function() {\n sandbox = sinon.createSandbox();\n sandbox.stub(targetingInstance, 'resetPresetTargetingAST');\n apnTagStub = sandbox.stub(window.apntag, 'setKeywords');\n });\n afterEach(function () {\n sandbox.restore();\n });\n\n it('should set single addUnit code', function() {\n const adUnitCode = 'testdiv-abc-ad-123456-0';\n sandbox.stub(targetingInstance, 'getAllTargeting').returns({\n 'testdiv1-abc-ad-123456-0': {hb_bidder: 'appnexus'}\n });\n targetingInstance.setTargetingForAst(adUnitCode);\n expect(targetingInstance.getAllTargeting.called).to.equal(true);\n expect(targetingInstance.resetPresetTargetingAST.called).to.equal(true);\n expect(apnTagStub.callCount).to.equal(1);\n expect(apnTagStub.getCall(0).args[0]).to.deep.equal('testdiv1-abc-ad-123456-0');\n expect(apnTagStub.getCall(0).args[1]).to.deep.equal({HB_BIDDER: 'appnexus'});\n });\n\n it('should set array of addUnit codes', function() {\n const adUnitCodes = ['testdiv1-abc-ad-123456-0', 'testdiv2-abc-ad-123456-0']\n sandbox.stub(targetingInstance, 'getAllTargeting').returns({\n 'testdiv1-abc-ad-123456-0': {hb_bidder: 'appnexus'},\n 'testdiv2-abc-ad-123456-0': {hb_bidder: 'appnexus'}\n });\n targetingInstance.setTargetingForAst(adUnitCodes);\n expect(targetingInstance.getAllTargeting.called).to.equal(true);\n expect(targetingInstance.resetPresetTargetingAST.called).to.equal(true);\n expect(apnTagStub.callCount).to.equal(2);\n expect(apnTagStub.getCall(1).args[0]).to.deep.equal('testdiv2-abc-ad-123456-0');\n expect(apnTagStub.getCall(1).args[1]).to.deep.equal({HB_BIDDER: 'appnexus'});\n });\n });\n\n describe('getGPTSlotsForAdUnits', () => {\n function mockSlot(path, elId) {\n return {\n getAdUnitPath() {\n return path;\n },\n getSlotElementId() {\n return elId;\n }\n }\n }\n\n let slots;\n\n beforeEach(() => {\n slots = [\n mockSlot('slot/1', 'div-1'),\n mockSlot('slot/2', 'div-2'),\n mockSlot('slot/1', 'div-3'),\n ]\n });\n\n it('can find slots by ad unit path', () => {\n const paths = ['slot/1', 'slot/2']\n expect(getGPTSlotsForAdUnits(paths, null, () => slots)).to.eql({[paths[0]]: [slots[0], slots[2]], [paths[1]]: [slots[1]]});\n })\n\n it('can find slots by ad element ID', () => {\n const elementIds = ['div-1', 'div-2']\n expect(getGPTSlotsForAdUnits(elementIds, null, () => slots)).to.eql({[elementIds[0]]: [slots[0]], [elementIds[1]]: [slots[1]]});\n })\n\n it('returns empty list on no match', () => {\n expect(getGPTSlotsForAdUnits(['missing', 'slot/2'], null, () => slots)).to.eql({\n missing: [],\n 'slot/2': [slots[1]]\n });\n });\n\n it('can use customSlotMatching resolving to ad unit codes', () => {\n const csm = (slot) => {\n if (slot.getAdUnitPath() === 'slot/1') {\n return (au) => {\n return au === 'custom'\n }\n }\n }\n expect(getGPTSlotsForAdUnits(['div-2', 'custom'], csm, () => slots)).to.eql({\n 'custom': [slots[0], slots[2]],\n 'div-2': [slots[1]]\n })\n });\n\n it('can use customSlotMatching resolving to elementIds', () => {\n const csm = (slot) => {\n if (slot.getSlotElementId() === 'div-1') {\n return (au) => {\n return au === 'custom'\n }\n }\n }\n expect(getGPTSlotsForAdUnits(['div-2', 'custom'], csm, () => slots)).to.eql({\n 'custom': [slots[0]],\n 'div-2': [slots[1]]\n })\n });\n\n it('can handle repeated adUnitCodes', () => {\n expect(getGPTSlotsForAdUnits(['div-1', 'div-1'], null, () => slots)).to.eql({\n 'div-1': [slots[0]]\n })\n })\n })\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"targeting_spec.js","names":["expect","getGPTSlotsForAdUnits","filters","getHighestCpmBidsFromBidPool","sortByDealAndPriceBucketOrCpm","targeting","targetingInstance","config","createBidReceived","DEFAULT_TARGETING_KEYS","JSON_MAPPING","NATIVE_KEYS","TARGETING_KEYS","auctionManager","utils","deepClone","createBid","hook","setupBeforeHookFnOnce","getHighestCpm","mkBid","bid","Object","assign","sampleBid","BIDDER","AD_ID","PRICE_BUCKET","DEAL","bid1","bid2","bid3","nativeBid1","SIZE","SOURCE","FORMAT","title","body","sponsoredBy","clickUrl","image","icon","nativeBid2","describe","sandbox","enableSendAllBids","useBidCache","bidCacheFilterFunction","undef","before","ready","beforeEach","sinon","createSandbox","origGetConfig","getConfig","stub","callsFake","key","apply","arguments","afterEach","restore","clock","useFakeTimers","entries","bid.ttlBuffer","ttlBuffer","setConfig({ttlBuffer})","_","setConfig","forEach","_ref","t","setup","it","responseTimestamp","ttl","isBidNotExpired","to","be","true","tick","false","amBidsReceivedStub","amGetAdUnitsStub","bidExpiryStub","logWarnStub","logErrorStub","bidsReceived","map","returns","resetConfig","adUnitCode","adServerTargeting","getAdUnitsStub","ADSERVER_TARGETING","after","test_type","pairs","_ref2","type","value","result","getAllTargeting","is","equal","bid4","adserverTargeting","bidder","bidderCode","cpm","push","targetingControls","alwaysIncludeDeals","contain","keys","deep","auctionKeyMaxChars","adId","calledOnce","calledTwice","code","au2","not","exist","sendBidsControl","bidLimit","dealPrioritization","bids","length","limitedBids","filter","indexOf","bidderSettingsStorage","pbjs","bidderSettings","hb_pb","hb_adid","hb_bidder","standard","allowZeroCpmBids","include","all","hb_deal","dealId","allowTargetingKeys","have","winningBid","expandKey","Set","add","substr","targetingResult","addTargetingKeys","defaultKeys","values","expectedKeys","reduce","left","right","concat","has","k","throw","allowSendAllBidsTargetingKeys","bid5","foobar","losingBid","allBidsCustomTargeting","property","custom1","custom2","sendAllBidCpm","nativeAdUnitCode","hb_pb_dgads","and","pbMg","adpodBid","video","context","durationSeconds","durationBucket","fn","highestCpmCallback","adUnitBidLimit","undefined","hasModified","call","getHooks","remove","auctionManagerStub","auctionId","adUnitCodes","getWinningBids","setLatestAuctionForAdUnit","latestTargetedAuctionId","mediaType","bcffCalled","status","timestampStub","sort","apnTagStub","window","apntag","setKeywords","orig","setTargetingForAst","called","resetPresetTargetingAST","callCount","getCall","args","HB_BIDDER","mockSlot","path","elId","getAdUnitPath","getSlotElementId","slots","paths","eql","elementIds","missing","csm","slot","au"],"sourceRoot":"../../../../../..","sources":["test/spec/unit/core/targeting_spec.js"],"sourcesContent":["import {expect} from 'chai';\nimport {\n getGPTSlotsForAdUnits,\n filters,\n getHighestCpmBidsFromBidPool,\n sortByDealAndPriceBucketOrCpm,\n targeting as targetingInstance\n} from 'src/targeting.js';\nimport {config} from 'src/config.js';\nimport {createBidReceived} from 'test/fixtures/fixtures.js';\nimport { DEFAULT_TARGETING_KEYS, JSON_MAPPING, NATIVE_KEYS, TARGETING_KEYS } from 'src/constants.js';\nimport {auctionManager} from 'src/auctionManager.js';\nimport * as utils from 'src/utils.js';\nimport {deepClone} from 'src/utils.js';\nimport {createBid} from '../../../../src/bidfactory.js';\nimport { hook, setupBeforeHookFnOnce } from '../../../../src/hook.js';\nimport {getHighestCpm} from '../../../../src/utils/reducers.js';\n\nfunction mkBid(bid) {\n return Object.assign(createBid(), bid);\n}\n\nconst sampleBid = {\n 'bidderCode': 'rubicon',\n 'width': '300',\n 'height': '250',\n 'statusMessage': 'Bid available',\n 'adId': '148018fe5e',\n 'cpm': 0.537234,\n 'ad': 'markup',\n 'ad_id': '3163950',\n 'sizeId': '15',\n 'requestTimestamp': 1454535718610,\n 'responseTimestamp': 1454535724863,\n 'timeToRespond': 123,\n 'pbLg': '0.50',\n 'pbMg': '0.50',\n 'pbHg': '0.53',\n 'adUnitCode': '/123456/header-bid-tag-0',\n 'bidder': 'rubicon',\n 'size': '300x250',\n 'adserverTargeting': {\n 'foobar': '300x250',\n [TARGETING_KEYS.BIDDER]: 'rubicon',\n [TARGETING_KEYS.AD_ID]: '148018fe5e',\n [TARGETING_KEYS.PRICE_BUCKET]: '0.53',\n [TARGETING_KEYS.DEAL]: '1234'\n },\n 'dealId': '1234',\n 'netRevenue': true,\n 'currency': 'USD',\n 'ttl': 300\n};\n\nconst bid1 = mkBid(sampleBid);\n\nconst bid2 = mkBid({\n 'bidderCode': 'rubicon',\n 'width': '300',\n 'height': '250',\n 'statusMessage': 'Bid available',\n 'adId': '5454545',\n 'cpm': 0.25,\n 'ad': 'markup',\n 'ad_id': '3163950',\n 'sizeId': '15',\n 'requestTimestamp': 1454535718610,\n 'responseTimestamp': 1454535724863,\n 'timeToRespond': 123,\n 'pbLg': '0.25',\n 'pbMg': '0.25',\n 'pbHg': '0.25',\n 'adUnitCode': '/123456/header-bid-tag-0',\n 'bidder': 'rubicon',\n 'size': '300x250',\n 'adserverTargeting': {\n 'foobar': '300x250',\n [TARGETING_KEYS.BIDDER]: 'rubicon',\n [TARGETING_KEYS.AD_ID]: '5454545',\n [TARGETING_KEYS.PRICE_BUCKET]: '0.25'\n },\n 'netRevenue': true,\n 'currency': 'USD',\n 'ttl': 300\n});\n\nconst bid3 = mkBid({\n 'bidderCode': 'rubicon',\n 'width': '300',\n 'height': '600',\n 'statusMessage': 'Bid available',\n 'adId': '48747745',\n 'cpm': 0.75,\n 'ad': 'markup',\n 'ad_id': '3163950',\n 'sizeId': '15',\n 'requestTimestamp': 1454535718610,\n 'responseTimestamp': 1454535724863,\n 'timeToRespond': 123,\n 'pbLg': '0.75',\n 'pbMg': '0.75',\n 'pbHg': '0.75',\n 'adUnitCode': '/123456/header-bid-tag-1',\n 'bidder': 'rubicon',\n 'size': '300x600',\n 'adserverTargeting': {\n 'foobar': '300x600',\n [TARGETING_KEYS.BIDDER]: 'rubicon',\n [TARGETING_KEYS.AD_ID]: '48747745',\n [TARGETING_KEYS.PRICE_BUCKET]: '0.75'\n },\n 'netRevenue': true,\n 'currency': 'USD',\n 'ttl': 300\n});\n\nconst nativeBid1 = mkBid({\n 'bidderCode': 'appnexus',\n 'width': 0,\n 'height': 0,\n 'statusMessage': 'Bid available',\n 'adId': '591e7c9354b633',\n 'requestId': '24aae81e32d6f6',\n 'mediaType': 'native',\n 'source': 'client',\n 'cpm': 10,\n 'creativeId': 97494403,\n 'currency': 'USD',\n 'netRevenue': true,\n 'ttl': 300,\n 'adUnitCode': '/19968336/prebid_native_example_1',\n 'appnexus': {\n 'buyerMemberId': 9325\n },\n 'meta': {\n 'advertiserId': 2529885\n },\n 'native': {\n 'title': 'This is a Prebid Native Creative',\n 'body': 'This is a Prebid Native Creative. There are many like it, but this one is mine.',\n 'sponsoredBy': 'Prebid.org',\n 'clickUrl': 'http://prebid.org/dev-docs/show-native-ads.html',\n 'clickTrackers': ['http://www.clickUrl.com/404'],\n 'impressionTrackers': ['http://imp.trackerUrl.com/it1'],\n 'javascriptTrackers': '<script>//js script here</script>',\n 'image': {\n 'url': 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg',\n 'height': 2250,\n 'width': 3000\n },\n 'icon': {\n 'url': 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png',\n 'height': 83,\n 'width': 127\n }\n },\n 'auctionId': '72138a4a-b747-4192-9192-dcc41d675de8',\n 'responseTimestamp': 1565785219461,\n 'requestTimestamp': 1565785219405,\n 'bidder': 'appnexus',\n 'timeToRespond': 56,\n 'pbLg': '5.00',\n 'pbMg': '10.00',\n 'pbHg': '10.00',\n 'pbAg': '10.00',\n 'pbDg': '10.00',\n 'pbCg': '',\n 'size': '0x0',\n 'adserverTargeting': {\n [TARGETING_KEYS.BIDDER]: 'appnexus',\n [TARGETING_KEYS.AD_ID]: '591e7c9354b633',\n [TARGETING_KEYS.PRICE_BUCKET]: '10.00',\n [TARGETING_KEYS.SIZE]: '0x0',\n [TARGETING_KEYS.SOURCE]: 'client',\n [TARGETING_KEYS.FORMAT]: 'native',\n [NATIVE_KEYS.title]: 'This is a Prebid Native Creative',\n [NATIVE_KEYS.body]: 'This is a Prebid Native Creative. There are many like it, but this one is mine.',\n [NATIVE_KEYS.sponsoredBy]: 'Prebid.org',\n [NATIVE_KEYS.clickUrl]: 'http://prebid.org/dev-docs/show-native-ads.html',\n [NATIVE_KEYS.image]: 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg',\n [NATIVE_KEYS.icon]: 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png'\n }\n});\n\nconst nativeBid2 = mkBid({\n 'bidderCode': 'dgads',\n 'width': 0,\n 'height': 0,\n 'statusMessage': 'Bid available',\n 'adId': '6e0aba55ed54e5',\n 'requestId': '4de26ec83d9661',\n 'mediaType': 'native',\n 'source': 'client',\n 'cpm': 1.90909091,\n 'creativeId': 'xuidx6c901261b0x2b2',\n 'currency': 'JPY',\n 'netRevenue': true,\n 'ttl': 60,\n 'referrer': 'http://test.localhost:9999/integrationExamples/gpt/demo_native.html?pbjs_debug=true',\n 'native': {\n 'image': {\n 'url': 'https://ads-tr.bigmining.com/img/300x250.png',\n 'width': 300,\n 'height': 250\n },\n 'title': 'Test Title',\n 'body': 'Test Description',\n 'sponsoredBy': 'test.com',\n 'clickUrl': 'http://prebid.org/',\n 'clickTrackers': ['https://www.clickUrl.com/404'],\n 'impressionTrackers': [\n 'http://imp.trackerUrl.com/it2'\n ]\n },\n 'auctionId': '72138a4a-b747-4192-9192-dcc41d675de8',\n 'responseTimestamp': 1565785219607,\n 'requestTimestamp': 1565785219409,\n 'bidder': 'dgads',\n 'adUnitCode': '/19968336/prebid_native_example_1',\n 'timeToRespond': 198,\n 'pbLg': '1.50',\n 'pbMg': '1.90',\n 'pbHg': '1.90',\n 'pbAg': '1.90',\n 'pbDg': '1.90',\n 'pbCg': '',\n 'size': '0x0',\n 'adserverTargeting': {\n [TARGETING_KEYS.BIDDER]: 'dgads',\n [TARGETING_KEYS.AD_ID]: '6e0aba55ed54e5',\n [TARGETING_KEYS.PRICE_BUCKET]: '1.90',\n [TARGETING_KEYS.SIZE]: '0x0',\n [TARGETING_KEYS.SOURCE]: 'client',\n [TARGETING_KEYS.FORMAT]: 'native',\n [NATIVE_KEYS.image]: 'https://ads-tr.bigmining.com/img/300x250.png',\n [NATIVE_KEYS.title]: 'Test Title',\n [NATIVE_KEYS.body]: 'Test Description',\n [NATIVE_KEYS.sponsoredBy]: 'test.com',\n [NATIVE_KEYS.clickUrl]: 'http://prebid.org/'\n }\n});\n\ndescribe('targeting tests', function () {\n let sandbox;\n let enableSendAllBids = false;\n let useBidCache;\n let bidCacheFilterFunction;\n let undef;\n\n before(() => {\n hook.ready();\n });\n\n beforeEach(function() {\n sandbox = sinon.createSandbox();\n\n useBidCache = true;\n\n const origGetConfig = config.getConfig;\n sandbox.stub(config, 'getConfig').callsFake(function (key) {\n if (key === 'enableSendAllBids') {\n return enableSendAllBids;\n }\n if (key === 'useBidCache') {\n return useBidCache;\n }\n if (key === 'bidCacheFilterFunction') {\n return bidCacheFilterFunction;\n }\n return origGetConfig.apply(config, arguments);\n });\n });\n\n afterEach(function () {\n sandbox.restore();\n bidCacheFilterFunction = undef;\n });\n\n describe('isBidNotExpired', () => {\n let clock;\n beforeEach(() => {\n clock = sandbox.useFakeTimers(0);\n });\n\n Object.entries({\n 'bid.ttlBuffer': (bid, ttlBuffer) => {\n bid.ttlBuffer = ttlBuffer\n },\n 'setConfig({ttlBuffer})': (_, ttlBuffer) => {\n config.setConfig({ttlBuffer})\n },\n }).forEach(([t, setup]) => {\n describe(`respects ${t}`, () => {\n [0, 2].forEach(ttlBuffer => {\n it(`when ttlBuffer is ${ttlBuffer}`, () => {\n const bid = {\n responseTimestamp: 0,\n ttl: 10,\n }\n setup(bid, ttlBuffer);\n\n expect(filters.isBidNotExpired(bid)).to.be.true;\n clock.tick((bid.ttl - ttlBuffer) * 1000 - 100);\n expect(filters.isBidNotExpired(bid)).to.be.true;\n clock.tick(101);\n expect(filters.isBidNotExpired(bid)).to.be.false;\n });\n });\n });\n });\n });\n\n describe('getAllTargeting', function () {\n let amBidsReceivedStub;\n let amGetAdUnitsStub;\n let bidExpiryStub;\n let logWarnStub;\n let logErrorStub;\n let bidsReceived;\n\n beforeEach(function () {\n bidsReceived = [bid1, bid2, bid3].map(deepClone);\n\n amBidsReceivedStub = sandbox.stub(auctionManager, 'getBidsReceived').callsFake(function() {\n return bidsReceived;\n });\n amGetAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnitCodes').callsFake(function() {\n return ['/123456/header-bid-tag-0'];\n });\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n logWarnStub = sinon.stub(utils, 'logWarn');\n logErrorStub = sinon.stub(utils, 'logError');\n });\n\n afterEach(function() {\n config.resetConfig();\n logWarnStub.restore();\n logErrorStub.restore();\n amBidsReceivedStub.restore();\n amGetAdUnitsStub.restore();\n bidExpiryStub.restore();\n });\n\n describe('when handling different adunit targeting value types', function () {\n const adUnitCode = '/123456/header-bid-tag-0';\n const adServerTargeting = {};\n\n let getAdUnitsStub;\n\n before(function() {\n getAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnits').callsFake(function() {\n return [\n {\n 'code': adUnitCode,\n [JSON_MAPPING.ADSERVER_TARGETING]: adServerTargeting\n }\n ];\n });\n });\n\n after(function() {\n getAdUnitsStub.restore();\n });\n\n afterEach(function() {\n delete adServerTargeting.test_type;\n });\n\n const pairs = [\n ['string', '2.3', '2.3'],\n ['number', 2.3, '2.3'],\n ['boolean', true, 'true'],\n ['string-separated', '2.3, 4.5', '2.3,4.5'],\n ['array-of-string', ['2.3', '4.5'], '2.3,4.5'],\n ['array-of-number', [2.3, 4.5], '2.3,4.5'],\n ['array-of-boolean', [true, false], 'true,false']\n ];\n pairs.forEach(([type, value, result]) => {\n it(`accepts ${type}`, function() {\n adServerTargeting.test_type = value;\n\n const targeting = targetingInstance.getAllTargeting([adUnitCode]);\n\n expect(targeting[adUnitCode].test_type).is.equal(result);\n });\n });\n });\n\n describe('when hb_deal is present in bid.adserverTargeting', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting['hb_bidder'] = bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0;\n enableSendAllBids = true;\n\n bidsReceived.push(bid4);\n });\n\n after(function() {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: false\n }\n });\n enableSendAllBids = false;\n })\n\n it('returns targeting with both hb_deal and hb_deal_{bidder_code}', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // We should add both keys rather than one or the other\n expect(targeting['/123456/header-bid-tag-0']).to.contain.keys('hb_deal', `hb_deal_${bid1.bidderCode}`, `hb_deal_${bid4.bidderCode}`);\n\n // We should assign both keys the same value\n expect(targeting['/123456/header-bid-tag-0']['hb_deal']).to.deep.equal(targeting['/123456/header-bid-tag-0'][`hb_deal_${bid1.bidderCode}`]);\n });\n });\n\n it('will enforce a limit on the number of auction keys when auctionKeyMaxChars setting is active', function () {\n config.setConfig({\n targetingControls: {\n auctionKeyMaxChars: 150\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0', '/123456/header-bid-tag-1']);\n expect(targeting['/123456/header-bid-tag-1']).to.deep.equal({});\n expect(targeting['/123456/header-bid-tag-0']).to.contain.keys('hb_pb', 'hb_adid', 'hb_bidder', 'hb_deal');\n expect(targeting['/123456/header-bid-tag-0']['hb_adid']).to.equal(bid1.adId);\n expect(logWarnStub.calledOnce).to.be.true;\n });\n\n it('will return an error when auctionKeyMaxChars setting is set too low for any auction keys to be allowed', function () {\n config.setConfig({\n targetingControls: {\n auctionKeyMaxChars: 50\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0', '/123456/header-bid-tag-1']);\n expect(targeting['/123456/header-bid-tag-1']).to.deep.equal({});\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({});\n expect(logWarnStub.calledTwice).to.be.true;\n expect(logErrorStub.calledOnce).to.be.true;\n });\n\n it('does not include adunit targeting for ad units that are not requested', () => {\n sandbox.stub(auctionManager, 'getAdUnits').callsFake(() => ([\n {\n code: 'au1',\n [JSON_MAPPING.ADSERVER_TARGETING]: {'aut': 'v1'}\n },\n {\n code: 'au2',\n [JSON_MAPPING.ADSERVER_TARGETING]: {'aut': 'v2'}\n }\n ]));\n expect(targetingInstance.getAllTargeting('au1').au2).to.not.exist;\n })\n\n describe('when bidLimit is present in setConfig', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting['hb_bidder'] = bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 2.25;\n bid4.adId = '8383838';\n enableSendAllBids = true;\n\n bidsReceived.push(bid4);\n });\n\n it('when sendBidsControl.bidLimit is set greater than 0 in getHighestCpmBidsFromBidPool', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 2,\n dealPrioritization: true\n }\n });\n\n const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm, 2);\n\n expect(bids.length).to.equal(3);\n expect(bids[0].adId).to.equal('8383838');\n expect(bids[1].adId).to.equal('148018fe5e');\n expect(bids[2].adId).to.equal('48747745');\n });\n\n it('when sendBidsControl.bidLimit is set greater than 0 and deal priortization is false in getHighestCpmBidsFromBidPool', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 2,\n dealPrioritization: false\n }\n });\n\n const bids = getHighestCpmBidsFromBidPool(bidsReceived, getHighestCpm, 2);\n\n expect(bids.length).to.equal(3);\n expect(bids[0].adId).to.equal('8383838');\n expect(bids[1].adId).to.equal('148018fe5e');\n expect(bids[2].adId).to.equal('48747745');\n });\n\n it('selects the top n number of bids when enableSendAllBids is true and and bitLimit is set', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 1\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n const limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n\n expect(limitedBids.length).to.equal(1);\n });\n\n it('sends all bids when enableSendAllBids is true and and bitLimit is above total number of bids received', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 50\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n const limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n\n expect(limitedBids.length).to.equal(2);\n });\n\n it('Sends all bids when enableSendAllBids is true and and bidLimit is set to 0', function () {\n config.setConfig({\n sendBidsControl: {\n bidLimit: 0\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n const limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n\n expect(limitedBids.length).to.equal(2);\n });\n });\n\n describe('targetingControls.allowZeroCpmBids', function () {\n let bid4;\n let bidderSettingsStorage;\n\n before(function() {\n bidderSettingsStorage = $$PREBID_GLOBAL$$.bidderSettings;\n });\n\n beforeEach(function () {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_pb: '0.0',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0;\n bidsReceived = [bid4];\n });\n\n after(function() {\n $$PREBID_GLOBAL$$.bidderSettings = bidderSettingsStorage;\n enableSendAllBids = false;\n })\n\n it('targeting should not include a 0 cpm by default', function() {\n bid4.adserverTargeting = {};\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({});\n });\n\n it('targeting should allow a 0 cpm with targetingControls.allowZeroCpmBids set to true', function () {\n $$PREBID_GLOBAL$$.bidderSettings = {\n standard: {\n allowZeroCpmBids: true\n }\n };\n\n enableSendAllBids = true;\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_pb', 'hb_bidder', 'hb_adid', 'hb_bidder_appnexus', 'hb_adid_appnexus', 'hb_pb_appnexus');\n expect(targeting['/123456/header-bid-tag-0']['hb_pb']).to.equal('0.0')\n });\n });\n\n describe('targetingControls.allowTargetingKeys', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0.1; // losing bid so not included if enableSendAllBids === false\n bid4.dealId = '4321';\n enableSendAllBids = true;\n config.setConfig({\n targetingControls: {\n allowTargetingKeys: ['BIDDER', 'AD_ID', 'PRICE_BUCKET']\n }\n });\n bidsReceived.push(bid4);\n });\n\n it('targeting should include custom keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('foobar');\n });\n\n it('targeting should include keys prefixed by allowed default targeting keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder_rubicon', 'hb_adid_rubicon', 'hb_pb_rubicon');\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder_appnexus', 'hb_adid_appnexus', 'hb_pb_appnexus');\n });\n\n it('targeting should not include keys prefixed by disallowed default targeting keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.not.have.all.keys(['hb_deal_appnexus', 'hb_deal_rubicon']);\n });\n });\n\n describe('targetingControls.addTargetingKeys', function () {\n let winningBid = null;\n\n beforeEach(function () {\n bidsReceived = [bid1, bid2, nativeBid1, nativeBid2].map(deepClone);\n bidsReceived.forEach((bid) => {\n bid.adserverTargeting[TARGETING_KEYS.SOURCE] = 'test-source';\n bid.adUnitCode = 'adunit';\n if (winningBid == null || bid.cpm > winningBid.cpm) {\n winningBid = bid;\n }\n });\n enableSendAllBids = true;\n });\n\n const expandKey = function (key) {\n const keys = new Set();\n if (winningBid.adserverTargeting[key] != null) {\n keys.add(key);\n }\n bidsReceived\n .filter((bid) => bid.adserverTargeting[key] != null)\n .map((bid) => bid.bidderCode)\n .forEach((code) => keys.add(`${key}_${code}`.substr(0, 20)));\n return [...keys];\n }\n\n const targetingResult = function () {\n return targetingInstance.getAllTargeting(['adunit'])['adunit'];\n }\n\n it('should include added keys', function () {\n config.setConfig({\n targetingControls: {\n addTargetingKeys: ['SOURCE']\n }\n });\n expect(targetingResult()).to.include.all.keys(...expandKey(TARGETING_KEYS.SOURCE));\n });\n\n it('should keep default and native keys', function() {\n config.setConfig({\n targetingControls: {\n addTargetingKeys: ['SOURCE']\n }\n });\n const defaultKeys = new Set(Object.values(DEFAULT_TARGETING_KEYS));\n\n const expectedKeys = new Set();\n bidsReceived\n .map((bid) => Object.keys(bid.adserverTargeting))\n .reduce((left, right) => left.concat(right), [])\n .filter((key) => defaultKeys.has(key))\n .map(expandKey)\n .reduce((left, right) => left.concat(right), [])\n .forEach((k) => expectedKeys.add(k));\n expect(targetingResult()).to.include.all.keys(...expectedKeys);\n });\n\n it('should not be allowed together with allowTargetingKeys', function () {\n config.setConfig({\n targetingControls: {\n allowTargetingKeys: [TARGETING_KEYS.BIDDER],\n addTargetingKeys: [TARGETING_KEYS.SOURCE]\n }\n });\n expect(targetingResult).to.throw();\n });\n });\n\n describe('targetingControls.allowSendAllBidsTargetingKeys', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0.1; // losing bid so not included if enableSendAllBids === false\n bid4.dealId = '4321';\n enableSendAllBids = true;\n config.setConfig({\n targetingControls: {\n allowTargetingKeys: ['BIDDER', 'AD_ID', 'PRICE_BUCKET'],\n allowSendAllBidsTargetingKeys: ['PRICE_BUCKET', 'AD_ID']\n }\n });\n bidsReceived.push(bid4);\n });\n\n it('targeting should include custom keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('foobar');\n });\n\n it('targeting should only include keys prefixed by allowed default send all bids targeting keys and standard keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder', 'hb_adid', 'hb_pb');\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_adid_rubicon', 'hb_pb_rubicon');\n expect(targeting['/123456/header-bid-tag-0']).to.include.all.keys('hb_bidder', 'hb_adid', 'hb_pb', 'hb_adid_appnexus', 'hb_pb_appnexus');\n });\n\n it('targeting should not include keys prefixed by disallowed default targeting keys and disallowed send all bid targeting keys', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.not.have.all.keys(['hb_deal', 'hb_bidder_rubicon', 'hb_bidder_appnexus', 'hb_deal_appnexus', 'hb_deal_rubicon']);\n });\n });\n\n describe('targetingControls.alwaysIncludeDeals', function () {\n let bid4;\n\n beforeEach(function() {\n bid4 = utils.deepClone(bid1);\n bid4.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n };\n bid4.bidder = bid4.bidderCode = 'appnexus';\n bid4.cpm = 0.1; // losing bid so not included if enableSendAllBids === false\n bid4.dealId = '4321';\n enableSendAllBids = false;\n\n bidsReceived.push(bid4);\n });\n\n it('does not include losing deals when alwaysIncludeDeals not set', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Rubicon wins bid and has deal, but alwaysIncludeDeals is false, so only top bid plus deal_id\n // appnexus does not get sent since alwaysIncludeDeals is not defined\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_deal_rubicon': '1234',\n 'hb_deal': '1234',\n 'hb_pb': '0.53',\n 'hb_adid': '148018fe5e',\n 'hb_bidder': 'rubicon',\n 'foobar': '300x250'\n });\n });\n\n it('does not include losing deals when alwaysIncludeDeals set to false', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: false\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Rubicon wins bid and has deal, but alwaysIncludeDeals is false, so only top bid plus deal_id\n // appnexus does not get sent since alwaysIncludeDeals is false\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_deal_rubicon': '1234', // This is just how it works before this PR, always added no matter what for winner if they have deal\n 'hb_deal': '1234',\n 'hb_pb': '0.53',\n 'hb_adid': '148018fe5e',\n 'hb_bidder': 'rubicon',\n 'foobar': '300x250'\n });\n });\n\n it('includes losing deals when alwaysIncludeDeals set to true and also winning deals bidder KVPs', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Rubicon wins bid and has a deal, so all KVPs for them are passed (top plus bidder specific)\n // Appnexus had deal so passed through\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_deal_rubicon': '1234',\n 'hb_deal': '1234',\n 'hb_pb': '0.53',\n 'hb_adid': '148018fe5e',\n 'hb_bidder': 'rubicon',\n 'foobar': '300x250',\n 'hb_pb_rubicon': '0.53',\n 'hb_adid_rubicon': '148018fe5e',\n 'hb_bidder_rubicon': 'rubicon',\n 'hb_deal_appnexus': '4321',\n 'hb_pb_appnexus': '0.1',\n 'hb_adid_appnexus': '567891011',\n 'hb_bidder_appnexus': 'appnexus'\n });\n });\n\n it('includes winning bid even when it is not a deal, plus other deal KVPs', function () {\n config.setConfig({\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n const bid5 = utils.deepClone(bid4);\n bid5.adserverTargeting = {\n hb_pb: '3.0',\n hb_adid: '111111',\n hb_bidder: 'pubmatic',\n foobar: '300x250'\n };\n bid5.bidder = bid5.bidderCode = 'pubmatic';\n bid5.cpm = 3.0; // winning bid!\n delete bid5.dealId; // no deal with winner\n bidsReceived.push(bid5);\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Pubmatic wins but no deal. So only top bid KVPs for them is sent\n // Rubicon has a dealId so passed through\n // Appnexus has a dealId so passed through\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_bidder': 'pubmatic',\n 'hb_adid': '111111',\n 'hb_pb': '3.0',\n 'foobar': '300x250',\n 'hb_deal_rubicon': '1234',\n 'hb_pb_rubicon': '0.53',\n 'hb_adid_rubicon': '148018fe5e',\n 'hb_bidder_rubicon': 'rubicon',\n 'hb_deal_appnexus': '4321',\n 'hb_pb_appnexus': '0.1',\n 'hb_adid_appnexus': '567891011',\n 'hb_bidder_appnexus': 'appnexus'\n });\n });\n });\n\n describe('targetingControls.alwaysIncludeDeals with enableSendAllBids', function () {\n beforeEach(function() {\n enableSendAllBids = true;\n });\n\n it('includes bids w/o deal when enableSendAllBids and alwaysIncludeDeals set to true', function () {\n config.setConfig({\n enableSendAllBids: true,\n targetingControls: {\n alwaysIncludeDeals: true\n }\n });\n\n const bid5 = utils.deepClone(bid1);\n bid5.adserverTargeting = {\n hb_pb: '3.0',\n hb_adid: '111111',\n hb_bidder: 'pubmatic',\n foobar: '300x250'\n };\n bid5.bidder = bid5.bidderCode = 'pubmatic';\n bid5.cpm = 3.0; // winning bid!\n delete bid5.dealId; // no deal with winner\n bidsReceived.push(bid5);\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Pubmatic wins but no deal. But enableSendAllBids is true.\n // So Pubmatic is passed through\n expect(targeting['/123456/header-bid-tag-0']).to.deep.equal({\n 'hb_bidder': 'pubmatic',\n 'hb_adid': '111111',\n 'hb_pb': '3.0',\n 'foobar': '300x250',\n 'hb_pb_pubmatic': '3.0',\n 'hb_adid_pubmatic': '111111',\n 'hb_bidder_pubmatic': 'pubmatic',\n 'hb_deal_rubicon': '1234',\n 'hb_pb_rubicon': '0.53',\n 'hb_adid_rubicon': '148018fe5e',\n 'hb_bidder_rubicon': 'rubicon'\n });\n });\n });\n\n describe('targetingControls.allBidsCustomTargeting', function () {\n beforeEach(function () {\n const winningBid = deepClone(bid1);\n winningBid.adserverTargeting.foobar = 'winner';\n\n const losingBid = utils.deepClone(bid2);\n losingBid.adserverTargeting = {\n hb_deal: '4321',\n hb_pb: '0.1',\n hb_adid: '567891011',\n hb_bidder: 'appnexus',\n foobar: 'loser'\n };\n losingBid.bidder = losingBid.bidderCode = 'appnexus';\n losingBid.cpm = 0.1;\n\n bidsReceived = [winningBid, losingBid];\n enableSendAllBids = false;\n });\n\n afterEach(function () {\n config.resetConfig();\n });\n\n it('should merge custom targeting from all bids when allBidsCustomTargeting: true', function () {\n // Default behavior - no specific configuration\n config.setConfig({targetingControls: {allBidsCustomTargeting: true}});\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Custom key values from both bids should be combined to maintain existing functionality\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0']['foobar']).to.equal('winner,loser');\n });\n\n it('should use custom targeting from winning bid when allBidsCustomTargeting=false', function () {\n // Set allBidsCustomTargeting to false\n config.setConfig({\n targetingControls: {\n allBidsCustomTargeting: false\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Only the winning bid's custom key value should be used\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0']['foobar']).to.equal('winner');\n });\n\n it('should use custom targeting from winning bid when allBidsCustomTargeting is not set', function () {\n // allBidsCustomTargeting defaults to false\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Only the winning bid's custom key value should be used\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0']['foobar']).to.equal('winner');\n });\n\n it('should handle multiple custom keys correctly when allBidsCustomTargeting=false', function () {\n // Add another custom key to the bids\n bidsReceived[0].adserverTargeting.custom1 = 'value1';\n bidsReceived[1].adserverTargeting.custom2 = 'value2';\n\n config.setConfig({\n targetingControls: {\n allBidsCustomTargeting: false\n }\n });\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // Only winning bid's custom values should be present\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('foobar');\n expect(targeting['/123456/header-bid-tag-0'].foobar).to.equal('winner');\n expect(targeting['/123456/header-bid-tag-0']).to.have.property('custom1');\n expect(targeting['/123456/header-bid-tag-0']).to.not.have.property('custom2');\n });\n });\n\n it('selects the top bid when enableSendAllBids true', function () {\n enableSendAllBids = true;\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // we should only get the targeting data for the one requested adunit\n expect(Object.keys(targeting).length).to.equal(1);\n\n const sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)\n // we shouldn't get more than 1 key for hb_pb_${bidder}\n expect(sendAllBidCpm.length).to.equal(1);\n\n // expect the winning CPM to be equal to the sendAllBidCPM\n expect(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET + '_rubicon']).to.deep.equal(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET]);\n });\n\n if (FEATURES.NATIVE) {\n it('ensures keys are properly generated when enableSendAllBids is true and multiple bidders use native', function () {\n const nativeAdUnitCode = '/19968336/prebid_native_example_1';\n enableSendAllBids = true;\n\n // update mocks for this test to return native bids\n amBidsReceivedStub.callsFake(function () {\n return [nativeBid1, nativeBid2];\n });\n amGetAdUnitsStub.callsFake(function () {\n return [nativeAdUnitCode];\n });\n\n const targeting = targetingInstance.getAllTargeting([nativeAdUnitCode]);\n expect(targeting[nativeAdUnitCode].hb_pb_dgads).to.exist.and.to.equal(nativeBid2.pbMg);\n });\n }\n\n it('does not include adpod type bids in the getBidsReceived results', function () {\n const adpodBid = utils.deepClone(bid1);\n adpodBid.video = { context: 'adpod', durationSeconds: 15, durationBucket: 15 };\n adpodBid.cpm = 5;\n bidsReceived.push(adpodBid);\n\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n expect(targeting['/123456/header-bid-tag-0']).to.contain.keys('hb_deal', 'hb_adid', 'hb_bidder');\n expect(targeting['/123456/header-bid-tag-0']['hb_adid']).to.equal(bid1.adId);\n });\n }); // end getAllTargeting tests\n\n describe('getAllTargeting will work correctly when a hook raises has modified flag in getHighestCpmBidsFromBidPool', function () {\n let bidsReceived;\n let amGetAdUnitsStub;\n let amBidsReceivedStub;\n let bidExpiryStub;\n\n beforeEach(function () {\n bidsReceived = [bid2, bid1].map(deepClone);\n\n amBidsReceivedStub = sandbox.stub(auctionManager, 'getBidsReceived').callsFake(function() {\n return bidsReceived;\n });\n amGetAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnitCodes').callsFake(function() {\n return ['/123456/header-bid-tag-0'];\n });\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n\n setupBeforeHookFnOnce(getHighestCpmBidsFromBidPool, function (fn, bidsReceived, highestCpmCallback, adUnitBidLimit = 0, hasModified = false) {\n fn.call(this, bidsReceived, highestCpmCallback, adUnitBidLimit, true);\n });\n });\n\n afterEach(function () {\n getHighestCpmBidsFromBidPool.getHooks().remove();\n })\n\n it('will apply correct targeting', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n expect(targeting['/123456/header-bid-tag-0']['hb_pb']).to.equal('0.53');\n expect(targeting['/123456/header-bid-tag-0']['hb_adid']).to.equal('148018fe5e');\n })\n });\n\n describe('getAllTargeting without bids return empty object', function () {\n let amBidsReceivedStub;\n let amGetAdUnitsStub;\n let bidExpiryStub;\n\n beforeEach(function () {\n enableSendAllBids = false;\n amBidsReceivedStub = sandbox.stub(auctionManager, 'getBidsReceived').callsFake(function() {\n return [];\n });\n amGetAdUnitsStub = sandbox.stub(auctionManager, 'getAdUnitCodes').callsFake(function() {\n return ['/123456/header-bid-tag-0'];\n });\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n });\n\n it('returns targetingSet correctly', function () {\n const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);\n\n // we should only get the targeting data for the one requested adunit to at least exist even though it has no keys to set\n expect(Object.keys(targeting).length).to.equal(1);\n });\n }); // end getAllTargeting without bids return empty object\n\n describe('Targeting in concurrent auctions', function () {\n describe('check getOldestBid', function () {\n let bidExpiryStub;\n let auctionManagerStub;\n beforeEach(function () {\n enableSendAllBids = false;\n bidExpiryStub = sandbox.stub(filters, 'isBidNotExpired').returns(true);\n auctionManagerStub = sandbox.stub(auctionManager, 'getBidsReceived');\n });\n\n it('should use bids from pool to get Winning Bid', function () {\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-1', adId: 'adid-2'}),\n createBidReceived({bidder: 'appnexus', cpm: 6, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-1', adId: 'adid-4'}),\n ];\n const adUnitCodes = ['code-0', 'code-1'];\n\n const bids = targetingInstance.getWinningBids(adUnitCodes, bidsReceived);\n\n expect(bids.length).to.equal(2);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[1].adId).to.equal('adid-2');\n });\n\n it('should honor useBidCache', function() {\n useBidCache = true;\n\n auctionManagerStub.returns([\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1'}),\n createBidReceived({bidder: 'appnexus', cpm: 5, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-2'}),\n ]);\n\n const adUnitCodes = ['code-0'];\n targetingInstance.setLatestAuctionForAdUnit('code-0', 2);\n\n let bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n\n useBidCache = false;\n\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n });\n\n it('should use bidCacheFilterFunction', function() {\n auctionManagerStub.returns([\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 5, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-2', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 6, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-1', adId: 'adid-3', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 8, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-1', adId: 'adid-4', mediaType: 'banner'}),\n createBidReceived({bidder: 'appnexus', cpm: 27, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-2', adId: 'adid-5', mediaType: 'video'}),\n createBidReceived({bidder: 'appnexus', cpm: 25, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-2', adId: 'adid-6', mediaType: 'video'}),\n createBidReceived({bidder: 'appnexus', cpm: 26, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-3', adId: 'adid-7', mediaType: 'video'}),\n createBidReceived({bidder: 'appnexus', cpm: 28, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-3', adId: 'adid-8', mediaType: 'video'}),\n ]);\n\n const adUnitCodes = ['code-0', 'code-1', 'code-2', 'code-3'];\n targetingInstance.setLatestAuctionForAdUnit('code-0', 2);\n targetingInstance.setLatestAuctionForAdUnit('code-1', 2);\n targetingInstance.setLatestAuctionForAdUnit('code-2', 2);\n targetingInstance.setLatestAuctionForAdUnit('code-3', 2);\n\n // Bid Caching On, No Filter Function\n useBidCache = true;\n bidCacheFilterFunction = undef;\n let bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-5');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n\n // Bid Caching Off, No Filter Function\n useBidCache = false;\n bidCacheFilterFunction = undef;\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-6');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n\n // Bid Caching On AGAIN, No Filter Function (should be same as first time)\n useBidCache = true;\n bidCacheFilterFunction = undef;\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-5');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n\n // Bid Caching On, with Filter Function to Exclude video\n useBidCache = true;\n let bcffCalled = 0;\n bidCacheFilterFunction = bid => {\n bcffCalled++;\n return bid.mediaType !== 'video';\n }\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-1');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-6');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n // filter function should have been called for each cached bid (4 times)\n expect(bcffCalled).to.equal(4);\n\n // Bid Caching Off, with Filter Function to Exclude video\n // - should not use cached bids or call the filter function\n useBidCache = false;\n bcffCalled = 0;\n bidCacheFilterFunction = bid => {\n bcffCalled++;\n return bid.mediaType !== 'video';\n }\n bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(4);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[0].latestTargetedAuctionId).to.equal(2);\n expect(bids[1].adId).to.equal('adid-4');\n expect(bids[1].latestTargetedAuctionId).to.equal(2);\n expect(bids[2].adId).to.equal('adid-6');\n expect(bids[2].latestTargetedAuctionId).to.equal(2);\n expect(bids[3].adId).to.equal('adid-8');\n expect(bids[3].latestTargetedAuctionId).to.equal(2);\n // filter function should not have been called\n expect(bcffCalled).to.equal(0);\n });\n\n it('should not use rendered bid to get winning bid', function () {\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 8, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1', status: 'rendered'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-1', adId: 'adid-2'}),\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3'}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-1', adId: 'adid-4'}),\n ];\n auctionManagerStub.returns(bidsReceived);\n\n const adUnitCodes = ['code-0', 'code-1'];\n const bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(2);\n expect(bids[0].adId).to.equal('adid-2');\n expect(bids[1].adId).to.equal('adid-3');\n });\n\n it('should use highest cpm bid from bid pool to get winning bid', function () {\n // Pool is having 4 bids from 2 auctions. There are 2 bids from rubicon, #2 which is highest cpm bid will be selected to take part in auction.\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 8, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1'}),\n createBidReceived({bidder: 'rubicon', cpm: 9, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-0', adId: 'adid-2'}),\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3'}),\n createBidReceived({bidder: 'rubicon', cpm: 8, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-0', adId: 'adid-4'}),\n ];\n auctionManagerStub.returns(bidsReceived);\n\n const adUnitCodes = ['code-0'];\n const bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-2');\n });\n });\n\n describe('check bidExpiry', function () {\n let auctionManagerStub;\n let timestampStub;\n beforeEach(function () {\n auctionManagerStub = sandbox.stub(auctionManager, 'getBidsReceived');\n timestampStub = sandbox.stub(utils, 'timestamp');\n });\n\n it('should not include expired bids in the auction', function () {\n timestampStub.returns(200000);\n // Pool is having 4 bids from 2 auctions. All the bids are expired and only bid #3 is passing the bidExpiry check.\n const bidsReceived = [\n createBidReceived({bidder: 'appnexus', cpm: 18, auctionId: 1, responseTimestamp: 100, adUnitCode: 'code-0', adId: 'adid-1', ttl: 150}),\n createBidReceived({bidder: 'sampleBidder', cpm: 16, auctionId: 1, responseTimestamp: 101, adUnitCode: 'code-0', adId: 'adid-2', ttl: 100}),\n createBidReceived({bidder: 'appnexus', cpm: 7, auctionId: 2, responseTimestamp: 102, adUnitCode: 'code-0', adId: 'adid-3', ttl: 300}),\n createBidReceived({bidder: 'rubicon', cpm: 6, auctionId: 2, responseTimestamp: 103, adUnitCode: 'code-0', adId: 'adid-4', ttl: 50}),\n ];\n auctionManagerStub.returns(bidsReceived);\n\n const adUnitCodes = ['code-0', 'code-1'];\n const bids = targetingInstance.getWinningBids(adUnitCodes);\n\n expect(bids.length).to.equal(1);\n expect(bids[0].adId).to.equal('adid-3');\n });\n });\n });\n\n describe('sortByDealAndPriceBucketOrCpm', function() {\n it('will properly sort bids when some bids have deals and some do not', function () {\n const bids = [{\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00',\n hb_deal: '1234'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.50',\n }\n }, {\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '20.00',\n hb_deal: '4532'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '9.00',\n hb_deal: '9864'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'mno',\n hb_pb: '50.00',\n }\n }, {\n adserverTargeting: {\n hb_adid: 'pqr',\n hb_pb: '100.00',\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm());\n expect(bids[0].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('pqr');\n expect(bids[4].adserverTargeting.hb_adid).to.equal('mno');\n expect(bids[5].adserverTargeting.hb_adid).to.equal('def');\n });\n\n it('will properly sort bids when all bids have deals', function () {\n const bids = [{\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00',\n hb_deal: '1234'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.50',\n hb_deal: '4321'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '2.50',\n hb_deal: '4532'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '2.00',\n hb_deal: '9864'\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm());\n expect(bids[0].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('def');\n });\n\n it('will properly sort bids when no bids have deals', function () {\n const bids = [{\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.10'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '10.00'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '10.01'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'mno',\n hb_pb: '1.00'\n }\n }, {\n adserverTargeting: {\n hb_adid: 'pqr',\n hb_pb: '100.00'\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm());\n expect(bids[0].adserverTargeting.hb_adid).to.equal('pqr');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[4].adserverTargeting.hb_adid).to.equal('mno');\n expect(bids[5].adserverTargeting.hb_adid).to.equal('def');\n });\n\n it('will properly sort bids when some bids have deals and some do not and by cpm when flag is set to true', function () {\n const bids = [{\n cpm: 1.04,\n adserverTargeting: {\n hb_adid: 'abc',\n hb_pb: '1.00',\n hb_deal: '1234'\n }\n }, {\n cpm: 0.50,\n adserverTargeting: {\n hb_adid: 'def',\n hb_pb: '0.50',\n hb_deal: '4532'\n }\n }, {\n cpm: 0.53,\n adserverTargeting: {\n hb_adid: 'ghi',\n hb_pb: '0.50',\n hb_deal: '4532'\n }\n }, {\n cpm: 9.04,\n adserverTargeting: {\n hb_adid: 'jkl',\n hb_pb: '9.00',\n hb_deal: '9864'\n }\n }, {\n cpm: 50.00,\n adserverTargeting: {\n hb_adid: 'mno',\n hb_pb: '50.00',\n }\n }, {\n cpm: 100.00,\n adserverTargeting: {\n hb_adid: 'pqr',\n hb_pb: '100.00',\n }\n }];\n bids.sort(sortByDealAndPriceBucketOrCpm(true));\n expect(bids[0].adserverTargeting.hb_adid).to.equal('jkl');\n expect(bids[1].adserverTargeting.hb_adid).to.equal('abc');\n expect(bids[2].adserverTargeting.hb_adid).to.equal('ghi');\n expect(bids[3].adserverTargeting.hb_adid).to.equal('def');\n expect(bids[4].adserverTargeting.hb_adid).to.equal('pqr');\n expect(bids[5].adserverTargeting.hb_adid).to.equal('mno');\n });\n });\n\n describe('setTargetingForAst', function () {\n let sandbox,\n apnTagStub;\n\n before(() => {\n if (window.apntag?.setKeywords == null) {\n const orig = window.apntag;\n window.apntag = {setKeywords: () => {}}\n after(() => {\n window.apntag = orig;\n })\n }\n });\n\n beforeEach(function() {\n sandbox = sinon.createSandbox();\n sandbox.stub(targetingInstance, 'resetPresetTargetingAST');\n apnTagStub = sandbox.stub(window.apntag, 'setKeywords');\n });\n afterEach(function () {\n sandbox.restore();\n });\n\n it('should set single addUnit code', function() {\n const adUnitCode = 'testdiv-abc-ad-123456-0';\n sandbox.stub(targetingInstance, 'getAllTargeting').returns({\n 'testdiv1-abc-ad-123456-0': {hb_bidder: 'appnexus'}\n });\n targetingInstance.setTargetingForAst(adUnitCode);\n expect(targetingInstance.getAllTargeting.called).to.equal(true);\n expect(targetingInstance.resetPresetTargetingAST.called).to.equal(true);\n expect(apnTagStub.callCount).to.equal(1);\n expect(apnTagStub.getCall(0).args[0]).to.deep.equal('testdiv1-abc-ad-123456-0');\n expect(apnTagStub.getCall(0).args[1]).to.deep.equal({HB_BIDDER: 'appnexus'});\n });\n\n it('should set array of addUnit codes', function() {\n const adUnitCodes = ['testdiv1-abc-ad-123456-0', 'testdiv2-abc-ad-123456-0']\n sandbox.stub(targetingInstance, 'getAllTargeting').returns({\n 'testdiv1-abc-ad-123456-0': {hb_bidder: 'appnexus'},\n 'testdiv2-abc-ad-123456-0': {hb_bidder: 'appnexus'}\n });\n targetingInstance.setTargetingForAst(adUnitCodes);\n expect(targetingInstance.getAllTargeting.called).to.equal(true);\n expect(targetingInstance.resetPresetTargetingAST.called).to.equal(true);\n expect(apnTagStub.callCount).to.equal(2);\n expect(apnTagStub.getCall(1).args[0]).to.deep.equal('testdiv2-abc-ad-123456-0');\n expect(apnTagStub.getCall(1).args[1]).to.deep.equal({HB_BIDDER: 'appnexus'});\n });\n });\n\n describe('getGPTSlotsForAdUnits', () => {\n function mockSlot(path, elId) {\n return {\n getAdUnitPath() {\n return path;\n },\n getSlotElementId() {\n return elId;\n }\n }\n }\n\n let slots;\n\n beforeEach(() => {\n slots = [\n mockSlot('slot/1', 'div-1'),\n mockSlot('slot/2', 'div-2'),\n mockSlot('slot/1', 'div-3'),\n ]\n });\n\n it('can find slots by ad unit path', () => {\n const paths = ['slot/1', 'slot/2']\n expect(getGPTSlotsForAdUnits(paths, null, () => slots)).to.eql({[paths[0]]: [slots[0], slots[2]], [paths[1]]: [slots[1]]});\n })\n\n it('can find slots by ad element ID', () => {\n const elementIds = ['div-1', 'div-2']\n expect(getGPTSlotsForAdUnits(elementIds, null, () => slots)).to.eql({[elementIds[0]]: [slots[0]], [elementIds[1]]: [slots[1]]});\n })\n\n it('returns empty list on no match', () => {\n expect(getGPTSlotsForAdUnits(['missing', 'slot/2'], null, () => slots)).to.eql({\n missing: [],\n 'slot/2': [slots[1]]\n });\n });\n\n it('can use customSlotMatching resolving to ad unit codes', () => {\n const csm = (slot) => {\n if (slot.getAdUnitPath() === 'slot/1') {\n return (au) => {\n return au === 'custom'\n }\n }\n }\n expect(getGPTSlotsForAdUnits(['div-2', 'custom'], csm, () => slots)).to.eql({\n 'custom': [slots[0], slots[2]],\n 'div-2': [slots[1]]\n })\n });\n\n it('can use customSlotMatching resolving to elementIds', () => {\n const csm = (slot) => {\n if (slot.getSlotElementId() === 'div-1') {\n return (au) => {\n return au === 'custom'\n }\n }\n }\n expect(getGPTSlotsForAdUnits(['div-2', 'custom'], csm, () => slots)).to.eql({\n 'custom': [slots[0]],\n 'div-2': [slots[1]]\n })\n });\n\n it('can handle repeated adUnitCodes', () => {\n expect(getGPTSlotsForAdUnits(['div-1', 'div-1'], null, () => slots)).to.eql({\n 'div-1': [slots[0]]\n })\n })\n })\n});\n"],"mappings":"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","ignoreList":[]}
|