prebid.js 7.8.0 → 7.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/RELEASE_SCHEDULE.md +1 -1
- package/allowedModules.js +3 -0
- package/babelConfig.js +10 -4
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/adWMGAnalyticsAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adlooxAdServerVideo.js +1 -1
- package/dist/adlooxAnalyticsAdapter.js +1 -1
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adomikAnalyticsAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adtelligentBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -0
- 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/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/analyticsAdapter.js +1 -0
- package/dist/andBeyondMediaBidAdapter.js +1 -0
- package/dist/aniviewBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/atsAnalyticsAdapter.js +1 -1
- package/dist/audiencerunBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bluebillywigBidAdapter.js +1 -1
- package/dist/boldwinBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/browsiRtdProvider.js +1 -1
- package/dist/byDataAnalyticsAdapter.js +1 -1
- package/dist/c1xBidAdapter.js +1 -0
- package/dist/cleanioRtdProvider.js +1 -1
- package/dist/concertAnalyticsAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagementUsp.js +1 -1
- package/dist/consumableBidAdapter.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/datablocksAnalyticsAdapter.js +1 -1
- package/dist/datawrkzBidAdapter.js +1 -0
- package/dist/debugging-standalone.js +1 -1
- package/dist/dependencies.json +171 -0
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningAnalyticsAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/getOrigin.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gridNMBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronAnalyticsAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/impactifyBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/imuIdSystem.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/invisiblyAnalyticsAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoAnalyticsAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/livewrappedAnalyticsAdapter.js +1 -1
- package/dist/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediakeysBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +182 -176
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openxAnalyticsAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/openxOrtbBidAdapter.js +1 -1
- package/dist/optimonAnalyticsAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/ozoneBidAdapter.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pianoDmpAnalyticsAdapter.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/prebidmanagerAnalyticsAdapter.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/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pulsepointAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/realvuAnalyticsAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevantAnalyticsAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rivrAnalyticsAdapter.js +1 -1
- package/dist/roxotAnalyticsAdapter.js +1 -1
- package/dist/rtbhouseBidAdapter.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/scaleableAnalyticsAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/showheroes-bsBidAdapter.js +1 -1
- package/dist/sigmoidAnalyticsAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -0
- package/dist/sonobiAnalyticsAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/staqAnalyticsAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/trustpidSystem.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/yuktamediaAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
- package/dist/zeta_global_sspBidAdapter.js +1 -1
- package/gulpHelpers.js +22 -55
- package/gulpfile.js +12 -5
- package/integrationExamples/gpt/1plusXRtdProviderExample.html +2 -4
- package/integrationExamples/gpt/airgridRtdProvider_example.html +1 -4
- package/integrationExamples/gpt/amp/remote.html +1 -1
- package/integrationExamples/gpt/blueconicRtdProvider_example.html +2 -4
- package/integrationExamples/gpt/hadronRtdProvider_example.html +1 -3
- package/integrationExamples/gpt/inskin_example.html +1 -3
- package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
- package/integrationExamples/gpt/prebidServer_example.html +1 -3
- package/integrationExamples/gpt/serverbidServer_example.html +1 -3
- package/integrationExamples/gpt/userId_example.html +1 -3
- package/integrationExamples/postbid/oas/postbid-config.js +5 -5
- package/karma.conf.maker.js +2 -13
- package/libraries/LIBRARIES.md +5 -0
- package/{src → libraries/analyticsAdapter}/AnalyticsAdapter.js +5 -6
- package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example.js +1 -1
- package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example2.js +1 -1
- package/modules/.submodules.json +0 -12
- package/modules/1plusXRtdProvider.js +1 -1
- package/modules/33acrossBidAdapter.js +3 -3
- package/modules/adWMGAnalyticsAdapter.js +1 -1
- package/modules/adagioAnalyticsAdapter.js +1 -1
- package/modules/adagioBidAdapter.js +3 -4
- package/modules/adgenerationBidAdapter.js +1 -1
- package/modules/adkernelAdnAnalyticsAdapter.js +1 -1
- package/modules/adkernelBidAdapter.js +2 -1
- package/modules/adlooxAnalyticsAdapter.js +1 -1
- package/modules/admixerBidAdapter.js +1 -1
- package/modules/adnowBidAdapter.js +1 -1
- package/modules/adnuntiusBidAdapter.js +3 -1
- package/modules/adomikAnalyticsAdapter.js +1 -1
- package/modules/adpod.js +1 -1
- package/modules/adrelevantisBidAdapter.js +2 -2
- package/modules/adriverBidAdapter.js +1 -1
- package/modules/adtargetBidAdapter.js +1 -1
- package/modules/adtelligentBidAdapter.js +4 -2
- package/modules/adtrgtmeBidAdapter.js +333 -0
- package/modules/adtrgtmeBidAdapter.md +69 -0
- package/modules/adtrueBidAdapter.js +1 -1
- package/modules/adxcgAnalyticsAdapter.js +1 -1
- package/modules/adxpremiumAnalyticsAdapter.js +2 -2
- package/modules/adyoulikeBidAdapter.js +12 -8
- package/modules/akamaiDapRtdProvider.js +2 -2
- package/modules/andBeyondMediaBidAdapter.js +202 -0
- package/modules/andBeyondMediaBidAdapter.md +79 -0
- package/modules/aniviewBidAdapter.js +2 -2
- package/modules/apacdexBidAdapter.js +3 -3
- package/modules/appierAnalyticsAdapter.js +1 -1
- package/modules/appnexusBidAdapter.js +9 -9
- package/modules/apstreamBidAdapter.js +2 -2
- package/modules/atsAnalyticsAdapter.js +1 -1
- package/modules/betweenBidAdapter.js +1 -1
- package/modules/bidwatchAnalyticsAdapter.js +71 -12
- package/modules/bizzclickBidAdapter.js +1 -1
- package/modules/bliinkBidAdapter.js +1 -1
- package/modules/boldwinBidAdapter.js +16 -7
- package/modules/boldwinBidAdapter.md +17 -0
- package/modules/brightMountainMediaBidAdapter.js +1 -1
- package/modules/browsiRtdProvider.js +26 -12
- package/modules/byDataAnalyticsAdapter.js +2 -2
- package/modules/c1xBidAdapter.js +209 -0
- package/modules/c1xBidAdapter.md +70 -0
- package/modules/cleanioRtdProvider.js +29 -0
- package/modules/cleanmedianetBidAdapter.js +1 -1
- package/modules/colossussspBidAdapter.js +2 -2
- package/modules/concertAnalyticsAdapter.js +1 -1
- package/modules/consentManagementUsp.js +2 -2
- package/modules/consumableBidAdapter.js +21 -3
- package/modules/cpmstarBidAdapter.js +23 -13
- package/modules/criteoBidAdapter.js +47 -5
- package/modules/cwireBidAdapter.js +1 -1
- package/modules/datablocksAnalyticsAdapter.js +1 -1
- package/modules/datablocksBidAdapter.js +1 -1
- package/modules/datawrkzBidAdapter.js +633 -0
- package/modules/datawrkzBidAdapter.md +160 -0
- package/modules/dfpAdServerVideo.js +2 -2
- package/modules/dgkeywordRtdProvider.js +1 -1
- package/modules/dspxBidAdapter.js +1 -1
- package/modules/e_volutionBidAdapter.js +3 -3
- package/modules/ebdrBidAdapter.js +1 -1
- package/modules/emx_digitalBidAdapter.js +1 -1
- package/modules/eplanningAnalyticsAdapter.js +1 -1
- package/modules/eplanningBidAdapter.js +3 -3
- package/modules/fabrickIdSystem.js +2 -2
- package/modules/fintezaAnalyticsAdapter.js +2 -2
- package/modules/freewheel-sspBidAdapter.js +1 -1
- package/modules/gamoshiBidAdapter.js +1 -1
- package/modules/getintentBidAdapter.js +1 -1
- package/modules/gjirafaBidAdapter.js +2 -2
- package/modules/goldbachBidAdapter.js +8 -8
- package/modules/gothamadsBidAdapter.js +2 -2
- package/modules/gridBidAdapter.js +1 -1
- package/modules/gridNMBidAdapter.js +1 -1
- package/modules/gumgumBidAdapter.js +3 -3
- package/modules/h12mediaBidAdapter.js +1 -1
- package/modules/hadronAnalyticsAdapter.js +3 -3
- package/modules/hadronRtdProvider.js +1 -1
- package/modules/id5AnalyticsAdapter.js +2 -2
- package/modules/impactifyBidAdapter.js +1 -1
- package/modules/improvedigitalBidAdapter.js +5 -2
- package/modules/imuIdSystem.js +40 -28
- package/modules/imuIdSystem.md +1 -0
- package/modules/inskinBidAdapter.js +1 -1
- package/modules/integr8BidAdapter.js +2 -2
- package/modules/intentIqIdSystem.js +2 -2
- package/modules/interactiveOffersBidAdapter.js +1 -1
- package/modules/invisiblyAnalyticsAdapter.js +1 -1
- package/modules/iqmBidAdapter.js +1 -1
- package/modules/ixBidAdapter.js +15 -15
- package/modules/kargoAnalyticsAdapter.js +1 -1
- package/modules/kargoBidAdapter.js +4 -5
- package/modules/konduitAnalyticsAdapter.js +1 -1
- package/modules/krushmediaBidAdapter.js +2 -2
- package/modules/kueezBidAdapter.js +2 -2
- package/modules/lassoBidAdapter.js +3 -3
- package/modules/livewrappedAnalyticsAdapter.js +4 -4
- package/modules/liveyieldAnalyticsAdapter.js +1 -1
- package/modules/lkqdBidAdapter.js +3 -3
- package/modules/loganBidAdapter.js +2 -2
- package/modules/luponmediaBidAdapter.js +3 -3
- package/modules/malltvAnalyticsAdapter.js +1 -1
- package/modules/malltvBidAdapter.js +2 -2
- package/modules/marsmediaAnalyticsAdapter.js +1 -1
- package/modules/mediafuseBidAdapter.js +8 -8
- package/modules/mediakeysBidAdapter.js +2 -2
- package/modules/medianetAnalyticsAdapter.js +1 -1
- package/modules/merkleIdSystem.js +2 -2
- package/modules/mgidBidAdapter.js +2 -2
- package/modules/microadBidAdapter.js +1 -1
- package/modules/mobfoxpbBidAdapter.js +2 -2
- package/modules/newspassidBidAdapter.js +1 -1
- package/modules/nextMillenniumBidAdapter.js +21 -2
- package/modules/nobidBidAdapter.js +3 -3
- package/modules/novatiqIdSystem.js +1 -1
- package/modules/oguryBidAdapter.js +1 -1
- package/modules/ooloAnalyticsAdapter.js +1 -1
- package/modules/open8BidAdapter.js +1 -1
- package/modules/openwebBidAdapter.js +1 -1
- package/modules/openxAnalyticsAdapter.js +6 -745
- package/modules/openxAnalyticsAdapter.md +4 -0
- package/modules/openxBidAdapter.js +3 -5
- package/modules/openxOrtbBidAdapter.js +8 -4
- package/modules/operaadsBidAdapter.js +1 -1
- package/modules/optimonAnalyticsAdapter.js +1 -1
- package/modules/ozoneBidAdapter.js +102 -271
- package/modules/ozoneBidAdapter.md +37 -0
- package/modules/pianoDmpAnalyticsAdapter.js +1 -1
- package/modules/pixfutureBidAdapter.js +1 -1
- package/modules/prebidServerBidAdapter/index.js +7 -7
- package/modules/prebidmanagerAnalyticsAdapter.js +2 -2
- package/modules/priceFloors.js +1 -1
- package/modules/pubmaticAnalyticsAdapter.js +2 -2
- package/modules/pubmaticBidAdapter.js +28 -8
- package/modules/pubperfAnalyticsAdapter.js +1 -1
- package/modules/pubstackAnalyticsAdapter.js +1 -1
- package/modules/pubwiseAnalyticsAdapter.js +2 -2
- package/modules/pubwiseBidAdapter.js +3 -3
- package/modules/pubxBidAdapter.js +1 -1
- package/modules/pubxaiAnalyticsAdapter.js +3 -3
- package/modules/pulsepointAnalyticsAdapter.js +1 -1
- package/modules/pulsepointBidAdapter.js +1 -1
- package/modules/quantcastIdSystem.js +1 -1
- package/modules/radsBidAdapter.js +1 -1
- package/modules/realvuAnalyticsAdapter.js +1 -1
- package/modules/relaidoBidAdapter.js +23 -18
- package/modules/relevantAnalyticsAdapter.js +1 -1
- package/modules/revcontentBidAdapter.js +1 -1
- package/modules/richaudienceBidAdapter.js +1 -1
- package/modules/riseBidAdapter.js +8 -5
- package/modules/riseBidAdapter.md +3 -1
- package/modules/rivrAnalyticsAdapter.js +1 -1
- package/modules/roxotAnalyticsAdapter.js +1 -1
- package/modules/rtbhouseBidAdapter.js +1 -1
- package/modules/rubiconAnalyticsAdapter.js +1 -1
- package/modules/rubiconBidAdapter.js +2 -2
- package/modules/scaleableAnalyticsAdapter.js +1 -1
- package/modules/schain.js +1 -1
- package/modules/sharethroughAnalyticsAdapter.js +1 -1
- package/modules/sharethroughBidAdapter.js +3 -3
- package/modules/shinezBidAdapter.js +2 -2
- package/modules/showheroes-bsBidAdapter.js +131 -49
- package/modules/showheroes-bsBidAdapter.md +49 -0
- package/modules/sigmoidAnalyticsAdapter.js +1 -1
- package/modules/sirdataRtdProvider.js +3 -3
- package/modules/sizeMappingV2.js +1 -1
- package/modules/smaatoBidAdapter.js +2 -2
- package/modules/smartxBidAdapter.js +2 -2
- package/modules/snigelBidAdapter.js +150 -0
- package/modules/snigelBidAdapter.md +46 -0
- package/modules/sonobiAnalyticsAdapter.js +2 -2
- package/modules/sonobiBidAdapter.js +3 -3
- package/modules/sovrnAnalyticsAdapter.js +1 -1
- package/modules/spotxBidAdapter.js +5 -5
- package/modules/sspBCBidAdapter.js +15 -18
- package/modules/staqAnalyticsAdapter.js +2 -2
- package/modules/synacormediaBidAdapter.js +1 -1
- package/modules/taboolaBidAdapter.js +1 -1
- package/modules/tappxBidAdapter.js +4 -4
- package/modules/targetVideoBidAdapter.js +1 -1
- package/modules/terceptAnalyticsAdapter.js +1 -1
- package/modules/theAdxBidAdapter.js +2 -2
- package/modules/tpmnBidAdapter.js +1 -1
- package/modules/trionBidAdapter.js +2 -2
- package/modules/tripleliftBidAdapter.js +46 -20
- package/modules/trustpidSystem.js +2 -2
- package/modules/ttdBidAdapter.js +41 -26
- package/modules/ttdBidAdapter.md +4 -10
- package/modules/ucfunnelAnalyticsAdapter.js +1 -1
- package/modules/underdogmediaBidAdapter.js +1 -1
- package/modules/userId/eids.js +5 -0
- package/modules/userId/index.js +11 -7
- package/modules/vdoaiBidAdapter.js +1 -1
- package/modules/vidazooBidAdapter.js +9 -5
- package/modules/videoheroesBidAdapter.js +1 -1
- package/modules/vidoomyBidAdapter.js +1 -1
- package/modules/visxBidAdapter.js +1 -1
- package/modules/vrtcalBidAdapter.js +1 -1
- package/modules/weboramaRtdProvider.js +3 -3
- package/modules/winrBidAdapter.js +1 -1
- package/modules/yahoosspBidAdapter.js +4 -3
- package/modules/yandexBidAdapter.js +1 -1
- package/modules/yieldmoBidAdapter.js +3 -3
- package/modules/yieldoneAnalyticsAdapter.js +1 -1
- package/modules/yieldoneBidAdapter.js +2 -2
- package/modules/yuktamediaAnalyticsAdapter.js +1 -1
- package/modules/zeta_global_sspAnalyticsAdapter.js +1 -1
- package/modules/zeta_global_sspBidAdapter.js +25 -22
- package/package.json +4 -3
- package/src/Renderer.js +1 -1
- package/src/adapterManager.js +3 -3
- package/src/adapters/bidderFactory.js +1 -0
- package/src/auction.js +2 -2
- package/src/bidfactory.js +1 -1
- package/src/config.js +7 -7
- package/src/native.js +53 -58
- package/src/sizeMapping.js +1 -1
- package/src/targeting.js +1 -1
- package/src/userSync.js +1 -1
- package/src/utils.js +1 -1
- package/test/mocks/analyticsStub.js +1 -1
- package/test/spec/AnalyticsAdapter_spec.js +1 -1
- package/test/spec/config_spec.js +4 -0
- package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +7 -3
- package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
- package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +8 -3
- package/test/spec/modules/andBeyondMediaBidAdapter_spec.js +400 -0
- package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +17 -1
- package/test/spec/modules/boldwinBidAdapter_spec.js +2 -1
- package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
- package/test/spec/modules/c1xBidAdapter_spec.js +189 -0
- package/test/spec/modules/cleanioRtdProvider_spec.js +23 -0
- package/test/spec/modules/concertAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/consumableBidAdapter_spec.js +139 -0
- package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
- package/test/spec/modules/criteoBidAdapter_spec.js +169 -38
- package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
- package/test/spec/modules/eids_spec.js +32 -0
- package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +2 -2
- package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/improvedigitalBidAdapter_spec.js +4 -4
- package/test/spec/modules/imuIdSystem_spec.js +20 -4
- package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +8 -3
- package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
- package/test/spec/modules/konduitAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +17 -0
- package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
- package/test/spec/modules/openxOrtbBidAdapter_spec.js +32 -1
- package/test/spec/modules/optimonAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/ozoneBidAdapter_spec.js +367 -511
- package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +4 -0
- package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/pubmaticBidAdapter_spec.js +111 -5
- package/test/spec/modules/pubperfAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +3 -3
- package/test/spec/modules/relaidoBidAdapter_spec.js +40 -33
- package/test/spec/modules/riseBidAdapter_spec.js +17 -0
- package/test/spec/modules/sharethroughBidAdapter_spec.js +10 -1
- package/test/spec/modules/showheroes-bsBidAdapter_spec.js +173 -2
- package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/snigelBidAdapter_spec.js +296 -0
- package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -1
- package/test/spec/modules/sspBCBidAdapter_spec.js +2 -2
- package/test/spec/modules/tripleliftBidAdapter_spec.js +378 -10
- package/test/spec/modules/ttdBidAdapter_spec.js +113 -34
- package/test/spec/modules/userId_spec.js +38 -2
- package/test/spec/modules/vidazooBidAdapter_spec.js +39 -24
- package/test/spec/modules/yahoosspBidAdapter_spec.js +13 -0
- package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +5 -1
- package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +61 -2
- package/test/spec/native_spec.js +96 -0
- package/test/spec/unit/core/bidderFactory_spec.js +27 -2
- package/webpack.conf.js +47 -11
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Overview
|
|
2
|
+
|
|
3
|
+
- Module name: Snigel Bid Adapter
|
|
4
|
+
- Module type: Bidder Adapter
|
|
5
|
+
- Maintainer: devops@snigel.com
|
|
6
|
+
- Bidder code: snigel
|
|
7
|
+
- Supported media types: Banner
|
|
8
|
+
|
|
9
|
+
# Description
|
|
10
|
+
|
|
11
|
+
Connects to Snigel demand sources for bids.
|
|
12
|
+
|
|
13
|
+
**Note:** This bid adapter requires our ad operation experts to create an optimized setup for the desired placements on your property.
|
|
14
|
+
Please reach out to us [through our contact form](https://snigel.com/get-in-touch). We will reply as soon as possible.
|
|
15
|
+
|
|
16
|
+
# Parameters
|
|
17
|
+
|
|
18
|
+
| Name | Required | Description | Example |
|
|
19
|
+
| :--- | :-------- | :---------- | :------ |
|
|
20
|
+
| placement | Yes | Placement identifier | top_leaderboard |
|
|
21
|
+
|
|
22
|
+
# Test
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
var adUnits = [
|
|
26
|
+
{
|
|
27
|
+
code: "example",
|
|
28
|
+
mediaTypes: {
|
|
29
|
+
banner: {
|
|
30
|
+
sizes: [
|
|
31
|
+
[970, 90],
|
|
32
|
+
[728, 90],
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
bids: [
|
|
37
|
+
{
|
|
38
|
+
bidder: "snigel",
|
|
39
|
+
params: {
|
|
40
|
+
placement: "prebid_test_placement",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { deepClone, logInfo, logError } from '../src/utils.js';
|
|
2
|
-
import adapter from '../
|
|
2
|
+
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
3
|
import CONSTANTS from '../src/constants.json';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
5
|
import {ajaxBuilder} from '../src/ajax.js';
|
|
@@ -255,7 +255,7 @@ sonobiAdapter.sendData = function (auction, data) {
|
|
|
255
255
|
contentType: 'text/plain'
|
|
256
256
|
}
|
|
257
257
|
);
|
|
258
|
-
}
|
|
258
|
+
};
|
|
259
259
|
|
|
260
260
|
function _logInfo(message, meta) {
|
|
261
261
|
logInfo(buildLogMessage(message), meta);
|
|
@@ -129,7 +129,7 @@ export const spec = {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
if (validBidRequests[0].schain) {
|
|
132
|
-
payload.schain = JSON.stringify(validBidRequests[0].schain)
|
|
132
|
+
payload.schain = JSON.stringify(validBidRequests[0].schain);
|
|
133
133
|
}
|
|
134
134
|
if (deepAccess(validBidRequests[0], 'userId') && Object.keys(validBidRequests[0].userId).length > 0) {
|
|
135
135
|
const userIds = deepClone(validBidRequests[0].userId);
|
|
@@ -217,7 +217,7 @@ export const spec = {
|
|
|
217
217
|
] = bid.sbi_size.split('x');
|
|
218
218
|
let aDomains = [];
|
|
219
219
|
if (bid.sbi_adomain) {
|
|
220
|
-
aDomains = [bid.sbi_adomain]
|
|
220
|
+
aDomains = [bid.sbi_adomain];
|
|
221
221
|
}
|
|
222
222
|
const bids = {
|
|
223
223
|
requestId: bidId,
|
|
@@ -255,7 +255,7 @@ export const spec = {
|
|
|
255
255
|
));
|
|
256
256
|
let videoSize = deepAccess(bidRequest, 'params.sizes');
|
|
257
257
|
if (Array.isArray(videoSize) && Array.isArray(videoSize[0])) { // handle case of multiple sizes
|
|
258
|
-
videoSize = videoSize[0] // Only take the first size for outstream
|
|
258
|
+
videoSize = videoSize[0]; // Only take the first size for outstream
|
|
259
259
|
}
|
|
260
260
|
if (videoSize) {
|
|
261
261
|
bids.width = videoSize[0];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {logError, timestamp} from '../src/utils.js';
|
|
2
|
-
import adapter from '../
|
|
2
|
+
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
3
|
import adaptermanager from '../src/adapterManager.js';
|
|
4
4
|
import CONSTANTS from '../src/constants.json';
|
|
5
5
|
import {ajaxBuilder} from '../src/ajax.js';
|
|
@@ -268,7 +268,7 @@ export const spec = {
|
|
|
268
268
|
ext: bid.userId.id5id.ext || {}
|
|
269
269
|
}]
|
|
270
270
|
}
|
|
271
|
-
)
|
|
271
|
+
);
|
|
272
272
|
}
|
|
273
273
|
|
|
274
274
|
// Add common id if available
|
|
@@ -297,14 +297,14 @@ export const spec = {
|
|
|
297
297
|
}
|
|
298
298
|
}]
|
|
299
299
|
}
|
|
300
|
-
)
|
|
300
|
+
);
|
|
301
301
|
}
|
|
302
302
|
|
|
303
303
|
// Only add the user object if it's not empty
|
|
304
304
|
if (!isEmpty(userExt)) {
|
|
305
305
|
requestPayload.user = { ext: userExt };
|
|
306
306
|
}
|
|
307
|
-
const urlQueryParams = 'src_sys=prebid'
|
|
307
|
+
const urlQueryParams = 'src_sys=prebid';
|
|
308
308
|
return {
|
|
309
309
|
method: 'POST',
|
|
310
310
|
url: URL + channelId + '?' + urlQueryParams,
|
|
@@ -365,7 +365,7 @@ export const spec = {
|
|
|
365
365
|
bid.vastXml = spotxBid.adm;
|
|
366
366
|
} else {
|
|
367
367
|
bid.cache_key = spotxBid.ext.cache_key;
|
|
368
|
-
bid.vastUrl = 'https://search.spotxchange.com/ad/vast.html?key=' + spotxBid.ext.cache_key
|
|
368
|
+
bid.vastUrl = 'https://search.spotxchange.com/ad/vast.html?key=' + spotxBid.ext.cache_key;
|
|
369
369
|
bid.videoCacheKey = spotxBid.ext.cache_key;
|
|
370
370
|
}
|
|
371
371
|
|
|
@@ -453,7 +453,7 @@ function outstreamRender(bid) {
|
|
|
453
453
|
loadExternalScript(easiUrl, BIDDER_CODE, undefined, undefined, attributes);
|
|
454
454
|
}
|
|
455
455
|
} catch (err) {
|
|
456
|
-
logError('[SPOTX][renderer] Error:' + err.message)
|
|
456
|
+
logError('[SPOTX][renderer] Error:' + err.message);
|
|
457
457
|
}
|
|
458
458
|
}
|
|
459
459
|
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import {deepAccess, getWindowTop, isArray, logWarn} from '../src/utils.js';
|
|
2
|
-
import {ajax} from '../src/ajax.js';
|
|
3
|
-
import {config} from '../src/config.js';
|
|
4
|
-
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
5
|
-
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
|
|
6
|
-
import {includes as strIncludes} from '../src/polyfill.js';
|
|
7
|
-
import { getStorageManager } from '../src/storageManager.js';
|
|
1
|
+
import { deepAccess, getWindowTop, isArray, logWarn } from '../src/utils.js';
|
|
2
|
+
import { ajax } from '../src/ajax.js';
|
|
3
|
+
import { config } from '../src/config.js';
|
|
4
|
+
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
5
|
+
import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
|
|
6
|
+
import { includes as strIncludes } from '../src/polyfill.js';
|
|
8
7
|
import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
|
|
9
8
|
|
|
10
9
|
const BIDDER_CODE = 'sspBC';
|
|
@@ -13,9 +12,8 @@ const SYNC_URL = 'https://ssp.wp.pl/bidder/usersync';
|
|
|
13
12
|
const NOTIFY_URL = 'https://ssp.wp.pl/bidder/notify';
|
|
14
13
|
const TRACKER_URL = 'https://bdr.wpcdn.pl/tag/jstracker.js';
|
|
15
14
|
const GVLID = 676;
|
|
16
|
-
const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
|
|
17
15
|
const TMAX = 450;
|
|
18
|
-
const BIDDER_VERSION = '5.
|
|
16
|
+
const BIDDER_VERSION = '5.7';
|
|
19
17
|
const DEFAULT_CURRENCY = 'PLN';
|
|
20
18
|
const W = window;
|
|
21
19
|
const { navigator } = W;
|
|
@@ -102,11 +100,6 @@ const getNotificationPayload = bidData => {
|
|
|
102
100
|
}
|
|
103
101
|
}
|
|
104
102
|
|
|
105
|
-
const cookieSupport = () => {
|
|
106
|
-
const isSafari = /^((?!chrome|android|crios|fxios).)*safari/i.test(navigator.userAgent);
|
|
107
|
-
return !isSafari && storage.cookiesAreEnabled();
|
|
108
|
-
};
|
|
109
|
-
|
|
110
103
|
const applyClientHints = ortbRequest => {
|
|
111
104
|
const { location } = document;
|
|
112
105
|
const { connection = {}, deviceMemory, userAgentData = {} } = navigator;
|
|
@@ -345,7 +338,7 @@ const mapImpression = slot => {
|
|
|
345
338
|
if (!adUnitsCalled[adUnitCode]) {
|
|
346
339
|
// this is a new adunit - assign & save pbsize
|
|
347
340
|
adSizesCalled[slotSize] = adSizesCalled[slotSize] ? adSizesCalled[slotSize] += 1 : 1;
|
|
348
|
-
adUnitsCalled[adUnitCode] = `${slotSize}_${adSizesCalled[slotSize]}
|
|
341
|
+
adUnitsCalled[adUnitCode] = `${slotSize}_${adSizesCalled[slotSize]}`;
|
|
349
342
|
}
|
|
350
343
|
|
|
351
344
|
ext.data = Object.assign({ pbsize: adUnitsCalled[adUnitCode] }, ext.data);
|
|
@@ -569,7 +562,11 @@ const spec = {
|
|
|
569
562
|
tmax,
|
|
570
563
|
user: {},
|
|
571
564
|
regs: {},
|
|
572
|
-
device: {
|
|
565
|
+
device: {
|
|
566
|
+
language: getBrowserLanguage(),
|
|
567
|
+
w: screen.width,
|
|
568
|
+
h: screen.height,
|
|
569
|
+
},
|
|
573
570
|
test: testMode,
|
|
574
571
|
};
|
|
575
572
|
|
|
@@ -579,7 +576,7 @@ const spec = {
|
|
|
579
576
|
|
|
580
577
|
return {
|
|
581
578
|
method: 'POST',
|
|
582
|
-
url: `${BIDDER_URL}?
|
|
579
|
+
url: `${BIDDER_URL}?bdver=${BIDDER_VERSION}&pbver=${pbver}&inver=0`,
|
|
583
580
|
data: JSON.stringify(payload),
|
|
584
581
|
bidderRequest,
|
|
585
582
|
};
|
|
@@ -685,7 +682,7 @@ const spec = {
|
|
|
685
682
|
site: site.id,
|
|
686
683
|
slot: site.slot,
|
|
687
684
|
cpm: bid.cpm.toPrecision(4),
|
|
688
|
-
}
|
|
685
|
+
};
|
|
689
686
|
const jsTracker = '<script type="text/javascript" async="true" src="' + TRACKER_URL + '" ' + Object.keys(jsData).reduce((acc, current) => { return acc + ` data-wpar-${current}="${jsData[current]}"` }, '') + '><\/script>';
|
|
690
687
|
if (bid.native.javascriptTrackers) {
|
|
691
688
|
bid.native.javascriptTrackers.push(jsTracker);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logInfo, logError, parseUrl, _each } from '../src/utils.js';
|
|
2
|
-
import adapter from '../
|
|
2
|
+
import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
|
|
3
3
|
import CONSTANTS from '../src/constants.json';
|
|
4
4
|
import adapterManager from '../src/adapterManager.js';
|
|
5
5
|
import { getRefererInfo } from '../src/refererDetection.js';
|
|
@@ -21,7 +21,7 @@ const STAQ_EVENTS = {
|
|
|
21
21
|
BID_WON: 'bidWon',
|
|
22
22
|
AUCTION_END: 'auctionEnd',
|
|
23
23
|
TIMEOUT: 'adapterTimedOut'
|
|
24
|
-
}
|
|
24
|
+
};
|
|
25
25
|
|
|
26
26
|
function buildRequestTemplate(connId) {
|
|
27
27
|
// TODO: what should these pick from refererInfo?
|
|
@@ -295,9 +295,9 @@ function buildOneRequest(validBidRequests, bidderRequest) {
|
|
|
295
295
|
if (
|
|
296
296
|
((bannerMediaType.sizes[0].indexOf(480) >= 0) && (bannerMediaType.sizes[0].indexOf(320) >= 0)) ||
|
|
297
297
|
((bannerMediaType.sizes[0].indexOf(768) >= 0) && (bannerMediaType.sizes[0].indexOf(1024) >= 0))) {
|
|
298
|
-
banner.pos = 7
|
|
298
|
+
banner.pos = 7;
|
|
299
299
|
} else {
|
|
300
|
-
banner.pos = 4
|
|
300
|
+
banner.pos = 4;
|
|
301
301
|
}
|
|
302
302
|
|
|
303
303
|
banner.api = api;
|
|
@@ -406,9 +406,9 @@ function buildOneRequest(validBidRequests, bidderRequest) {
|
|
|
406
406
|
(typeof uuid !== 'undefined' && uuid !== null) &&
|
|
407
407
|
(typeof uuid.source == 'string' && uuid.source !== null) &&
|
|
408
408
|
(typeof uuid.uids[0].id == 'string' && uuid.uids[0].id !== null)
|
|
409
|
-
)
|
|
409
|
+
);
|
|
410
410
|
|
|
411
|
-
|
|
411
|
+
user.ext.eids = eidsArr;
|
|
412
412
|
};
|
|
413
413
|
|
|
414
414
|
let regs = {};
|
|
@@ -132,7 +132,7 @@ function createVideoTag(bid) {
|
|
|
132
132
|
tag.ad_types = [VIDEO];
|
|
133
133
|
tag.uuid = bid.bidId;
|
|
134
134
|
tag.allow_smaller_sizes = false;
|
|
135
|
-
tag.use_pmt_rule = false
|
|
135
|
+
tag.use_pmt_rule = false;
|
|
136
136
|
tag.prebid = true;
|
|
137
137
|
tag.disable_psa = true;
|
|
138
138
|
tag.hb_source = 1;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parseSizesInput, getWindowLocation, buildUrl } from '../src/utils.js';
|
|
2
2
|
import { ajax } from '../src/ajax.js';
|
|
3
|
-
import adapter from '../
|
|
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
6
|
|
|
@@ -206,7 +206,7 @@ export const spec = {
|
|
|
206
206
|
let bidWidth = nullify(bid.w);
|
|
207
207
|
let bidHeight = nullify(bid.h);
|
|
208
208
|
|
|
209
|
-
let creative = null
|
|
209
|
+
let creative = null;
|
|
210
210
|
let videoXml = null;
|
|
211
211
|
let mediaType = null;
|
|
212
212
|
let native = null;
|
|
@@ -389,7 +389,7 @@ let extractValidSize = (bidRequest, bidderRequest) => {
|
|
|
389
389
|
requestedSizes = mediaTypes.video.sizes;
|
|
390
390
|
}
|
|
391
391
|
} else if (!isEmpty(bidRequest.sizes)) {
|
|
392
|
-
requestedSizes = bidRequest.sizes
|
|
392
|
+
requestedSizes = bidRequest.sizes;
|
|
393
393
|
}
|
|
394
394
|
|
|
395
395
|
// Ensure the size array is normalized
|
|
@@ -53,7 +53,7 @@ export const spec = {
|
|
|
53
53
|
bid.currency = result.currency;
|
|
54
54
|
bid.netRevenue = result.netRevenue;
|
|
55
55
|
if (result.adomain) {
|
|
56
|
-
bid.meta = {advertiserDomains: result.adomain}
|
|
56
|
+
bid.meta = {advertiserDomains: result.adomain};
|
|
57
57
|
}
|
|
58
58
|
bidResponses.push(bid);
|
|
59
59
|
}
|
|
@@ -125,7 +125,7 @@ function buildTrionUrlParams(bid, bidderRequest) {
|
|
|
125
125
|
intT = getStorageData(BASE_KEY + 'int_t');
|
|
126
126
|
}
|
|
127
127
|
if (intT) {
|
|
128
|
-
setStorageData(BASE_KEY + 'int_t', intT)
|
|
128
|
+
setStorageData(BASE_KEY + 'int_t', intT);
|
|
129
129
|
}
|
|
130
130
|
setStorageData(BASE_KEY + 'lps', pubId + ':' + sectionId);
|
|
131
131
|
var trionUrl = '';
|
|
@@ -8,7 +8,7 @@ const GVLID = 28;
|
|
|
8
8
|
const BIDDER_CODE = 'triplelift';
|
|
9
9
|
const STR_ENDPOINT = 'https://tlx.3lift.com/header/auction?';
|
|
10
10
|
const BANNER_TIME_TO_LIVE = 300;
|
|
11
|
-
const
|
|
11
|
+
const VIDEO_TIME_TO_LIVE = 3600;
|
|
12
12
|
let gdprApplies = true;
|
|
13
13
|
let consentString = null;
|
|
14
14
|
export const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
|
|
@@ -101,7 +101,7 @@ export const tripleliftAdapterSpec = {
|
|
|
101
101
|
url: syncEndpoint
|
|
102
102
|
}];
|
|
103
103
|
}
|
|
104
|
-
}
|
|
104
|
+
};
|
|
105
105
|
|
|
106
106
|
function _getSyncType(syncOptions) {
|
|
107
107
|
if (!syncOptions) return;
|
|
@@ -120,12 +120,15 @@ function _buildPostBody(bidRequests, bidderRequest) {
|
|
|
120
120
|
tagid: bidRequest.params.inventoryCode,
|
|
121
121
|
floor: _getFloor(bidRequest)
|
|
122
122
|
};
|
|
123
|
-
//
|
|
124
|
-
if (
|
|
123
|
+
// Check for video bidrequest
|
|
124
|
+
if (_isVideoBidRequest(bidRequest)) {
|
|
125
125
|
imp.video = _getORTBVideo(bidRequest);
|
|
126
|
-
}
|
|
126
|
+
}
|
|
127
|
+
// append banner if applicable and request is not for instream
|
|
128
|
+
if (bidRequest.mediaTypes.banner && !_isInstream(bidRequest)) {
|
|
127
129
|
imp.banner = { format: _sizes(bidRequest.sizes) };
|
|
128
|
-
}
|
|
130
|
+
}
|
|
131
|
+
|
|
129
132
|
if (!isEmpty(bidRequest.ortb2Imp)) {
|
|
130
133
|
imp.fpd = _getAdUnitFpd(bidRequest.ortb2Imp);
|
|
131
134
|
}
|
|
@@ -153,22 +156,41 @@ function _buildPostBody(bidRequests, bidderRequest) {
|
|
|
153
156
|
return data;
|
|
154
157
|
}
|
|
155
158
|
|
|
156
|
-
function
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
159
|
+
function _isVideoBidRequest(bidRequest) {
|
|
160
|
+
return _isValidVideoObject(bidRequest) && (_isInstream(bidRequest) || _isOutstream(bidRequest));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function _isOutstream(bidRequest) {
|
|
164
|
+
return _isValidVideoObject(bidRequest) && bidRequest.mediaTypes.video.context.toLowerCase() === 'outstream';
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function _isInstream(bidRequest) {
|
|
168
|
+
return _isValidVideoObject(bidRequest) && bidRequest.mediaTypes.video.context.toLowerCase() === 'instream';
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function _isValidVideoObject(bidRequest) {
|
|
172
|
+
return bidRequest.mediaTypes.video && bidRequest.mediaTypes.video.context;
|
|
164
173
|
}
|
|
165
174
|
|
|
166
175
|
function _getORTBVideo(bidRequest) {
|
|
167
176
|
// give precedent to mediaTypes.video
|
|
168
177
|
let video = { ...bidRequest.params.video, ...bidRequest.mediaTypes.video };
|
|
169
|
-
|
|
170
|
-
|
|
178
|
+
try {
|
|
179
|
+
if (!video.w) video.w = video.playerSize[0][0];
|
|
180
|
+
if (!video.h) video.h = video.playerSize[0][1];
|
|
181
|
+
} catch (err) {
|
|
182
|
+
logWarn('Video size not defined', err);
|
|
183
|
+
}
|
|
171
184
|
if (video.context === 'instream') video.placement = 1;
|
|
185
|
+
if (video.context === 'outstream') {
|
|
186
|
+
if (!video.placement) {
|
|
187
|
+
video.placement = 3
|
|
188
|
+
} else if ([3, 4, 5].indexOf(video.placement) === -1) {
|
|
189
|
+
logMessage(`video.placement value of ${video.placement} is invalid for outstream context. Setting placement to 3`)
|
|
190
|
+
video.placement = 3
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
172
194
|
// clean up oRTB object
|
|
173
195
|
delete video.playerSize;
|
|
174
196
|
return video;
|
|
@@ -180,7 +202,7 @@ function _getFloor (bid) {
|
|
|
180
202
|
try {
|
|
181
203
|
const floorInfo = bid.getFloor({
|
|
182
204
|
currency: 'USD',
|
|
183
|
-
mediaType:
|
|
205
|
+
mediaType: _isVideoBidRequest(bid) ? 'video' : 'banner',
|
|
184
206
|
size: '*'
|
|
185
207
|
});
|
|
186
208
|
if (typeof floorInfo === 'object' &&
|
|
@@ -366,10 +388,10 @@ function _buildResponseObject(bidderRequest, bid) {
|
|
|
366
388
|
meta: {}
|
|
367
389
|
};
|
|
368
390
|
|
|
369
|
-
if (
|
|
391
|
+
if (_isVideoBidRequest(breq) && bid.media_type === 'video') {
|
|
370
392
|
bidResponse.vastXml = bid.ad;
|
|
371
393
|
bidResponse.mediaType = 'video';
|
|
372
|
-
bidResponse.ttl =
|
|
394
|
+
bidResponse.ttl = VIDEO_TIME_TO_LIVE;
|
|
373
395
|
};
|
|
374
396
|
|
|
375
397
|
if (bid.advertiser_name) {
|
|
@@ -381,7 +403,11 @@ function _buildResponseObject(bidderRequest, bid) {
|
|
|
381
403
|
}
|
|
382
404
|
|
|
383
405
|
if (bid.tl_source && bid.tl_source == 'hdx') {
|
|
384
|
-
|
|
406
|
+
if (_isVideoBidRequest(breq) && bid.media_type === 'video') {
|
|
407
|
+
bidResponse.meta.mediaType = 'video'
|
|
408
|
+
} else {
|
|
409
|
+
bidResponse.meta.mediaType = 'banner'
|
|
410
|
+
}
|
|
385
411
|
}
|
|
386
412
|
|
|
387
413
|
if (bid.tl_source && bid.tl_source == 'tlx') {
|
|
@@ -84,11 +84,11 @@ function getTrustpidFromStorage() {
|
|
|
84
84
|
logInfo(`${LOG_PREFIX}: Domain acronym found: ${acronym}`);
|
|
85
85
|
|
|
86
86
|
// Domain is correct in both local storage and idGraph, but no acronym is existing for the domain
|
|
87
|
-
if (
|
|
87
|
+
if (!acronym) {
|
|
88
88
|
return {
|
|
89
89
|
trustpid: null,
|
|
90
90
|
acr: null
|
|
91
|
-
}
|
|
91
|
+
};
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
let fcIdConnectObject;
|
package/modules/ttdBidAdapter.js
CHANGED
|
@@ -4,7 +4,7 @@ import { createEidsArray } from './userId/eids.js';
|
|
|
4
4
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
5
5
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
6
6
|
|
|
7
|
-
const BIDADAPTERVERSION = 'TTD-PREBID-2022.
|
|
7
|
+
const BIDADAPTERVERSION = 'TTD-PREBID-2022.06.28';
|
|
8
8
|
const BIDDER_CODE = 'ttd';
|
|
9
9
|
const BIDDER_CODE_LONG = 'thetradedesk';
|
|
10
10
|
const BIDDER_ENDPOINT = 'https://direct.adsrvr.org/bid/bidder/';
|
|
@@ -58,7 +58,9 @@ function getBidFloor(bid) {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
function getSource(validBidRequests) {
|
|
61
|
-
let source = {
|
|
61
|
+
let source = {
|
|
62
|
+
tid: validBidRequests[0].transactionId
|
|
63
|
+
};
|
|
62
64
|
if (validBidRequests[0].schain) {
|
|
63
65
|
utils.deepSetValue(source, 'ext.schain', validBidRequests[0].schain);
|
|
64
66
|
}
|
|
@@ -124,7 +126,6 @@ function getUser(bidderRequest) {
|
|
|
124
126
|
|
|
125
127
|
function getSite(bidderRequest, firstPartyData) {
|
|
126
128
|
var site = {
|
|
127
|
-
id: utils.deepAccess(bidderRequest, 'bids.0.params.siteId'),
|
|
128
129
|
page: utils.deepAccess(bidderRequest, 'refererInfo.page'),
|
|
129
130
|
publisher: {
|
|
130
131
|
id: utils.deepAccess(bidderRequest, 'bids.0.params.publisherId'),
|
|
@@ -141,15 +142,20 @@ function getSite(bidderRequest, firstPartyData) {
|
|
|
141
142
|
|
|
142
143
|
function getImpression(bidRequest) {
|
|
143
144
|
let impression = {
|
|
144
|
-
id: bidRequest.bidId
|
|
145
|
-
tagid: bidRequest.params.placementId
|
|
145
|
+
id: bidRequest.bidId
|
|
146
146
|
};
|
|
147
147
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
148
|
+
const gpid = utils.deepAccess(bidRequest, 'ortb2Imp.ext.gpid');
|
|
149
|
+
const tid = utils.deepAccess(bidRequest, 'ortb2Imp.ext.tid');
|
|
150
|
+
if (gpid || tid) {
|
|
151
|
+
impression.ext = {}
|
|
152
|
+
if (gpid) { impression.ext.gpid = gpid }
|
|
153
|
+
if (tid) { impression.ext.tid = tid }
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const tagid = gpid || bidRequest.params.placementId;
|
|
157
|
+
if (tagid) {
|
|
158
|
+
impression.tagid = tagid
|
|
153
159
|
}
|
|
154
160
|
|
|
155
161
|
const mediaTypesVideo = utils.deepAccess(bidRequest, 'mediaTypes.video');
|
|
@@ -212,6 +218,12 @@ function banner(bid) {
|
|
|
212
218
|
format: sizes,
|
|
213
219
|
},
|
|
214
220
|
optionalParams);
|
|
221
|
+
|
|
222
|
+
const battr = utils.deepAccess(bid, 'ortb2Imp.battr');
|
|
223
|
+
if (battr) {
|
|
224
|
+
banner.battr = battr;
|
|
225
|
+
}
|
|
226
|
+
|
|
215
227
|
return banner;
|
|
216
228
|
}
|
|
217
229
|
|
|
@@ -233,7 +245,7 @@ function video(bid) {
|
|
|
233
245
|
const maxbitrate = utils.deepAccess(bid, 'mediaTypes.video.maxbitrate');
|
|
234
246
|
|
|
235
247
|
if (!minduration || !utils.isInteger(minduration)) {
|
|
236
|
-
minduration = 0
|
|
248
|
+
minduration = 0;
|
|
237
249
|
}
|
|
238
250
|
let video = {
|
|
239
251
|
minduration: minduration,
|
|
@@ -279,6 +291,11 @@ function video(bid) {
|
|
|
279
291
|
video.maxbitrate = maxbitrate;
|
|
280
292
|
}
|
|
281
293
|
|
|
294
|
+
const battr = utils.deepAccess(bid, 'ortb2Imp.battr');
|
|
295
|
+
if (battr) {
|
|
296
|
+
video.battr = battr;
|
|
297
|
+
}
|
|
298
|
+
|
|
282
299
|
return video;
|
|
283
300
|
}
|
|
284
301
|
|
|
@@ -318,20 +335,10 @@ export const spec = {
|
|
|
318
335
|
utils.logWarn(BIDDER_CODE + ': params.publisherId must be 32 characters or less');
|
|
319
336
|
return false;
|
|
320
337
|
}
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
if (bid.params.siteId.length > 50) {
|
|
326
|
-
utils.logWarn(BIDDER_CODE + ': params.siteId must be 50 characters or less');
|
|
327
|
-
return false;
|
|
328
|
-
}
|
|
329
|
-
if (!bid.params.placementId) {
|
|
330
|
-
utils.logWarn(BIDDER_CODE + ': Missing required parameter params.placementId');
|
|
331
|
-
return false;
|
|
332
|
-
}
|
|
333
|
-
if (bid.params.placementId.length > 128) {
|
|
334
|
-
utils.logWarn(BIDDER_CODE + ': params.placementId must be 128 characters or less');
|
|
338
|
+
|
|
339
|
+
const gpid = utils.deepAccess(bid, 'ortb2Imp.ext.gpid');
|
|
340
|
+
if (!bid.params.placementId && !gpid) {
|
|
341
|
+
utils.logWarn(BIDDER_CODE + ': one of params.placementId or gpid (via the GPT module https://docs.prebid.org/dev-docs/modules/gpt-pre-auction.html) must be passed');
|
|
335
342
|
return false;
|
|
336
343
|
}
|
|
337
344
|
|
|
@@ -357,7 +364,7 @@ export const spec = {
|
|
|
357
364
|
return false;
|
|
358
365
|
}
|
|
359
366
|
if (!mediaTypesVideo.protocols) {
|
|
360
|
-
utils.logWarn(BIDDER_CODE + ': mediaTypes.video.protocols should be an array of supported protocols. See the Open RTB v2.5 spec for valid values')
|
|
367
|
+
utils.logWarn(BIDDER_CODE + ': mediaTypes.video.protocols should be an array of supported protocols. See the Open RTB v2.5 spec for valid values');
|
|
361
368
|
return false;
|
|
362
369
|
}
|
|
363
370
|
}
|
|
@@ -387,6 +394,14 @@ export const spec = {
|
|
|
387
394
|
ext: getExt(firstPartyData)
|
|
388
395
|
}
|
|
389
396
|
|
|
397
|
+
if (firstPartyData && firstPartyData.bcat) {
|
|
398
|
+
topLevel.bcat = firstPartyData.bcat;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
if (firstPartyData && firstPartyData.badv) {
|
|
402
|
+
topLevel.badv = firstPartyData.badv;
|
|
403
|
+
}
|
|
404
|
+
|
|
390
405
|
let url = BIDDER_ENDPOINT + bidderRequest.bids[0].params.supplySourceId;
|
|
391
406
|
|
|
392
407
|
let serverRequest = {
|
package/modules/ttdBidAdapter.md
CHANGED
|
@@ -29,9 +29,7 @@ The Trade Desk bid adapter supports Banner and Video.
|
|
|
29
29
|
bidder: 'ttd',
|
|
30
30
|
params: {
|
|
31
31
|
supplySourceId: 'supplier',
|
|
32
|
-
publisherId: '1427ab10f2e448057ed3b422'
|
|
33
|
-
siteId: 'site-123',
|
|
34
|
-
placementId: 'footer1'
|
|
32
|
+
publisherId: '1427ab10f2e448057ed3b422'
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
]
|
|
@@ -51,8 +49,7 @@ The Trade Desk bid adapter supports Banner and Video.
|
|
|
51
49
|
params: {
|
|
52
50
|
supplySourceId: 'supplier',
|
|
53
51
|
publisherId: '1427ab10f2e448057ed3b422',
|
|
54
|
-
|
|
55
|
-
placementId: 'footer1',
|
|
52
|
+
placementId: '/1111/home#header',
|
|
56
53
|
banner: {
|
|
57
54
|
expdir: [1, 3]
|
|
58
55
|
},
|
|
@@ -77,9 +74,7 @@ The Trade Desk bid adapter supports Banner and Video.
|
|
|
77
74
|
bidder: 'ttd',
|
|
78
75
|
params: {
|
|
79
76
|
supplySourceId: 'supplier',
|
|
80
|
-
publisherId: '1427ab10f2e448057ed3b422'
|
|
81
|
-
siteId: 'site-123',
|
|
82
|
-
placementId: 'footer1'
|
|
77
|
+
publisherId: '1427ab10f2e448057ed3b422'
|
|
83
78
|
}
|
|
84
79
|
}
|
|
85
80
|
]
|
|
@@ -112,8 +107,7 @@ The Trade Desk bid adapter supports Banner and Video.
|
|
|
112
107
|
params: {
|
|
113
108
|
supplySourceId: 'supplier',
|
|
114
109
|
publisherId: '1427ab10f2e448057ed3b422',
|
|
115
|
-
|
|
116
|
-
placementId: 'footer1'
|
|
110
|
+
placementId: '/1111/home#header'
|
|
117
111
|
}
|
|
118
112
|
}
|
|
119
113
|
]
|