prebid.js 7.42.0 → 7.43.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/.eslintrc.js +0 -1
- package/dist/1plusXRtdProvider.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/a4gBidAdapter.js +1 -1
- package/dist/aaxBlockmeterRtdProvider.js +1 -1
- package/dist/ablidaBidAdapter.js +1 -1
- package/dist/acuityAdsBidAdapter.js +1 -1
- package/dist/adWMGAnalyticsAdapter.js +1 -1
- package/dist/adWMGBidAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/addefendBidAdapter.js +1 -1
- package/dist/adfBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adhashBidAdapter.js +1 -1
- package/dist/adheseBidAdapter.js +1 -1
- package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adlooxAdServerVideo.js +1 -1
- package/dist/adlooxAnalyticsAdapter.js +1 -1
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/admanBidAdapter.js +1 -1
- package/dist/admaruBidAdapter.js +1 -1
- package/dist/admaticBidAdapter.js +1 -1
- package/dist/admediaBidAdapter.js +1 -1
- package/dist/admixerBidAdapter.js +1 -1
- package/dist/admixerIdSystem.js +1 -1
- package/dist/adnowBidAdapter.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adnuntiusRtdProvider.js +1 -1
- package/dist/adoceanBidAdapter.js +1 -1
- package/dist/adomikAnalyticsAdapter.js +1 -1
- package/dist/adotBidAdapter.js +1 -1
- package/dist/adpartnerBidAdapter.js +1 -1
- package/dist/adplusBidAdapter.js +1 -1
- package/dist/adpod.js +1 -1
- package/dist/adponeBidAdapter.js +1 -1
- package/dist/adprimeBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adrinoBidAdapter.js +1 -1
- package/dist/adriverBidAdapter.js +1 -1
- package/dist/adriverIdSystem.js +1 -1
- package/dist/adtargetBidAdapter.js +1 -1
- package/dist/adtelligentBidAdapter.js +1 -1
- package/dist/adtelligentIdSystem.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adtrueBidAdapter.js +1 -1
- package/dist/aduptechBidAdapter.js +1 -1
- package/dist/advangelistsBidAdapter.js +1 -1
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adxpremiumAnalyticsAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/afpBidAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/airgridRtdProvider.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/akamaiDapRtdProvider.js +1 -1
- package/dist/alkimiBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/aniviewBidAdapter.js +1 -1
- package/dist/aolBidAdapter.js +1 -1
- package/dist/apacdexBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appierBidAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/appushBidAdapter.js +1 -1
- package/dist/apstreamBidAdapter.js +1 -1
- package/dist/arcspanRtdProvider.js +1 -1
- package/dist/asealBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/astraoneBidAdapter.js +1 -1
- package/dist/atsAnalyticsAdapter.js +1 -1
- package/dist/audiencerunBidAdapter.js +1 -1
- package/dist/automatadBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/beachfrontBidAdapter.js +1 -1
- package/dist/beopBidAdapter.js +1 -1
- package/dist/betweenBidAdapter.js +1 -1
- package/dist/beyondmediaBidAdapter.js +1 -1
- package/dist/bidViewability.js +1 -1
- package/dist/bidViewabilityIO.js +1 -1
- package/dist/biddoBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidscubeBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bizzclickBidAdapter.js +1 -1
- package/dist/bliinkBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/blueconicRtdProvider.js +1 -1
- package/dist/boldwinBidAdapter.js +1 -1
- package/dist/brandmetricsRtdProvider.js +1 -1
- package/dist/braveBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/brightcomBidAdapter.js +1 -1
- package/dist/brightcomSSPBidAdapter.js +1 -1
- package/dist/britepoolIdSystem.js +1 -1
- package/dist/browsiBidAdapter.js +1 -1
- package/dist/browsiRtdProvider.js +1 -1
- package/dist/bucksenseBidAdapter.js +1 -1
- package/dist/buzzoolaBidAdapter.js +1 -1
- package/dist/byDataAnalyticsAdapter.js +1 -1
- package/dist/c1xBidAdapter.js +1 -1
- package/dist/captifyRtdProvider.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/categoryTranslation.js +1 -1
- package/dist/ccxBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/cleanioRtdProvider.js +1 -1
- package/dist/cleanmedianetBidAdapter.js +1 -1
- package/dist/clickforceBidAdapter.js +1 -1
- package/dist/codefuelBidAdapter.js +1 -1
- package/dist/cointrafficBidAdapter.js +1 -1
- package/dist/coinzillaBidAdapter.js +1 -1
- package/dist/colossussspBidAdapter.js +1 -1
- package/dist/compassBidAdapter.js +1 -1
- package/dist/concertAnalyticsAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/confiantRtdProvider.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagement.js +1 -1
- package/dist/consentManagementGpp.js +1 -1
- package/dist/consentManagementUsp.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contentexchangeBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/cpmstarBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/criteoIdSystem.js +1 -1
- package/dist/currency.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/czechAdIdSystem.js +1 -1
- package/dist/dacIdSystem.js +1 -1
- package/dist/dailyhuntBidAdapter.js +1 -1
- package/dist/dataControllerModule.js +1 -1
- package/dist/datablocksAnalyticsAdapter.js +1 -1
- package/dist/datablocksBidAdapter.js +1 -1
- package/dist/datawrkzBidAdapter.js +1 -1
- package/dist/dchain.js +1 -1
- package/dist/debugging-standalone.js +1 -1
- package/dist/debugging.js +1 -1
- package/dist/deepintentBidAdapter.js +1 -1
- package/dist/deepintentDpesIdSystem.js +1 -1
- package/dist/deltaprojectsBidAdapter.js +1 -1
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dgkeywordRtdProvider.js +1 -1
- package/dist/dianomiBidAdapter.js +1 -1
- package/dist/discoveryBidAdapter.js +1 -1
- package/dist/displayioBidAdapter.js +1 -1
- package/dist/distroscaleBidAdapter.js +1 -1
- package/dist/dmdIdSystem.js +1 -1
- package/dist/docereeBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/e_volutionBidAdapter.js +1 -1
- package/dist/ebdrBidAdapter.js +1 -1
- package/dist/emx_digitalBidAdapter.js +1 -1
- package/dist/engageyaBidAdapter.js +1 -1
- package/dist/enrichmentFpdModule.js +1 -1
- package/dist/eplanningAnalyticsAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/etargetBidAdapter.js +1 -1
- package/dist/express.js +1 -1
- package/dist/fabrickIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/fledgeForGpt.js +1 -1
- package/dist/fluctBidAdapter.js +1 -1
- package/dist/fpdModule.js +1 -1
- package/dist/freeWheelAdserverVideo.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/ftrackIdSystem.js +1 -1
- package/dist/gammaBidAdapter.js +1 -1
- package/dist/gamoshiBidAdapter.js +1 -1
- package/dist/gdprEnforcement.js +1 -1
- package/dist/genericAnalyticsAdapter.js +1 -1
- package/dist/geoedgeRtdProvider.js +1 -1
- package/dist/getintentBidAdapter.js +1 -1
- package/dist/gjirafaBidAdapter.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/globalsunBidAdapter.js +1 -1
- package/dist/glomexBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/gnetBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/googleAnalyticsAdapter.js +1 -1
- package/dist/gothamadsBidAdapter.js +1 -1
- package/dist/gptPreAuction.js +1 -1
- package/dist/gravitoIdSystem.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/growadvertisingBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronAnalyticsAdapter.js +1 -1
- package/dist/hadronIdSystem.js +1 -1
- package/dist/hadronRtdProvider.js +1 -1
- package/dist/holidBidAdapter.js +1 -1
- package/dist/hybridBidAdapter.js +1 -1
- package/dist/iasRtdProvider.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/idImportLibrary.js +1 -1
- package/dist/idWardRtdProvider.js +1 -1
- package/dist/identityLinkIdSystem.js +1 -1
- package/dist/idxBidAdapter.js +1 -1
- package/dist/idxIdSystem.js +1 -1
- package/dist/imRtdProvider.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/imuIdSystem.js +1 -1
- package/dist/incrxBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/innityBidAdapter.js +1 -1
- package/dist/inskinBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/instreamTracking.js +1 -1
- package/dist/integr8BidAdapter.js +1 -1
- package/dist/intentIqIdSystem.js +1 -1
- package/dist/interactiveOffersBidAdapter.js +1 -1
- package/dist/intersectionRtdProvider.js +1 -1
- package/dist/invamiaBidAdapter.js +1 -1
- package/dist/invibesBidAdapter.js +1 -1
- package/dist/invisiblyAnalyticsAdapter.js +1 -1
- package/dist/ipromBidAdapter.js +1 -1
- package/dist/iqmBidAdapter.js +1 -1
- package/dist/iqzoneBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justIdSystem.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerRtdProvider.js +1 -1
- package/dist/jwplayerVideoProvider.js +1 -1
- package/dist/kargoAnalyticsAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kinessoIdSystem.js +1 -1
- package/dist/koblerBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/konduitWrapper.js +1 -1
- package/dist/krushmediaBidAdapter.js +1 -1
- package/dist/kubientBidAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lemmaDigitalBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/limelightDigitalBidAdapter.js +1 -1
- package/dist/liveIntentAnalyticsAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/livewrappedAnalyticsAdapter.js +1 -1
- package/dist/livewrappedBidAdapter.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/lkqdBidAdapter.js +1 -1
- package/dist/lockerdomeBidAdapter.js +1 -1
- package/dist/loganBidAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/lotamePanoramaIdSystem.js +1 -1
- package/dist/lunamediahbBidAdapter.js +1 -1
- package/dist/luponmediaBidAdapter.js +1 -1
- package/dist/mabidderBidAdapter.js +1 -1
- package/dist/madvertiseBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/malltvBidAdapter.js +1 -1
- package/dist/mantisBidAdapter.js +1 -1
- package/dist/marsmediaAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mass.js +1 -1
- package/dist/mathildeadsBidAdapter.js +1 -1
- package/dist/mediaforceBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/medianetRtdProvider.js +1 -1
- package/dist/mediasniperBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/merkleIdSystem.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/mgidRtdProvider.js +1 -1
- package/dist/microadBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/missenaBidAdapter.js +1 -1
- package/dist/mobfoxpbBidAdapter.js +1 -1
- package/dist/multibid.js +1 -1
- package/dist/mwOpenLinkIdSystem.js +1 -1
- package/dist/my6senseBidAdapter.js +1 -1
- package/dist/mytargetBidAdapter.js +1 -1
- package/dist/nativoBidAdapter.js +1 -1
- package/dist/naveggIdSystem.js +1 -1
- package/dist/netIdSystem.js +1 -1
- package/dist/neuwoRtdProvider.js +1 -1
- package/dist/newspassidBidAdapter.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nextrollBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +501 -501
- package/dist/novatiqIdSystem.js +1 -1
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/oneKeyIdSystem.js +1 -1
- package/dist/oneKeyRtdProvider.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/onomagicBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/open8BidAdapter.js +1 -1
- package/dist/openwebBidAdapter.js +1 -1
- package/dist/openxAnalyticsAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/openxOrtbBidAdapter.js +1 -1
- package/dist/operaadsBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/optimeraRtdProvider.js +1 -1
- package/dist/optimonAnalyticsAdapter.js +1 -1
- package/dist/optoutBidAdapter.js +1 -1
- package/dist/orbidderBidAdapter.js +1 -1
- package/dist/orbitsoftBidAdapter.js +1 -1
- package/dist/ortbConverter.js +1 -1
- package/dist/otmBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/oxxionRtdProvider.js +1 -1
- package/dist/ozoneBidAdapter.js +1 -1
- package/dist/padsquadBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pianoDmpAnalyticsAdapter.js +1 -1
- package/dist/pilotxBidAdapter.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
- package/dist/priceFloors.js +1 -1
- package/dist/prismaBidAdapter.js +1 -1
- package/dist/proxistoreBidAdapter.js +1 -1
- package/dist/pubCommonId.js +1 -1
- package/dist/pubProvidedIdSystem.js +1 -1
- package/dist/pubgeniusBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubperfAnalyticsAdapter.js +1 -1
- package/dist/pubstackAnalyticsAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubwiseBidAdapter.js +1 -1
- package/dist/pubxBidAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pulsepointAnalyticsAdapter.js +1 -1
- package/dist/pulsepointBidAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/quantcastIdSystem.js +1 -1
- package/dist/qwarryBidAdapter.js +1 -1
- package/dist/radsBidAdapter.js +1 -1
- package/dist/rakutenBidAdapter.js +1 -1
- package/dist/rasBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/realvuAnalyticsAdapter.js +1 -1
- package/dist/reconciliationRtdProvider.js +1 -1
- package/dist/redtramBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevadRtdProvider.js +1 -1
- package/dist/relevantAnalyticsAdapter.js +1 -1
- package/dist/resetdigitalBidAdapter.js +1 -1
- package/dist/revcontentBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/richaudienceBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rivrAnalyticsAdapter.js +1 -1
- package/dist/roxotAnalyticsAdapter.js +1 -1
- package/dist/rtbhouseBidAdapter.js +1 -1
- package/dist/rtbsapeBidAdapter.js +1 -1
- package/dist/rtdModule.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/s2sTesting.js +1 -1
- package/dist/saambaaBidAdapter.js +1 -1
- package/dist/scaleableAnalyticsAdapter.js +1 -1
- package/dist/scatteredBidAdapter.js +1 -1
- package/dist/schain.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharedIdSystem.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/showheroes-bsBidAdapter.js +1 -1
- package/dist/sigmoidAnalyticsAdapter.js +1 -1
- package/dist/sirdataRtdProvider.js +1 -1
- package/dist/sizeMappingV2.js +1 -1
- package/dist/slimcutBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smarthubBidAdapter.js +1 -1
- package/dist/smarticoBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smartyadsBidAdapter.js +1 -1
- package/dist/smartytechBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -1
- package/dist/sonobiAnalyticsAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/spotxBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/staqAnalyticsAdapter.js +1 -1
- package/dist/stroeerCoreBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/talkadsBidAdapter.js +1 -1
- package/dist/tapadIdSystem.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/teadsIdSystem.js +1 -1
- package/dist/telariaBidAdapter.js +1 -1
- package/dist/temedyaBidAdapter.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/theAdxBidAdapter.js +1 -1
- package/dist/timeoutRtdProvider.js +1 -1
- package/dist/tncIdSystem.js +1 -1
- package/dist/topicsFpdModule.js +1 -1
- package/dist/tpmnBidAdapter.js +1 -1
- package/dist/trafficgateBidAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/truereachBidAdapter.js +1 -1
- package/dist/trustpidSystem.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/ucfunnelBidAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unicornBidAdapter.js +1 -1
- package/dist/unifiedIdSystem.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/validationFpdModule.js +1 -1
- package/dist/vdoaiBidAdapter.js +1 -1
- package/dist/ventesBidAdapter.js +1 -1
- package/dist/verizonMediaIdSystem.js +1 -1
- package/dist/vibrantmediaBidAdapter.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videoModule.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/videoheroesBidAdapter.js +1 -1
- package/dist/videojsVideoProvider.js +1 -1
- package/dist/videonowBidAdapter.js +1 -1
- package/dist/videoreachBidAdapter.js +1 -1
- package/dist/vidoomyBidAdapter.js +1 -1
- package/dist/viewability.js +1 -1
- package/dist/viewdeosDXBidAdapter.js +1 -1
- package/dist/viouslyBidAdapter.js +1 -1
- package/dist/viqeoBidAdapter.js +1 -1
- package/dist/visiblemeasuresBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vlybyBidAdapter.js +1 -1
- package/dist/voxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/waardexBidAdapter.js +1 -1
- package/dist/weboramaRtdProvider.js +1 -1
- package/dist/welectBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/wipesBidAdapter.js +1 -1
- package/dist/xeBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yandexBidAdapter.js +1 -1
- package/dist/yieldlabBidAdapter.js +1 -1
- package/dist/yieldliftBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldmoSyntheticInventoryModule.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/yieldoneBidAdapter.js +1 -1
- package/dist/yuktamediaAnalyticsAdapter.js +1 -1
- package/dist/zeotapIdPlusIdSystem.js +1 -1
- package/dist/zetaBidAdapter.js +1 -1
- package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/dist/zeusPrimeRtdProvider.js +2 -2
- package/features.json +2 -1
- package/libraries/ortbConverter/processors/default.js +11 -8
- package/modules/adagioBidAdapter.js +41 -0
- package/modules/adagioBidAdapter.md +6 -0
- package/modules/addefendBidAdapter.js +2 -1
- package/modules/adkernelBidAdapter.js +2 -1
- package/modules/adpod.js +2 -3
- package/modules/adtelligentBidAdapter.js +8 -1
- package/modules/adxcgAnalyticsAdapter.js +2 -1
- package/modules/airgridRtdProvider.js +17 -7
- package/modules/atsAnalyticsAdapter.js +2 -1
- package/modules/concertBidAdapter.js +24 -41
- package/modules/consentManagement.js +2 -1
- package/modules/consentManagementGpp.js +2 -1
- package/modules/displayioBidAdapter.js +18 -8
- package/modules/express.js +7 -5
- package/modules/gumgumBidAdapter.js +2 -2
- package/modules/id5AnalyticsAdapter.js +2 -1
- package/modules/mabidderBidAdapter.js +3 -1
- package/modules/marsmediaAnalyticsAdapter.js +2 -1
- package/modules/medianetAnalyticsAdapter.js +124 -59
- package/modules/medianetBidAdapter.js +6 -5
- package/modules/orbidderBidAdapter.js +2 -1
- package/modules/permutiveRtdProvider.md +54 -84
- package/modules/pixfutureBidAdapter.js +2 -1
- package/modules/pubCommonId.js +3 -2
- package/modules/pubxaiAnalyticsAdapter.js +2 -1
- package/modules/rivrAnalyticsAdapter.js +2 -1
- package/modules/rtbhouseBidAdapter.js +10 -3
- package/modules/sizeMappingV2.js +1 -1
- package/modules/smaatoBidAdapter.js +16 -4
- package/modules/snigelBidAdapter.js +2 -1
- package/modules/sonobiBidAdapter.js +64 -1
- package/modules/tappxBidAdapter.js +2 -1
- package/modules/terceptAnalyticsAdapter.js +2 -1
- package/modules/userId/index.js +6 -5
- package/modules/yuktamediaAnalyticsAdapter.js +2 -1
- package/package.json +3 -1
- package/plugins/pbjsGlobals.js +16 -5
- package/src/Renderer.js +4 -1
- package/src/adapterManager.js +2 -2
- package/src/adapters/bidderFactory.js +46 -41
- package/src/auction.js +10 -5
- package/src/fpd/enrichment.js +1 -1
- package/src/prebid.js +96 -89
- package/src/prebidGlobal.js +14 -6
- package/src/storageManager.js +29 -76
- package/src/utils.js +5 -2
- package/test/spec/auctionmanager_spec.js +113 -105
- package/test/spec/modules/adagioBidAdapter_spec.js +70 -0
- package/test/spec/modules/adlooxAdServerVideo_spec.js +1 -0
- package/test/spec/modules/adtelligentBidAdapter_spec.js +11 -10
- package/test/spec/modules/airgridRtdProvider_spec.js +9 -3
- package/test/spec/modules/concertBidAdapter_spec.js +12 -81
- package/test/spec/modules/gumgumBidAdapter_spec.js +3 -3
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +127 -121
- package/test/spec/modules/medianetAnalyticsAdapter_spec.js +27 -1
- package/test/spec/modules/nexx360BidAdapter_spec.js +41 -39
- package/test/spec/modules/openxOrtbBidAdapter_spec.js +53 -49
- package/test/spec/modules/prebidServerBidAdapter_spec.js +148 -133
- package/test/spec/modules/realvuAnalyticsAdapter_spec.js +1 -0
- package/test/spec/modules/rtbhouseBidAdapter_spec.js +23 -9
- package/test/spec/modules/rubiconBidAdapter_spec.js +767 -761
- package/test/spec/modules/sizeMappingV2_spec.js +4 -0
- package/test/spec/modules/smaatoBidAdapter_spec.js +32 -0
- package/test/spec/modules/sonobiBidAdapter_spec.js +13 -0
- package/test/spec/unit/core/adapterManager_spec.js +5 -2
- package/test/spec/unit/core/bidderFactory_spec.js +4 -0
- package/test/spec/unit/core/storageManager_spec.js +84 -34
- package/test/spec/unit/pbjs_api_spec.js +129 -121
|
@@ -13,7 +13,7 @@ gulp build --modules=rtdModule,permutiveRtdProvider
|
|
|
13
13
|
|
|
14
14
|
> Note that the global RTD module, `rtdModule`, is a prerequisite of the Permutive RTD module.
|
|
15
15
|
|
|
16
|
-
You then need to enable the Permutive RTD in your Prebid configuration
|
|
16
|
+
You then need to enable the Permutive RTD in your Prebid configuration. Below is an example of the format:
|
|
17
17
|
|
|
18
18
|
```javascript
|
|
19
19
|
pbjs.setConfig({
|
|
@@ -37,59 +37,16 @@ pbjs.setConfig({
|
|
|
37
37
|
The parameters below provide configurability for general behaviours of the RTD submodule,
|
|
38
38
|
as well as enabling settings for specific use cases mentioned above (e.g. acbidders).
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|------------------------|----------|-----------------------------------------------------------------------------------------------|---------|
|
|
42
|
-
| name | String | This should always be `permutive` | - |
|
|
43
|
-
| waitForIt | Boolean | Should be `true` if there's an `auctionDelay` defined (optional) | `false` |
|
|
44
|
-
| params | Object | | - |
|
|
45
|
-
| params.acBidders | String[] | An array of bidders which should receive AC cohorts. | `[]` |
|
|
46
|
-
| params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` |
|
|
47
|
-
| params.transformations | Object[] | An array of configurations for ORTB2 user data transformations | |
|
|
48
|
-
| params.overwrites | Object | An object specifying functions for custom targeting logic for bidders. | - |
|
|
49
|
-
|
|
50
|
-
##### The `transformations` parameter
|
|
51
|
-
|
|
52
|
-
This array contains configurations for transformations we'll apply to the Permutive object in the ORTB2 `user.data` array. The results of these transformations will be appended to the `user.data` array that's attached to ORTB2 bid requests.
|
|
53
|
-
|
|
54
|
-
###### Supported transformations
|
|
55
|
-
|
|
56
|
-
| Name | ID | Config structure | Description |
|
|
57
|
-
|----------------|-----|---------------------------------------------------|--------------------------------------------------------------------------------------|
|
|
58
|
-
| IAB taxonomies | iab | { segtax: number, iabIds: Object<number, number>} | Transform segment IDs from Permutive to IAB (note: alpha version, subject to change) |
|
|
59
|
-
|
|
60
|
-
##### The `overwrites` parameter
|
|
61
|
-
|
|
62
|
-
The keys for this object should match a bidder (e.g. `rubicon`), which then can define a function to overwrite the customer targeting logic.
|
|
63
|
-
|
|
64
|
-
```javascript
|
|
65
|
-
{
|
|
66
|
-
params: {
|
|
67
|
-
overwrites: {
|
|
68
|
-
rubicon: function customTargeting(bid, data, acEnabled, utils, defaultFn) {
|
|
69
|
-
if (defaultFn) {
|
|
70
|
-
bid = defaultFn(bid, data, acEnabled)
|
|
71
|
-
}
|
|
72
|
-
if (data.gam && data.gam.length) {
|
|
73
|
-
utils.deepSetValue(bid, 'params.visitor.permutive', data.gam)
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
###### `customTargeting` function parameters
|
|
82
|
-
|
|
83
|
-
| Name | Description |
|
|
84
|
-
|--------------|--------------------------------------------------------------------------------|
|
|
85
|
-
| `bid` | The bid request object. |
|
|
86
|
-
| `data` | Permutive's targeting data read from localStorage. |
|
|
87
|
-
| `acEnabled` | Boolean stating whether Audience Connect is enabled via `acBidders`. |
|
|
88
|
-
| `utils` | An object of helpful utilities. `(deepSetValue, deepAccess, isFn, mergeDeep)`. |
|
|
89
|
-
| `defaultFn` | The default targeting function. |
|
|
90
|
-
|
|
91
|
-
|
|
40
|
+
## Parameters
|
|
92
41
|
|
|
42
|
+
{: .table .table-bordered .table-striped }
|
|
43
|
+
| Name | Type | Description | Default |
|
|
44
|
+
| ---------------------- | -------------------- | --------------------------------------------------------------------------------------------- | ------------------ |
|
|
45
|
+
| name | String | This should always be `permutive` | - |
|
|
46
|
+
| waitForIt | Boolean | Should be `true` if there's an `auctionDelay` defined (optional) | `false` |
|
|
47
|
+
| params | Object | | - |
|
|
48
|
+
| params.acBidders | String[] | An array of bidder codes to share cohorts with in certain versions of Prebid, see below | `[]` |
|
|
49
|
+
| params.maxSegs | Integer | Maximum number of cohorts to be included in either the `permutive` or `p_standard` key-value. | `500` |
|
|
93
50
|
|
|
94
51
|
#### Context
|
|
95
52
|
|
|
@@ -100,7 +57,7 @@ As Prebid utilizes TCF vendor consent, for the Permutive RTD module to load, Per
|
|
|
100
57
|
|
|
101
58
|
#### Instructions
|
|
102
59
|
|
|
103
|
-
1. Publisher enables
|
|
60
|
+
1. Publisher enables rules within Prebid GDPR module
|
|
104
61
|
2. Label Permutive as an exception, as shown below.
|
|
105
62
|
```javascript
|
|
106
63
|
[
|
|
@@ -123,29 +80,58 @@ Before making any updates to this configuration, please ensure that this approac
|
|
|
123
80
|
|
|
124
81
|
## Cohort Activation with Permutive RTD Module
|
|
125
82
|
|
|
126
|
-
### _Enabling Standard Cohorts_
|
|
127
|
-
|
|
128
83
|
**Note**: Publishers must be enabled on the above Permutive RTD Submodule to enable Standard Cohorts.
|
|
129
84
|
|
|
130
|
-
|
|
85
|
+
### _Enabling Publisher Cohorts_
|
|
86
|
+
|
|
87
|
+
#### Standard Cohorts
|
|
88
|
+
|
|
89
|
+
The Permutive RTD module sets Standard Cohort IDs as bidder-specific ortb2.user.data first-party data, following the Prebid ortb2 convention. Cohorts will be sent in the `p_standard` key-value.
|
|
90
|
+
|
|
91
|
+
For Prebid versions below 7.29.0, populate the acbidders config in the Permutive RTD with an array of bidder codes with whom you wish to share Standard Cohorts with. You also need to permission the bidders by communicating the bidder list to the Permutive team at strategicpartnershipops@permutive.com.
|
|
131
92
|
|
|
132
|
-
|
|
93
|
+
For Prebid versions 7.29.0 and above, do not populate bidder codes in acbidders for the purpose of sharing Standard Cohorts (Note: there may be other business needs that require you to populate acbidders for Prebid versions 7.29.0+, see Advertiser Cohorts below). To share Standard Cohorts with bidders in Prebid versions 7.29.0 and above, communicate the bidder list to the Permutive team at strategicpartnershipops@permutive.com.
|
|
133
94
|
|
|
134
|
-
|
|
95
|
+
#### _Bidder Specific Requirements for Standard Cohorts_
|
|
96
|
+
For PubMatic or OpenX: Please ensure you are using Prebid.js 7.13 (or later)
|
|
97
|
+
For Xandr: Please ensure you are using Prebid.js 7.29 (or later)
|
|
98
|
+
For Equativ: Please ensure you are using Prebid.js 7.26 (or later)
|
|
99
|
+
|
|
100
|
+
#### Custom Cohorts
|
|
101
|
+
|
|
102
|
+
The Permutive RTD module also supports passing any of the **Custom** Cohorts created in the dashboard to some SSP partners for targeting
|
|
103
|
+
e.g. setting up publisher deals. For these activations, cohort IDs are set in bidder-specific locations per ad unit (custom parameters).
|
|
104
|
+
|
|
105
|
+
Currently, bidders with known support for custom cohort targeting are:
|
|
106
|
+
|
|
107
|
+
- Xandr
|
|
108
|
+
- Magnite
|
|
109
|
+
|
|
110
|
+
When enabling the respective Activation for a cohort in Permutive, this module will automatically attach that cohort ID to the bid request.
|
|
111
|
+
There is no need to enable individual bidders in the module configuration, it will automatically reflect which SSP integrations you have enabled in your Permutive dashboard.
|
|
112
|
+
Permutive cohorts will be sent in the permutive key-value.
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### _Enabling Advertiser Cohorts_
|
|
116
|
+
|
|
117
|
+
If you are connecting to an Advertiser seat within Permutive to share Advertiser Cohorts, populate the acbidders config in the Permutive RTD with an array of bidder codes with whom you wish to share Advertiser Cohorts with.
|
|
118
|
+
|
|
119
|
+
### _Managing acbidders_
|
|
120
|
+
|
|
121
|
+
If your business needs require you to populate acbidders with bidder codes based on the criteria above, there are **two** ways to manage it.
|
|
135
122
|
|
|
136
123
|
#### Option 1 - Automated
|
|
137
124
|
|
|
138
|
-
|
|
125
|
+
If you are using Prebid.js v7.13.0+, bidders may be added to or removed from the acbidders config directly within the Permutive Dashboard.
|
|
139
126
|
|
|
140
127
|
**Permutive can do this on your behalf**. Simply contact your Permutive CSM with strategicpartnershipops@permutive.com on cc,
|
|
141
128
|
indicating which bidders you would like added.
|
|
142
129
|
|
|
143
|
-
Or, a publisher may do this themselves within the
|
|
130
|
+
Or, a publisher may do this themselves within the Permutive Dashboard using the below instructions.
|
|
144
131
|
|
|
145
132
|
##### Create Integration
|
|
146
133
|
|
|
147
|
-
In order to
|
|
148
|
-
it is necessary to first enable the prebid integration in the integrations page (settings).
|
|
134
|
+
In order to manage acbidders via the Permutive dashboard, it is necessary to first enable the Prebid integration via the integrations page (settings).
|
|
149
135
|
|
|
150
136
|
**Note on Revenue Insights:** The prebid integration includes a feature for revenue insights,
|
|
151
137
|
which is not required for the purpose of updating acbidders config.
|
|
@@ -153,31 +139,15 @@ Please see [this document](https://support.permutive.com/hc/en-us/articles/36001
|
|
|
153
139
|
|
|
154
140
|
##### Update acbidders
|
|
155
141
|
|
|
156
|
-
The input for the “Data Provider config” is
|
|
157
|
-
A valid “bidder code” needs to be entered in order to enable Standard Cohorts to be passed to the desired partner.
|
|
158
|
-
The [prebid Bidders page](https://docs.prebid.org/dev-docs/bidders.html) contains instructions and a link to a list of possible bidder codes.
|
|
142
|
+
The input for the “Data Provider config” is a multi-input free text. A valid “bidder code” needs to be entered in order to enable Standard or Advertiser Cohorts to be passed to the desired partner. The [prebid Bidders page](https://docs.prebid.org/dev-docs/bidders.html) contains instructions and a link to a list of possible bidder codes.
|
|
159
143
|
|
|
160
|
-
|
|
144
|
+
Bidders can be added or removed from acbidders using this feature, however, this will not impact any bidders that have been applied using the manual method below.
|
|
161
145
|
|
|
162
146
|
#### Option 2 - Manual
|
|
163
147
|
|
|
164
|
-
As a secondary option,
|
|
148
|
+
As a secondary option, bidders may be added manually.
|
|
165
149
|
|
|
166
|
-
To do so,
|
|
150
|
+
To do so, define which bidders should receive Standard or Advertiser Cohorts by
|
|
167
151
|
including the _bidder code_ of any bidder in the `acBidders` array.
|
|
168
152
|
|
|
169
|
-
**Note:** If
|
|
170
|
-
|
|
171
|
-
### _Enabling Custom Cohort IDs for Targeting_
|
|
172
|
-
|
|
173
|
-
Separately from Standard Cohorts - The Permutive RTD module also supports passing any of the **custom** cohorts created in the dashboard to some SSP partners for targeting
|
|
174
|
-
e.g. setting up publisher deals. For these activations, cohort IDs are set in bidder-specific locations per ad unit (custom parameters).
|
|
175
|
-
|
|
176
|
-
Currently, bidders with known support for custom cohort targeting are:
|
|
177
|
-
|
|
178
|
-
- Xandr
|
|
179
|
-
- Magnite
|
|
180
|
-
|
|
181
|
-
When enabling the respective Activation for a cohort in Permutive, this module will automatically attach that cohort ID to the bid request.
|
|
182
|
-
There is no need to enable individual bidders in the module configuration, it will automatically reflect which SSP integrations you have enabled in your Permutive dashboard.
|
|
183
|
-
Permutive cohorts will be sent in the permutive key-value.
|
|
153
|
+
**Note:** If you ever need to remove a manually-added bidder, the bidder will also need to be removed manually.
|
|
@@ -14,6 +14,7 @@ import {
|
|
|
14
14
|
transformBidderParamKeywords
|
|
15
15
|
} from '../src/utils.js';
|
|
16
16
|
import { auctionManager } from '../src/auctionManager.js';
|
|
17
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
17
18
|
|
|
18
19
|
const SOURCE = 'pbjs';
|
|
19
20
|
const storageManager = getStorageManager({bidderCode: 'pixfuture'});
|
|
@@ -132,7 +133,7 @@ export const spec = {
|
|
|
132
133
|
method: 'POST',
|
|
133
134
|
options: {withCredentials: true},
|
|
134
135
|
data: {
|
|
135
|
-
v:
|
|
136
|
+
v: getGlobal().version,
|
|
136
137
|
pageUrl: referer,
|
|
137
138
|
bidId: bidRequest.bidId,
|
|
138
139
|
auctionId: bidRequest.auctionId,
|
package/modules/pubCommonId.js
CHANGED
|
@@ -10,6 +10,7 @@ import CONSTANTS from '../src/constants.json';
|
|
|
10
10
|
import { getStorageManager } from '../src/storageManager.js';
|
|
11
11
|
import {timedAuctionHook} from '../src/utils/perfMetrics.js';
|
|
12
12
|
import {VENDORLESS_GVLID} from '../src/consentHandler.js';
|
|
13
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
13
14
|
|
|
14
15
|
const storage = getStorageManager({moduleName: 'pubCommonId', gvlid: VENDORLESS_GVLID});
|
|
15
16
|
|
|
@@ -168,7 +169,7 @@ export function getPubcidConfig() { return pubcidConfig; }
|
|
|
168
169
|
*/
|
|
169
170
|
|
|
170
171
|
export const requestBidHook = timedAuctionHook('pubCommonId', function requestBidHook(next, config) {
|
|
171
|
-
let adUnits = config.adUnits ||
|
|
172
|
+
let adUnits = config.adUnits || getGlobal().adUnits;
|
|
172
173
|
let pubcid = null;
|
|
173
174
|
|
|
174
175
|
// Pass control to the next function if not enabled
|
|
@@ -292,7 +293,7 @@ export function initPubcid() {
|
|
|
292
293
|
(storage.hasLocalStorage() && readValue(OPTOUT_NAME, LOCAL_STORAGE));
|
|
293
294
|
|
|
294
295
|
if (!optout) {
|
|
295
|
-
|
|
296
|
+
getGlobal().requestBids.before(requestBidHook);
|
|
296
297
|
}
|
|
297
298
|
}
|
|
298
299
|
|
|
@@ -3,6 +3,7 @@ import { ajax } from '../src/ajax.js';
|
|
|
3
3
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
5
|
import CONSTANTS from '../src/constants.json';
|
|
6
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
6
7
|
|
|
7
8
|
const emptyUrl = '';
|
|
8
9
|
const analyticsType = 'endpoint';
|
|
@@ -180,7 +181,7 @@ function send(data, status) {
|
|
|
180
181
|
search: {
|
|
181
182
|
auctionTimestamp: auctionTimestamp,
|
|
182
183
|
pubxaiAnalyticsVersion: pubxaiAnalyticsVersion,
|
|
183
|
-
prebidVersion:
|
|
184
|
+
prebidVersion: getGlobal().version
|
|
184
185
|
}
|
|
185
186
|
});
|
|
186
187
|
if (status == 'bidwon') {
|
|
@@ -2,6 +2,7 @@ import {ajax} from '../src/ajax.js';
|
|
|
2
2
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
3
|
import adapterManager from '../src/adapterManager.js';
|
|
4
4
|
import * as utils from '../src/utils.js';
|
|
5
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
5
6
|
|
|
6
7
|
const analyticsType = 'endpoint';
|
|
7
8
|
|
|
@@ -20,7 +21,7 @@ rivrAnalytics.originEnableAnalytics = rivrAnalytics.enableAnalytics;
|
|
|
20
21
|
// override enableAnalytics so we can get access to the config passed in from the page
|
|
21
22
|
rivrAnalytics.enableAnalytics = (config) => {
|
|
22
23
|
if (window.rivraddon && window.rivraddon.analytics) {
|
|
23
|
-
window.rivraddon.analytics.enableAnalytics(config, {utils, ajax, pbjsGlobalVariable:
|
|
24
|
+
window.rivraddon.analytics.enableAnalytics(config, {utils, ajax, pbjsGlobalVariable: getGlobal()});
|
|
24
25
|
rivrAnalytics.originEnableAnalytics(config);
|
|
25
26
|
}
|
|
26
27
|
};
|
|
@@ -56,7 +56,7 @@ export const spec = {
|
|
|
56
56
|
site: mapSite(validBidRequests, bidderRequest),
|
|
57
57
|
cur: DEFAULT_CURRENCY_ARR,
|
|
58
58
|
test: validBidRequests[0].params.test || 0,
|
|
59
|
-
source: mapSource(validBidRequests[0]),
|
|
59
|
+
source: mapSource(validBidRequests[0], bidderRequest),
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
if (bidderRequest && bidderRequest.gdprConsent && bidderRequest.gdprConsent.gdprApplies) {
|
|
@@ -228,6 +228,13 @@ function mapImpression(slot, bidderRequest) {
|
|
|
228
228
|
delete imp.ext.ae;
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
|
+
|
|
232
|
+
const tid = deepAccess(slot, 'ortb2Imp.ext.tid');
|
|
233
|
+
if (tid) {
|
|
234
|
+
imp.ext = imp.ext || {};
|
|
235
|
+
imp.ext.tid = tid;
|
|
236
|
+
}
|
|
237
|
+
|
|
231
238
|
return imp;
|
|
232
239
|
}
|
|
233
240
|
|
|
@@ -283,9 +290,9 @@ function mapSite(slot, bidderRequest) {
|
|
|
283
290
|
* @param {object} slot Ad Unit Params by Prebid
|
|
284
291
|
* @returns {object} Source by OpenRTB 2.5 §3.2.2
|
|
285
292
|
*/
|
|
286
|
-
function mapSource(slot) {
|
|
293
|
+
function mapSource(slot, bidderRequest) {
|
|
287
294
|
const source = {
|
|
288
|
-
tid:
|
|
295
|
+
tid: bidderRequest?.auctionId || '',
|
|
289
296
|
};
|
|
290
297
|
|
|
291
298
|
return source;
|
package/modules/sizeMappingV2.js
CHANGED
|
@@ -182,7 +182,7 @@ export function checkAdUnitSetupHook(adUnits) {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
if (mediaTypes.video) {
|
|
185
|
+
if (FEATURES.VIDEO && mediaTypes.video) {
|
|
186
186
|
if (mediaTypes.video.playerSize) {
|
|
187
187
|
// Ad unit is using 'mediaTypes.video.playerSize' instead of the new property 'sizeConfig'. Apply the old checks!
|
|
188
188
|
validatedVideo = validatedBanner ? adUnitSetupChecks.validateVideoMediaType(validatedBanner) : adUnitSetupChecks.validateVideoMediaType(adUnit);
|
|
@@ -68,11 +68,23 @@ const buildOpenRtbBidRequest = (bidRequest, bidderRequest) => {
|
|
|
68
68
|
deepSetValue(requestTemplate, 'regs.ext.gpp_sid', ortb2.regs.gpp_sid);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
if (ortb2.device?.ifa !== undefined) {
|
|
72
|
+
deepSetValue(requestTemplate, 'device.ifa', ortb2.device.ifa);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (ortb2.device?.geo !== undefined) {
|
|
76
|
+
deepSetValue(requestTemplate, 'device.geo', ortb2.device.geo);
|
|
77
|
+
}
|
|
78
|
+
|
|
71
79
|
if (deepAccess(bidRequest, 'params.app')) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
80
|
+
if (!deepAccess(requestTemplate, 'device.geo')) {
|
|
81
|
+
const geo = deepAccess(bidRequest, 'params.app.geo');
|
|
82
|
+
deepSetValue(requestTemplate, 'device.geo', geo);
|
|
83
|
+
}
|
|
84
|
+
if (!deepAccess(requestTemplate, 'device.ifa')) {
|
|
85
|
+
const ifa = deepAccess(bidRequest, 'params.app.ifa');
|
|
86
|
+
deepSetValue(requestTemplate, 'device.ifa', ifa);
|
|
87
|
+
}
|
|
76
88
|
}
|
|
77
89
|
|
|
78
90
|
const eids = deepAccess(bidRequest, 'userIdAsEids');
|
|
@@ -3,6 +3,7 @@ import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
|
3
3
|
import {BANNER} from '../src/mediaTypes.js';
|
|
4
4
|
import {deepAccess, isArray, isFn, isPlainObject} from '../src/utils.js';
|
|
5
5
|
import {hasPurpose1Consent} from '../src/utils/gpdr.js';
|
|
6
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
6
7
|
|
|
7
8
|
const BIDDER_CODE = 'snigel';
|
|
8
9
|
const GVLID = 1076;
|
|
@@ -33,7 +34,7 @@ export const spec = {
|
|
|
33
34
|
test: getTestFlag(),
|
|
34
35
|
devw: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
|
|
35
36
|
devh: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight,
|
|
36
|
-
version:
|
|
37
|
+
version: getGlobal().version,
|
|
37
38
|
gdprApplies: gdprApplies,
|
|
38
39
|
gdprConsentString: gdprApplies === true ? deepAccess(bidderRequest, 'gdprConsent.consentString') : undefined,
|
|
39
40
|
gdprConsentProv: gdprApplies === true ? deepAccess(bidderRequest, 'gdprConsent.addtlConsent') : undefined,
|
|
@@ -4,6 +4,7 @@ import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
|
4
4
|
import { config } from '../src/config.js';
|
|
5
5
|
import { Renderer } from '../src/Renderer.js';
|
|
6
6
|
import { userSync } from '../src/userSync.js';
|
|
7
|
+
import { bidderSettings } from '../src/bidderSettings.js';
|
|
7
8
|
const BIDDER_CODE = 'sonobi';
|
|
8
9
|
const STR_ENDPOINT = 'https://apex.go.sonobi.com/trinity.json';
|
|
9
10
|
const PAGEVIEW_ID = generateUUID();
|
|
@@ -49,6 +50,7 @@ export const spec = {
|
|
|
49
50
|
|
|
50
51
|
return true;
|
|
51
52
|
},
|
|
53
|
+
|
|
52
54
|
/**
|
|
53
55
|
* Make a server request from the list of BidRequests.
|
|
54
56
|
*
|
|
@@ -93,7 +95,7 @@ export const spec = {
|
|
|
93
95
|
'lib_name': 'prebid',
|
|
94
96
|
'lib_v': '$prebid.version$',
|
|
95
97
|
'us': 0,
|
|
96
|
-
|
|
98
|
+
'iqid': bidderSettings.get(BIDDER_CODE, 'storageAllowed') ? JSON.stringify(loadOrCreateFirstPartyData()) : null,
|
|
97
99
|
};
|
|
98
100
|
|
|
99
101
|
const fpd = bidderRequest.ortb2;
|
|
@@ -388,6 +390,67 @@ export function _getPlatform(context = window) {
|
|
|
388
390
|
}
|
|
389
391
|
return 'desktop';
|
|
390
392
|
}
|
|
393
|
+
/**
|
|
394
|
+
* Check for local storage
|
|
395
|
+
* Generate a UUID for the user if one does not exist in local storage
|
|
396
|
+
* Store the UUID in local storage for future use
|
|
397
|
+
* @return {object} firstPartyData - Data object containing first party information
|
|
398
|
+
*/
|
|
399
|
+
function loadOrCreateFirstPartyData() {
|
|
400
|
+
var localStorageEnabled;
|
|
401
|
+
|
|
402
|
+
var FIRST_PARTY_KEY = '_iiq_fdata';
|
|
403
|
+
var tryParse = function (data) {
|
|
404
|
+
try {
|
|
405
|
+
return JSON.parse(data);
|
|
406
|
+
} catch (err) {
|
|
407
|
+
return null;
|
|
408
|
+
}
|
|
409
|
+
};
|
|
410
|
+
var readData = function (key) {
|
|
411
|
+
if (hasLocalStorage()) {
|
|
412
|
+
return window.localStorage.getItem(key);
|
|
413
|
+
}
|
|
414
|
+
return null;
|
|
415
|
+
};
|
|
416
|
+
var hasLocalStorage = function () {
|
|
417
|
+
if (typeof localStorageEnabled != 'undefined') { return localStorageEnabled; } else {
|
|
418
|
+
try {
|
|
419
|
+
localStorageEnabled = !!window.localStorage;
|
|
420
|
+
return localStorageEnabled;
|
|
421
|
+
} catch (e) {
|
|
422
|
+
localStorageEnabled = false;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return false;
|
|
426
|
+
};
|
|
427
|
+
var generateGUID = function () {
|
|
428
|
+
var d = new Date().getTime();
|
|
429
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
430
|
+
var r = (d + Math.random() * 16) % 16 | 0;
|
|
431
|
+
d = Math.floor(d / 16);
|
|
432
|
+
return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);
|
|
433
|
+
});
|
|
434
|
+
};
|
|
435
|
+
var storeData = function (key, value) {
|
|
436
|
+
try {
|
|
437
|
+
if (hasLocalStorage()) {
|
|
438
|
+
window.localStorage.setItem(key, value);
|
|
439
|
+
}
|
|
440
|
+
} catch (error) {
|
|
441
|
+
return null;
|
|
442
|
+
}
|
|
443
|
+
};
|
|
444
|
+
var firstPartyData = tryParse(readData(FIRST_PARTY_KEY));
|
|
445
|
+
if (!firstPartyData || !firstPartyData.pcid) {
|
|
446
|
+
var firstPartyId = generateGUID();
|
|
447
|
+
firstPartyData = { pcid: firstPartyId, pcidDate: Date.now() };
|
|
448
|
+
} else if (firstPartyData && !firstPartyData.pcidDate) {
|
|
449
|
+
firstPartyData.pcidDate = Date.now();
|
|
450
|
+
}
|
|
451
|
+
storeData(FIRST_PARTY_KEY, JSON.stringify(firstPartyData));
|
|
452
|
+
return firstPartyData;
|
|
453
|
+
};
|
|
391
454
|
|
|
392
455
|
function newRenderer(adUnitCode, bid, rendererOptions = {}) {
|
|
393
456
|
const renderer = Renderer.install({
|
|
@@ -6,6 +6,7 @@ import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
|
6
6
|
import { config } from '../src/config.js';
|
|
7
7
|
import { Renderer } from '../src/Renderer.js';
|
|
8
8
|
import {parseDomain} from '../src/refererDetection.js';
|
|
9
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
9
10
|
|
|
10
11
|
const BIDDER_CODE = 'tappx';
|
|
11
12
|
const GVLID_CODE = 628;
|
|
@@ -473,7 +474,7 @@ function buildOneRequest(validBidRequests, bidderRequest) {
|
|
|
473
474
|
payload.regs = regs;
|
|
474
475
|
// < Payload
|
|
475
476
|
|
|
476
|
-
let pbjsv = (
|
|
477
|
+
let pbjsv = (getGlobal().version !== null) ? encodeURIComponent(getGlobal().version) : -1;
|
|
477
478
|
|
|
478
479
|
return {
|
|
479
480
|
method: 'POST',
|
|
@@ -3,6 +3,7 @@ import { ajax } from '../src/ajax.js';
|
|
|
3
3
|
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
5
|
import CONSTANTS from '../src/constants.json';
|
|
6
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
6
7
|
|
|
7
8
|
const emptyUrl = '';
|
|
8
9
|
const analyticsType = 'endpoint';
|
|
@@ -123,7 +124,7 @@ function send(data, status) {
|
|
|
123
124
|
search: {
|
|
124
125
|
auctionTimestamp: auctionTimestamp,
|
|
125
126
|
terceptAnalyticsVersion: terceptAnalyticsVersion,
|
|
126
|
-
prebidVersion:
|
|
127
|
+
prebidVersion: getGlobal().version
|
|
127
128
|
}
|
|
128
129
|
});
|
|
129
130
|
|
package/modules/userId/index.js
CHANGED
|
@@ -133,13 +133,15 @@ import adapterManager, {gdprDataHandler} from '../../src/adapterManager.js';
|
|
|
133
133
|
import CONSTANTS from '../../src/constants.json';
|
|
134
134
|
import {hook, module, ready as hooksReady} from '../../src/hook.js';
|
|
135
135
|
import {buildEidPermissions, createEidsArray, USER_IDS_CONFIG} from './eids.js';
|
|
136
|
-
import {getCoreStorageManager} from '../../src/storageManager.js';
|
|
136
|
+
import {getCoreStorageManager, STORAGE_TYPE_COOKIES, STORAGE_TYPE_LOCALSTORAGE} from '../../src/storageManager.js';
|
|
137
137
|
import {
|
|
138
138
|
cyrb53Hash,
|
|
139
139
|
deepAccess,
|
|
140
|
+
deepSetValue,
|
|
140
141
|
delayExecution,
|
|
141
142
|
getPrebidInternal,
|
|
142
143
|
isArray,
|
|
144
|
+
isEmpty,
|
|
143
145
|
isEmptyStr,
|
|
144
146
|
isFn,
|
|
145
147
|
isGptPubadsDefined,
|
|
@@ -147,8 +149,7 @@ import {
|
|
|
147
149
|
isPlainObject,
|
|
148
150
|
logError,
|
|
149
151
|
logInfo,
|
|
150
|
-
logWarn
|
|
151
|
-
isEmpty, deepSetValue
|
|
152
|
+
logWarn
|
|
152
153
|
} from '../../src/utils.js';
|
|
153
154
|
import {getPPID as coreGetPPID} from '../../src/adserver.js';
|
|
154
155
|
import {defer, GreedyPromise} from '../../src/utils/promise.js';
|
|
@@ -158,8 +159,8 @@ import {newMetrics, timedAuctionHook, useMetrics} from '../../src/utils/perfMetr
|
|
|
158
159
|
import {findRootDomain} from '../../src/fpd/rootDomain.js';
|
|
159
160
|
|
|
160
161
|
const MODULE_NAME = 'User ID';
|
|
161
|
-
const COOKIE =
|
|
162
|
-
const LOCAL_STORAGE =
|
|
162
|
+
const COOKIE = STORAGE_TYPE_COOKIES;
|
|
163
|
+
const LOCAL_STORAGE = STORAGE_TYPE_LOCALSTORAGE;
|
|
163
164
|
const DEFAULT_SYNC_DELAY = 500;
|
|
164
165
|
const NO_AUCTION_DELAY = 0;
|
|
165
166
|
const CONSENT_DATA_COOKIE_STORAGE_CONFIG = {
|
|
@@ -6,6 +6,7 @@ import CONSTANTS from '../src/constants.json';
|
|
|
6
6
|
import {getStorageManager} from '../src/storageManager.js';
|
|
7
7
|
import {getRefererInfo} from '../src/refererDetection.js';
|
|
8
8
|
import {includes as strIncludes} from '../src/polyfill.js';
|
|
9
|
+
import {getGlobal} from '../src/prebidGlobal.js';
|
|
9
10
|
|
|
10
11
|
const storage = getStorageManager();
|
|
11
12
|
const yuktamediaAnalyticsVersion = 'v3.1.0';
|
|
@@ -34,7 +35,7 @@ const _pageInfo = {
|
|
|
34
35
|
referer: referer,
|
|
35
36
|
refererDomain: parseUrl(referer).host,
|
|
36
37
|
yuktamediaAnalyticsVersion: yuktamediaAnalyticsVersion,
|
|
37
|
-
prebidVersion:
|
|
38
|
+
prebidVersion: getGlobal().version
|
|
38
39
|
};
|
|
39
40
|
|
|
40
41
|
function getParameterByName(param) {
|
package/package.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "prebid.js",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.43.0",
|
|
4
4
|
"description": "Header Bidding Management Library",
|
|
5
5
|
"main": "src/prebid.js",
|
|
6
6
|
"scripts": {
|
|
7
|
+
"serve": "gulp serve",
|
|
7
8
|
"test": "gulp test",
|
|
8
9
|
"lint": "gulp lint"
|
|
9
10
|
},
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
"prebid"
|
|
29
30
|
],
|
|
30
31
|
"globalVarName": "pbjs",
|
|
32
|
+
"defineGlobal": true,
|
|
31
33
|
"author": "the prebid.js contributors",
|
|
32
34
|
"license": "Apache-2.0",
|
|
33
35
|
"engines": {
|
package/plugins/pbjsGlobals.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
let t = require('@babel/core').types;
|
|
3
2
|
let prebid = require('../package.json');
|
|
4
3
|
const path = require('path');
|
|
@@ -28,10 +27,12 @@ function getNpmVersion(version) {
|
|
|
28
27
|
|
|
29
28
|
module.exports = function(api, options) {
|
|
30
29
|
const pbGlobal = options.globalVarName || prebid.globalVarName;
|
|
30
|
+
const defineGlobal = typeof (options.defineGlobal) !== 'undefined' ? options.defineGlobal : prebid.defineGlobal;
|
|
31
31
|
const features = featureMap(options.disableFeatures);
|
|
32
32
|
let replace = {
|
|
33
33
|
'$prebid.version$': prebid.version,
|
|
34
34
|
'$$PREBID_GLOBAL$$': pbGlobal,
|
|
35
|
+
'$$DEFINE_PREBID_GLOBAL$$': defineGlobal,
|
|
35
36
|
'$$REPO_AND_VERSION$$': `${prebid.repository.url.split('/')[3]}_prebid_${prebid.version}`,
|
|
36
37
|
'$$PREBID_DIST_URL_BASE$$': options.prebidDistUrlBase || `https://cdn.jsdelivr.net/npm/prebid.js@${getNpmVersion(prebid.version)}/dist/`
|
|
37
38
|
};
|
|
@@ -42,6 +43,10 @@ module.exports = function(api, options) {
|
|
|
42
43
|
|
|
43
44
|
const PREBID_ROOT = path.resolve(__dirname, '..');
|
|
44
45
|
|
|
46
|
+
function relPath(from, toRelToProjectRoot) {
|
|
47
|
+
return path.relative(path.dirname(from), path.join(PREBID_ROOT, toRelToProjectRoot));
|
|
48
|
+
}
|
|
49
|
+
|
|
45
50
|
function getModuleName(filename) {
|
|
46
51
|
const modPath = path.parse(path.relative(PREBID_ROOT, filename));
|
|
47
52
|
if (modPath.ext.toLowerCase() !== '.js') {
|
|
@@ -63,8 +68,14 @@ module.exports = function(api, options) {
|
|
|
63
68
|
Program(path, state) {
|
|
64
69
|
const modName = getModuleName(state.filename);
|
|
65
70
|
if (modName != null) {
|
|
66
|
-
// append "registration" of module file to
|
|
67
|
-
|
|
71
|
+
// append "registration" of module file to getGlobal().installedModules
|
|
72
|
+
let i = 0;
|
|
73
|
+
let registerName;
|
|
74
|
+
do {
|
|
75
|
+
registerName = `__r${i++}`
|
|
76
|
+
} while (path.scope.hasBinding(registerName))
|
|
77
|
+
path.node.body.unshift(...api.parse(`import {registerModule as ${registerName}} from '${relPath(state.filename, 'src/prebidGlobal.js')}';`, {filename: state.filename}).program.body);
|
|
78
|
+
path.node.body.push(...api.parse(`${registerName}('${modName}');`, {filename: state.filename}).program.body);
|
|
68
79
|
}
|
|
69
80
|
},
|
|
70
81
|
StringLiteral(path) {
|
|
@@ -72,7 +83,7 @@ module.exports = function(api, options) {
|
|
|
72
83
|
if (path.node.value.includes(name)) {
|
|
73
84
|
path.node.value = path.node.value.replace(
|
|
74
85
|
new RegExp(escapeRegExp(name), 'g'),
|
|
75
|
-
replace[name]
|
|
86
|
+
replace[name].toString()
|
|
76
87
|
);
|
|
77
88
|
}
|
|
78
89
|
});
|
|
@@ -102,7 +113,7 @@ module.exports = function(api, options) {
|
|
|
102
113
|
);
|
|
103
114
|
} else {
|
|
104
115
|
path.replaceWith(
|
|
105
|
-
t.Identifier(replace[name])
|
|
116
|
+
t.Identifier(replace[name].toString())
|
|
106
117
|
);
|
|
107
118
|
}
|
|
108
119
|
}
|
package/src/Renderer.js
CHANGED
|
@@ -3,6 +3,9 @@ import {
|
|
|
3
3
|
logError, logWarn, logMessage, deepAccess
|
|
4
4
|
} from './utils.js';
|
|
5
5
|
import {find} from './polyfill.js';
|
|
6
|
+
import {getGlobal} from './prebidGlobal.js';
|
|
7
|
+
|
|
8
|
+
const pbjsInstance = getGlobal();
|
|
6
9
|
const moduleCode = 'outstream';
|
|
7
10
|
|
|
8
11
|
/**
|
|
@@ -129,7 +132,7 @@ export function executeRenderer(renderer, bid, doc) {
|
|
|
129
132
|
}
|
|
130
133
|
|
|
131
134
|
function isRendererPreferredFromAdUnit(adUnitCode) {
|
|
132
|
-
const adUnits =
|
|
135
|
+
const adUnits = pbjsInstance.adUnits;
|
|
133
136
|
const adUnit = find(adUnits, adUnit => {
|
|
134
137
|
return adUnit.code === adUnitCode;
|
|
135
138
|
});
|