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":"rubiconBidAdapter.js","names":["registerModule","__r0","ortbConverter","pbsExtensions","registerBidder","config","BANNER","NATIVE","VIDEO","getGlobal","Renderer","deepAccess","deepSetValue","formatQS","isArray","isNumber","isStr","logError","logMessage","logWarn","mergeDeep","parseSizesInput","pick","_each","isPlainObject","getAllOrtbKeywords","getUserSyncParams","DEFAULT_INTEGRATION","DEFAULT_PBS_INTEGRATION","DEFAULT_RENDERER_URL","rubiConf","getConfig","rubicon","GVLID","impIdMap","sizeMap","item","key","converter","request","buildRequest","imps","bidderRequest","context","bidRequests","data","cur","test","vastxml","returnCreative","returnVast","integration","int_type","getPriceGranularity","modules","installedModules","length","indexOf","addOrtbFirstPartyData","ortb2","ext","prebid","storedrequest","disableFloors","floors","haveFloorDataBidRequests","filter","bidRequest","floorData","enabled","imp","buildImp","bidRequestType","bidType","includes","id","adUnitCode","banner","params","position","video","pos","bidonmultiformat","setBidFloors","bidResponse","buildBidResponse","bid","meta","mediaType","parseSizeWidth","parseSizeHeight","mediaTypes","parseSizes","undefined","width","w","playerWidth","height","h","playerHeight","renderer","outstreamRenderer","bidder","rp","advid","netRevenue","ttl","processors","spec","code","gvlid","supportedMediaTypes","isBidRequestValid","valid","i","props","parseInt","isNaN","bidFormats","hasValidVideoParams","hasBannerOrNativeMediaType","buildRequests","requests","filteredHttpRequest","filteredRequests","req","toORTB","resetImpIdMap","push","method","url","videoHost","bannerBidRequests","singleRequest","concat","map","bidParams","createSlotParams","bannerHost","getOrderedParams","reduce","paramString","propValue","encodeParam","Math","random","groupedBidRequests","groupedBids","SRA_BID_LIMIT","Object","keys","aggregate","bidGroupKey","partitionArray","forEach","bidsInGroup","combinedSlotParams","combineSlotUrlParams","containsTgV","containsTgI","containsUId","orderedParams","aSlotUrlParams","oCombinedSlotUrlParams","oCombinedParams","oSlotUrlParams","iIndex","param","hasOwnProperty","Array","splice","re","RegExp","sValues","join","match","startTime","Date","getTime","parsedSizes","latitude","longitude","latLong","accountId","siteId","zoneId","slice","floor","parseFloat","source","tid","ortb2Imp","bidId","device","cdep","ip","ipv6","_getScreenResolution","userId","toFixed","_getPageUrl","getFloor","floorInfo","currency","size","e","posMapping","configUserId","ae","site","mobile","addDesiredSegtaxes","user","eids","_ref","uids","inserter","matcher","mm","uidData","buildEidValue","atype","rtiPartner","rtipartner","eidValue","ppId","find","uid","stype","gdprConsent","gdprApplies","Number","consentString","uspConsent","encodeURIComponent","gppConsent","gppString","applicableSections","toString","bidLimit","applyFPD","schain","hasValidSupplyChainParams","rp_schain","serializeSupplyChain","supplyChain","supplyChainIsValid","ver","complete","nodes","serializeSupplyChainNodes","nodePropOrder","node","prop","interpretResponse","responseObj","body","seatbid","responseErrors","bids","fromORTB","response","ads","lastImpId","multibid","ad","impression_id","status","associatedBidRequest","requestId","creativeId","creative_id","network","advertiser","cpm","dealId","deal","advertiserId","networkId","creative_type","dsa","adomain","advertiserDomains","emulated_format","vastUrl","creative_depot_url","videoCacheKey","_renderCreative","script","size_id","split","num","rubiconTargeting","targeting","memo","values","sort","adA","adB","fledgeAuctionConfigs","component_auction_config","paapi","getUserSyncs","syncOptions","responses","hasSynced","iframeEnabled","type","syncHost","window","screen","pageUrl","referrer","refererInfo","page","secure","replace","impId","hideGoogleAdsDiv","adUnit","el","querySelector","style","setProperty","hideSmartAdServerIframe","nextSibling","localName","renderBid","adUnitElement","document","getElementById","defaultConfig","align","closeButton","label","collapse","MagniteApex","renderAd","placement","attachTo","rtbBid","install","adId","rendererUrl","rendererConfig","loaded","setRender","err","playerSize","sizes","mapSizes","masSizeOrdering","BID_FPD","visitor","inventory","keywords","fpd","impExt","impExtData","gpid","SEGTAX","MAP","adserver","pbadslot","validate","parentName","name","segment","value","segments","obj","result","addBannerData","isParent","arguments","val","loc","adslot","dsainfo","required","pubrender","datatopub","transparency","transp","domain","dsaParamArray","dsaparams","clientHints","chEnabled","arch","m_ch_arch","bitness","m_ch_bitness","browsers","ua","fullVer","accum","browserData","brand","version","m_ch_ua","m_ch_full_ver","isMobile","m_ch_mobile","model","m_ch_model","platform","m_ch_platform","m_ch_platform_ver","target","readTopics","iSegments","sendSiteSegtax","seg","vSegments","sendUserSegtax","userData","siteData","content","iterateOverSegmentData","char","topic","taxonomy","segtax","mappedSize","classifiedAsVideo","isVideo","isBanner","isBidOnMultiformat","isMissingVideoParams","log","bidTypes","resetRubiConf","MAS_SIZE_PRIORITY","first","second","firstPriority","secondPriority","determineRubiconVideoSizeId","rubiconSizeId","ranges","low","max","increment","medium","high","auto","min","dense","custom","buckets","isValid","arrayType","prototype","call","numberType","requiredParams","mimes","protocols","linearity","requiredFields","every","field","array","resetUserSync","bidfloorcur","bidfloor","bidFloor","nonBannerRequests","bidFirstPartyData","impThatHasVideoLanguage","language"],"sourceRoot":"../../..","sources":["modules/rubiconBidAdapter.js"],"sourcesContent":["import { ortbConverter } from '../libraries/ortbConverter/converter.js';\nimport { pbsExtensions } from '../libraries/pbsExtensions/pbsExtensions.js';\nimport { registerBidder } from '../src/adapters/bidderFactory.js';\nimport { config } from '../src/config.js';\nimport { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';\nimport { getGlobal } from '../src/prebidGlobal.js';\nimport { Renderer } from '../src/Renderer.js';\nimport {\n deepAccess,\n deepSetValue,\n formatQS,\n isArray,\n isNumber,\n isStr,\n logError,\n logMessage,\n logWarn,\n mergeDeep,\n parseSizesInput,\n pick,\n _each,\n isPlainObject\n} from '../src/utils.js';\nimport {getAllOrtbKeywords} from '../libraries/keywords/keywords.js';\nimport {getUserSyncParams} from '../libraries/userSyncUtils/userSyncUtils.js';\n\n/**\n * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest\n */\n\nconst DEFAULT_INTEGRATION = 'pbjs_lite';\nconst DEFAULT_PBS_INTEGRATION = 'pbjs';\nconst DEFAULT_RENDERER_URL = 'https://video-outstream.rubiconproject.com/apex-2.2.1.js';\n// renderer code at https://github.com/rubicon-project/apex2\n\nlet rubiConf = config.getConfig('rubicon') || {};\n// we are saving these as global to this module so that if a pub accidentally overwrites the entire\n// rubicon object, then we do not lose other data\nconfig.getConfig('rubicon', config => {\n mergeDeep(rubiConf, config.rubicon);\n});\n\nconst GVLID = 52;\n\nlet impIdMap = {};\n\nvar sizeMap = {\n 1: '468x60',\n 2: '728x90',\n 5: '120x90',\n 7: '125x125',\n 8: '120x600',\n 9: '160x600',\n 10: '300x600',\n 13: '200x200',\n 14: '250x250',\n 15: '300x250',\n 16: '336x280',\n 17: '240x400',\n 19: '300x100',\n 31: '980x120',\n 32: '250x360',\n 33: '180x500',\n 35: '980x150',\n 37: '468x400',\n 38: '930x180',\n 39: '750x100',\n 40: '750x200',\n 41: '750x300',\n 42: '2x4',\n 43: '320x50',\n 44: '300x50',\n 48: '300x300',\n 53: '1024x768',\n 54: '300x1050',\n 55: '970x90',\n 57: '970x250',\n 58: '1000x90',\n 59: '320x80',\n 60: '320x150',\n 61: '1000x1000',\n 64: '580x500',\n 65: '640x480',\n 66: '930x600',\n 67: '320x480',\n 68: '1800x1000',\n 72: '320x320',\n 73: '320x160',\n 78: '980x240',\n 79: '980x300',\n 80: '980x400',\n 83: '480x300',\n 85: '300x120',\n 90: '548x150',\n 94: '970x310',\n 95: '970x100',\n 96: '970x210',\n 101: '480x320',\n 102: '768x1024',\n 103: '480x280',\n 105: '250x800',\n 108: '320x240',\n 113: '1000x300',\n 117: '320x100',\n 125: '800x250',\n 126: '200x600',\n 144: '980x600',\n 145: '980x150',\n 152: '1000x250',\n 156: '640x320',\n 159: '320x250',\n 179: '250x600',\n 195: '600x300',\n 198: '640x360',\n 199: '640x200',\n 213: '1030x590',\n 214: '980x360',\n 221: '1x1',\n 229: '320x180',\n 230: '2000x1400',\n 232: '580x400',\n 234: '6x6',\n 251: '2x2',\n 256: '480x820',\n 257: '400x600',\n 258: '500x200',\n 259: '998x200',\n 261: '480x480',\n 264: '970x1000',\n 265: '1920x1080',\n 274: '1800x200',\n 278: '320x500',\n 282: '320x400',\n 288: '640x380',\n 484: '720x1280',\n 524: '1x2',\n 548: '500x1000',\n 550: '980x480',\n 552: '300x200',\n 558: '640x640',\n 562: '300x431',\n 564: '320x431',\n 566: '320x300',\n 568: '300x150',\n 570: '300x125',\n 572: '250x350',\n 574: '620x891',\n 576: '610x877',\n 578: '980x552',\n 580: '505x656',\n 622: '192x160',\n 632: '1200x450',\n 634: '340x450',\n 680: '970x570',\n 682: '300x240',\n 684: '970x550',\n 686: '300x210',\n 688: '300x220',\n 690: '970x170',\n 710: '600x250',\n 712: '340x430'\n};\n\n_each(sizeMap, (item, key) => sizeMap[item] = key);\n\nexport const converter = ortbConverter({\n request(buildRequest, imps, bidderRequest, context) {\n const {bidRequests} = context;\n const data = buildRequest(imps, bidderRequest, context);\n data.cur = ['USD'];\n data.test = config.getConfig('debug') ? 1 : 0;\n deepSetValue(data, 'ext.prebid.cache', {\n vastxml: {\n returnCreative: rubiConf.returnVast === true\n }\n });\n\n deepSetValue(data, 'ext.prebid.bidders', {\n rubicon: {\n integration: rubiConf.int_type || DEFAULT_PBS_INTEGRATION,\n }\n });\n\n deepSetValue(data, 'ext.prebid.targeting.pricegranularity', getPriceGranularity(config));\n\n const modules = (getGlobal()).installedModules;\n if (modules && (!modules.length || modules.indexOf('rubiconAnalyticsAdapter') !== -1)) {\n deepSetValue(data, 'ext.prebid.analytics', {'rubicon': {'client-analytics': true}});\n }\n\n addOrtbFirstPartyData(data, bidRequests, bidderRequest.ortb2);\n\n delete data?.ext?.prebid?.storedrequest;\n\n // floors\n if (rubiConf.disableFloors === true) {\n delete data.ext.prebid.floors;\n }\n\n // If the price floors module is active, then we need to signal to PBS! If floorData obj is present is best way to check\n const haveFloorDataBidRequests = bidRequests.filter(bidRequest => typeof bidRequest.floorData === 'object');\n if (haveFloorDataBidRequests.length > 0) {\n data.ext.prebid.floors = { enabled: false };\n }\n return data;\n },\n imp(buildImp, bidRequest, context) {\n // skip banner-only requests\n const bidRequestType = bidType(bidRequest);\n if (bidRequestType.includes(BANNER) && bidRequestType.length == 1) return;\n\n const imp = buildImp(bidRequest, context);\n imp.id = bidRequest.adUnitCode;\n delete imp.banner;\n bidRequest.params.position === 'atf' && imp.video && (imp.video.pos = 1);\n bidRequest.params.position === 'btf' && imp.video && (imp.video.pos = 3);\n delete imp.ext?.prebid?.storedrequest;\n\n if (bidRequest.params.bidonmultiformat === true && bidRequestType.length > 1) {\n deepSetValue(imp, 'ext.prebid.bidder.rubicon.formats', bidRequestType);\n }\n\n setBidFloors(bidRequest, imp);\n\n // ensure unique imp IDs for twin adunits\n imp.id = impIdMap[imp.id] ? imp.id + impIdMap[imp.id]++ : (impIdMap[imp.id] = 2, imp.id);\n\n return imp;\n },\n bidResponse(buildBidResponse, bid, context) {\n const bidResponse = buildBidResponse(bid, context);\n bidResponse.meta.mediaType = deepAccess(bid, 'ext.prebid.type');\n const {bidRequest} = context;\n\n const [parseSizeWidth, parseSizeHeight] = bidRequest.mediaTypes.video?.context === 'outstream' ? parseSizes(bidRequest, VIDEO) : [undefined, undefined];\n // 0 by default to avoid undefined size\n bidResponse.width = bid.w || parseSizeWidth || bidResponse.playerWidth || 0;\n bidResponse.height = bid.h || parseSizeHeight || bidResponse.playerHeight || 0;\n\n if (bidResponse.mediaType === VIDEO && bidRequest.mediaTypes.video.context === 'outstream') {\n bidResponse.renderer = outstreamRenderer(bidResponse);\n }\n\n if (deepAccess(bid, 'ext.bidder.rp.advid')) {\n deepSetValue(bidResponse, 'meta.advertiserId', bid.ext.bidder.rp.advid);\n }\n return bidResponse;\n },\n context: {\n netRevenue: rubiConf.netRevenue !== false, // If anything other than false, netRev is true\n ttl: 360,\n },\n processors: pbsExtensions\n});\n\nexport const spec = {\n code: 'rubicon',\n gvlid: GVLID,\n supportedMediaTypes: [BANNER, VIDEO, NATIVE],\n /**\n * @param {object} bid\n * @return boolean\n */\n isBidRequestValid: function (bid) {\n let valid = true;\n if (typeof bid.params !== 'object') {\n return false;\n }\n // validate account, site, zone have numeric values\n for (let i = 0, props = ['accountId', 'siteId', 'zoneId']; i < props.length; i++) {\n bid.params[props[i]] = parseInt(bid.params[props[i]])\n if (isNaN(bid.params[props[i]])) {\n logError('Rubicon: wrong format of accountId or siteId or zoneId.')\n return false\n }\n }\n const bidFormats = bidType(bid, true);\n // bidType is undefined? Return false\n if (!bidFormats.length) {\n return false;\n } else if (bidFormats.includes(VIDEO)) { // bidType is video, make sure it has required params\n valid = hasValidVideoParams(bid);\n }\n const hasBannerOrNativeMediaType = [BANNER, NATIVE].filter(mediaType => bidFormats.includes(mediaType)).length > 0;\n if (!hasBannerOrNativeMediaType) return valid;\n return valid && hasBannerOrNativeMediaType;\n },\n /**\n * @param {BidRequest[]} bidRequests\n * @param bidderRequest\n * @return BidRequest[]\n */\n buildRequests: function (bidRequests, bidderRequest) {\n // separate video bids because the requests are structured differently\n let requests = [];\n const filteredHttpRequest = [];\n let filteredRequests;\n\n filteredRequests = bidRequests.filter(req => {\n const mediaTypes = bidType(req) || [];\n const { length } = mediaTypes;\n const { bidonmultiformat, video } = req.params || {};\n\n return (\n // if there's just one mediaType and it's video or native, just send it!\n (length === 1 && (mediaTypes.includes(VIDEO) || mediaTypes.includes(NATIVE))) ||\n // if it's two mediaTypes, and they don't contain banner, send to PBS both native & video\n (length === 2 && !mediaTypes.includes(BANNER)) ||\n // if it contains the video param and the Video mediaType, send Video to PBS (not native!)\n (video && mediaTypes.includes(VIDEO)) ||\n // if bidonmultiformat is on, send everything to PBS\n (bidonmultiformat && (mediaTypes.includes(VIDEO) || mediaTypes.includes(NATIVE)))\n )\n });\n\n if (filteredRequests && filteredRequests.length) {\n const data = converter.toORTB({bidRequests: filteredRequests, bidderRequest});\n resetImpIdMap();\n\n filteredHttpRequest.push({\n method: 'POST',\n url: `https://${rubiConf.videoHost || 'prebid-server'}.rubiconproject.com/openrtb2/auction`,\n data,\n bidRequest: filteredRequests\n });\n }\n\n const bannerBidRequests = bidRequests.filter((req) => {\n const mediaTypes = bidType(req) || [];\n const {bidonmultiformat, video} = req.params || {};\n return (\n // Send to fastlane if: it must include BANNER and...\n mediaTypes.includes(BANNER) && (\n // if it's just banner\n (mediaTypes.length === 1) ||\n // if bidonmultiformat is true\n bidonmultiformat ||\n // if bidonmultiformat is false and there's no video parameter\n (!bidonmultiformat && !video) ||\n // if there's video parameter, but there's no video mediatype\n (!bidonmultiformat && video && !mediaTypes.includes(VIDEO))\n )\n );\n });\n if (rubiConf.singleRequest !== true) {\n // bids are not grouped if single request mode is not enabled\n requests = filteredHttpRequest.concat(bannerBidRequests.map(bidRequest => {\n const bidParams = spec.createSlotParams(bidRequest, bidderRequest);\n return {\n method: 'GET',\n url: `https://${rubiConf.bannerHost || 'fastlane'}.rubiconproject.com/a/api/fastlane.json`,\n data: spec.getOrderedParams(bidParams).reduce((paramString, key) => {\n const propValue = bidParams[key];\n return ((isStr(propValue) && propValue !== '') || isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;\n }, '') + `slots=1&rand=${Math.random()}`,\n bidRequest\n };\n }));\n } else {\n // single request requires bids to be grouped by site id into a single request\n // note: groupBy wasn't used because deep property access was needed\n const groupedBidRequests = bannerBidRequests.reduce((groupedBids, bid) => {\n (groupedBids[bid.params['siteId']] = groupedBids[bid.params['siteId']] || []).push(bid);\n return groupedBids;\n }, {});\n\n // fastlane SRA has a limit of 10 slots\n const SRA_BID_LIMIT = 10;\n\n // multiple requests are used if bids groups have more than 10 bids\n requests = filteredHttpRequest.concat(Object.keys(groupedBidRequests).reduce((aggregate, bidGroupKey) => {\n // for each partioned bidGroup, append a bidRequest to requests list\n partitionArray(groupedBidRequests[bidGroupKey], SRA_BID_LIMIT).forEach(bidsInGroup => {\n const combinedSlotParams = spec.combineSlotUrlParams(bidsInGroup.map(bidRequest => {\n return spec.createSlotParams(bidRequest, bidderRequest);\n }));\n\n // SRA request returns grouped bidRequest arrays not a plain bidRequest\n aggregate.push({\n method: 'GET',\n url: `https://${rubiConf.bannerHost || 'fastlane'}.rubiconproject.com/a/api/fastlane.json`,\n data: spec.getOrderedParams(combinedSlotParams).reduce((paramString, key) => {\n const propValue = combinedSlotParams[key];\n return ((isStr(propValue) && propValue !== '') || isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;\n }, '') + `slots=${bidsInGroup.length}&rand=${Math.random()}`,\n bidRequest: bidsInGroup\n });\n });\n return aggregate;\n }, []));\n }\n return requests;\n },\n\n getOrderedParams: function(params) {\n const containsTgV = /^tg_v/\n const containsTgI = /^tg_i/\n const containsUId = /^eid_|^tpid_/\n\n const orderedParams = [\n 'account_id',\n 'site_id',\n 'zone_id',\n 'size_id',\n 'alt_size_ids',\n 'p_pos',\n 'gdpr',\n 'gdpr_consent',\n 'us_privacy',\n 'gpp',\n 'gpp_sid',\n 'rp_schain',\n ].concat(Object.keys(params).filter(item => containsUId.test(item)))\n .concat([\n 'x_liverampidl',\n 'ppuid',\n 'rf',\n 'p_geo.latitude',\n 'p_geo.longitude',\n 'kw'\n ]).concat(Object.keys(params).filter(item => containsTgV.test(item)))\n .concat(Object.keys(params).filter(item => containsTgI.test(item)))\n .concat([\n 'tk_flint',\n 'x_source.tid',\n 'l_pb_bid_id',\n 'p_screen_res',\n 'o_ae',\n 'o_cdep',\n 'rp_floor',\n 'rp_secure',\n 'tk_user_key'\n ]);\n\n return orderedParams.concat(Object.keys(params).filter(item => (orderedParams.indexOf(item) === -1)));\n },\n\n /**\n * @summary combines param values from an array of slots into a single semicolon delineated value\n * or just one value if they are all the same.\n * @param {Object[]} aSlotUrlParams - example [{p1: 'foo', p2: 'test'}, {p2: 'test'}, {p1: 'bar', p2: 'test'}]\n * @return {Object} - example {p1: 'foo;;bar', p2: 'test'}\n */\n combineSlotUrlParams: function(aSlotUrlParams) {\n // if only have params for one slot, return those params\n if (aSlotUrlParams.length === 1) {\n return aSlotUrlParams[0];\n }\n\n // reduce param values from all slot objects into an array of values in a single object\n const oCombinedSlotUrlParams = aSlotUrlParams.reduce(function(oCombinedParams, oSlotUrlParams, iIndex) {\n Object.keys(oSlotUrlParams).forEach(function(param) {\n if (!oCombinedParams.hasOwnProperty(param)) {\n oCombinedParams[param] = new Array(aSlotUrlParams.length); // initialize array;\n }\n // insert into the proper element of the array\n oCombinedParams[param].splice(iIndex, 1, oSlotUrlParams[param]);\n });\n\n return oCombinedParams;\n }, {});\n\n // convert arrays into semicolon delimited strings\n const re = new RegExp('^([^;]*)(;\\\\1)+$'); // regex to test for duplication\n\n Object.keys(oCombinedSlotUrlParams).forEach(function(param) {\n const sValues = oCombinedSlotUrlParams[param].join(';');\n // consolidate param values into one value if they are all the same\n const match = sValues.match(re);\n oCombinedSlotUrlParams[param] = match ? match[1] : sValues;\n });\n\n return oCombinedSlotUrlParams;\n },\n\n /**\n * @param {BidRequest} bidRequest\n * @param {Object} bidderRequest\n * @returns {Object} - object key values named and formatted as slot params\n */\n createSlotParams: function(bidRequest, bidderRequest) {\n bidRequest.startTime = new Date().getTime();\n\n const params = bidRequest.params;\n\n // use rubicon sizes if provided, otherwise adUnit.sizes\n const parsedSizes = parseSizes(bidRequest, 'banner');\n\n const [latitude, longitude] = params.latLong || [];\n\n const data = {\n 'account_id': params.accountId,\n 'site_id': params.siteId,\n 'zone_id': params.zoneId,\n 'size_id': parsedSizes[0],\n 'alt_size_ids': parsedSizes.slice(1).join(',') || undefined,\n 'rp_floor': (params.floor = parseFloat(params.floor)) >= 0.01 ? params.floor : undefined,\n 'rp_secure': '1',\n 'tk_flint': `${rubiConf.int_type || DEFAULT_INTEGRATION}_v$prebid.version$`,\n 'x_source.tid': bidderRequest.ortb2?.source?.tid,\n 'x_imp.ext.tid': bidRequest.ortb2Imp?.ext?.tid,\n 'l_pb_bid_id': bidRequest.bidId,\n 'o_cdep': bidRequest.ortb2?.device?.ext?.cdep,\n 'ip': bidRequest.ortb2?.device?.ip,\n 'ipv6': bidRequest.ortb2?.device?.ipv6,\n 'p_screen_res': _getScreenResolution(),\n 'tk_user_key': params.userId,\n 'p_geo.latitude': isNaN(parseFloat(latitude)) ? undefined : parseFloat(latitude).toFixed(4),\n 'p_geo.longitude': isNaN(parseFloat(longitude)) ? undefined : parseFloat(longitude).toFixed(4),\n 'tg_fl.eid': bidRequest.code,\n 'rf': _getPageUrl(bidRequest, bidderRequest)\n };\n\n // If floors module is enabled and we get USD floor back, send it in rp_hard_floor else undfined\n if (typeof bidRequest.getFloor === 'function' && !rubiConf.disableFloors) {\n let floorInfo;\n try {\n floorInfo = bidRequest.getFloor({\n currency: 'USD',\n mediaType: 'banner',\n size: '*'\n });\n } catch (e) {\n logError('Rubicon: getFloor threw an error: ', e);\n }\n data['rp_hard_floor'] = isPlainObject(floorInfo) && floorInfo.currency === 'USD' && !isNaN(parseInt(floorInfo.floor)) ? floorInfo.floor : undefined;\n }\n\n // Send multiformat data if requested\n if (params.bidonmultiformat === true && deepAccess(bidRequest, 'mediaTypes') && Object.keys(bidRequest.mediaTypes).length > 1) {\n data['p_formats'] = Object.keys(bidRequest.mediaTypes).join(',');\n }\n\n // add p_pos only if specified and valid\n // For SRA we need to explicitly put empty semi colons so AE treats it as empty, instead of copying the latter value\n const posMapping = {1: 'atf', 3: 'btf'};\n const pos = posMapping[deepAccess(bidRequest, 'mediaTypes.banner.pos')] || '';\n data['p_pos'] = (params.position === 'atf' || params.position === 'btf') ? params.position : pos;\n\n // pass publisher provided userId if configured\n const configUserId = config.getConfig('user.id');\n if (configUserId) {\n data['ppuid'] = configUserId;\n }\n\n if (bidRequest?.ortb2Imp?.ext?.ae) {\n data['o_ae'] = 1;\n }\n // If the bid request contains a 'mobile' property under 'ortb2.site', add it to 'data' as 'p_site.mobile'.\n if (typeof bidRequest?.ortb2?.site?.mobile === 'number') {\n data['p_site.mobile'] = bidRequest.ortb2.site.mobile\n }\n\n addDesiredSegtaxes(bidderRequest, data);\n // loop through userIds and add to request\n if (bidRequest?.ortb2?.user?.ext?.eids) {\n bidRequest.ortb2.user.ext.eids.forEach(({ source, uids = [], inserter, matcher, mm, ext = {} }) => {\n try {\n // Ensure there is at least one valid UID in the 'uids' array\n const uidData = uids[0];\n if (!uidData) return; // Skip processing if no valid UID exists\n\n // Function to build the EID value in the required format\n const buildEidValue = (uidData) => [\n uidData.id, // uid: The user ID\n uidData.atype || '',\n '', // third: Always empty, as specified in the requirement\n inserter || '',\n matcher || '',\n mm || '',\n uidData?.ext?.rtiPartner || uidData?.ext?.rtipartner || ''\n ].join('^'); // Return a single string formatted with '^' delimiter\n\n const eidValue = buildEidValue(uidData); // Build the EID value string\n\n // Store the constructed EID value for the given source\n data[`eid_${source}`] = eidValue;\n\n // Handle the \"ppuid\" signal, ensuring it is set only once\n if (!data['ppuid']) {\n // Search for a UID with the 'stype' field equal to 'ppuid' in its extension\n const ppId = uids.find(uid => uid.ext?.stype === 'ppuid');\n if (ppId?.id) {\n data['ppuid'] = ppId.id; // Store the ppuid if found\n }\n }\n } catch (e) {\n // Log any errors encountered during processing\n logWarn('Rubicon: error reading eid:', { source, uids }, e);\n }\n });\n }\n\n if (bidderRequest.gdprConsent) {\n // add 'gdpr' only if 'gdprApplies' is defined\n if (typeof bidderRequest.gdprConsent.gdprApplies === 'boolean') {\n data['gdpr'] = Number(bidderRequest.gdprConsent.gdprApplies);\n }\n data['gdpr_consent'] = bidderRequest.gdprConsent.consentString;\n }\n\n if (bidderRequest.uspConsent) {\n data['us_privacy'] = encodeURIComponent(bidderRequest.uspConsent);\n }\n\n if (bidderRequest.gppConsent?.gppString) {\n data['gpp'] = bidderRequest.gppConsent.gppString;\n data['gpp_sid'] = bidderRequest.gppConsent?.applicableSections?.toString();\n }\n\n data['rp_maxbids'] = bidderRequest.bidLimit;\n\n applyFPD(bidRequest, BANNER, data);\n\n if (config.getConfig('coppa') === true) {\n data['coppa'] = 1;\n }\n\n // if SupplyChain is supplied and contains all required fields\n const schain = bidRequest?.ortb2?.source?.ext?.schain;\n if (schain && hasValidSupplyChainParams(schain)) {\n data.rp_schain = spec.serializeSupplyChain(schain);\n }\n\n return data;\n },\n\n /**\n * Serializes schain params according to OpenRTB requirements\n * @param {Object} supplyChain\n * @returns {String}\n */\n serializeSupplyChain: function (supplyChain) {\n const supplyChainIsValid = hasValidSupplyChainParams(supplyChain);\n if (!supplyChainIsValid) return '';\n const { ver, complete, nodes } = supplyChain;\n return `${ver},${complete}!${spec.serializeSupplyChainNodes(nodes)}`;\n },\n\n /**\n * Properly sorts schain object params\n * @param {Array} nodes\n * @returns {String}\n */\n serializeSupplyChainNodes: function (nodes) {\n const nodePropOrder = ['asi', 'sid', 'hp', 'rid', 'name', 'domain'];\n return nodes.map(node => {\n return nodePropOrder.map(prop => encodeURIComponent(node[prop] || '')).join(',');\n }).join('!');\n },\n\n /**\n * @param {*} responseObj\n * @param {BidRequest|Object.<string, BidRequest[]>} request - if request was SRA the bidRequest argument will be a keyed BidRequest array object,\n * non-SRA responses return a plain BidRequest object\n * @return {{fledgeAuctionConfigs: *, bids: *}} An array of bids which\n */\n interpretResponse: function (responseObj, request) {\n responseObj = responseObj.body;\n const {data} = request;\n\n // check overall response\n if (!responseObj || typeof responseObj !== 'object') {\n return [];\n }\n // Response from PBS Java openRTB\n if (responseObj.seatbid) {\n const responseErrors = deepAccess(responseObj, 'ext.errors.rubicon');\n if (Array.isArray(responseErrors) && responseErrors.length > 0) {\n logWarn('Rubicon: Error in video response');\n }\n const bids = converter.fromORTB({request: data, response: responseObj}).bids;\n return bids;\n }\n\n let ads = responseObj.ads;\n let lastImpId;\n let multibid = 0;\n const {bidRequest} = request;\n\n // video ads array is wrapped in an object\n if (typeof bidRequest === 'object' && !Array.isArray(bidRequest) && bidType(bidRequest).includes(VIDEO) && typeof ads === 'object') {\n ads = ads[bidRequest.adUnitCode];\n }\n\n // check the ad response\n if (!Array.isArray(ads) || ads.length < 1) {\n return [];\n }\n\n const bids = ads.reduce((bids, ad, i) => {\n (ad.impression_id && lastImpId === ad.impression_id) ? multibid++ : lastImpId = ad.impression_id;\n\n if (ad.status !== 'ok') {\n return bids;\n }\n\n // associate bidRequests; assuming ads matches bidRequest\n const associatedBidRequest = Array.isArray(bidRequest) ? bidRequest[i - multibid] : bidRequest;\n\n if (associatedBidRequest && typeof associatedBidRequest === 'object') {\n const bid = {\n requestId: associatedBidRequest.bidId,\n currency: 'USD',\n creativeId: ad.creative_id || `${ad.network || ''}-${ad.advertiser || ''}`,\n cpm: ad.cpm || 0,\n dealId: ad.deal,\n ttl: 360, // 6 minutes\n netRevenue: rubiConf.netRevenue !== false, // If anything other than false, netRev is true\n rubicon: {\n advertiserId: ad.advertiser, networkId: ad.network\n },\n meta: {\n advertiserId: ad.advertiser, networkId: ad.network, mediaType: BANNER\n }\n };\n\n if (ad.creative_type) {\n bid.mediaType = ad.creative_type;\n }\n\n if (ad.dsa && Object.keys(ad.dsa).length) {\n bid.meta.dsa = ad.dsa;\n }\n\n if (ad.adomain) {\n bid.meta.advertiserDomains = Array.isArray(ad.adomain) ? ad.adomain : [ad.adomain];\n }\n\n if (ad.emulated_format) {\n bid.meta.mediaType = ad.emulated_format;\n }\n\n if (ad.creative_type === VIDEO) {\n bid.width = associatedBidRequest.params.video.playerWidth;\n bid.height = associatedBidRequest.params.video.playerHeight;\n bid.vastUrl = ad.creative_depot_url;\n bid.impression_id = ad.impression_id;\n bid.videoCacheKey = ad.impression_id;\n } else {\n bid.ad = _renderCreative(ad.script, ad.impression_id);\n [bid.width, bid.height] = sizeMap[ad.size_id].split('x').map(num => Number(num));\n }\n\n // add server-side targeting\n bid.rubiconTargeting = (Array.isArray(ad.targeting) ? ad.targeting : [])\n .reduce((memo, item) => {\n memo[item.key] = item.values[0];\n return memo;\n }, {'rpfl_elemid': associatedBidRequest.adUnitCode});\n\n bids.push(bid);\n } else {\n logError(`Rubicon: bidRequest undefined at index position:${i}`, bidRequest, responseObj);\n }\n return bids;\n }, []).sort((adA, adB) => {\n return (adB.cpm || 0.0) - (adA.cpm || 0.0);\n });\n\n const fledgeAuctionConfigs = responseObj.component_auction_config?.map(config => {\n return { config, bidId: config.bidId }\n });\n\n if (fledgeAuctionConfigs) {\n return { bids, paapi: fledgeAuctionConfigs };\n } else {\n return bids;\n }\n },\n getUserSyncs: function (syncOptions, responses, gdprConsent, uspConsent, gppConsent) {\n if (!hasSynced && syncOptions.iframeEnabled) {\n // data is only assigned if params are available to pass to syncEndpoint\n let params = getUserSyncParams(gdprConsent, uspConsent, gppConsent);\n params = Object.keys(params).length ? `?${formatQS(params)}` : '';\n\n hasSynced = true;\n return {\n type: 'iframe',\n url: `https://${rubiConf.syncHost || 'eus'}.rubiconproject.com/usync.html` + params\n };\n }\n }\n};\n\nfunction _getScreenResolution() {\n return [window.screen.width, window.screen.height].join('x');\n}\n\n/**\n * @param {BidRequest} bidRequest\n * @param bidderRequest\n * @returns {string}\n */\nfunction _getPageUrl(bidRequest, bidderRequest) {\n let pageUrl;\n if (bidRequest.params.referrer) {\n pageUrl = bidRequest.params.referrer;\n } else {\n pageUrl = bidderRequest.refererInfo.page;\n }\n return bidRequest.params.secure ? pageUrl.replace(/^http:/i, 'https:') : pageUrl;\n}\n\nfunction _renderCreative(script, impId) {\n return `<html>\n<head><script type='text/javascript'>inDapIF=true;</script></head>\n<body style='margin : 0; padding: 0;'>\n<!-- Rubicon Project Ad Tag -->\n<div data-rp-impression-id='${impId}'>\n<script type='text/javascript'>${script}</script>\n</div>\n</body>\n</html>`;\n}\n\nfunction hideGoogleAdsDiv(adUnit) {\n const el = adUnit.querySelector(\"div[id^='google_ads']\");\n if (el) {\n el.style.setProperty('display', 'none');\n }\n}\n\nfunction hideSmartAdServerIframe(adUnit) {\n const el = adUnit.querySelector(\"script[id^='sas_script']\");\n const nextSibling = el && el.nextSibling;\n if (nextSibling && nextSibling.localName === 'iframe') {\n nextSibling.style.setProperty('display', 'none');\n }\n}\n\nfunction renderBid(bid) {\n // hide existing ad units\n const adUnitElement = document.getElementById(bid.adUnitCode);\n hideGoogleAdsDiv(adUnitElement);\n hideSmartAdServerIframe(adUnitElement);\n\n // configure renderer\n const defaultConfig = {\n align: 'center',\n position: 'append',\n closeButton: false,\n label: undefined,\n collapse: true\n };\n const config = { ...defaultConfig, ...bid.renderer.getConfig() };\n bid.renderer.push(() => {\n window.MagniteApex.renderAd({\n width: bid.width,\n height: bid.height,\n vastUrl: bid.vastUrl,\n placement: {\n attachTo: `#${bid.adUnitCode}`,\n align: config.align,\n position: config.position\n },\n closeButton: config.closeButton,\n label: config.label,\n collapse: config.collapse\n });\n });\n}\n\nfunction outstreamRenderer(rtbBid) {\n const renderer = Renderer.install({\n id: rtbBid.adId,\n url: rubiConf.rendererUrl || DEFAULT_RENDERER_URL,\n config: rubiConf.rendererConfig || {},\n loaded: false,\n adUnitCode: rtbBid.adUnitCode\n });\n\n try {\n renderer.setRender(renderBid);\n } catch (err) {\n logWarn('Prebid Error calling setRender on renderer', err);\n }\n\n return renderer;\n}\n\nfunction parseSizes(bid, mediaType) {\n const params = bid.params;\n if (mediaType === VIDEO) {\n let size = [];\n if (params.video && params.video.playerWidth && params.video.playerHeight) {\n size = [\n params.video.playerWidth,\n params.video.playerHeight\n ];\n } else if (Array.isArray(deepAccess(bid, 'mediaTypes.video.playerSize')) && bid.mediaTypes.video.playerSize.length === 1) {\n size = bid.mediaTypes.video.playerSize[0];\n } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0 && Array.isArray(bid.sizes[0]) && bid.sizes[0].length > 1) {\n size = bid.sizes[0];\n }\n return size;\n }\n\n // deprecated: temp legacy support\n let sizes = [];\n if (Array.isArray(params.sizes)) {\n sizes = params.sizes;\n } else if (typeof deepAccess(bid, 'mediaTypes.banner.sizes') !== 'undefined') {\n sizes = mapSizes(bid.mediaTypes.banner.sizes);\n } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0) {\n sizes = mapSizes(bid.sizes);\n } else {\n logWarn('Rubicon: no sizes are setup or found');\n }\n\n return masSizeOrdering(sizes);\n}\n\nfunction applyFPD(bidRequest, mediaType, data) {\n const BID_FPD = {\n user: {ext: {data: {...bidRequest.params.visitor}}},\n site: {ext: {data: {...bidRequest.params.inventory}}}\n };\n\n if (bidRequest.params.keywords) BID_FPD.site.keywords = (isArray(bidRequest.params.keywords)) ? bidRequest.params.keywords.join(',') : bidRequest.params.keywords;\n\n const fpd = mergeDeep({}, bidRequest.ortb2 || {}, BID_FPD);\n const impExt = deepAccess(bidRequest.ortb2Imp, 'ext') || {};\n const impExtData = deepAccess(bidRequest.ortb2Imp, 'ext.data') || {};\n\n const gpid = deepAccess(bidRequest, 'ortb2Imp.ext.gpid');\n const dsa = deepAccess(fpd, 'regs.ext.dsa');\n const SEGTAX = {user: [4], site: [1, 2, 5, 6, 7]};\n const MAP = {user: 'tg_v.', site: 'tg_i.', adserver: 'tg_i.dfp_ad_unit_code', pbadslot: 'tg_i.pbadslot', keywords: 'kw'};\n const validate = function(prop, key, parentName) {\n if (key === 'data' && Array.isArray(prop)) {\n return prop.filter(name => name.segment && deepAccess(name, 'ext.segtax') && SEGTAX[parentName] &&\n SEGTAX[parentName].indexOf(deepAccess(name, 'ext.segtax')) !== -1).map(value => {\n const segments = value.segment.filter(obj => obj.id).reduce((result, obj) => {\n result.push(obj.id);\n return result;\n }, []);\n if (segments.length > 0) return segments.toString();\n }).toString();\n } else if (typeof prop === 'object' && !Array.isArray(prop)) {\n return undefined;\n } else if (typeof prop !== 'undefined') {\n return (Array.isArray(prop)) ? prop.filter(value => {\n if (typeof value !== 'object' && typeof value !== 'undefined') return value.toString();\n\n logWarn('Rubicon: Filtered value: ', value, 'for key', key, ': Expected value to be string, integer, or an array of strings/ints');\n }).toString() : prop.toString();\n }\n };\n const addBannerData = function(obj, name, key, isParent = true) {\n const val = validate(obj, key, name);\n const loc = (MAP[key] && isParent) ? `${MAP[key]}` : (key === 'data') ? `${MAP[name]}iab` : `${MAP[name]}${key}`;\n data[loc] = (data[loc]) ? data[loc].concat(',', val) : val;\n };\n\n if (mediaType === BANNER) {\n ['site', 'user'].forEach(name => {\n Object.keys(fpd[name]).forEach((key) => {\n if (name === 'site' && key === 'content' && fpd[name][key].data) {\n addBannerData(fpd[name][key].data, name, 'data');\n } else if (key !== 'ext') {\n addBannerData(fpd[name][key], name, key);\n } else if (fpd[name][key].data) {\n Object.keys(fpd[name].ext.data).forEach((key) => {\n addBannerData(fpd[name].ext.data[key], name, key, false);\n });\n }\n });\n });\n Object.keys(impExtData).forEach((key) => {\n if (key !== 'adserver') {\n addBannerData(impExtData[key], 'site', key);\n } else if (impExtData[key].name === 'gam') {\n addBannerData(impExtData[key].adslot, name, key)\n }\n });\n\n // add in gpid\n if (gpid) {\n data['p_gpid'] = gpid;\n }\n\n // add dsa signals\n if (dsa && Object.keys(dsa).length) {\n pick(dsa, [\n 'dsainfo', (dsainfo) => data['dsainfo'] = dsainfo,\n 'dsarequired', (required) => data['dsarequired'] = required,\n 'pubrender', (pubrender) => data['dsapubrender'] = pubrender,\n 'datatopub', (datatopub) => data['dsadatatopubs'] = datatopub,\n 'transparency', (transparency) => {\n if (Array.isArray(transparency) && transparency.length) {\n data['dsatransparency'] = transparency.reduce((param, transp) => {\n // make sure domain is there, otherwise skip entry\n const domain = transp.domain || '';\n if (!domain) {\n return param;\n }\n\n // make sure dsaParam array is there (try both 'dsaparams' and 'params', but prefer dsaparams)\n const dsaParamArray = transp.dsaparams || transp.params;\n if (!Array.isArray(dsaParamArray) || dsaParamArray.length === 0) {\n return param;\n }\n\n // finally we will add this one, if param has been added already, add our separator\n if (param) {\n param += '~~'\n }\n\n return param += `${domain}~${dsaParamArray.join('_')}`;\n }, '');\n }\n }\n ])\n }\n\n // only send one of pbadslot or dfp adunit code (prefer pbadslot)\n if (data['tg_i.pbadslot']) {\n delete data['tg_i.dfp_ad_unit_code'];\n }\n\n // High Entropy stuff -> sua object is the ORTB standard (default to pass unless specifically disabled)\n const clientHints = deepAccess(fpd, 'device.sua');\n if (clientHints && rubiConf.chEnabled !== false) {\n // pick out client hints we want to send (any that are undefined or empty will NOT be sent)\n pick(clientHints, [\n 'architecture', arch => data.m_ch_arch = arch,\n 'bitness', bitness => data.m_ch_bitness = bitness,\n 'browsers', browsers => {\n if (!Array.isArray(browsers)) return;\n // reduce down into ua and full version list attributes\n const [ua, fullVer] = browsers.reduce((accum, browserData) => {\n accum[0].push(`\"${browserData?.brand}\"|v=\"${browserData?.version?.[0]}\"`);\n // only set fullVer if long enough\n if (browserData?.version?.length > 1) {\n accum[1].push(`\"${browserData?.brand}\"|v=\"${browserData?.version?.join?.('.')}\"`);\n }\n return accum;\n }, [[], []]);\n data.m_ch_ua = ua?.join?.(',');\n data.m_ch_full_ver = fullVer?.join?.(',');\n },\n 'mobile', isMobile => data.m_ch_mobile = `?${isMobile}`,\n 'model', model => data.m_ch_model = model,\n 'platform', platform => {\n data.m_ch_platform = platform?.brand;\n data.m_ch_platform_ver = platform?.version?.join?.('.');\n }\n ])\n }\n } else {\n if (Object.keys(impExt).length) {\n mergeDeep(data.imp[0].ext, impExt);\n }\n // add in gpid\n if (gpid) {\n data.imp[0].ext.gpid = gpid;\n }\n\n mergeDeep(data, fpd);\n }\n}\n\nfunction addDesiredSegtaxes(bidderRequest, target) {\n if (rubiConf.readTopics === false) {\n return;\n }\n const iSegments = [1, 2, 5, 6, 7, 507].concat(rubiConf.sendSiteSegtax?.map(seg => Number(seg)) || []);\n const vSegments = [4, 508].concat(rubiConf.sendUserSegtax?.map(seg => Number(seg)) || []);\n const userData = bidderRequest.ortb2?.user?.data || [];\n const siteData = bidderRequest.ortb2?.site?.content?.data || [];\n userData.forEach(iterateOverSegmentData(target, 'v', vSegments));\n siteData.forEach(iterateOverSegmentData(target, 'i', iSegments));\n}\n\nfunction iterateOverSegmentData(target, char, segments) {\n return (topic) => {\n const taxonomy = Number(topic.ext?.segtax);\n if (segments.includes(taxonomy)) {\n target[`tg_${char}.tax${taxonomy}`] = topic.segment?.map(seg => seg.id).join(',');\n }\n }\n}\n\n/**\n * @param sizes\n * @returns {*}\n */\nfunction mapSizes(sizes) {\n return parseSizesInput(sizes)\n // map sizes while excluding non-matches\n .reduce((result, size) => {\n const mappedSize = parseInt(sizeMap[size], 10);\n if (mappedSize) {\n result.push(mappedSize);\n }\n return result;\n }, []);\n}\n\n/**\n * Test if bid has mediaType or mediaTypes set for video.\n * Also checks if the video object is present in the rubicon bidder params\n * @param {BidRequest} bidRequest\n * @returns {boolean}\n */\nexport function classifiedAsVideo(bidRequest) {\n let isVideo = typeof deepAccess(bidRequest, `mediaTypes.${VIDEO}`) !== 'undefined';\n const isBanner = typeof deepAccess(bidRequest, `mediaTypes.${BANNER}`) !== 'undefined';\n const isBidOnMultiformat = typeof deepAccess(bidRequest, `params.bidonmultiformat`) !== 'undefined';\n const isMissingVideoParams = typeof deepAccess(bidRequest, 'params.video') !== 'object';\n // If an ad has both video and banner types, a legacy implementation allows choosing video over banner\n // based on whether or not there is a video object defined in the params\n // Given this legacy implementation, other code depends on params.video being defined\n\n // if it's bidonmultiformat, we don't care of the video object\n if (isVideo && isBidOnMultiformat) return true;\n\n if (isBanner && isMissingVideoParams) {\n isVideo = false;\n }\n if (isVideo && isMissingVideoParams) {\n deepSetValue(bidRequest, 'params.video', {});\n }\n return isVideo;\n}\n\n/**\n * Determine bidRequest mediaTypes. All mediaTypes must be correct. If one fails, all the others will fail too.\n * @param bid the bid to test\n * @param log boolean. whether we should log errors/warnings for invalid bids\n * @returns {string|undefined} Returns an array containing one of 'video' or 'banner' or 'native' if resolves to a type.\n */\nfunction bidType(bid, log = false) {\n // Is it considered video ad unit by rubicon\n const bidTypes = [];\n if (classifiedAsVideo(bid)) {\n // Removed legacy mediaType support. new way using mediaTypes.video object is now required\n // We require either context as instream or outstream\n if (['outstream', 'instream'].indexOf(deepAccess(bid, `mediaTypes.${VIDEO}.context`)) === -1) {\n if (log) {\n logError('Rubicon: mediaTypes.video.context must be outstream or instream');\n }\n return bidTypes;\n }\n\n // we require playerWidth and playerHeight to come from one of params.playerWidth/playerHeight or mediaTypes.video.playerSize or adUnit.sizes\n if (parseSizes(bid, VIDEO).length < 2) {\n if (log) {\n logError('Rubicon: could not determine the playerSize of the video');\n }\n return bidTypes;\n }\n\n if (log) {\n logMessage('Rubicon: making video request for adUnit', bid.adUnitCode);\n }\n bidTypes.push(VIDEO);\n }\n if (typeof deepAccess(bid, `mediaTypes.${NATIVE}`) !== 'undefined') {\n bidTypes.push(NATIVE);\n }\n\n if (typeof deepAccess(bid, `mediaTypes.${BANNER}`) !== 'undefined') {\n // we require banner sizes to come from one of params.sizes or mediaTypes.banner.sizes or adUnit.sizes, in that order\n // if we cannot determine them, we reject it!\n if (parseSizes(bid, BANNER).length === 0) {\n if (log) {\n logError('Rubicon: could not determine the sizes for banner request');\n }\n return bidTypes;\n }\n\n // everything looks good for banner so lets do it\n if (log) {\n logMessage('Rubicon: making banner request for adUnit', bid.adUnitCode);\n }\n bidTypes.push(BANNER);\n }\n return bidTypes;\n}\n\nexport const resetRubiConf = () => rubiConf = {};\nexport const resetImpIdMap = () => impIdMap = {};\nexport function masSizeOrdering(sizes) {\n const MAS_SIZE_PRIORITY = [15, 2, 9];\n\n return sizes.sort((first, second) => {\n // sort by MAS_SIZE_PRIORITY priority order\n const firstPriority = MAS_SIZE_PRIORITY.indexOf(first);\n const secondPriority = MAS_SIZE_PRIORITY.indexOf(second);\n\n if (firstPriority > -1 || secondPriority > -1) {\n if (firstPriority === -1) {\n return 1;\n }\n if (secondPriority === -1) {\n return -1;\n }\n return firstPriority - secondPriority;\n }\n\n // and finally ascending order\n return first - second;\n });\n}\n\nexport function determineRubiconVideoSizeId(bid) {\n // If we have size_id in the bid then use it\n const rubiconSizeId = parseInt(deepAccess(bid, 'params.video.size_id'));\n if (!isNaN(rubiconSizeId)) {\n return rubiconSizeId;\n }\n // otherwise 203 for outstream and 201 for instream\n // When this function is used we know it has to be one of outstream or instream\n return deepAccess(bid, `mediaTypes.${VIDEO}.context`) === 'outstream' ? 203 : 201;\n}\n\n/**\n * @param {Object} config\n * @returns {{ranges: {ranges: Object[]}}}\n */\nexport function getPriceGranularity(config) {\n return {\n ranges: {\n low: [{max: 5.00, increment: 0.50}],\n medium: [{max: 20.00, increment: 0.10}],\n high: [{max: 20.00, increment: 0.01}],\n auto: [\n {max: 5.00, increment: 0.05},\n {min: 5.00, max: 10.00, increment: 0.10},\n {min: 10.00, max: 20.00, increment: 0.50}\n ],\n dense: [\n {max: 3.00, increment: 0.01},\n {min: 3.00, max: 8.00, increment: 0.05},\n {min: 8.00, max: 20.00, increment: 0.50}\n ],\n custom: config.getConfig('customPriceBucket') && config.getConfig('customPriceBucket').buckets\n }[config.getConfig('priceGranularity')]\n };\n}\n\n// Function to validate the required video params\nexport function hasValidVideoParams(bid) {\n let isValid = true;\n // incase future javascript changes the string represenation of the array or number classes!\n const arrayType = Object.prototype.toString.call([]);\n const numberType = Object.prototype.toString.call(0);\n // required params and their associated object type\n var requiredParams = {\n mimes: arrayType,\n protocols: arrayType,\n linearity: numberType\n }\n // loop through each param and verify it has the correct\n Object.keys(requiredParams).forEach(function(param) {\n if (Object.prototype.toString.call(deepAccess(bid, 'mediaTypes.video.' + param)) !== requiredParams[param]) {\n isValid = false;\n logError('Rubicon: mediaTypes.video.' + param + ' is required and must be of type: ' + requiredParams[param]);\n }\n })\n return isValid;\n}\n\n/**\n * Make sure the required params are present\n * @param {Object} schain\n */\nexport function hasValidSupplyChainParams(schain) {\n let isValid = false;\n const requiredFields = ['asi', 'sid', 'hp'];\n if (!schain.nodes) return isValid;\n isValid = schain.nodes.reduce((status, node) => {\n if (!status) return status;\n return requiredFields.every(field => node.hasOwnProperty(field));\n }, true);\n if (!isValid) logError('Rubicon: required schain params missing');\n return isValid;\n}\n\n/**\n * Creates a URL key value param, encoding the param unless the key is schain\n * @param {String} key\n * @param {String} param\n * @returns {String}\n */\nexport function encodeParam(key, param) {\n if (key === 'rp_schain') return `rp_schain=${param}`;\n return `${key}=${encodeURIComponent(param)}`;\n}\n\n/**\n * split array into multiple arrays of defined size\n * @param {Array} array\n * @param {number} size\n * @returns {Array}\n */\nfunction partitionArray(array, size) {\n return array.map((e, i) => (i % size === 0) ? array.slice(i, i + size) : null).filter((e) => e)\n}\n\nvar hasSynced = false;\n\nexport function resetUserSync() {\n hasSynced = false;\n}\n\n/**\n * Sets the floor on the bidRequest. imp.bidfloor and imp.bidfloorcur\n * should be already set by the conversion library. if they're not,\n * or invalid, try to read from params.floor.\n * @param {*} bidRequest\n * @param {*} imp\n */\nfunction setBidFloors(bidRequest, imp) {\n if (imp.bidfloorcur != 'USD') {\n delete imp.bidfloor;\n delete imp.bidfloorcur;\n }\n\n if (!imp.bidfloor) {\n const bidFloor = parseFloat(deepAccess(bidRequest, 'params.floor'));\n\n if (!isNaN(bidFloor)) {\n imp.bidfloor = bidFloor;\n imp.bidfloorcur = 'USD';\n }\n }\n}\n\nfunction addOrtbFirstPartyData(data, nonBannerRequests, ortb2) {\n let fpd = {};\n const keywords = getAllOrtbKeywords(ortb2, ...nonBannerRequests.map(req => req.params.keywords))\n nonBannerRequests.forEach(bidRequest => {\n const bidFirstPartyData = {\n user: {ext: {data: {...bidRequest.params.visitor}}},\n site: {ext: {data: {...bidRequest.params.inventory}}}\n };\n\n // add site.content.language\n const impThatHasVideoLanguage = data.imp.find(imp => imp.ext?.prebid?.bidder?.rubicon?.video?.language);\n if (impThatHasVideoLanguage) {\n bidFirstPartyData.site.content = {\n language: impThatHasVideoLanguage.ext?.prebid?.bidder?.rubicon?.video?.language\n }\n }\n\n fpd = mergeDeep(fpd, bidRequest.ortb2 || {}, bidFirstPartyData);\n\n // add user.id from config.\n // NOTE: This is DEPRECATED. user.id should come from setConfig({ortb2}).\n const configUserId = config.getConfig('user.id');\n fpd.user.id = fpd.user.id || configUserId;\n });\n\n mergeDeep(data, fpd);\n\n if (keywords && keywords.length) {\n deepSetValue(data, 'site.keywords', keywords.join(','));\n }\n delete data?.ext?.prebid?.storedrequest;\n}\n\nregisterBidder(spec);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"rubiconBidAdapter.js","names":["registerModule","__r0","ortbConverter","pbsExtensions","registerBidder","config","BANNER","NATIVE","VIDEO","getGlobal","Renderer","deepAccess","deepSetValue","formatQS","isArray","isNumber","isStr","logError","logMessage","logWarn","mergeDeep","parseSizesInput","pick","_each","isPlainObject","getAllOrtbKeywords","getUserSyncParams","DEFAULT_INTEGRATION","DEFAULT_PBS_INTEGRATION","DEFAULT_RENDERER_URL","rubiConf","getConfig","rubicon","GVLID","impIdMap","sizeMap","item","key","converter","request","buildRequest","imps","bidderRequest","context","bidRequests","data","cur","test","vastxml","returnCreative","returnVast","integration","int_type","getPriceGranularity","modules","installedModules","length","indexOf","addOrtbFirstPartyData","ortb2","ext","prebid","storedrequest","disableFloors","floors","haveFloorDataBidRequests","filter","bidRequest","floorData","enabled","imp","buildImp","bidRequestType","bidType","includes","id","adUnitCode","banner","params","position","video","pos","bidonmultiformat","setBidFloors","bidResponse","buildBidResponse","bid","meta","mediaType","parseSizeWidth","parseSizeHeight","mediaTypes","parseSizes","undefined","width","w","playerWidth","height","h","playerHeight","renderer","outstreamRenderer","bidder","rp","advid","netRevenue","ttl","processors","spec","code","gvlid","supportedMediaTypes","isBidRequestValid","valid","i","props","parseInt","isNaN","bidFormats","hasValidVideoParams","hasBannerOrNativeMediaType","buildRequests","requests","filteredHttpRequest","filteredRequests","req","toORTB","resetImpIdMap","push","method","url","videoHost","bannerBidRequests","singleRequest","concat","map","bidParams","createSlotParams","bannerHost","getOrderedParams","reduce","paramString","propValue","encodeParam","Math","random","groupedBidRequests","groupedBids","SRA_BID_LIMIT","Object","keys","aggregate","bidGroupKey","partitionArray","forEach","bidsInGroup","combinedSlotParams","combineSlotUrlParams","containsTgV","containsTgI","containsUId","orderedParams","aSlotUrlParams","oCombinedSlotUrlParams","oCombinedParams","oSlotUrlParams","iIndex","param","hasOwnProperty","Array","splice","re","RegExp","sValues","join","match","startTime","Date","getTime","parsedSizes","latitude","longitude","latLong","accountId","siteId","zoneId","slice","floor","parseFloat","source","tid","ortb2Imp","bidId","device","cdep","ip","ipv6","_getScreenResolution","userId","toFixed","_getPageUrl","getFloor","floorInfo","currency","size","e","posMapping","configUserId","ae","site","mobile","addDesiredSegtaxes","user","eids","_ref","uids","inserter","matcher","mm","uidData","buildEidValue","atype","rtiPartner","rtipartner","eidValue","ppId","find","uid","stype","gdprConsent","gdprApplies","Number","consentString","uspConsent","encodeURIComponent","gppConsent","gppString","applicableSections","toString","bidLimit","applyFPD","schain","hasValidSupplyChainParams","rp_schain","serializeSupplyChain","supplyChain","supplyChainIsValid","ver","complete","nodes","serializeSupplyChainNodes","nodePropOrder","node","prop","interpretResponse","responseObj","body","seatbid","responseErrors","bids","fromORTB","response","ads","lastImpId","multibid","ad","impression_id","status","associatedBidRequest","requestId","creativeId","creative_id","network","advertiser","cpm","dealId","deal","advertiserId","networkId","creative_type","dsa","adomain","advertiserDomains","emulated_format","vastUrl","creative_depot_url","videoCacheKey","_renderCreative","script","size_id","split","num","rubiconTargeting","targeting","memo","values","sort","adA","adB","fledgeAuctionConfigs","component_auction_config","paapi","getUserSyncs","syncOptions","responses","hasSynced","iframeEnabled","type","syncHost","window","screen","pageUrl","referrer","refererInfo","page","secure","replace","impId","hideGoogleAdsDiv","adUnit","el","querySelector","style","setProperty","hideSmartAdServerIframe","nextSibling","localName","renderBid","adUnitElement","document","getElementById","defaultConfig","align","closeButton","label","collapse","MagniteApex","renderAd","placement","attachTo","rtbBid","install","adId","rendererUrl","rendererConfig","loaded","setRender","err","playerSize","sizes","mapSizes","masSizeOrdering","BID_FPD","visitor","inventory","keywords","fpd","impExt","impExtData","gpid","SEGTAX","MAP","adserver","pbadslot","validate","parentName","name","segment","value","segments","obj","result","addBannerData","isParent","arguments","val","loc","adslot","dsainfo","required","pubrender","datatopub","transparency","transp","domain","dsaParamArray","dsaparams","clientHints","chEnabled","arch","m_ch_arch","bitness","m_ch_bitness","browsers","ua","fullVer","accum","browserData","brand","version","m_ch_ua","m_ch_full_ver","isMobile","m_ch_mobile","model","m_ch_model","platform","m_ch_platform","m_ch_platform_ver","target","readTopics","iSegments","sendSiteSegtax","seg","vSegments","sendUserSegtax","userData","siteData","content","iterateOverSegmentData","char","topic","taxonomy","segtax","mappedSize","classifiedAsVideo","isVideo","isBanner","isBidOnMultiformat","isMissingVideoParams","log","bidTypes","resetRubiConf","MAS_SIZE_PRIORITY","first","second","firstPriority","secondPriority","determineRubiconVideoSizeId","rubiconSizeId","ranges","low","max","increment","medium","high","auto","min","dense","custom","buckets","isValid","arrayType","prototype","call","numberType","requiredParams","mimes","protocols","linearity","requiredFields","every","field","array","resetUserSync","bidfloorcur","bidfloor","bidFloor","nonBannerRequests","bidFirstPartyData","impThatHasVideoLanguage","language"],"sourceRoot":"../../..","sources":["modules/rubiconBidAdapter.js"],"sourcesContent":["import { ortbConverter } from '../libraries/ortbConverter/converter.js';\nimport { pbsExtensions } from '../libraries/pbsExtensions/pbsExtensions.js';\nimport { registerBidder } from '../src/adapters/bidderFactory.js';\nimport { config } from '../src/config.js';\nimport { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';\nimport { getGlobal } from '../src/prebidGlobal.js';\nimport { Renderer } from '../src/Renderer.js';\nimport {\n deepAccess,\n deepSetValue,\n formatQS,\n isArray,\n isNumber,\n isStr,\n logError,\n logMessage,\n logWarn,\n mergeDeep,\n parseSizesInput,\n pick,\n _each,\n isPlainObject\n} from '../src/utils.js';\nimport {getAllOrtbKeywords} from '../libraries/keywords/keywords.js';\nimport {getUserSyncParams} from '../libraries/userSyncUtils/userSyncUtils.js';\n\n/**\n * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest\n */\n\nconst DEFAULT_INTEGRATION = 'pbjs_lite';\nconst DEFAULT_PBS_INTEGRATION = 'pbjs';\nconst DEFAULT_RENDERER_URL = 'https://video-outstream.rubiconproject.com/apex-2.2.1.js';\n// renderer code at https://github.com/rubicon-project/apex2\n\nlet rubiConf = config.getConfig('rubicon') || {};\n// we are saving these as global to this module so that if a pub accidentally overwrites the entire\n// rubicon object, then we do not lose other data\nconfig.getConfig('rubicon', config => {\n mergeDeep(rubiConf, config.rubicon);\n});\n\nconst GVLID = 52;\n\nlet impIdMap = {};\n\nvar sizeMap = {\n 1: '468x60',\n 2: '728x90',\n 5: '120x90',\n 7: '125x125',\n 8: '120x600',\n 9: '160x600',\n 10: '300x600',\n 13: '200x200',\n 14: '250x250',\n 15: '300x250',\n 16: '336x280',\n 17: '240x400',\n 19: '300x100',\n 31: '980x120',\n 32: '250x360',\n 33: '180x500',\n 35: '980x150',\n 37: '468x400',\n 38: '930x180',\n 39: '750x100',\n 40: '750x200',\n 41: '750x300',\n 42: '2x4',\n 43: '320x50',\n 44: '300x50',\n 48: '300x300',\n 53: '1024x768',\n 54: '300x1050',\n 55: '970x90',\n 57: '970x250',\n 58: '1000x90',\n 59: '320x80',\n 60: '320x150',\n 61: '1000x1000',\n 64: '580x500',\n 65: '640x480',\n 66: '930x600',\n 67: '320x480',\n 68: '1800x1000',\n 72: '320x320',\n 73: '320x160',\n 78: '980x240',\n 79: '980x300',\n 80: '980x400',\n 83: '480x300',\n 85: '300x120',\n 90: '548x150',\n 94: '970x310',\n 95: '970x100',\n 96: '970x210',\n 101: '480x320',\n 102: '768x1024',\n 103: '480x280',\n 105: '250x800',\n 108: '320x240',\n 113: '1000x300',\n 117: '320x100',\n 125: '800x250',\n 126: '200x600',\n 144: '980x600',\n 145: '980x150',\n 152: '1000x250',\n 156: '640x320',\n 159: '320x250',\n 179: '250x600',\n 195: '600x300',\n 198: '640x360',\n 199: '640x200',\n 213: '1030x590',\n 214: '980x360',\n 221: '1x1',\n 229: '320x180',\n 230: '2000x1400',\n 232: '580x400',\n 234: '6x6',\n 251: '2x2',\n 256: '480x820',\n 257: '400x600',\n 258: '500x200',\n 259: '998x200',\n 261: '480x480',\n 264: '970x1000',\n 265: '1920x1080',\n 274: '1800x200',\n 278: '320x500',\n 282: '320x400',\n 288: '640x380',\n 484: '720x1280',\n 524: '1x2',\n 548: '500x1000',\n 550: '980x480',\n 552: '300x200',\n 558: '640x640',\n 562: '300x431',\n 564: '320x431',\n 566: '320x300',\n 568: '300x150',\n 570: '300x125',\n 572: '250x350',\n 574: '620x891',\n 576: '610x877',\n 578: '980x552',\n 580: '505x656',\n 622: '192x160',\n 632: '1200x450',\n 634: '340x450',\n 680: '970x570',\n 682: '300x240',\n 684: '970x550',\n 686: '300x210',\n 688: '300x220',\n 690: '970x170',\n 710: '600x250',\n 712: '340x430'\n};\n\n_each(sizeMap, (item, key) => sizeMap[item] = key);\n\nexport const converter = ortbConverter({\n request(buildRequest, imps, bidderRequest, context) {\n const {bidRequests} = context;\n const data = buildRequest(imps, bidderRequest, context);\n data.cur = ['USD'];\n data.test = config.getConfig('debug') ? 1 : 0;\n deepSetValue(data, 'ext.prebid.cache', {\n vastxml: {\n returnCreative: rubiConf.returnVast === true\n }\n });\n\n deepSetValue(data, 'ext.prebid.bidders', {\n rubicon: {\n integration: rubiConf.int_type || DEFAULT_PBS_INTEGRATION,\n }\n });\n\n deepSetValue(data, 'ext.prebid.targeting.pricegranularity', getPriceGranularity(config));\n\n const modules = (getGlobal()).installedModules;\n if (modules && (!modules.length || modules.indexOf('rubiconAnalyticsAdapter') !== -1)) {\n deepSetValue(data, 'ext.prebid.analytics', {'rubicon': {'client-analytics': true}});\n }\n\n addOrtbFirstPartyData(data, bidRequests, bidderRequest.ortb2);\n\n delete data?.ext?.prebid?.storedrequest;\n\n // floors\n if (rubiConf.disableFloors === true) {\n delete data.ext.prebid.floors;\n }\n\n // If the price floors module is active, then we need to signal to PBS! If floorData obj is present is best way to check\n const haveFloorDataBidRequests = bidRequests.filter(bidRequest => typeof bidRequest.floorData === 'object');\n if (haveFloorDataBidRequests.length > 0) {\n data.ext.prebid.floors = { enabled: false };\n }\n return data;\n },\n imp(buildImp, bidRequest, context) {\n // skip banner-only requests\n const bidRequestType = bidType(bidRequest);\n if (bidRequestType.includes(BANNER) && bidRequestType.length == 1) return;\n\n const imp = buildImp(bidRequest, context);\n imp.id = bidRequest.adUnitCode;\n delete imp.banner;\n bidRequest.params.position === 'atf' && imp.video && (imp.video.pos = 1);\n bidRequest.params.position === 'btf' && imp.video && (imp.video.pos = 3);\n delete imp.ext?.prebid?.storedrequest;\n\n if (bidRequest.params.bidonmultiformat === true && bidRequestType.length > 1) {\n deepSetValue(imp, 'ext.prebid.bidder.rubicon.formats', bidRequestType);\n }\n\n setBidFloors(bidRequest, imp);\n\n // ensure unique imp IDs for twin adunits\n imp.id = impIdMap[imp.id] ? imp.id + impIdMap[imp.id]++ : (impIdMap[imp.id] = 2, imp.id);\n\n return imp;\n },\n bidResponse(buildBidResponse, bid, context) {\n const bidResponse = buildBidResponse(bid, context);\n bidResponse.meta.mediaType = deepAccess(bid, 'ext.prebid.type');\n const {bidRequest} = context;\n\n const [parseSizeWidth, parseSizeHeight] = bidRequest.mediaTypes.video?.context === 'outstream' ? parseSizes(bidRequest, VIDEO) : [undefined, undefined];\n // 0 by default to avoid undefined size\n bidResponse.width = bid.w || parseSizeWidth || bidResponse.playerWidth || 0;\n bidResponse.height = bid.h || parseSizeHeight || bidResponse.playerHeight || 0;\n\n if (bidResponse.mediaType === VIDEO && bidRequest.mediaTypes.video.context === 'outstream') {\n bidResponse.renderer = outstreamRenderer(bidResponse);\n }\n\n if (deepAccess(bid, 'ext.bidder.rp.advid')) {\n deepSetValue(bidResponse, 'meta.advertiserId', bid.ext.bidder.rp.advid);\n }\n return bidResponse;\n },\n context: {\n netRevenue: rubiConf.netRevenue !== false, // If anything other than false, netRev is true\n ttl: 360,\n },\n processors: pbsExtensions\n});\n\nexport const spec = {\n code: 'rubicon',\n gvlid: GVLID,\n supportedMediaTypes: [BANNER, VIDEO, NATIVE],\n /**\n * @param {object} bid\n * @return boolean\n */\n isBidRequestValid: function (bid) {\n let valid = true;\n if (typeof bid.params !== 'object') {\n return false;\n }\n // validate account, site, zone have numeric values\n for (let i = 0, props = ['accountId', 'siteId', 'zoneId']; i < props.length; i++) {\n bid.params[props[i]] = parseInt(bid.params[props[i]])\n if (isNaN(bid.params[props[i]])) {\n logError('Rubicon: wrong format of accountId or siteId or zoneId.')\n return false\n }\n }\n const bidFormats = bidType(bid, true);\n // bidType is undefined? Return false\n if (!bidFormats.length) {\n return false;\n } else if (bidFormats.includes(VIDEO)) { // bidType is video, make sure it has required params\n valid = hasValidVideoParams(bid);\n }\n const hasBannerOrNativeMediaType = [BANNER, NATIVE].filter(mediaType => bidFormats.includes(mediaType)).length > 0;\n if (!hasBannerOrNativeMediaType) return valid;\n return valid && hasBannerOrNativeMediaType;\n },\n /**\n * @param {BidRequest[]} bidRequests\n * @param bidderRequest\n * @return BidRequest[]\n */\n buildRequests: function (bidRequests, bidderRequest) {\n // separate video bids because the requests are structured differently\n let requests = [];\n const filteredHttpRequest = [];\n let filteredRequests;\n\n filteredRequests = bidRequests.filter(req => {\n const mediaTypes = bidType(req) || [];\n const { length } = mediaTypes;\n const { bidonmultiformat, video } = req.params || {};\n\n return (\n // if there's just one mediaType and it's video or native, just send it!\n (length === 1 && (mediaTypes.includes(VIDEO) || mediaTypes.includes(NATIVE))) ||\n // if it's two mediaTypes, and they don't contain banner, send to PBS both native & video\n (length === 2 && !mediaTypes.includes(BANNER)) ||\n // if it contains the video param and the Video mediaType, send Video to PBS (not native!)\n (video && mediaTypes.includes(VIDEO)) ||\n // if bidonmultiformat is on, send everything to PBS\n (bidonmultiformat && (mediaTypes.includes(VIDEO) || mediaTypes.includes(NATIVE)))\n )\n });\n\n if (filteredRequests && filteredRequests.length) {\n const data = converter.toORTB({bidRequests: filteredRequests, bidderRequest});\n resetImpIdMap();\n\n filteredHttpRequest.push({\n method: 'POST',\n url: `https://${rubiConf.videoHost || 'prebid-server'}.rubiconproject.com/openrtb2/auction`,\n data,\n bidRequest: filteredRequests\n });\n }\n\n const bannerBidRequests = bidRequests.filter((req) => {\n const mediaTypes = bidType(req) || [];\n const {bidonmultiformat, video} = req.params || {};\n return (\n // Send to fastlane if: it must include BANNER and...\n mediaTypes.includes(BANNER) && (\n // if it's just banner\n (mediaTypes.length === 1) ||\n // if bidonmultiformat is true\n bidonmultiformat ||\n // if bidonmultiformat is false and there's no video parameter\n (!bidonmultiformat && !video) ||\n // if there's video parameter, but there's no video mediatype\n (!bidonmultiformat && video && !mediaTypes.includes(VIDEO))\n )\n );\n });\n if (rubiConf.singleRequest !== true) {\n // bids are not grouped if single request mode is not enabled\n requests = filteredHttpRequest.concat(bannerBidRequests.map(bidRequest => {\n const bidParams = spec.createSlotParams(bidRequest, bidderRequest);\n return {\n method: 'GET',\n url: `https://${rubiConf.bannerHost || 'fastlane'}.rubiconproject.com/a/api/fastlane.json`,\n data: spec.getOrderedParams(bidParams).reduce((paramString, key) => {\n const propValue = bidParams[key];\n return ((isStr(propValue) && propValue !== '') || isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;\n }, '') + `slots=1&rand=${Math.random()}`,\n bidRequest\n };\n }));\n } else {\n // single request requires bids to be grouped by site id into a single request\n // note: groupBy wasn't used because deep property access was needed\n const groupedBidRequests = bannerBidRequests.reduce((groupedBids, bid) => {\n (groupedBids[bid.params['siteId']] = groupedBids[bid.params['siteId']] || []).push(bid);\n return groupedBids;\n }, {});\n\n // fastlane SRA has a limit of 10 slots\n const SRA_BID_LIMIT = 10;\n\n // multiple requests are used if bids groups have more than 10 bids\n requests = filteredHttpRequest.concat(Object.keys(groupedBidRequests).reduce((aggregate, bidGroupKey) => {\n // for each partioned bidGroup, append a bidRequest to requests list\n partitionArray(groupedBidRequests[bidGroupKey], SRA_BID_LIMIT).forEach(bidsInGroup => {\n const combinedSlotParams = spec.combineSlotUrlParams(bidsInGroup.map(bidRequest => {\n return spec.createSlotParams(bidRequest, bidderRequest);\n }));\n\n // SRA request returns grouped bidRequest arrays not a plain bidRequest\n aggregate.push({\n method: 'GET',\n url: `https://${rubiConf.bannerHost || 'fastlane'}.rubiconproject.com/a/api/fastlane.json`,\n data: spec.getOrderedParams(combinedSlotParams).reduce((paramString, key) => {\n const propValue = combinedSlotParams[key];\n return ((isStr(propValue) && propValue !== '') || isNumber(propValue)) ? `${paramString}${encodeParam(key, propValue)}&` : paramString;\n }, '') + `slots=${bidsInGroup.length}&rand=${Math.random()}`,\n bidRequest: bidsInGroup\n });\n });\n return aggregate;\n }, []));\n }\n return requests;\n },\n\n getOrderedParams: function(params) {\n const containsTgV = /^tg_v/\n const containsTgI = /^tg_i/\n const containsUId = /^eid_|^tpid_/\n\n const orderedParams = [\n 'account_id',\n 'site_id',\n 'zone_id',\n 'size_id',\n 'alt_size_ids',\n 'p_pos',\n 'gdpr',\n 'gdpr_consent',\n 'us_privacy',\n 'gpp',\n 'gpp_sid',\n 'rp_schain',\n ].concat(Object.keys(params).filter(item => containsUId.test(item)))\n .concat([\n 'x_liverampidl',\n 'ppuid',\n 'rf',\n 'p_geo.latitude',\n 'p_geo.longitude',\n 'kw'\n ]).concat(Object.keys(params).filter(item => containsTgV.test(item)))\n .concat(Object.keys(params).filter(item => containsTgI.test(item)))\n .concat([\n 'tk_flint',\n 'x_source.tid',\n 'l_pb_bid_id',\n 'p_screen_res',\n 'o_ae',\n 'o_cdep',\n 'rp_floor',\n 'rp_secure',\n 'tk_user_key'\n ]);\n\n return orderedParams.concat(Object.keys(params).filter(item => (orderedParams.indexOf(item) === -1)));\n },\n\n /**\n * @summary combines param values from an array of slots into a single semicolon delineated value\n * or just one value if they are all the same.\n * @param {Object[]} aSlotUrlParams - example [{p1: 'foo', p2: 'test'}, {p2: 'test'}, {p1: 'bar', p2: 'test'}]\n * @return {Object} - example {p1: 'foo;;bar', p2: 'test'}\n */\n combineSlotUrlParams: function(aSlotUrlParams) {\n // if only have params for one slot, return those params\n if (aSlotUrlParams.length === 1) {\n return aSlotUrlParams[0];\n }\n\n // reduce param values from all slot objects into an array of values in a single object\n const oCombinedSlotUrlParams = aSlotUrlParams.reduce(function(oCombinedParams, oSlotUrlParams, iIndex) {\n Object.keys(oSlotUrlParams).forEach(function(param) {\n if (!oCombinedParams.hasOwnProperty(param)) {\n oCombinedParams[param] = new Array(aSlotUrlParams.length); // initialize array;\n }\n // insert into the proper element of the array\n oCombinedParams[param].splice(iIndex, 1, oSlotUrlParams[param]);\n });\n\n return oCombinedParams;\n }, {});\n\n // convert arrays into semicolon delimited strings\n const re = new RegExp('^([^;]*)(;\\\\1)+$'); // regex to test for duplication\n\n Object.keys(oCombinedSlotUrlParams).forEach(function(param) {\n const sValues = oCombinedSlotUrlParams[param].join(';');\n // consolidate param values into one value if they are all the same\n const match = sValues.match(re);\n oCombinedSlotUrlParams[param] = match ? match[1] : sValues;\n });\n\n return oCombinedSlotUrlParams;\n },\n\n /**\n * @param {BidRequest} bidRequest\n * @param {Object} bidderRequest\n * @returns {Object} - object key values named and formatted as slot params\n */\n createSlotParams: function(bidRequest, bidderRequest) {\n bidRequest.startTime = new Date().getTime();\n\n const params = bidRequest.params;\n\n // use rubicon sizes if provided, otherwise adUnit.sizes\n const parsedSizes = parseSizes(bidRequest, 'banner');\n\n const [latitude, longitude] = params.latLong || [];\n\n const data = {\n 'account_id': params.accountId,\n 'site_id': params.siteId,\n 'zone_id': params.zoneId,\n 'size_id': parsedSizes[0],\n 'alt_size_ids': parsedSizes.slice(1).join(',') || undefined,\n 'rp_floor': (params.floor = parseFloat(params.floor)) >= 0.01 ? params.floor : undefined,\n 'rp_secure': '1',\n 'tk_flint': `${rubiConf.int_type || DEFAULT_INTEGRATION}_v$prebid.version$`,\n 'x_source.tid': bidderRequest.ortb2?.source?.tid,\n 'x_imp.ext.tid': bidRequest.ortb2Imp?.ext?.tid,\n 'l_pb_bid_id': bidRequest.bidId,\n 'o_cdep': bidRequest.ortb2?.device?.ext?.cdep,\n 'ip': bidRequest.ortb2?.device?.ip,\n 'ipv6': bidRequest.ortb2?.device?.ipv6,\n 'p_screen_res': _getScreenResolution(),\n 'tk_user_key': params.userId,\n 'p_geo.latitude': isNaN(parseFloat(latitude)) ? undefined : parseFloat(latitude).toFixed(4),\n 'p_geo.longitude': isNaN(parseFloat(longitude)) ? undefined : parseFloat(longitude).toFixed(4),\n 'tg_fl.eid': bidRequest.code,\n 'rf': _getPageUrl(bidRequest, bidderRequest)\n };\n\n // If floors module is enabled and we get USD floor back, send it in rp_hard_floor else undfined\n if (typeof bidRequest.getFloor === 'function' && !rubiConf.disableFloors) {\n let floorInfo;\n try {\n floorInfo = bidRequest.getFloor({\n currency: 'USD',\n mediaType: 'banner',\n size: '*'\n });\n } catch (e) {\n logError('Rubicon: getFloor threw an error: ', e);\n }\n data['rp_hard_floor'] = isPlainObject(floorInfo) && floorInfo.currency === 'USD' && !isNaN(parseInt(floorInfo.floor)) ? floorInfo.floor : undefined;\n }\n\n // Send multiformat data if requested\n if (params.bidonmultiformat === true && deepAccess(bidRequest, 'mediaTypes') && Object.keys(bidRequest.mediaTypes).length > 1) {\n data['p_formats'] = Object.keys(bidRequest.mediaTypes).join(',');\n }\n\n // add p_pos only if specified and valid\n // For SRA we need to explicitly put empty semi colons so AE treats it as empty, instead of copying the latter value\n const posMapping = {1: 'atf', 3: 'btf'};\n const pos = posMapping[deepAccess(bidRequest, 'mediaTypes.banner.pos')] || '';\n data['p_pos'] = (params.position === 'atf' || params.position === 'btf') ? params.position : pos;\n\n // pass publisher provided userId if configured\n const configUserId = config.getConfig('user.id');\n if (configUserId) {\n data['ppuid'] = configUserId;\n }\n\n if (bidRequest?.ortb2Imp?.ext?.ae) {\n data['o_ae'] = 1;\n }\n // If the bid request contains a 'mobile' property under 'ortb2.site', add it to 'data' as 'p_site.mobile'.\n if (typeof bidRequest?.ortb2?.site?.mobile === 'number') {\n data['p_site.mobile'] = bidRequest.ortb2.site.mobile\n }\n\n addDesiredSegtaxes(bidderRequest, data);\n // loop through userIds and add to request\n if (bidRequest?.ortb2?.user?.ext?.eids) {\n bidRequest.ortb2.user.ext.eids.forEach(({ source, uids = [], inserter, matcher, mm, ext = {} }) => {\n try {\n // Ensure there is at least one valid UID in the 'uids' array\n const uidData = uids[0];\n if (!uidData) return; // Skip processing if no valid UID exists\n\n // Function to build the EID value in the required format\n const buildEidValue = (uidData) => [\n uidData.id, // uid: The user ID\n uidData.atype || '',\n '', // third: Always empty, as specified in the requirement\n inserter || '',\n matcher || '',\n mm || '',\n uidData?.ext?.rtiPartner || uidData?.ext?.rtipartner || ''\n ].join('^'); // Return a single string formatted with '^' delimiter\n\n const eidValue = buildEidValue(uidData); // Build the EID value string\n\n // Store the constructed EID value for the given source\n data[`eid_${source}`] = eidValue;\n\n // Handle the \"ppuid\" signal, ensuring it is set only once\n if (!data['ppuid']) {\n // Search for a UID with the 'stype' field equal to 'ppuid' in its extension\n const ppId = uids.find(uid => uid.ext?.stype === 'ppuid');\n if (ppId?.id) {\n data['ppuid'] = ppId.id; // Store the ppuid if found\n }\n }\n } catch (e) {\n // Log any errors encountered during processing\n logWarn('Rubicon: error reading eid:', { source, uids }, e);\n }\n });\n }\n\n if (bidderRequest.gdprConsent) {\n // add 'gdpr' only if 'gdprApplies' is defined\n if (typeof bidderRequest.gdprConsent.gdprApplies === 'boolean') {\n data['gdpr'] = Number(bidderRequest.gdprConsent.gdprApplies);\n }\n data['gdpr_consent'] = bidderRequest.gdprConsent.consentString;\n }\n\n if (bidderRequest.uspConsent) {\n data['us_privacy'] = encodeURIComponent(bidderRequest.uspConsent);\n }\n\n if (bidderRequest.gppConsent?.gppString) {\n data['gpp'] = bidderRequest.gppConsent.gppString;\n data['gpp_sid'] = bidderRequest.gppConsent?.applicableSections?.toString();\n }\n\n data['rp_maxbids'] = bidderRequest.bidLimit;\n\n applyFPD(bidRequest, BANNER, data);\n\n if (config.getConfig('coppa') === true) {\n data['coppa'] = 1;\n }\n\n // if SupplyChain is supplied and contains all required fields\n const schain = bidRequest?.ortb2?.source?.ext?.schain;\n if (schain && hasValidSupplyChainParams(schain)) {\n data.rp_schain = spec.serializeSupplyChain(schain);\n }\n\n return data;\n },\n\n /**\n * Serializes schain params according to OpenRTB requirements\n * @param {Object} supplyChain\n * @returns {String}\n */\n serializeSupplyChain: function (supplyChain) {\n const supplyChainIsValid = hasValidSupplyChainParams(supplyChain);\n if (!supplyChainIsValid) return '';\n const { ver, complete, nodes } = supplyChain;\n return `${ver},${complete}!${spec.serializeSupplyChainNodes(nodes)}`;\n },\n\n /**\n * Properly sorts schain object params\n * @param {Array} nodes\n * @returns {String}\n */\n serializeSupplyChainNodes: function (nodes) {\n const nodePropOrder = ['asi', 'sid', 'hp', 'rid', 'name', 'domain'];\n return nodes.map(node => {\n return nodePropOrder.map(prop => encodeURIComponent(node[prop] || '')).join(',');\n }).join('!');\n },\n\n /**\n * @param {*} responseObj\n * @param {BidRequest|Object.<string, BidRequest[]>} request - if request was SRA the bidRequest argument will be a keyed BidRequest array object,\n * non-SRA responses return a plain BidRequest object\n * @return {{fledgeAuctionConfigs: *, bids: *}} An array of bids which\n */\n interpretResponse: function (responseObj, request) {\n responseObj = responseObj.body;\n const {data} = request;\n\n // check overall response\n if (!responseObj || typeof responseObj !== 'object') {\n return [];\n }\n // Response from PBS Java openRTB\n if (responseObj.seatbid) {\n const responseErrors = deepAccess(responseObj, 'ext.errors.rubicon');\n if (Array.isArray(responseErrors) && responseErrors.length > 0) {\n logWarn('Rubicon: Error in video response');\n }\n const bids = converter.fromORTB({request: data, response: responseObj}).bids;\n return bids;\n }\n\n let ads = responseObj.ads;\n let lastImpId;\n let multibid = 0;\n const {bidRequest} = request;\n\n // video ads array is wrapped in an object\n if (typeof bidRequest === 'object' && !Array.isArray(bidRequest) && bidType(bidRequest).includes(VIDEO) && typeof ads === 'object') {\n ads = ads[bidRequest.adUnitCode];\n }\n\n // check the ad response\n if (!Array.isArray(ads) || ads.length < 1) {\n return [];\n }\n\n const bids = ads.reduce((bids, ad, i) => {\n (ad.impression_id && lastImpId === ad.impression_id) ? multibid++ : lastImpId = ad.impression_id;\n\n if (ad.status !== 'ok') {\n return bids;\n }\n\n // associate bidRequests; assuming ads matches bidRequest\n const associatedBidRequest = Array.isArray(bidRequest) ? bidRequest[i - multibid] : bidRequest;\n\n if (associatedBidRequest && typeof associatedBidRequest === 'object') {\n const bid = {\n requestId: associatedBidRequest.bidId,\n currency: 'USD',\n creativeId: ad.creative_id || `${ad.network || ''}-${ad.advertiser || ''}`,\n cpm: ad.cpm || 0,\n dealId: ad.deal,\n ttl: 360, // 6 minutes\n netRevenue: rubiConf.netRevenue !== false, // If anything other than false, netRev is true\n rubicon: {\n advertiserId: ad.advertiser, networkId: ad.network\n },\n meta: {\n advertiserId: ad.advertiser, networkId: ad.network, mediaType: BANNER\n }\n };\n\n if (ad.creative_type) {\n bid.mediaType = ad.creative_type;\n }\n\n if (ad.dsa && Object.keys(ad.dsa).length) {\n bid.meta.dsa = ad.dsa;\n }\n\n if (ad.adomain) {\n bid.meta.advertiserDomains = Array.isArray(ad.adomain) ? ad.adomain : [ad.adomain];\n }\n\n if (ad.emulated_format) {\n bid.meta.mediaType = ad.emulated_format;\n }\n\n if (ad.creative_type === VIDEO) {\n bid.width = associatedBidRequest.params.video.playerWidth;\n bid.height = associatedBidRequest.params.video.playerHeight;\n bid.vastUrl = ad.creative_depot_url;\n bid.impression_id = ad.impression_id;\n bid.videoCacheKey = ad.impression_id;\n } else {\n bid.ad = _renderCreative(ad.script, ad.impression_id);\n [bid.width, bid.height] = sizeMap[ad.size_id].split('x').map(num => Number(num));\n }\n\n // add server-side targeting\n bid.rubiconTargeting = (Array.isArray(ad.targeting) ? ad.targeting : [])\n .reduce((memo, item) => {\n memo[item.key] = item.values[0];\n return memo;\n }, {'rpfl_elemid': associatedBidRequest.adUnitCode});\n\n bids.push(bid);\n } else {\n logError(`Rubicon: bidRequest undefined at index position:${i}`, bidRequest, responseObj);\n }\n return bids;\n }, []).sort((adA, adB) => {\n return (adB.cpm || 0.0) - (adA.cpm || 0.0);\n });\n\n const fledgeAuctionConfigs = responseObj.component_auction_config?.map(config => {\n return { config, bidId: config.bidId }\n });\n\n if (fledgeAuctionConfigs) {\n return { bids, paapi: fledgeAuctionConfigs };\n } else {\n return bids;\n }\n },\n getUserSyncs: function (syncOptions, responses, gdprConsent, uspConsent, gppConsent) {\n if (!hasSynced && syncOptions.iframeEnabled) {\n // data is only assigned if params are available to pass to syncEndpoint\n let params = getUserSyncParams(gdprConsent, uspConsent, gppConsent);\n params = Object.keys(params).length ? `?${formatQS(params)}` : '';\n\n hasSynced = true;\n return {\n type: 'iframe',\n url: `https://${rubiConf.syncHost || 'eus'}.rubiconproject.com/usync.html` + params\n };\n }\n }\n};\n\nfunction _getScreenResolution() {\n return [window.screen.width, window.screen.height].join('x');\n}\n\n/**\n * @param {BidRequest} bidRequest\n * @param bidderRequest\n * @returns {string}\n */\nfunction _getPageUrl(bidRequest, bidderRequest) {\n let pageUrl;\n if (bidRequest.params.referrer) {\n pageUrl = bidRequest.params.referrer;\n } else {\n pageUrl = bidderRequest.refererInfo.page;\n }\n return bidRequest.params.secure ? pageUrl.replace(/^http:/i, 'https:') : pageUrl;\n}\n\nfunction _renderCreative(script, impId) {\n return `<html>\n<head><script type='text/javascript'>inDapIF=true;</script></head>\n<body style='margin : 0; padding: 0;'>\n<!-- Rubicon Project Ad Tag -->\n<div data-rp-impression-id='${impId}'>\n<script type='text/javascript'>${script}</script>\n</div>\n</body>\n</html>`;\n}\n\nfunction hideGoogleAdsDiv(adUnit) {\n const el = adUnit.querySelector(\"div[id^='google_ads']\");\n if (el) {\n el.style.setProperty('display', 'none');\n }\n}\n\nfunction hideSmartAdServerIframe(adUnit) {\n const el = adUnit.querySelector(\"script[id^='sas_script']\");\n const nextSibling = el && el.nextSibling;\n if (nextSibling && nextSibling.localName === 'iframe') {\n nextSibling.style.setProperty('display', 'none');\n }\n}\n\nfunction renderBid(bid) {\n // hide existing ad units\n const adUnitElement = document.getElementById(bid.adUnitCode);\n hideGoogleAdsDiv(adUnitElement);\n hideSmartAdServerIframe(adUnitElement);\n\n // configure renderer\n const defaultConfig = {\n align: 'center',\n position: 'append',\n closeButton: false,\n label: undefined,\n collapse: true\n };\n const config = { ...defaultConfig, ...bid.renderer.getConfig() };\n bid.renderer.push(() => {\n window.MagniteApex.renderAd({\n width: bid.width,\n height: bid.height,\n vastUrl: bid.vastUrl,\n placement: {\n attachTo: `#${bid.adUnitCode}`,\n align: config.align,\n position: config.position\n },\n closeButton: config.closeButton,\n label: config.label,\n collapse: config.collapse\n });\n });\n}\n\nfunction outstreamRenderer(rtbBid) {\n const renderer = Renderer.install({\n id: rtbBid.adId,\n url: rubiConf.rendererUrl || DEFAULT_RENDERER_URL,\n config: rubiConf.rendererConfig || {},\n loaded: false,\n adUnitCode: rtbBid.adUnitCode\n });\n\n try {\n renderer.setRender(renderBid);\n } catch (err) {\n logWarn('Prebid Error calling setRender on renderer', err);\n }\n\n return renderer;\n}\n\nfunction parseSizes(bid, mediaType) {\n const params = bid.params;\n if (mediaType === VIDEO) {\n let size = [];\n if (params.video && params.video.playerWidth && params.video.playerHeight) {\n size = [\n params.video.playerWidth,\n params.video.playerHeight\n ];\n } else if (Array.isArray(deepAccess(bid, 'mediaTypes.video.playerSize')) && bid.mediaTypes.video.playerSize.length === 1) {\n size = bid.mediaTypes.video.playerSize[0];\n } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0 && Array.isArray(bid.sizes[0]) && bid.sizes[0].length > 1) {\n size = bid.sizes[0];\n }\n return size;\n }\n\n // deprecated: temp legacy support\n let sizes = [];\n if (Array.isArray(params.sizes)) {\n sizes = params.sizes;\n } else if (typeof deepAccess(bid, 'mediaTypes.banner.sizes') !== 'undefined') {\n sizes = mapSizes(bid.mediaTypes.banner.sizes);\n } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0) {\n sizes = mapSizes(bid.sizes);\n } else {\n logWarn('Rubicon: no sizes are setup or found');\n }\n\n return masSizeOrdering(sizes);\n}\n\nfunction applyFPD(bidRequest, mediaType, data) {\n const BID_FPD = {\n user: {ext: {data: {...bidRequest.params.visitor}}},\n site: {ext: {data: {...bidRequest.params.inventory}}}\n };\n\n if (bidRequest.params.keywords) BID_FPD.site.keywords = (isArray(bidRequest.params.keywords)) ? bidRequest.params.keywords.join(',') : bidRequest.params.keywords;\n\n const fpd = mergeDeep({}, bidRequest.ortb2 || {}, BID_FPD);\n const impExt = deepAccess(bidRequest.ortb2Imp, 'ext') || {};\n const impExtData = deepAccess(bidRequest.ortb2Imp, 'ext.data') || {};\n\n const gpid = deepAccess(bidRequest, 'ortb2Imp.ext.gpid');\n const dsa = deepAccess(fpd, 'regs.ext.dsa');\n const SEGTAX = {user: [4], site: [1, 2, 5, 6, 7]};\n const MAP = {user: 'tg_v.', site: 'tg_i.', adserver: 'tg_i.dfp_ad_unit_code', pbadslot: 'tg_i.pbadslot', keywords: 'kw'};\n const validate = function(prop, key, parentName) {\n if (key === 'data' && Array.isArray(prop)) {\n return prop.filter(name => name.segment && deepAccess(name, 'ext.segtax') && SEGTAX[parentName] &&\n SEGTAX[parentName].indexOf(deepAccess(name, 'ext.segtax')) !== -1).map(value => {\n const segments = value.segment.filter(obj => obj.id).reduce((result, obj) => {\n result.push(obj.id);\n return result;\n }, []);\n if (segments.length > 0) return segments.toString();\n }).toString();\n } else if (typeof prop === 'object' && !Array.isArray(prop)) {\n return undefined;\n } else if (typeof prop !== 'undefined') {\n return (Array.isArray(prop)) ? prop.filter(value => {\n if (typeof value !== 'object' && typeof value !== 'undefined') return value.toString();\n\n logWarn('Rubicon: Filtered value: ', value, 'for key', key, ': Expected value to be string, integer, or an array of strings/ints');\n }).toString() : prop.toString();\n }\n };\n const addBannerData = function(obj, name, key, isParent = true) {\n const val = validate(obj, key, name);\n const loc = (MAP[key] && isParent) ? `${MAP[key]}` : (key === 'data') ? `${MAP[name]}iab` : `${MAP[name]}${key}`;\n data[loc] = (data[loc]) ? data[loc].concat(',', val) : val;\n };\n\n if (mediaType === BANNER) {\n ['site', 'user'].forEach(name => {\n Object.keys(fpd[name]).forEach((key) => {\n if (name === 'site' && key === 'content' && fpd[name][key].data) {\n addBannerData(fpd[name][key].data, name, 'data');\n } else if (key !== 'ext') {\n addBannerData(fpd[name][key], name, key);\n } else if (fpd[name][key].data) {\n Object.keys(fpd[name].ext.data).forEach((key) => {\n addBannerData(fpd[name].ext.data[key], name, key, false);\n });\n }\n });\n });\n Object.keys(impExtData).forEach((key) => {\n if (key !== 'adserver') {\n addBannerData(impExtData[key], 'site', key);\n } else if (impExtData[key].name === 'gam') {\n addBannerData(impExtData[key].adslot, name, key)\n }\n });\n\n // add in gpid\n if (gpid) {\n data['p_gpid'] = gpid;\n }\n\n // add dsa signals\n if (dsa && Object.keys(dsa).length) {\n pick(dsa, [\n 'dsainfo', (dsainfo) => data['dsainfo'] = dsainfo,\n 'dsarequired', (required) => data['dsarequired'] = required,\n 'pubrender', (pubrender) => data['dsapubrender'] = pubrender,\n 'datatopub', (datatopub) => data['dsadatatopubs'] = datatopub,\n 'transparency', (transparency) => {\n if (Array.isArray(transparency) && transparency.length) {\n data['dsatransparency'] = transparency.reduce((param, transp) => {\n // make sure domain is there, otherwise skip entry\n const domain = transp.domain || '';\n if (!domain) {\n return param;\n }\n\n // make sure dsaParam array is there (try both 'dsaparams' and 'params', but prefer dsaparams)\n const dsaParamArray = transp.dsaparams || transp.params;\n if (!Array.isArray(dsaParamArray) || dsaParamArray.length === 0) {\n return param;\n }\n\n // finally we will add this one, if param has been added already, add our separator\n if (param) {\n param += '~~'\n }\n\n return param += `${domain}~${dsaParamArray.join('_')}`;\n }, '');\n }\n }\n ])\n }\n\n // only send one of pbadslot or dfp adunit code (prefer pbadslot)\n if (data['tg_i.pbadslot']) {\n delete data['tg_i.dfp_ad_unit_code'];\n }\n\n // High Entropy stuff -> sua object is the ORTB standard (default to pass unless specifically disabled)\n const clientHints = deepAccess(fpd, 'device.sua');\n if (clientHints && rubiConf.chEnabled !== false) {\n // pick out client hints we want to send (any that are undefined or empty will NOT be sent)\n pick(clientHints, [\n 'architecture', arch => data.m_ch_arch = arch,\n 'bitness', bitness => data.m_ch_bitness = bitness,\n 'browsers', browsers => {\n if (!Array.isArray(browsers)) return;\n // reduce down into ua and full version list attributes\n const [ua, fullVer] = browsers.reduce((accum, browserData) => {\n accum[0].push(`\"${browserData?.brand}\"|v=\"${browserData?.version?.[0]}\"`);\n // only set fullVer if long enough\n if (browserData?.version?.length > 1) {\n accum[1].push(`\"${browserData?.brand}\"|v=\"${browserData?.version?.join?.('.')}\"`);\n }\n return accum;\n }, [[], []]);\n data.m_ch_ua = ua?.join?.(',');\n data.m_ch_full_ver = fullVer?.join?.(',');\n },\n 'mobile', isMobile => data.m_ch_mobile = `?${isMobile}`,\n 'model', model => data.m_ch_model = model,\n 'platform', platform => {\n data.m_ch_platform = platform?.brand;\n data.m_ch_platform_ver = platform?.version?.join?.('.');\n }\n ])\n }\n } else {\n if (Object.keys(impExt).length) {\n mergeDeep(data.imp[0].ext, impExt);\n }\n // add in gpid\n if (gpid) {\n data.imp[0].ext.gpid = gpid;\n }\n\n mergeDeep(data, fpd);\n }\n}\n\nfunction addDesiredSegtaxes(bidderRequest, target) {\n if (rubiConf.readTopics === false) {\n return;\n }\n const iSegments = [1, 2, 5, 6, 7, 507].concat(rubiConf.sendSiteSegtax?.map(seg => Number(seg)) || []);\n const vSegments = [4, 508].concat(rubiConf.sendUserSegtax?.map(seg => Number(seg)) || []);\n const userData = bidderRequest.ortb2?.user?.data || [];\n const siteData = bidderRequest.ortb2?.site?.content?.data || [];\n userData.forEach(iterateOverSegmentData(target, 'v', vSegments));\n siteData.forEach(iterateOverSegmentData(target, 'i', iSegments));\n}\n\nfunction iterateOverSegmentData(target, char, segments) {\n return (topic) => {\n const taxonomy = Number(topic.ext?.segtax);\n if (segments.includes(taxonomy)) {\n target[`tg_${char}.tax${taxonomy}`] = topic.segment?.map(seg => seg.id).join(',');\n }\n }\n}\n\n/**\n * @param sizes\n * @returns {*}\n */\nfunction mapSizes(sizes) {\n return parseSizesInput(sizes)\n // map sizes while excluding non-matches\n .reduce((result, size) => {\n const mappedSize = parseInt(sizeMap[size], 10);\n if (mappedSize) {\n result.push(mappedSize);\n }\n return result;\n }, []);\n}\n\n/**\n * Test if bid has mediaType or mediaTypes set for video.\n * Also checks if the video object is present in the rubicon bidder params\n * @param {BidRequest} bidRequest\n * @returns {boolean}\n */\nexport function classifiedAsVideo(bidRequest) {\n let isVideo = typeof deepAccess(bidRequest, `mediaTypes.${VIDEO}`) !== 'undefined';\n const isBanner = typeof deepAccess(bidRequest, `mediaTypes.${BANNER}`) !== 'undefined';\n const isBidOnMultiformat = typeof deepAccess(bidRequest, `params.bidonmultiformat`) !== 'undefined';\n const isMissingVideoParams = typeof deepAccess(bidRequest, 'params.video') !== 'object';\n // If an ad has both video and banner types, a legacy implementation allows choosing video over banner\n // based on whether or not there is a video object defined in the params\n // Given this legacy implementation, other code depends on params.video being defined\n\n // if it's bidonmultiformat, we don't care of the video object\n if (isVideo && isBidOnMultiformat) return true;\n\n if (isBanner && isMissingVideoParams) {\n isVideo = false;\n }\n if (isVideo && isMissingVideoParams) {\n deepSetValue(bidRequest, 'params.video', {});\n }\n return isVideo;\n}\n\n/**\n * Determine bidRequest mediaTypes. All mediaTypes must be correct. If one fails, all the others will fail too.\n * @param bid the bid to test\n * @param log boolean. whether we should log errors/warnings for invalid bids\n * @returns {string|undefined} Returns an array containing one of 'video' or 'banner' or 'native' if resolves to a type.\n */\nfunction bidType(bid, log = false) {\n // Is it considered video ad unit by rubicon\n const bidTypes = [];\n if (classifiedAsVideo(bid)) {\n // Removed legacy mediaType support. new way using mediaTypes.video object is now required\n // We require either context as instream or outstream\n if (['outstream', 'instream'].indexOf(deepAccess(bid, `mediaTypes.${VIDEO}.context`)) === -1) {\n if (log) {\n logError('Rubicon: mediaTypes.video.context must be outstream or instream');\n }\n return bidTypes;\n }\n\n // we require playerWidth and playerHeight to come from one of params.playerWidth/playerHeight or mediaTypes.video.playerSize or adUnit.sizes\n if (parseSizes(bid, VIDEO).length < 2) {\n if (log) {\n logError('Rubicon: could not determine the playerSize of the video');\n }\n return bidTypes;\n }\n\n if (log) {\n logMessage('Rubicon: making video request for adUnit', bid.adUnitCode);\n }\n bidTypes.push(VIDEO);\n }\n if (typeof deepAccess(bid, `mediaTypes.${NATIVE}`) !== 'undefined') {\n bidTypes.push(NATIVE);\n }\n\n if (typeof deepAccess(bid, `mediaTypes.${BANNER}`) !== 'undefined') {\n // we require banner sizes to come from one of params.sizes or mediaTypes.banner.sizes or adUnit.sizes, in that order\n // if we cannot determine them, we reject it!\n if (parseSizes(bid, BANNER).length === 0) {\n if (log) {\n logError('Rubicon: could not determine the sizes for banner request');\n }\n return bidTypes;\n }\n\n // everything looks good for banner so lets do it\n if (log) {\n logMessage('Rubicon: making banner request for adUnit', bid.adUnitCode);\n }\n bidTypes.push(BANNER);\n }\n return bidTypes;\n}\n\nexport const resetRubiConf = () => rubiConf = {};\nexport const resetImpIdMap = () => impIdMap = {};\nexport function masSizeOrdering(sizes) {\n const MAS_SIZE_PRIORITY = [15, 2, 9];\n\n return sizes.sort((first, second) => {\n // sort by MAS_SIZE_PRIORITY priority order\n const firstPriority = MAS_SIZE_PRIORITY.indexOf(first);\n const secondPriority = MAS_SIZE_PRIORITY.indexOf(second);\n\n if (firstPriority > -1 || secondPriority > -1) {\n if (firstPriority === -1) {\n return 1;\n }\n if (secondPriority === -1) {\n return -1;\n }\n return firstPriority - secondPriority;\n }\n\n // and finally ascending order\n return first - second;\n });\n}\n\nexport function determineRubiconVideoSizeId(bid) {\n // If we have size_id in the bid then use it\n const rubiconSizeId = parseInt(deepAccess(bid, 'params.video.size_id'));\n if (!isNaN(rubiconSizeId)) {\n return rubiconSizeId;\n }\n // otherwise 203 for outstream and 201 for instream\n // When this function is used we know it has to be one of outstream or instream\n return deepAccess(bid, `mediaTypes.${VIDEO}.context`) === 'outstream' ? 203 : 201;\n}\n\n/**\n * @param {Object} config\n * @returns {{ranges: {ranges: Object[]}}}\n */\nexport function getPriceGranularity(config) {\n return {\n ranges: {\n low: [{max: 5.00, increment: 0.50}],\n medium: [{max: 20.00, increment: 0.10}],\n high: [{max: 20.00, increment: 0.01}],\n auto: [\n {max: 5.00, increment: 0.05},\n {min: 5.00, max: 10.00, increment: 0.10},\n {min: 10.00, max: 20.00, increment: 0.50}\n ],\n dense: [\n {max: 3.00, increment: 0.01},\n {min: 3.00, max: 8.00, increment: 0.05},\n {min: 8.00, max: 20.00, increment: 0.50}\n ],\n custom: config.getConfig('customPriceBucket') && config.getConfig('customPriceBucket').buckets\n }[config.getConfig('priceGranularity')]\n };\n}\n\n// Function to validate the required video params\nexport function hasValidVideoParams(bid) {\n let isValid = true;\n // incase future javascript changes the string represenation of the array or number classes!\n const arrayType = Object.prototype.toString.call([]);\n const numberType = Object.prototype.toString.call(0);\n // required params and their associated object type\n var requiredParams = {\n mimes: arrayType,\n protocols: arrayType,\n linearity: numberType\n }\n // loop through each param and verify it has the correct\n Object.keys(requiredParams).forEach(function(param) {\n if (Object.prototype.toString.call(deepAccess(bid, 'mediaTypes.video.' + param)) !== requiredParams[param]) {\n isValid = false;\n logError('Rubicon: mediaTypes.video.' + param + ' is required and must be of type: ' + requiredParams[param]);\n }\n })\n return isValid;\n}\n\n/**\n * Make sure the required params are present\n * @param {Object} schain\n */\nexport function hasValidSupplyChainParams(schain) {\n let isValid = false;\n const requiredFields = ['asi', 'sid', 'hp'];\n if (!schain.nodes) return isValid;\n isValid = schain.nodes.reduce((status, node) => {\n if (!status) return status;\n return requiredFields.every(field => node.hasOwnProperty(field));\n }, true);\n if (!isValid) logError('Rubicon: required schain params missing');\n return isValid;\n}\n\n/**\n * Creates a URL key value param, encoding the param unless the key is schain\n * @param {String} key\n * @param {String} param\n * @returns {String}\n */\nexport function encodeParam(key, param) {\n if (key === 'rp_schain') return `rp_schain=${param}`;\n return `${key}=${encodeURIComponent(param)}`;\n}\n\n/**\n * split array into multiple arrays of defined size\n * @param {Array} array\n * @param {number} size\n * @returns {Array}\n */\nfunction partitionArray(array, size) {\n const result = [];\n for (let i = 0; i < array.length; i += size) {\n result.push(array.slice(i, i + size));\n }\n return result;\n}\n\nvar hasSynced = false;\n\nexport function resetUserSync() {\n hasSynced = false;\n}\n\n/**\n * Sets the floor on the bidRequest. imp.bidfloor and imp.bidfloorcur\n * should be already set by the conversion library. if they're not,\n * or invalid, try to read from params.floor.\n * @param {*} bidRequest\n * @param {*} imp\n */\nfunction setBidFloors(bidRequest, imp) {\n if (imp.bidfloorcur != 'USD') {\n delete imp.bidfloor;\n delete imp.bidfloorcur;\n }\n\n if (!imp.bidfloor) {\n const bidFloor = parseFloat(deepAccess(bidRequest, 'params.floor'));\n\n if (!isNaN(bidFloor)) {\n imp.bidfloor = bidFloor;\n imp.bidfloorcur = 'USD';\n }\n }\n}\n\nfunction addOrtbFirstPartyData(data, nonBannerRequests, ortb2) {\n let fpd = {};\n const keywords = getAllOrtbKeywords(ortb2, ...nonBannerRequests.map(req => req.params.keywords))\n nonBannerRequests.forEach(bidRequest => {\n const bidFirstPartyData = {\n user: {ext: {data: {...bidRequest.params.visitor}}},\n site: {ext: {data: {...bidRequest.params.inventory}}}\n };\n\n // add site.content.language\n const impThatHasVideoLanguage = data.imp.find(imp => imp.ext?.prebid?.bidder?.rubicon?.video?.language);\n if (impThatHasVideoLanguage) {\n bidFirstPartyData.site.content = {\n language: impThatHasVideoLanguage.ext?.prebid?.bidder?.rubicon?.video?.language\n }\n }\n\n fpd = mergeDeep(fpd, bidRequest.ortb2 || {}, bidFirstPartyData);\n\n // add user.id from config.\n // NOTE: This is DEPRECATED. user.id should come from setConfig({ortb2}).\n const configUserId = config.getConfig('user.id');\n fpd.user.id = fpd.user.id || configUserId;\n });\n\n mergeDeep(data, fpd);\n\n if (keywords && keywords.length) {\n deepSetValue(data, 'site.keywords', keywords.join(','));\n }\n delete data?.ext?.prebid?.storedrequest;\n}\n\nregisterBidder(spec);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { registerModule as __r0 } from '../src/prebidGlobal.js';
|
|
2
|
+
import { registerBidder } from "../src/adapters/bidderFactory.js";
|
|
3
|
+
import { BANNER, VIDEO } from "../src/mediaTypes.js";
|
|
4
|
+
import { config } from "../src/config.js";
|
|
5
|
+
import { ortbConverter } from "../libraries/ortbConverter/converter.js";
|
|
6
|
+
import { deepSetValue, deepAccess, getBidIdParameter, logError, logWarn, triggerPixel, replaceAuctionPrice } from "../src/utils.js";
|
|
7
|
+
const BIDDER_CODE = 'rumble';
|
|
8
|
+
const ENDPOINT = 'https://a.ads.rmbl.ws/v1/sites/:id/ortb';
|
|
9
|
+
const VERSION = '1.0.0';
|
|
10
|
+
function fillParameters(bid) {
|
|
11
|
+
const global = config.getConfig('rumble') || {};
|
|
12
|
+
bid.params = bid.params || {};
|
|
13
|
+
['publisherId', 'siteId', 'test'].forEach(function (k) {
|
|
14
|
+
if (bid.params[k]) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
if (global[k]) {
|
|
18
|
+
bid.params[k] = global[k];
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
return bid.params;
|
|
22
|
+
}
|
|
23
|
+
export const converter = ortbConverter({
|
|
24
|
+
context: {
|
|
25
|
+
netRevenue: true,
|
|
26
|
+
ttl: 60,
|
|
27
|
+
currency: "USD"
|
|
28
|
+
},
|
|
29
|
+
request(buildRequest, imps, bidderRequest, context) {
|
|
30
|
+
const request = buildRequest(imps, bidderRequest, context);
|
|
31
|
+
const params = fillParameters(bidderRequest?.bids[0]);
|
|
32
|
+
if (params?.test) {
|
|
33
|
+
deepSetValue(request, 'test', 1);
|
|
34
|
+
}
|
|
35
|
+
deepSetValue(request, 'ext.adapter', {
|
|
36
|
+
version: VERSION,
|
|
37
|
+
name: 'prebidjs'
|
|
38
|
+
});
|
|
39
|
+
return request;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
export const spec = {
|
|
43
|
+
code: BIDDER_CODE,
|
|
44
|
+
supportedMediaTypes: [BANNER, VIDEO],
|
|
45
|
+
isBidRequestValid: function (bid) {
|
|
46
|
+
fillParameters(bid);
|
|
47
|
+
if (bid && typeof bid.params !== 'object') {
|
|
48
|
+
logError(BIDDER_CODE + ': params is not defined or is incorrect in the bidder settings.');
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const required = ['publisherId', 'siteId'];
|
|
52
|
+
for (let i = 0; i < required.length; i++) {
|
|
53
|
+
if (!getBidIdParameter(required[i], bid.params)) {
|
|
54
|
+
logError(BIDDER_CODE + `: ${required[i]} must be set as a bidder parameter`);
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const banner = deepAccess(bid, `mediaTypes.banner`);
|
|
59
|
+
const video = deepAccess(bid, `mediaTypes.video`);
|
|
60
|
+
if (!banner && !video) {
|
|
61
|
+
logWarn(BIDDER_CODE + ': either banner or video mediaType must be provided');
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
return true;
|
|
65
|
+
},
|
|
66
|
+
buildRequests: function (bidRequests, bidderRequest) {
|
|
67
|
+
const publisherId = bidRequests[0].params.publisherId;
|
|
68
|
+
const siteId = bidRequests[0].params.siteId;
|
|
69
|
+
const zoneId = bidRequests[0].params.zoneId;
|
|
70
|
+
let endpoint = ENDPOINT.replace(':id', siteId) + "?pid=" + publisherId;
|
|
71
|
+
if (zoneId) {
|
|
72
|
+
endpoint += "&a=" + zoneId;
|
|
73
|
+
}
|
|
74
|
+
return bidRequests.map(bid => {
|
|
75
|
+
return {
|
|
76
|
+
url: endpoint,
|
|
77
|
+
method: 'POST',
|
|
78
|
+
data: converter.toORTB({
|
|
79
|
+
bidRequests: [bid],
|
|
80
|
+
bidderRequest
|
|
81
|
+
}),
|
|
82
|
+
bidRequest: bid
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
interpretResponse(response, request) {
|
|
87
|
+
return converter.fromORTB({
|
|
88
|
+
response: response.body,
|
|
89
|
+
request: request.data
|
|
90
|
+
}).bids;
|
|
91
|
+
},
|
|
92
|
+
onBidWon: function (bid) {
|
|
93
|
+
if (bid.burl) {
|
|
94
|
+
triggerPixel(replaceAuctionPrice(bid.burl, bid.originalCpm || bid.cpm));
|
|
95
|
+
}
|
|
96
|
+
if (bid.nurl) {
|
|
97
|
+
triggerPixel(replaceAuctionPrice(bid.nurl, bid.originalCpm || bid.cpm));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
registerBidder(spec);
|
|
102
|
+
__r0('rumbleBidAdapter');
|
|
103
|
+
//# sourceMappingURL=rumbleBidAdapter.js.map
|