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
|
@@ -7,12 +7,6 @@ import * as utils from '../../../src/utils.js';
|
|
|
7
7
|
const OZONEURI = 'https://elb.the-ozone-project.com/openrtb2/auction';
|
|
8
8
|
const BIDDER_CODE = 'ozone';
|
|
9
9
|
|
|
10
|
-
/*
|
|
11
|
-
|
|
12
|
-
NOTE - use firefox console to deep copy the objects to use here
|
|
13
|
-
|
|
14
|
-
*/
|
|
15
|
-
var originalPropertyBag = {'pageId': null};
|
|
16
10
|
var validBidRequests = [
|
|
17
11
|
{
|
|
18
12
|
adUnitCode: 'div-gpt-ad-1460505748561-0',
|
|
@@ -147,7 +141,6 @@ var validBidRequestsWithUserIdData = [
|
|
|
147
141
|
}]
|
|
148
142
|
}
|
|
149
143
|
]
|
|
150
|
-
|
|
151
144
|
}
|
|
152
145
|
];
|
|
153
146
|
var validBidRequestsMinimal = [
|
|
@@ -176,7 +169,6 @@ var validBidRequestsNoSizes = [
|
|
|
176
169
|
transactionId: '2e63c0ed-b10c-4008-aed5-84582cecfe87'
|
|
177
170
|
}
|
|
178
171
|
];
|
|
179
|
-
|
|
180
172
|
var validBidRequestsWithBannerMediaType = [
|
|
181
173
|
{
|
|
182
174
|
adUnitCode: 'div-gpt-ad-1460505748561-0',
|
|
@@ -205,7 +197,6 @@ var validBidRequestsWithNonBannerMediaTypesAndValidOutstreamVideo = [
|
|
|
205
197
|
transactionId: '2e63c0ed-b10c-4008-aed5-84582cecfe87'
|
|
206
198
|
}
|
|
207
199
|
];
|
|
208
|
-
|
|
209
200
|
var validBidRequests1OutstreamVideo2020 = [
|
|
210
201
|
{
|
|
211
202
|
'bidder': 'ozone',
|
|
@@ -288,7 +279,6 @@ var validBidRequests1OutstreamVideo2020 = [
|
|
|
288
279
|
'bidderWinsCount': 0
|
|
289
280
|
}
|
|
290
281
|
];
|
|
291
|
-
|
|
292
282
|
var validBidderRequest1OutstreamVideo2020 = {
|
|
293
283
|
bidderRequest: {
|
|
294
284
|
auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99',
|
|
@@ -392,84 +382,79 @@ var validBidderRequest1OutstreamVideo2020 = {
|
|
|
392
382
|
}
|
|
393
383
|
};
|
|
394
384
|
var validBidderRequest = {
|
|
395
|
-
|
|
385
|
+
auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99',
|
|
386
|
+
auctionStart: 1536838908986,
|
|
387
|
+
bidderCode: 'ozone',
|
|
388
|
+
bidderRequestId: '1c1586b27a1b5c8',
|
|
389
|
+
bids: [{
|
|
390
|
+
adUnitCode: 'div-gpt-ad-1460505748561-0',
|
|
396
391
|
auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99',
|
|
397
|
-
|
|
398
|
-
|
|
392
|
+
bidId: '2899ec066a91ff8',
|
|
393
|
+
bidRequestsCount: 1,
|
|
394
|
+
bidder: 'ozone',
|
|
399
395
|
bidderRequestId: '1c1586b27a1b5c8',
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
params: { publisherId: '9876abcd12-3', customData: [{'settings': {}, 'targeting': {'gender': 'bart', 'age': 'low'}}], placementId: '1310000099', siteId: '1234567890', id: 'fea37168-78f1-4a23-a40e-88437a99377e', auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99', imp: [ { banner: { topframe: 1, w: 300, h: 250, format: [{ w: 300, h: 250 }, { w: 300, h: 600 }] }, id: '2899ec066a91ff8', secure: 1, tagid: 'undefined' } ] },
|
|
409
|
-
sizes: [[300, 250], [300, 600]],
|
|
410
|
-
transactionId: '2e63c0ed-b10c-4008-aed5-84582cecfe87'
|
|
411
|
-
}],
|
|
412
|
-
doneCbCallCount: 1,
|
|
413
|
-
start: 1536838908987,
|
|
414
|
-
timeout: 3000
|
|
415
|
-
}
|
|
396
|
+
crumbs: {pubcid: '203a0692-f728-4856-87f6-9a25a6b63715'},
|
|
397
|
+
params: { publisherId: '9876abcd12-3', customData: [{'settings': {}, 'targeting': {'gender': 'bart', 'age': 'low'}}], placementId: '1310000099', siteId: '1234567890', id: 'fea37168-78f1-4a23-a40e-88437a99377e', auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99', imp: [ { banner: { topframe: 1, w: 300, h: 250, format: [{ w: 300, h: 250 }, { w: 300, h: 600 }] }, id: '2899ec066a91ff8', secure: 1, tagid: 'undefined' } ] },
|
|
398
|
+
sizes: [[300, 250], [300, 600]],
|
|
399
|
+
transactionId: '2e63c0ed-b10c-4008-aed5-84582cecfe87'
|
|
400
|
+
}],
|
|
401
|
+
doneCbCallCount: 1,
|
|
402
|
+
start: 1536838908987,
|
|
403
|
+
timeout: 3000
|
|
416
404
|
};
|
|
417
|
-
|
|
418
405
|
var bidderRequestWithFullGdpr = {
|
|
419
|
-
|
|
406
|
+
auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99',
|
|
407
|
+
auctionStart: 1536838908986,
|
|
408
|
+
bidderCode: 'ozone',
|
|
409
|
+
bidderRequestId: '1c1586b27a1b5c8',
|
|
410
|
+
bids: [{
|
|
411
|
+
adUnitCode: 'div-gpt-ad-1460505748561-0',
|
|
420
412
|
auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99',
|
|
421
|
-
|
|
422
|
-
|
|
413
|
+
bidId: '2899ec066a91ff8',
|
|
414
|
+
bidRequestsCount: 1,
|
|
415
|
+
bidder: 'ozone',
|
|
423
416
|
bidderRequestId: '1c1586b27a1b5c8',
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
'
|
|
441
|
-
'
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
'
|
|
449
|
-
'
|
|
450
|
-
'
|
|
451
|
-
'
|
|
452
|
-
'
|
|
453
|
-
'maxVendorId': 631,
|
|
454
|
-
'purposeConsents': {
|
|
455
|
-
'1': true,
|
|
456
|
-
'2': true,
|
|
457
|
-
'3': true,
|
|
458
|
-
'4': true,
|
|
459
|
-
'5': true
|
|
460
|
-
},
|
|
461
|
-
'vendorConsents': {
|
|
462
|
-
'468': true,
|
|
463
|
-
'522': true,
|
|
464
|
-
'524': true, /* 524 is ozone */
|
|
465
|
-
'565': true,
|
|
466
|
-
'591': true
|
|
467
|
-
}
|
|
417
|
+
crumbs: {pubcid: '203a0692-f728-4856-87f6-9a25a6b63715'},
|
|
418
|
+
params: { publisherId: '9876abcd12-3', customData: [{'settings': {}, 'targeting': {'gender': 'bart', 'age': 'low'}}], placementId: '1310000099', siteId: '1234567890', id: 'fea37168-78f1-4a23-a40e-88437a99377e', auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99', imp: [ { banner: { topframe: 1, w: 300, h: 250, format: [{ w: 300, h: 250 }, { w: 300, h: 600 }] }, id: '2899ec066a91ff8', secure: 1, tagid: 'undefined' } ] },
|
|
419
|
+
sizes: [[300, 250], [300, 600]],
|
|
420
|
+
transactionId: '2e63c0ed-b10c-4008-aed5-84582cecfe87'
|
|
421
|
+
}],
|
|
422
|
+
doneCbCallCount: 1,
|
|
423
|
+
start: 1536838908987,
|
|
424
|
+
timeout: 3000,
|
|
425
|
+
gdprConsent: {
|
|
426
|
+
'consentString': 'BOh7mtYOh7mtYAcABBENCU-AAAAncgPIXJiiAoao0PxBFkgCAC8ACIAAQAQQAAIAAAIAAAhBGAAAQAQAEQgAAAAAAABAAAAAAAAAAAAAAACAAAAAAAACgAAAAABAAAAQAAAAAAA',
|
|
427
|
+
'vendorData': {
|
|
428
|
+
'metadata': 'BOh7mtYOh7mtYAcABBENCU-AAAAncgPIXJiiAoao0PxBFkgCAC8ACIAAQAQQAAIAAAIAAAhBGAAAQAQAEQgAAAAAAABAAAAAAAAAAAAAAACAAAAAAAACgAAAAABAAAAQAAAAAAA',
|
|
429
|
+
'gdprApplies': true,
|
|
430
|
+
'hasGlobalScope': false,
|
|
431
|
+
'cookieVersion': '1',
|
|
432
|
+
'created': '2019-05-31T12:46:48.825',
|
|
433
|
+
'lastUpdated': '2019-05-31T12:46:48.825',
|
|
434
|
+
'cmpId': '28',
|
|
435
|
+
'cmpVersion': '1',
|
|
436
|
+
'consentLanguage': 'en',
|
|
437
|
+
'consentScreen': '1',
|
|
438
|
+
'vendorListVersion': 148,
|
|
439
|
+
'maxVendorId': 631,
|
|
440
|
+
'purposeConsents': {
|
|
441
|
+
'1': true,
|
|
442
|
+
'2': true,
|
|
443
|
+
'3': true,
|
|
444
|
+
'4': true,
|
|
445
|
+
'5': true
|
|
468
446
|
},
|
|
469
|
-
'
|
|
470
|
-
|
|
447
|
+
'vendorConsents': {
|
|
448
|
+
'468': true,
|
|
449
|
+
'522': true,
|
|
450
|
+
'524': true, /* 524 is ozone */
|
|
451
|
+
'565': true,
|
|
452
|
+
'591': true
|
|
453
|
+
}
|
|
454
|
+
},
|
|
455
|
+
'gdprApplies': true
|
|
456
|
+
}
|
|
471
457
|
};
|
|
472
|
-
|
|
473
458
|
var gdpr1 = {
|
|
474
459
|
'consentString': 'BOh7mtYOh7mtYAcABBENCU-AAAAncgPIXJiiAoao0PxBFkgCAC8ACIAAQAQQAAIAAAIAAAhBGAAAQAQAEQgAAAAAAABAAAAAAAAAAAAAAACAAAAAAAACgAAAAABAAAAQAAAAAAA',
|
|
475
460
|
'vendorData': {
|
|
@@ -502,7 +487,6 @@ var gdpr1 = {
|
|
|
502
487
|
},
|
|
503
488
|
'gdprApplies': true
|
|
504
489
|
};
|
|
505
|
-
|
|
506
490
|
var bidderRequestWithPartialGdpr = {
|
|
507
491
|
bidderRequest: {
|
|
508
492
|
auctionId: '27dcb421-95c6-4024-a624-3c03816c5f99',
|
|
@@ -547,7 +531,6 @@ var bidderRequestWithPartialGdpr = {
|
|
|
547
531
|
}
|
|
548
532
|
}
|
|
549
533
|
};
|
|
550
|
-
|
|
551
534
|
var validResponse = {
|
|
552
535
|
'body': {
|
|
553
536
|
'id': 'd6198807-7a53-4141-b2db-d2cb754d68ba',
|
|
@@ -604,7 +587,6 @@ var validResponse = {
|
|
|
604
587
|
},
|
|
605
588
|
'headers': {}
|
|
606
589
|
};
|
|
607
|
-
|
|
608
590
|
var validResponse2Bids = {
|
|
609
591
|
'body': {
|
|
610
592
|
'id': 'd6198807-7a53-4141-b2db-d2cb754d68ba',
|
|
@@ -691,9 +673,6 @@ var validResponse2Bids = {
|
|
|
691
673
|
},
|
|
692
674
|
'headers': {}
|
|
693
675
|
};
|
|
694
|
-
/*
|
|
695
|
-
A bidder returns a bid for both sizes in an adunit
|
|
696
|
-
*/
|
|
697
676
|
var validResponse2BidsSameAdunit = {
|
|
698
677
|
'body': {
|
|
699
678
|
'id': 'd6198807-7a53-4141-b2db-d2cb754d68ba',
|
|
@@ -780,14 +759,6 @@ var validResponse2BidsSameAdunit = {
|
|
|
780
759
|
},
|
|
781
760
|
'headers': {}
|
|
782
761
|
};
|
|
783
|
-
/*
|
|
784
|
-
|
|
785
|
-
SPECIAL CONSIDERATION FOR VIDEO TESTS:
|
|
786
|
-
|
|
787
|
-
DO NOT USE _validVideoResponse directly - the interpretResponse function will modify it (adding a renderer!!!) so all
|
|
788
|
-
subsequent calls will already have a renderer attached!!!
|
|
789
|
-
|
|
790
|
-
*/
|
|
791
762
|
function getCleanValidVideoResponse() {
|
|
792
763
|
return JSON.parse(JSON.stringify(_validVideoResponse));
|
|
793
764
|
}
|
|
@@ -873,7 +844,6 @@ var _validVideoResponse = {
|
|
|
873
844
|
},
|
|
874
845
|
'headers': {}
|
|
875
846
|
};
|
|
876
|
-
|
|
877
847
|
var validBidResponse1adWith2Bidders = {
|
|
878
848
|
'body': {
|
|
879
849
|
'id': '91221f96-b931-4acc-8f05-c2a1186fa5ac',
|
|
@@ -964,11 +934,6 @@ var validBidResponse1adWith2Bidders = {
|
|
|
964
934
|
},
|
|
965
935
|
'headers': {}
|
|
966
936
|
};
|
|
967
|
-
|
|
968
|
-
/*
|
|
969
|
-
testing 2 ads, 2 bidders, one bidder bids for both slots in one adunit
|
|
970
|
-
*/
|
|
971
|
-
|
|
972
937
|
var multiRequest1 = [
|
|
973
938
|
{
|
|
974
939
|
'bidder': 'ozone',
|
|
@@ -1101,182 +1066,178 @@ var multiRequest1 = [
|
|
|
1101
1066
|
'bidderWinsCount': 0
|
|
1102
1067
|
}
|
|
1103
1068
|
];
|
|
1104
|
-
|
|
1105
1069
|
var multiBidderRequest1 = {
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
'
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
{
|
|
1119
|
-
|
|
1120
|
-
'
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
'
|
|
1127
|
-
'uk'
|
|
1128
|
-
],
|
|
1129
|
-
'pt7': 'desktop',
|
|
1130
|
-
'pt8': [
|
|
1131
|
-
'tfmqxwj7q',
|
|
1132
|
-
'txeh7uyo0',
|
|
1133
|
-
't8nxz6qzd',
|
|
1134
|
-
't8nyiude5',
|
|
1135
|
-
'sek9ghqwi'
|
|
1136
|
-
],
|
|
1137
|
-
'pt9': '|k0xw2vqzp33kklb3j5w4|||'
|
|
1138
|
-
}
|
|
1139
|
-
}
|
|
1140
|
-
]
|
|
1141
|
-
},
|
|
1142
|
-
'mediaTypes': {
|
|
1143
|
-
'banner': {
|
|
1144
|
-
'sizes': [
|
|
1145
|
-
[
|
|
1146
|
-
300,
|
|
1147
|
-
250
|
|
1070
|
+
'bidderCode': 'ozone',
|
|
1071
|
+
'auctionId': '592ee33b-fb2e-4c00-b2d5-383e99cac57f',
|
|
1072
|
+
'bidderRequestId': '1d03a1dfc563fc',
|
|
1073
|
+
'bids': [
|
|
1074
|
+
{
|
|
1075
|
+
'bidder': 'ozone',
|
|
1076
|
+
'params': {
|
|
1077
|
+
'publisherId': 'OZONERUP0001',
|
|
1078
|
+
'siteId': '4204204201',
|
|
1079
|
+
'placementId': '0420420421',
|
|
1080
|
+
'customData': [
|
|
1081
|
+
{
|
|
1082
|
+
'settings': {},
|
|
1083
|
+
'targeting': {
|
|
1084
|
+
'sens': 'f',
|
|
1085
|
+
'pt1': '/uk',
|
|
1086
|
+
'pt2': 'uk',
|
|
1087
|
+
'pt3': 'network-front',
|
|
1088
|
+
'pt4': 'ng',
|
|
1089
|
+
'pt5': [
|
|
1090
|
+
'uk'
|
|
1148
1091
|
],
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1092
|
+
'pt7': 'desktop',
|
|
1093
|
+
'pt8': [
|
|
1094
|
+
'tfmqxwj7q',
|
|
1095
|
+
'txeh7uyo0',
|
|
1096
|
+
't8nxz6qzd',
|
|
1097
|
+
't8nyiude5',
|
|
1098
|
+
'sek9ghqwi'
|
|
1099
|
+
],
|
|
1100
|
+
'pt9': '|k0xw2vqzp33kklb3j5w4|||'
|
|
1101
|
+
}
|
|
1154
1102
|
}
|
|
1155
|
-
|
|
1156
|
-
'adUnitCode': 'mpu',
|
|
1157
|
-
'transactionId': '6480bac7-31b5-4723-9145-ad8966660651',
|
|
1158
|
-
'sizes': [
|
|
1159
|
-
[
|
|
1160
|
-
300,
|
|
1161
|
-
250
|
|
1162
|
-
],
|
|
1163
|
-
[
|
|
1164
|
-
300,
|
|
1165
|
-
600
|
|
1166
|
-
]
|
|
1167
|
-
],
|
|
1168
|
-
'bidId': '2d30e86db743a8',
|
|
1169
|
-
'bidderRequestId': '1d03a1dfc563fc',
|
|
1170
|
-
'auctionId': '592ee33b-fb2e-4c00-b2d5-383e99cac57f',
|
|
1171
|
-
'src': 'client',
|
|
1172
|
-
'bidRequestsCount': 1,
|
|
1173
|
-
'bidderRequestsCount': 1,
|
|
1174
|
-
'bidderWinsCount': 0
|
|
1103
|
+
]
|
|
1175
1104
|
},
|
|
1176
|
-
{
|
|
1177
|
-
'
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
'sens': 'f',
|
|
1187
|
-
'pt1': '/uk',
|
|
1188
|
-
'pt2': 'uk',
|
|
1189
|
-
'pt3': 'network-front',
|
|
1190
|
-
'pt4': 'ng',
|
|
1191
|
-
'pt5': [
|
|
1192
|
-
'uk'
|
|
1193
|
-
],
|
|
1194
|
-
'pt7': 'desktop',
|
|
1195
|
-
'pt8': [
|
|
1196
|
-
'tfmqxwj7q',
|
|
1197
|
-
'penl4dfdk',
|
|
1198
|
-
't8nxz6qzd',
|
|
1199
|
-
't8nyiude5',
|
|
1200
|
-
'sek9ghqwi'
|
|
1201
|
-
],
|
|
1202
|
-
'pt9': '|k0xw2vqzp33kklb3j5w4|||'
|
|
1203
|
-
}
|
|
1204
|
-
}
|
|
1205
|
-
]
|
|
1206
|
-
},
|
|
1207
|
-
'mediaTypes': {
|
|
1208
|
-
'banner': {
|
|
1209
|
-
'sizes': [
|
|
1210
|
-
[
|
|
1211
|
-
728,
|
|
1212
|
-
90
|
|
1213
|
-
],
|
|
1214
|
-
[
|
|
1215
|
-
970,
|
|
1216
|
-
250
|
|
1217
|
-
]
|
|
1105
|
+
'mediaTypes': {
|
|
1106
|
+
'banner': {
|
|
1107
|
+
'sizes': [
|
|
1108
|
+
[
|
|
1109
|
+
300,
|
|
1110
|
+
250
|
|
1111
|
+
],
|
|
1112
|
+
[
|
|
1113
|
+
300,
|
|
1114
|
+
600
|
|
1218
1115
|
]
|
|
1219
|
-
}
|
|
1220
|
-
},
|
|
1221
|
-
'adUnitCode': 'leaderboard',
|
|
1222
|
-
'transactionId': 'a49988e6-ae7c-46c4-9598-f18db49892a0',
|
|
1223
|
-
'sizes': [
|
|
1224
|
-
[
|
|
1225
|
-
728,
|
|
1226
|
-
90
|
|
1227
|
-
],
|
|
1228
|
-
[
|
|
1229
|
-
970,
|
|
1230
|
-
250
|
|
1231
1116
|
]
|
|
1117
|
+
}
|
|
1118
|
+
},
|
|
1119
|
+
'adUnitCode': 'mpu',
|
|
1120
|
+
'transactionId': '6480bac7-31b5-4723-9145-ad8966660651',
|
|
1121
|
+
'sizes': [
|
|
1122
|
+
[
|
|
1123
|
+
300,
|
|
1124
|
+
250
|
|
1232
1125
|
],
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
'referer': 'http://ozone.ardm.io/adapter/2.4.0/620x350-switch.html?guardian=true&pbjs_debug=true',
|
|
1246
|
-
'reachedTop': true,
|
|
1247
|
-
'numIframes': 0,
|
|
1248
|
-
'stack': [
|
|
1249
|
-
'http://ozone.ardm.io/adapter/2.4.0/620x350-switch.html?guardian=true&pbjs_debug=true'
|
|
1250
|
-
]
|
|
1126
|
+
[
|
|
1127
|
+
300,
|
|
1128
|
+
600
|
|
1129
|
+
]
|
|
1130
|
+
],
|
|
1131
|
+
'bidId': '2d30e86db743a8',
|
|
1132
|
+
'bidderRequestId': '1d03a1dfc563fc',
|
|
1133
|
+
'auctionId': '592ee33b-fb2e-4c00-b2d5-383e99cac57f',
|
|
1134
|
+
'src': 'client',
|
|
1135
|
+
'bidRequestsCount': 1,
|
|
1136
|
+
'bidderRequestsCount': 1,
|
|
1137
|
+
'bidderWinsCount': 0
|
|
1251
1138
|
},
|
|
1252
|
-
|
|
1253
|
-
'
|
|
1254
|
-
'
|
|
1255
|
-
'
|
|
1256
|
-
'
|
|
1257
|
-
'
|
|
1258
|
-
'
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1139
|
+
{
|
|
1140
|
+
'bidder': 'ozone',
|
|
1141
|
+
'params': {
|
|
1142
|
+
'publisherId': 'OZONERUP0001',
|
|
1143
|
+
'siteId': '4204204201',
|
|
1144
|
+
'placementId': '0420420421',
|
|
1145
|
+
'customData': [
|
|
1146
|
+
{
|
|
1147
|
+
'settings': {},
|
|
1148
|
+
'targeting': {
|
|
1149
|
+
'sens': 'f',
|
|
1150
|
+
'pt1': '/uk',
|
|
1151
|
+
'pt2': 'uk',
|
|
1152
|
+
'pt3': 'network-front',
|
|
1153
|
+
'pt4': 'ng',
|
|
1154
|
+
'pt5': [
|
|
1155
|
+
'uk'
|
|
1156
|
+
],
|
|
1157
|
+
'pt7': 'desktop',
|
|
1158
|
+
'pt8': [
|
|
1159
|
+
'tfmqxwj7q',
|
|
1160
|
+
'penl4dfdk',
|
|
1161
|
+
't8nxz6qzd',
|
|
1162
|
+
't8nyiude5',
|
|
1163
|
+
'sek9ghqwi'
|
|
1164
|
+
],
|
|
1165
|
+
'pt9': '|k0xw2vqzp33kklb3j5w4|||'
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
]
|
|
1169
|
+
},
|
|
1170
|
+
'mediaTypes': {
|
|
1171
|
+
'banner': {
|
|
1172
|
+
'sizes': [
|
|
1173
|
+
[
|
|
1174
|
+
728,
|
|
1175
|
+
90
|
|
1176
|
+
],
|
|
1177
|
+
[
|
|
1178
|
+
970,
|
|
1179
|
+
250
|
|
1180
|
+
]
|
|
1181
|
+
]
|
|
1272
1182
|
}
|
|
1273
1183
|
},
|
|
1274
|
-
'
|
|
1184
|
+
'adUnitCode': 'leaderboard',
|
|
1185
|
+
'transactionId': 'a49988e6-ae7c-46c4-9598-f18db49892a0',
|
|
1186
|
+
'sizes': [
|
|
1187
|
+
[
|
|
1188
|
+
728,
|
|
1189
|
+
90
|
|
1190
|
+
],
|
|
1191
|
+
[
|
|
1192
|
+
970,
|
|
1193
|
+
250
|
|
1194
|
+
]
|
|
1195
|
+
],
|
|
1196
|
+
'bidId': '3025f169863b7f8',
|
|
1197
|
+
'bidderRequestId': '1d03a1dfc563fc',
|
|
1198
|
+
'auctionId': '592ee33b-fb2e-4c00-b2d5-383e99cac57f',
|
|
1199
|
+
'src': 'client',
|
|
1200
|
+
'bidRequestsCount': 1,
|
|
1201
|
+
'bidderRequestsCount': 1,
|
|
1202
|
+
'bidderWinsCount': 0
|
|
1203
|
+
}
|
|
1204
|
+
],
|
|
1205
|
+
'auctionStart': 1592918645574,
|
|
1206
|
+
'timeout': 3000,
|
|
1207
|
+
'refererInfo': {
|
|
1208
|
+
'referer': 'http://ozone.ardm.io/adapter/2.4.0/620x350-switch.html?guardian=true&pbjs_debug=true',
|
|
1209
|
+
'reachedTop': true,
|
|
1210
|
+
'numIframes': 0,
|
|
1211
|
+
'stack': [
|
|
1212
|
+
'http://ozone.ardm.io/adapter/2.4.0/620x350-switch.html?guardian=true&pbjs_debug=true'
|
|
1213
|
+
]
|
|
1214
|
+
},
|
|
1215
|
+
'gdprConsent': {
|
|
1216
|
+
'consentString': 'BOvy5sFO1dBa2AKAiBENDP-AAAAwVrv7_77-_9f-_f__9uj3Gr_v_f__32ccL5tv3h_7v-_7fi_-0nV4u_1tft9ydk1-5ctDztp507iakiPHmqNeb9n_mz1eZpRP58E09j53z7Ew_v8_v-b7BCPN_Y3v-8K96kA',
|
|
1217
|
+
'vendorData': {
|
|
1218
|
+
'metadata': 'BOvy5sFO1dBa2AKAiBENDPA',
|
|
1219
|
+
'gdprApplies': true,
|
|
1220
|
+
'hasGlobalConsent': false,
|
|
1221
|
+
'hasGlobalScope': false,
|
|
1222
|
+
'purposeConsents': {
|
|
1223
|
+
'1': true,
|
|
1224
|
+
'2': true,
|
|
1225
|
+
'3': true,
|
|
1226
|
+
'4': true,
|
|
1227
|
+
'5': true
|
|
1228
|
+
},
|
|
1229
|
+
'vendorConsents': {
|
|
1230
|
+
'1': true,
|
|
1231
|
+
'2': true,
|
|
1232
|
+
'3': false,
|
|
1233
|
+
'4': true,
|
|
1234
|
+
'5': true
|
|
1235
|
+
}
|
|
1275
1236
|
},
|
|
1276
|
-
'
|
|
1277
|
-
}
|
|
1237
|
+
'gdprApplies': true
|
|
1238
|
+
},
|
|
1239
|
+
'start': 1592918645578
|
|
1278
1240
|
};
|
|
1279
|
-
|
|
1280
1241
|
var multiResponse1 = {
|
|
1281
1242
|
'body': {
|
|
1282
1243
|
'id': '592ee33b-fb2e-4c00-b2d5-383e99cac57f',
|
|
@@ -1488,11 +1449,6 @@ var multiResponse1 = {
|
|
|
1488
1449
|
},
|
|
1489
1450
|
'headers': {}
|
|
1490
1451
|
};
|
|
1491
|
-
|
|
1492
|
-
/*
|
|
1493
|
-
--------------------end of 2 slots, 2 ----------------------------
|
|
1494
|
-
*/
|
|
1495
|
-
|
|
1496
1452
|
describe('ozone Adapter', function () {
|
|
1497
1453
|
describe('isBidRequestValid', function () {
|
|
1498
1454
|
let validBidReq = {
|
|
@@ -1503,13 +1459,10 @@ describe('ozone Adapter', function () {
|
|
|
1503
1459
|
siteId: '1234567890'
|
|
1504
1460
|
}
|
|
1505
1461
|
};
|
|
1506
|
-
|
|
1507
1462
|
it('should return true when required params found', function () {
|
|
1508
1463
|
expect(spec.isBidRequestValid(validBidReq)).to.equal(true);
|
|
1509
1464
|
});
|
|
1510
|
-
|
|
1511
1465
|
var validBidReq2 = {
|
|
1512
|
-
|
|
1513
1466
|
bidder: BIDDER_CODE,
|
|
1514
1467
|
params: {
|
|
1515
1468
|
placementId: '1310000099',
|
|
@@ -1519,11 +1472,9 @@ describe('ozone Adapter', function () {
|
|
|
1519
1472
|
},
|
|
1520
1473
|
siteId: 1234567890
|
|
1521
1474
|
}
|
|
1522
|
-
|
|
1523
1475
|
it('should return true when required params found and all optional params are valid', function () {
|
|
1524
1476
|
expect(spec.isBidRequestValid(validBidReq2)).to.equal(true);
|
|
1525
1477
|
});
|
|
1526
|
-
|
|
1527
1478
|
var xEmptyPlacement = {
|
|
1528
1479
|
bidder: BIDDER_CODE,
|
|
1529
1480
|
params: {
|
|
@@ -1532,11 +1483,9 @@ describe('ozone Adapter', function () {
|
|
|
1532
1483
|
siteId: '1234567890'
|
|
1533
1484
|
}
|
|
1534
1485
|
};
|
|
1535
|
-
|
|
1536
1486
|
it('should not validate empty placementId', function () {
|
|
1537
1487
|
expect(spec.isBidRequestValid(xEmptyPlacement)).to.equal(false);
|
|
1538
1488
|
});
|
|
1539
|
-
|
|
1540
1489
|
var xMissingPlacement = {
|
|
1541
1490
|
bidder: BIDDER_CODE,
|
|
1542
1491
|
params: {
|
|
@@ -1544,11 +1493,9 @@ describe('ozone Adapter', function () {
|
|
|
1544
1493
|
siteId: '1234567890'
|
|
1545
1494
|
}
|
|
1546
1495
|
};
|
|
1547
|
-
|
|
1548
1496
|
it('should not validate missing placementId', function () {
|
|
1549
1497
|
expect(spec.isBidRequestValid(xMissingPlacement)).to.equal(false);
|
|
1550
1498
|
});
|
|
1551
|
-
|
|
1552
1499
|
var xBadPlacement = {
|
|
1553
1500
|
bidder: BIDDER_CODE,
|
|
1554
1501
|
params: {
|
|
@@ -1557,11 +1504,9 @@ describe('ozone Adapter', function () {
|
|
|
1557
1504
|
siteId: '1234567890'
|
|
1558
1505
|
}
|
|
1559
1506
|
};
|
|
1560
|
-
|
|
1561
1507
|
it('should not validate placementId with a non-numeric value', function () {
|
|
1562
1508
|
expect(spec.isBidRequestValid(xBadPlacement)).to.equal(false);
|
|
1563
1509
|
});
|
|
1564
|
-
|
|
1565
1510
|
var xBadPlacementTooShort = {
|
|
1566
1511
|
bidder: BIDDER_CODE,
|
|
1567
1512
|
params: {
|
|
@@ -1570,11 +1515,9 @@ describe('ozone Adapter', function () {
|
|
|
1570
1515
|
siteId: '1234567890'
|
|
1571
1516
|
}
|
|
1572
1517
|
};
|
|
1573
|
-
|
|
1574
1518
|
it('should not validate placementId with a numeric value of wrong length', function () {
|
|
1575
1519
|
expect(spec.isBidRequestValid(xBadPlacementTooShort)).to.equal(false);
|
|
1576
1520
|
});
|
|
1577
|
-
|
|
1578
1521
|
var xBadPlacementTooLong = {
|
|
1579
1522
|
bidder: BIDDER_CODE,
|
|
1580
1523
|
params: {
|
|
@@ -1583,11 +1526,9 @@ describe('ozone Adapter', function () {
|
|
|
1583
1526
|
siteId: '1234567890'
|
|
1584
1527
|
}
|
|
1585
1528
|
};
|
|
1586
|
-
|
|
1587
1529
|
it('should not validate placementId with a numeric value of wrong length', function () {
|
|
1588
1530
|
expect(spec.isBidRequestValid(xBadPlacementTooLong)).to.equal(false);
|
|
1589
1531
|
});
|
|
1590
|
-
|
|
1591
1532
|
var xMissingPublisher = {
|
|
1592
1533
|
bidder: BIDDER_CODE,
|
|
1593
1534
|
params: {
|
|
@@ -1595,11 +1536,9 @@ describe('ozone Adapter', function () {
|
|
|
1595
1536
|
siteId: '1234567890'
|
|
1596
1537
|
}
|
|
1597
1538
|
};
|
|
1598
|
-
|
|
1599
1539
|
it('should not validate missing publisherId', function () {
|
|
1600
1540
|
expect(spec.isBidRequestValid(xMissingPublisher)).to.equal(false);
|
|
1601
1541
|
});
|
|
1602
|
-
|
|
1603
1542
|
var xMissingSiteId = {
|
|
1604
1543
|
bidder: BIDDER_CODE,
|
|
1605
1544
|
params: {
|
|
@@ -1607,11 +1546,9 @@ describe('ozone Adapter', function () {
|
|
|
1607
1546
|
placementId: '1234567890',
|
|
1608
1547
|
}
|
|
1609
1548
|
};
|
|
1610
|
-
|
|
1611
1549
|
it('should not validate missing sitetId', function () {
|
|
1612
1550
|
expect(spec.isBidRequestValid(xMissingSiteId)).to.equal(false);
|
|
1613
1551
|
});
|
|
1614
|
-
|
|
1615
1552
|
var xBadPublisherTooShort = {
|
|
1616
1553
|
bidder: BIDDER_CODE,
|
|
1617
1554
|
params: {
|
|
@@ -1620,11 +1557,9 @@ describe('ozone Adapter', function () {
|
|
|
1620
1557
|
siteId: '1234567890'
|
|
1621
1558
|
}
|
|
1622
1559
|
};
|
|
1623
|
-
|
|
1624
1560
|
it('should not validate publisherId being too short', function () {
|
|
1625
1561
|
expect(spec.isBidRequestValid(xBadPublisherTooShort)).to.equal(false);
|
|
1626
1562
|
});
|
|
1627
|
-
|
|
1628
1563
|
var xBadPublisherTooLong = {
|
|
1629
1564
|
bidder: BIDDER_CODE,
|
|
1630
1565
|
params: {
|
|
@@ -1633,11 +1568,9 @@ describe('ozone Adapter', function () {
|
|
|
1633
1568
|
siteId: '1234567890'
|
|
1634
1569
|
}
|
|
1635
1570
|
};
|
|
1636
|
-
|
|
1637
1571
|
it('should not validate publisherId being too long', function () {
|
|
1638
1572
|
expect(spec.isBidRequestValid(xBadPublisherTooLong)).to.equal(false);
|
|
1639
1573
|
});
|
|
1640
|
-
|
|
1641
1574
|
var publisherNumericOk = {
|
|
1642
1575
|
bidder: BIDDER_CODE,
|
|
1643
1576
|
params: {
|
|
@@ -1646,11 +1579,9 @@ describe('ozone Adapter', function () {
|
|
|
1646
1579
|
siteId: '1234567890'
|
|
1647
1580
|
}
|
|
1648
1581
|
};
|
|
1649
|
-
|
|
1650
1582
|
it('should validate publisherId being 12 digits', function () {
|
|
1651
1583
|
expect(spec.isBidRequestValid(publisherNumericOk)).to.equal(true);
|
|
1652
1584
|
});
|
|
1653
|
-
|
|
1654
1585
|
var xEmptyPublisher = {
|
|
1655
1586
|
bidder: BIDDER_CODE,
|
|
1656
1587
|
params: {
|
|
@@ -1659,11 +1590,9 @@ describe('ozone Adapter', function () {
|
|
|
1659
1590
|
siteId: '1234567890'
|
|
1660
1591
|
}
|
|
1661
1592
|
};
|
|
1662
|
-
|
|
1663
1593
|
it('should not validate empty publisherId', function () {
|
|
1664
1594
|
expect(spec.isBidRequestValid(xEmptyPublisher)).to.equal(false);
|
|
1665
1595
|
});
|
|
1666
|
-
|
|
1667
1596
|
var xBadSite = {
|
|
1668
1597
|
bidder: BIDDER_CODE,
|
|
1669
1598
|
params: {
|
|
@@ -1672,37 +1601,15 @@ describe('ozone Adapter', function () {
|
|
|
1672
1601
|
siteId: '12345Z'
|
|
1673
1602
|
}
|
|
1674
1603
|
};
|
|
1675
|
-
|
|
1676
1604
|
it('should not validate bad siteId', function () {
|
|
1677
1605
|
expect(spec.isBidRequestValid(xBadSite)).to.equal(false);
|
|
1678
1606
|
});
|
|
1679
|
-
|
|
1680
|
-
var xBadSiteTooLong = {
|
|
1681
|
-
bidder: BIDDER_CODE,
|
|
1682
|
-
params: {
|
|
1683
|
-
placementId: '1234567890',
|
|
1684
|
-
publisherId: '9876abcd12-3',
|
|
1685
|
-
siteId: '12345678901'
|
|
1686
|
-
}
|
|
1687
|
-
};
|
|
1688
|
-
|
|
1689
1607
|
it('should not validate siteId too long', function () {
|
|
1690
1608
|
expect(spec.isBidRequestValid(xBadSite)).to.equal(false);
|
|
1691
1609
|
});
|
|
1692
|
-
|
|
1693
|
-
var xBadSiteTooShort = {
|
|
1694
|
-
bidder: BIDDER_CODE,
|
|
1695
|
-
params: {
|
|
1696
|
-
placementId: '1234567890',
|
|
1697
|
-
publisherId: '9876abcd12-3',
|
|
1698
|
-
siteId: '123456789'
|
|
1699
|
-
}
|
|
1700
|
-
};
|
|
1701
|
-
|
|
1702
1610
|
it('should not validate siteId too short', function () {
|
|
1703
1611
|
expect(spec.isBidRequestValid(xBadSite)).to.equal(false);
|
|
1704
1612
|
});
|
|
1705
|
-
|
|
1706
1613
|
var allNonStrings = {
|
|
1707
1614
|
bidder: BIDDER_CODE,
|
|
1708
1615
|
params: {
|
|
@@ -1711,11 +1618,9 @@ describe('ozone Adapter', function () {
|
|
|
1711
1618
|
siteId: 1234567890
|
|
1712
1619
|
}
|
|
1713
1620
|
};
|
|
1714
|
-
|
|
1715
1621
|
it('should validate all numeric values being sent as non-string numbers', function () {
|
|
1716
1622
|
expect(spec.isBidRequestValid(allNonStrings)).to.equal(true);
|
|
1717
1623
|
});
|
|
1718
|
-
|
|
1719
1624
|
var emptySiteId = {
|
|
1720
1625
|
bidder: BIDDER_CODE,
|
|
1721
1626
|
params: {
|
|
@@ -1724,11 +1629,9 @@ describe('ozone Adapter', function () {
|
|
|
1724
1629
|
siteId: ''
|
|
1725
1630
|
}
|
|
1726
1631
|
};
|
|
1727
|
-
|
|
1728
1632
|
it('should not validate siteId being empty string (it is required now)', function () {
|
|
1729
1633
|
expect(spec.isBidRequestValid(emptySiteId)).to.equal(false);
|
|
1730
1634
|
});
|
|
1731
|
-
|
|
1732
1635
|
var xBadCustomData = {
|
|
1733
1636
|
bidder: BIDDER_CODE,
|
|
1734
1637
|
params: {
|
|
@@ -1738,12 +1641,10 @@ describe('ozone Adapter', function () {
|
|
|
1738
1641
|
'customData': 'this aint gonna work'
|
|
1739
1642
|
}
|
|
1740
1643
|
};
|
|
1741
|
-
|
|
1742
1644
|
it('should not validate customData not being an array', function () {
|
|
1743
1645
|
expect(spec.isBidRequestValid(xBadCustomData)).to.equal(false);
|
|
1744
1646
|
});
|
|
1745
|
-
|
|
1746
|
-
var xBadCustomData_OLD_CUSTOMDATA_VALUE = {
|
|
1647
|
+
var xBadCustomDataOldCustomdataValue = {
|
|
1747
1648
|
bidder: BIDDER_CODE,
|
|
1748
1649
|
params: {
|
|
1749
1650
|
'placementId': '1234567890',
|
|
@@ -1752,12 +1653,10 @@ describe('ozone Adapter', function () {
|
|
|
1752
1653
|
'customData': {'gender': 'bart', 'age': 'low'}
|
|
1753
1654
|
}
|
|
1754
1655
|
};
|
|
1755
|
-
|
|
1756
1656
|
it('should not validate customData being an object, not an array', function () {
|
|
1757
|
-
expect(spec.isBidRequestValid(
|
|
1657
|
+
expect(spec.isBidRequestValid(xBadCustomDataOldCustomdataValue)).to.equal(false);
|
|
1758
1658
|
});
|
|
1759
|
-
|
|
1760
|
-
var xBadCustomData_zerocd = {
|
|
1659
|
+
var xBadCustomDataZerocd = {
|
|
1761
1660
|
bidder: BIDDER_CODE,
|
|
1762
1661
|
params: {
|
|
1763
1662
|
'placementId': '1111111110',
|
|
@@ -1766,12 +1665,10 @@ describe('ozone Adapter', function () {
|
|
|
1766
1665
|
'customData': []
|
|
1767
1666
|
}
|
|
1768
1667
|
};
|
|
1769
|
-
|
|
1770
1668
|
it('should not validate customData array having no elements', function () {
|
|
1771
|
-
expect(spec.isBidRequestValid(
|
|
1669
|
+
expect(spec.isBidRequestValid(xBadCustomDataZerocd)).to.equal(false);
|
|
1772
1670
|
});
|
|
1773
|
-
|
|
1774
|
-
var xBadCustomData_notargeting = {
|
|
1671
|
+
var xBadCustomDataNotargeting = {
|
|
1775
1672
|
bidder: BIDDER_CODE,
|
|
1776
1673
|
params: {
|
|
1777
1674
|
'placementId': '1234567890',
|
|
@@ -1781,10 +1678,9 @@ describe('ozone Adapter', function () {
|
|
|
1781
1678
|
}
|
|
1782
1679
|
};
|
|
1783
1680
|
it('should not validate customData[] having no "targeting"', function () {
|
|
1784
|
-
expect(spec.isBidRequestValid(
|
|
1681
|
+
expect(spec.isBidRequestValid(xBadCustomDataNotargeting)).to.equal(false);
|
|
1785
1682
|
});
|
|
1786
|
-
|
|
1787
|
-
var xBadCustomData_tgt_not_obj = {
|
|
1683
|
+
var xBadCustomDataTgtNotObj = {
|
|
1788
1684
|
bidder: BIDDER_CODE,
|
|
1789
1685
|
params: {
|
|
1790
1686
|
'placementId': '1234567890',
|
|
@@ -1794,9 +1690,8 @@ describe('ozone Adapter', function () {
|
|
|
1794
1690
|
}
|
|
1795
1691
|
};
|
|
1796
1692
|
it('should not validate customData[0].targeting not being an object', function () {
|
|
1797
|
-
expect(spec.isBidRequestValid(
|
|
1693
|
+
expect(spec.isBidRequestValid(xBadCustomDataTgtNotObj)).to.equal(false);
|
|
1798
1694
|
});
|
|
1799
|
-
|
|
1800
1695
|
var xBadCustomParams = {
|
|
1801
1696
|
bidder: BIDDER_CODE,
|
|
1802
1697
|
params: {
|
|
@@ -1821,11 +1716,9 @@ describe('ozone Adapter', function () {
|
|
|
1821
1716
|
mimes: ['video/mp4']}
|
|
1822
1717
|
}
|
|
1823
1718
|
};
|
|
1824
|
-
|
|
1825
1719
|
it('should not validate video without context attribute', function () {
|
|
1826
1720
|
expect(spec.isBidRequestValid(xBadVideoContext2)).to.equal(false);
|
|
1827
1721
|
});
|
|
1828
|
-
|
|
1829
1722
|
let validVideoBidReq = {
|
|
1830
1723
|
bidder: BIDDER_CODE,
|
|
1831
1724
|
params: {
|
|
@@ -1839,7 +1732,6 @@ describe('ozone Adapter', function () {
|
|
|
1839
1732
|
'context': 'outstream'},
|
|
1840
1733
|
}
|
|
1841
1734
|
};
|
|
1842
|
-
|
|
1843
1735
|
it('should validate video outstream being sent', function () {
|
|
1844
1736
|
expect(spec.isBidRequestValid(validVideoBidReq)).to.equal(true);
|
|
1845
1737
|
});
|
|
@@ -1849,47 +1741,44 @@ describe('ozone Adapter', function () {
|
|
|
1849
1741
|
expect(spec.isBidRequestValid(instreamVid)).to.equal(true);
|
|
1850
1742
|
});
|
|
1851
1743
|
});
|
|
1852
|
-
|
|
1853
1744
|
describe('buildRequests', function () {
|
|
1745
|
+
beforeEach(function () {
|
|
1746
|
+
config.resetConfig()
|
|
1747
|
+
});
|
|
1854
1748
|
it('sends bid request to OZONEURI via POST', function () {
|
|
1855
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1749
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
1856
1750
|
expect(request.url).to.equal(OZONEURI);
|
|
1857
1751
|
expect(request.method).to.equal('POST');
|
|
1858
1752
|
});
|
|
1859
|
-
|
|
1860
1753
|
it('sends data as a string', function () {
|
|
1861
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1754
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
1862
1755
|
expect(request.data).to.be.a('string');
|
|
1863
1756
|
});
|
|
1864
|
-
|
|
1865
1757
|
it('sends all bid parameters', function () {
|
|
1866
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1758
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
1867
1759
|
expect(request).to.have.all.keys(['bidderRequest', 'data', 'method', 'url']);
|
|
1868
1760
|
});
|
|
1869
|
-
|
|
1870
1761
|
it('adds all parameters inside the ext object only', function () {
|
|
1871
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1762
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
1872
1763
|
expect(request.data).to.be.a('string');
|
|
1873
1764
|
var data = JSON.parse(request.data);
|
|
1874
1765
|
expect(data.imp[0].ext.ozone.customData).to.be.an('array');
|
|
1875
1766
|
expect(request).not.to.have.key('lotameData');
|
|
1876
1767
|
expect(request).not.to.have.key('customData');
|
|
1877
1768
|
});
|
|
1878
|
-
|
|
1879
1769
|
it('adds all parameters inside the ext object only - lightning', function () {
|
|
1880
1770
|
let localBidReq = JSON.parse(JSON.stringify(validBidRequests));
|
|
1881
|
-
const request = spec.buildRequests(localBidReq, validBidderRequest
|
|
1771
|
+
const request = spec.buildRequests(localBidReq, validBidderRequest);
|
|
1882
1772
|
expect(request.data).to.be.a('string');
|
|
1883
1773
|
var data = JSON.parse(request.data);
|
|
1884
1774
|
expect(data.imp[0].ext.ozone.customData).to.be.an('array');
|
|
1885
1775
|
expect(request).not.to.have.key('lotameData');
|
|
1886
1776
|
expect(request).not.to.have.key('customData');
|
|
1887
1777
|
});
|
|
1888
|
-
|
|
1889
1778
|
it('ignores ozoneData in & after version 2.1.1', function () {
|
|
1890
1779
|
let validBidRequestsWithOzoneData = JSON.parse(JSON.stringify(validBidRequests));
|
|
1891
1780
|
validBidRequestsWithOzoneData[0].params.ozoneData = {'networkID': '3048', 'dfpSiteID': 'd.thesun', 'sectionID': 'homepage', 'path': '/', 'sec_id': 'null', 'sec': 'sec', 'topics': 'null', 'kw': 'null', 'aid': 'null', 'search': 'null', 'article_type': 'null', 'hide_ads': '', 'article_slug': 'null'};
|
|
1892
|
-
const request = spec.buildRequests(validBidRequestsWithOzoneData, validBidderRequest
|
|
1781
|
+
const request = spec.buildRequests(validBidRequestsWithOzoneData, validBidderRequest);
|
|
1893
1782
|
expect(request.data).to.be.a('string');
|
|
1894
1783
|
var data = JSON.parse(request.data);
|
|
1895
1784
|
expect(data.imp[0].ext.ozone.customData).to.be.an('array');
|
|
@@ -1897,43 +1786,36 @@ describe('ozone Adapter', function () {
|
|
|
1897
1786
|
expect(request).not.to.have.key('lotameData');
|
|
1898
1787
|
expect(request).not.to.have.key('customData');
|
|
1899
1788
|
});
|
|
1900
|
-
|
|
1901
1789
|
it('has correct bidder', function () {
|
|
1902
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1790
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
1903
1791
|
expect(request.bidderRequest.bids[0].bidder).to.equal(BIDDER_CODE);
|
|
1904
1792
|
});
|
|
1905
|
-
|
|
1906
1793
|
it('handles mediaTypes element correctly', function () {
|
|
1907
|
-
const request = spec.buildRequests(validBidRequestsWithBannerMediaType, validBidderRequest
|
|
1794
|
+
const request = spec.buildRequests(validBidRequestsWithBannerMediaType, validBidderRequest);
|
|
1908
1795
|
expect(request).to.have.all.keys(['bidderRequest', 'data', 'method', 'url']);
|
|
1909
1796
|
});
|
|
1910
|
-
|
|
1911
1797
|
it('handles no ozone or custom data', function () {
|
|
1912
|
-
const request = spec.buildRequests(validBidRequestsMinimal, validBidderRequest
|
|
1798
|
+
const request = spec.buildRequests(validBidRequestsMinimal, validBidderRequest);
|
|
1913
1799
|
expect(request).to.have.all.keys(['bidderRequest', 'data', 'method', 'url']);
|
|
1914
1800
|
});
|
|
1915
|
-
|
|
1916
1801
|
it('handles video mediaType element correctly, with outstream video', function () {
|
|
1917
|
-
const request = spec.buildRequests(validBidRequests1OutstreamVideo2020, validBidderRequest
|
|
1802
|
+
const request = spec.buildRequests(validBidRequests1OutstreamVideo2020, validBidderRequest);
|
|
1918
1803
|
expect(request).to.have.all.keys(['bidderRequest', 'data', 'method', 'url']);
|
|
1919
1804
|
});
|
|
1920
|
-
|
|
1921
1805
|
it('should not crash when there is no sizes element at all', function () {
|
|
1922
|
-
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest
|
|
1806
|
+
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest);
|
|
1923
1807
|
expect(request).to.have.all.keys(['bidderRequest', 'data', 'method', 'url']);
|
|
1924
1808
|
});
|
|
1925
|
-
|
|
1926
1809
|
it('should be able to handle non-single requests', function () {
|
|
1927
1810
|
config.setConfig({'ozone': {'singleRequest': false}});
|
|
1928
|
-
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest
|
|
1811
|
+
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest);
|
|
1929
1812
|
expect(request).to.be.a('array');
|
|
1930
1813
|
expect(request[0]).to.have.all.keys(['bidderRequest', 'data', 'method', 'url']);
|
|
1931
1814
|
config.setConfig({'ozone': {'singleRequest': true}});
|
|
1932
1815
|
});
|
|
1933
|
-
|
|
1934
1816
|
it('should add gdpr consent information to the request when ozone is true', function () {
|
|
1935
1817
|
let consentString = 'BOcocyaOcocyaAfEYDENCD-AAAAjx7_______9______9uz_Ov_v_f__33e8__9v_l_7_-___u_-33d4-_1vf99yfm1-7ftr3tp_87ues2_Xur__59__3z3_NphLgA==';
|
|
1936
|
-
let bidderRequest = validBidderRequest
|
|
1818
|
+
let bidderRequest = validBidderRequest;
|
|
1937
1819
|
bidderRequest.gdprConsent = {
|
|
1938
1820
|
consentString: consentString,
|
|
1939
1821
|
gdprApplies: true,
|
|
@@ -1944,16 +1826,14 @@ describe('ozone Adapter', function () {
|
|
|
1944
1826
|
purposeConsents: {1: true, 2: true, 3: true, 4: true, 5: true}
|
|
1945
1827
|
}
|
|
1946
1828
|
}
|
|
1947
|
-
|
|
1948
1829
|
const request = spec.buildRequests(validBidRequestsNoSizes, bidderRequest);
|
|
1949
1830
|
const payload = JSON.parse(request.data);
|
|
1950
1831
|
expect(payload.regs.ext.gdpr).to.equal(1);
|
|
1951
1832
|
expect(payload.user.ext.consent).to.equal(consentString);
|
|
1952
1833
|
});
|
|
1953
|
-
|
|
1954
1834
|
it('should add gdpr consent information to the request when vendorData is missing vendorConsents (Mirror)', function () {
|
|
1955
1835
|
let consentString = 'BOcocyaOcocyaAfEYDENCD-AAAAjx7_______9______9uz_Ov_v_f__33e8__9v_l_7_-___u_-33d4-_1vf99yfm1-7ftr3tp_87ues2_Xur__59__3z3_NphLgA==';
|
|
1956
|
-
let bidderRequest = validBidderRequest
|
|
1836
|
+
let bidderRequest = validBidderRequest;
|
|
1957
1837
|
bidderRequest.gdprConsent = {
|
|
1958
1838
|
consentString: consentString,
|
|
1959
1839
|
gdprApplies: true,
|
|
@@ -1962,16 +1842,14 @@ describe('ozone Adapter', function () {
|
|
|
1962
1842
|
gdprApplies: true
|
|
1963
1843
|
}
|
|
1964
1844
|
}
|
|
1965
|
-
|
|
1966
1845
|
const request = spec.buildRequests(validBidRequestsNoSizes, bidderRequest);
|
|
1967
1846
|
const payload = JSON.parse(request.data);
|
|
1968
1847
|
expect(payload.regs.ext.gdpr).to.equal(1);
|
|
1969
1848
|
expect(payload.user.ext.consent).to.equal(consentString);
|
|
1970
1849
|
});
|
|
1971
|
-
|
|
1972
1850
|
it('should set regs.ext.gdpr flag to 0 when gdprApplies is false', function () {
|
|
1973
1851
|
let consentString = 'BOcocyaOcocyaAfEYDENCD-AAAAjx7_______9______9uz_Ov_v_f__33e8__9v_l_7_-___u_-33d4-_1vf99yfm1-7ftr3tp_87ues2_Xur__59__3z3_NphLgA==';
|
|
1974
|
-
let bidderRequest = validBidderRequest
|
|
1852
|
+
let bidderRequest = validBidderRequest;
|
|
1975
1853
|
bidderRequest.gdprConsent = {
|
|
1976
1854
|
consentString: consentString,
|
|
1977
1855
|
gdprApplies: false,
|
|
@@ -1982,15 +1860,13 @@ describe('ozone Adapter', function () {
|
|
|
1982
1860
|
purposeConsents: {1: true, 2: true, 3: true, 4: true, 5: true}
|
|
1983
1861
|
}
|
|
1984
1862
|
};
|
|
1985
|
-
|
|
1986
1863
|
const request = spec.buildRequests(validBidRequestsNoSizes, bidderRequest);
|
|
1987
1864
|
const payload = JSON.parse(request.data);
|
|
1988
1865
|
expect(payload.regs.ext.gdpr).to.equal(0);
|
|
1989
1866
|
});
|
|
1990
|
-
|
|
1991
1867
|
it('should not have imp[N].ext.ozone.userId', function () {
|
|
1992
1868
|
let consentString = 'BOcocyaOcocyaAfEYDENCD-AAAAjx7_______9______9uz_Ov_v_f__33e8__9v_l_7_-___u_-33d4-_1vf99yfm1-7ftr3tp_87ues2_Xur__59__3z3_NphLgA==';
|
|
1993
|
-
let bidderRequest = validBidderRequest
|
|
1869
|
+
let bidderRequest = validBidderRequest;
|
|
1994
1870
|
bidderRequest.gdprConsent = {
|
|
1995
1871
|
consentString: consentString,
|
|
1996
1872
|
gdprApplies: false,
|
|
@@ -2001,7 +1877,6 @@ describe('ozone Adapter', function () {
|
|
|
2001
1877
|
purposeConsents: {1: true, 2: true, 3: true, 4: true, 5: true}
|
|
2002
1878
|
}
|
|
2003
1879
|
};
|
|
2004
|
-
|
|
2005
1880
|
let bidRequests = validBidRequests;
|
|
2006
1881
|
bidRequests[0]['userId'] = {
|
|
2007
1882
|
'digitrustid': {data: {id: 'DTID', keyv: 4, privacy: {optout: false}, producer: 'ABC', version: 2}},
|
|
@@ -2019,7 +1894,6 @@ describe('ozone Adapter', function () {
|
|
|
2019
1894
|
expect(firstBid).to.not.have.property('userId');
|
|
2020
1895
|
delete validBidRequests[0].userId; // tidy up now, else it will screw with other tests
|
|
2021
1896
|
});
|
|
2022
|
-
|
|
2023
1897
|
it('should pick up the value of pubcid when built using the pubCommonId module (not userId)', function () {
|
|
2024
1898
|
let bidRequests = validBidRequests;
|
|
2025
1899
|
bidRequests[0]['userId'] = {
|
|
@@ -2031,23 +1905,13 @@ describe('ozone Adapter', function () {
|
|
|
2031
1905
|
'sharedid': {'id': '01EAJWWNEPN3CYMM5N8M5VXY22', 'third': '01EAJWWNEPN3CYMM5N8M5VXY22'}
|
|
2032
1906
|
};
|
|
2033
1907
|
bidRequests[0]['userIdAsEids'] = validBidRequestsWithUserIdData[0]['userIdAsEids'];
|
|
2034
|
-
const request = spec.buildRequests(bidRequests, validBidderRequest
|
|
1908
|
+
const request = spec.buildRequests(bidRequests, validBidderRequest);
|
|
2035
1909
|
const payload = JSON.parse(request.data);
|
|
2036
1910
|
expect(payload.ext.ozone.pubcid).to.equal(bidRequests[0]['crumbs']['pubcid']);
|
|
2037
1911
|
delete validBidRequests[0].userId; // tidy up now, else it will screw with other tests
|
|
2038
1912
|
});
|
|
2039
|
-
|
|
2040
1913
|
it('should add a user.ext.eids object to contain user ID data in the new location (Nov 2019) Updated Aug 2020', function() {
|
|
2041
|
-
const request = spec.buildRequests(validBidRequestsWithUserIdData, validBidderRequest
|
|
2042
|
-
/*
|
|
2043
|
-
'pubcid': '12345678',
|
|
2044
|
-
'tdid': '1111tdid',
|
|
2045
|
-
'id5id': { uid: '1111', ext: { linkType: 2, abTestingControlGroup: false } },
|
|
2046
|
-
'criteoId': '1111criteoId',
|
|
2047
|
-
'idl_env': 'liverampId',
|
|
2048
|
-
'parrableId': {'eid': '01.5678.parrableid'}
|
|
2049
|
-
*/
|
|
2050
|
-
|
|
1914
|
+
const request = spec.buildRequests(validBidRequestsWithUserIdData, validBidderRequest);
|
|
2051
1915
|
const payload = JSON.parse(request.data);
|
|
2052
1916
|
expect(payload.user).to.exist;
|
|
2053
1917
|
expect(payload.user.ext).to.exist;
|
|
@@ -2067,12 +1931,11 @@ describe('ozone Adapter', function () {
|
|
|
2067
1931
|
expect(payload.user.ext.eids[6]['source']).to.equal('parrableId');
|
|
2068
1932
|
expect(payload.user.ext.eids[6]['uids'][0]['id']['eid']).to.equal('01.5678.parrableid');
|
|
2069
1933
|
});
|
|
2070
|
-
|
|
2071
1934
|
it('replaces the auction url for a config override', function () {
|
|
2072
1935
|
spec.propertyBag.whitelabel = null;
|
|
2073
1936
|
let fakeOrigin = 'http://sometestendpoint';
|
|
2074
1937
|
config.setConfig({'ozone': {'endpointOverride': {'origin': fakeOrigin}}});
|
|
2075
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1938
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2076
1939
|
expect(request.url).to.equal(fakeOrigin + '/openrtb2/auction');
|
|
2077
1940
|
expect(request.method).to.equal('POST');
|
|
2078
1941
|
const data = JSON.parse(request.data);
|
|
@@ -2080,12 +1943,11 @@ describe('ozone Adapter', function () {
|
|
|
2080
1943
|
config.setConfig({'ozone': {'kvpPrefix': null, 'endpointOverride': null}});
|
|
2081
1944
|
spec.propertyBag.whitelabel = null;
|
|
2082
1945
|
});
|
|
2083
|
-
|
|
2084
1946
|
it('replaces the FULL auction url for a config override', function () {
|
|
2085
1947
|
spec.propertyBag.whitelabel = null;
|
|
2086
1948
|
let fakeurl = 'http://sometestendpoint/myfullurl';
|
|
2087
1949
|
config.setConfig({'ozone': {'endpointOverride': {'auctionUrl': fakeurl}}});
|
|
2088
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1950
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2089
1951
|
expect(request.url).to.equal(fakeurl);
|
|
2090
1952
|
expect(request.method).to.equal('POST');
|
|
2091
1953
|
const data = JSON.parse(request.data);
|
|
@@ -2093,7 +1955,6 @@ describe('ozone Adapter', function () {
|
|
|
2093
1955
|
config.setConfig({'ozone': {'kvpPrefix': null, 'endpointOverride': null}});
|
|
2094
1956
|
spec.propertyBag.whitelabel = null;
|
|
2095
1957
|
});
|
|
2096
|
-
|
|
2097
1958
|
it('replaces the renderer url for a config override', function () {
|
|
2098
1959
|
spec.propertyBag.whitelabel = null;
|
|
2099
1960
|
let fakeUrl = 'http://renderer.com';
|
|
@@ -2107,9 +1968,8 @@ describe('ozone Adapter', function () {
|
|
|
2107
1968
|
spec.propertyBag.whitelabel = null;
|
|
2108
1969
|
});
|
|
2109
1970
|
it('should generate all the adservertargeting keys correctly named', function () {
|
|
2110
|
-
var specMock = utils.deepClone(spec);
|
|
2111
1971
|
config.setConfig({'ozone': {'kvpPrefix': 'xx'}});
|
|
2112
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1972
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2113
1973
|
const result = spec.interpretResponse(validResponse, request);
|
|
2114
1974
|
expect(result[0].adserverTargeting).to.have.own.property('xx_appnexus_crid');
|
|
2115
1975
|
expect(utils.deepAccess(result[0].adserverTargeting, 'xx_appnexus_crid')).to.equal('98493581');
|
|
@@ -2118,33 +1978,28 @@ describe('ozone Adapter', function () {
|
|
|
2118
1978
|
expect(utils.deepAccess(result[0].adserverTargeting, 'xx_size')).to.equal('300x600');
|
|
2119
1979
|
expect(utils.deepAccess(result[0].adserverTargeting, 'xx_pb_r')).to.equal('0.50');
|
|
2120
1980
|
expect(utils.deepAccess(result[0].adserverTargeting, 'xx_bid')).to.equal('true');
|
|
2121
|
-
config.resetConfig();
|
|
2122
1981
|
});
|
|
2123
1982
|
it('should create a meta object on each bid returned', function () {
|
|
2124
|
-
|
|
2125
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest.bidderRequest);
|
|
1983
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2126
1984
|
const result = spec.interpretResponse(validResponse, request);
|
|
2127
1985
|
expect(result[0]).to.have.own.property('meta');
|
|
2128
1986
|
expect(result[0].meta.advertiserDomains[0]).to.equal('http://prebid.org');
|
|
2129
|
-
config.resetConfig();
|
|
2130
1987
|
});
|
|
2131
|
-
|
|
2132
1988
|
it('replaces the kvp prefix ', function () {
|
|
2133
1989
|
spec.propertyBag.whitelabel = null;
|
|
2134
1990
|
config.setConfig({'ozone': {'kvpPrefix': 'test'}});
|
|
2135
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
1991
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2136
1992
|
const data = JSON.parse(request.data);
|
|
2137
1993
|
expect(data.ext.ozone).to.haveOwnProperty('test_rw');
|
|
2138
1994
|
config.setConfig({'ozone': {'kvpPrefix': null}});
|
|
2139
1995
|
spec.propertyBag.whitelabel = null;
|
|
2140
1996
|
});
|
|
2141
|
-
|
|
2142
1997
|
it('handles an alias ', function () {
|
|
2143
1998
|
spec.propertyBag.whitelabel = null;
|
|
2144
1999
|
config.setConfig({'lmc': {'kvpPrefix': 'test'}});
|
|
2145
2000
|
let br = JSON.parse(JSON.stringify(validBidRequests));
|
|
2146
2001
|
br[0]['bidder'] = 'lmc';
|
|
2147
|
-
const request = spec.buildRequests(br, validBidderRequest
|
|
2002
|
+
const request = spec.buildRequests(br, validBidderRequest);
|
|
2148
2003
|
const data = JSON.parse(request.data);
|
|
2149
2004
|
expect(data.ext.lmc).to.haveOwnProperty('test_rw');
|
|
2150
2005
|
config.setConfig({'lmc': {'kvpPrefix': null}}); // I cant remove the key so set the value to null
|
|
@@ -2155,7 +2010,7 @@ describe('ozone Adapter', function () {
|
|
|
2155
2010
|
specMock.getGetParametersAsObject = function() {
|
|
2156
2011
|
return {'oztestmode': 'mytestvalue_123'};
|
|
2157
2012
|
};
|
|
2158
|
-
const request = specMock.buildRequests(validBidRequests, validBidderRequest
|
|
2013
|
+
const request = specMock.buildRequests(validBidRequests, validBidderRequest);
|
|
2159
2014
|
const data = JSON.parse(request.data);
|
|
2160
2015
|
expect(data.imp[0].ext.ozone.customData).to.be.an('array');
|
|
2161
2016
|
expect(data.imp[0].ext.ozone.customData[0].targeting.oztestmode).to.equal('mytestvalue_123');
|
|
@@ -2165,7 +2020,7 @@ describe('ozone Adapter', function () {
|
|
|
2165
2020
|
specMock.getGetParametersAsObject = function() {
|
|
2166
2021
|
return {ozf: '1', ozpf: '0', ozrp: '2', ozip: '123'};
|
|
2167
2022
|
};
|
|
2168
|
-
const request = specMock.buildRequests(validBidRequests, validBidderRequest
|
|
2023
|
+
const request = specMock.buildRequests(validBidRequests, validBidderRequest);
|
|
2169
2024
|
const data = JSON.parse(request.data);
|
|
2170
2025
|
expect(data.ext.ozone.ozf).to.equal(1);
|
|
2171
2026
|
expect(data.ext.ozone.ozpf).to.equal(0);
|
|
@@ -2177,7 +2032,7 @@ describe('ozone Adapter', function () {
|
|
|
2177
2032
|
specMock.getGetParametersAsObject = function() {
|
|
2178
2033
|
return {ozf: 'false', ozpf: 'true', ozrp: 'xyz', ozip: 'hello'};
|
|
2179
2034
|
};
|
|
2180
|
-
const request = specMock.buildRequests(validBidRequests, validBidderRequest
|
|
2035
|
+
const request = specMock.buildRequests(validBidRequests, validBidderRequest);
|
|
2181
2036
|
const data = JSON.parse(request.data);
|
|
2182
2037
|
expect(data.ext.ozone.ozf).to.equal(0);
|
|
2183
2038
|
expect(data.ext.ozone.ozpf).to.equal(1);
|
|
@@ -2189,7 +2044,7 @@ describe('ozone Adapter', function () {
|
|
|
2189
2044
|
specMock.getGetParametersAsObject = function() {
|
|
2190
2045
|
return {'oztestmode': 'mytestvalue_123'};
|
|
2191
2046
|
};
|
|
2192
|
-
const request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest
|
|
2047
|
+
const request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest);
|
|
2193
2048
|
const data = JSON.parse(request.data);
|
|
2194
2049
|
expect(data.imp[0].ext.ozone.customData).to.be.an('array');
|
|
2195
2050
|
expect(data.imp[0].ext.ozone.customData[0].targeting.oztestmode).to.equal('mytestvalue_123');
|
|
@@ -2199,17 +2054,16 @@ describe('ozone Adapter', function () {
|
|
|
2199
2054
|
specMock.getGetParametersAsObject = function() {
|
|
2200
2055
|
return {};
|
|
2201
2056
|
};
|
|
2202
|
-
let request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest
|
|
2057
|
+
let request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest);
|
|
2203
2058
|
let url = request.url;
|
|
2204
2059
|
expect(url).to.equal('https://elb.the-ozone-project.com/openrtb2/auction');
|
|
2205
2060
|
let cookieUrl = specMock.getCookieSyncUrl();
|
|
2206
2061
|
expect(cookieUrl).to.equal('https://elb.the-ozone-project.com/static/load-cookie.html');
|
|
2207
|
-
|
|
2208
2062
|
specMock = utils.deepClone(spec);
|
|
2209
2063
|
specMock.getGetParametersAsObject = function() {
|
|
2210
2064
|
return {'auction': 'dev', 'cookiesync': 'dev'};
|
|
2211
2065
|
};
|
|
2212
|
-
request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest
|
|
2066
|
+
request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest);
|
|
2213
2067
|
url = request.url;
|
|
2214
2068
|
expect(url).to.equal('https://test.ozpr.net/openrtb2/auction');
|
|
2215
2069
|
cookieUrl = specMock.getCookieSyncUrl();
|
|
@@ -2220,7 +2074,7 @@ describe('ozone Adapter', function () {
|
|
|
2220
2074
|
specMock.getGetParametersAsObject = function() {
|
|
2221
2075
|
return {'ozstoredrequest': '1122334455'}; // 10 digits are valid
|
|
2222
2076
|
};
|
|
2223
|
-
const request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest
|
|
2077
|
+
const request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest);
|
|
2224
2078
|
const data = JSON.parse(request.data);
|
|
2225
2079
|
expect(data.ext.ozone.oz_rw).to.equal(1);
|
|
2226
2080
|
expect(data.imp[0].ext.prebid.storedrequest.id).to.equal('1122334455');
|
|
@@ -2230,71 +2084,65 @@ describe('ozone Adapter', function () {
|
|
|
2230
2084
|
specMock.getGetParametersAsObject = function() {
|
|
2231
2085
|
return {'ozstoredrequest': 'BADVAL'}; // 10 digits are valid
|
|
2232
2086
|
};
|
|
2233
|
-
const request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest
|
|
2087
|
+
const request = specMock.buildRequests(validBidRequestsMinimal, validBidderRequest);
|
|
2234
2088
|
const data = JSON.parse(request.data);
|
|
2235
2089
|
expect(data.ext.ozone.oz_rw).to.equal(0);
|
|
2236
2090
|
expect(data.imp[0].ext.prebid.storedrequest.id).to.equal('1310000099');
|
|
2237
2091
|
});
|
|
2238
|
-
|
|
2239
2092
|
it('should pick up the config value of coppa & set it in the request', function () {
|
|
2240
2093
|
config.setConfig({'coppa': true});
|
|
2241
|
-
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest
|
|
2094
|
+
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest);
|
|
2242
2095
|
const payload = JSON.parse(request.data);
|
|
2243
2096
|
expect(payload.regs).to.include.keys('coppa');
|
|
2244
2097
|
expect(payload.regs.coppa).to.equal(1);
|
|
2245
|
-
config.resetConfig();
|
|
2246
2098
|
});
|
|
2247
2099
|
it('should pick up the config value of coppa & only set it in the request if its true', function () {
|
|
2248
2100
|
config.setConfig({'coppa': false});
|
|
2249
|
-
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest
|
|
2101
|
+
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest);
|
|
2250
2102
|
const payload = JSON.parse(request.data);
|
|
2251
2103
|
expect(utils.deepAccess(payload, 'regs.coppa')).to.be.undefined;
|
|
2252
|
-
config.resetConfig();
|
|
2253
2104
|
});
|
|
2254
2105
|
it('should handle oz_omp_floor correctly', function () {
|
|
2255
2106
|
config.setConfig({'ozone': {'oz_omp_floor': 1.56}});
|
|
2256
|
-
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest
|
|
2107
|
+
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest);
|
|
2257
2108
|
const payload = JSON.parse(request.data);
|
|
2258
2109
|
expect(utils.deepAccess(payload, 'ext.ozone.oz_omp_floor')).to.equal(1.56);
|
|
2259
|
-
config.resetConfig();
|
|
2260
2110
|
});
|
|
2261
2111
|
it('should ignore invalid oz_omp_floor values', function () {
|
|
2262
2112
|
config.setConfig({'ozone': {'oz_omp_floor': '1.56'}});
|
|
2263
|
-
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest
|
|
2113
|
+
const request = spec.buildRequests(validBidRequestsNoSizes, validBidderRequest);
|
|
2264
2114
|
const payload = JSON.parse(request.data);
|
|
2265
2115
|
expect(utils.deepAccess(payload, 'ext.ozone.oz_omp_floor')).to.be.undefined;
|
|
2266
|
-
config.resetConfig();
|
|
2267
2116
|
});
|
|
2268
2117
|
it('should should contain a unique page view id in the auction request which persists across calls', function () {
|
|
2269
|
-
let request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2118
|
+
let request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2270
2119
|
let payload = JSON.parse(request.data);
|
|
2271
2120
|
expect(utils.deepAccess(payload, 'ext.ozone.pv')).to.be.a('string');
|
|
2272
|
-
request = spec.buildRequests(validBidRequests1OutstreamVideo2020, validBidderRequest
|
|
2121
|
+
request = spec.buildRequests(validBidRequests1OutstreamVideo2020, validBidderRequest);
|
|
2273
2122
|
let payload2 = JSON.parse(request.data);
|
|
2274
2123
|
expect(utils.deepAccess(payload2, 'ext.ozone.pv')).to.be.a('string');
|
|
2275
2124
|
expect(utils.deepAccess(payload2, 'ext.ozone.pv')).to.equal(utils.deepAccess(payload, 'ext.ozone.pv'));
|
|
2276
2125
|
});
|
|
2277
2126
|
it('should indicate that the whitelist was used when it contains valid data', function () {
|
|
2278
2127
|
config.setConfig({'ozone': {'oz_whitelist_adserver_keys': ['oz_ozappnexus_pb', 'oz_ozappnexus_imp_id']}});
|
|
2279
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2128
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2280
2129
|
const payload = JSON.parse(request.data);
|
|
2281
2130
|
expect(payload.ext.ozone.oz_kvp_rw).to.equal(1);
|
|
2282
|
-
config.resetConfig();
|
|
2283
2131
|
});
|
|
2284
2132
|
it('should indicate that the whitelist was not used when it contains no data', function () {
|
|
2285
2133
|
config.setConfig({'ozone': {'oz_whitelist_adserver_keys': []}});
|
|
2286
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2134
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2287
2135
|
const payload = JSON.parse(request.data);
|
|
2288
2136
|
expect(payload.ext.ozone.oz_kvp_rw).to.equal(0);
|
|
2289
|
-
config.resetConfig();
|
|
2290
2137
|
});
|
|
2291
2138
|
it('should indicate that the whitelist was not used when it is not set in the config', function () {
|
|
2292
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2139
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2293
2140
|
const payload = JSON.parse(request.data);
|
|
2294
2141
|
expect(payload.ext.ozone.oz_kvp_rw).to.equal(0);
|
|
2295
2142
|
});
|
|
2296
2143
|
it('should handle ortb2 site data', function () {
|
|
2297
|
-
|
|
2144
|
+
let bidderRequest = JSON.parse(JSON.stringify(validBidderRequest));
|
|
2145
|
+
bidderRequest.ortb2 = {
|
|
2298
2146
|
'site': {
|
|
2299
2147
|
'name': 'example_ortb2_name',
|
|
2300
2148
|
'domain': 'page.example.com',
|
|
@@ -2307,14 +2155,14 @@ describe('ozone Adapter', function () {
|
|
|
2307
2155
|
'search': 'drill'
|
|
2308
2156
|
}
|
|
2309
2157
|
};
|
|
2310
|
-
const request = spec.buildRequests(validBidRequests,
|
|
2158
|
+
const request = spec.buildRequests(validBidRequests, bidderRequest);
|
|
2311
2159
|
const payload = JSON.parse(request.data);
|
|
2312
2160
|
expect(payload.imp[0].ext.ozone.customData[0].targeting.name).to.equal('example_ortb2_name');
|
|
2313
2161
|
expect(payload.user.ext).to.not.have.property('gender');
|
|
2314
|
-
config.resetConfig();
|
|
2315
2162
|
});
|
|
2316
2163
|
it('should add ortb2 site data when there is no customData already created', function () {
|
|
2317
|
-
|
|
2164
|
+
let bidderRequest = JSON.parse(JSON.stringify(validBidderRequest));
|
|
2165
|
+
bidderRequest.ortb2 = {
|
|
2318
2166
|
'site': {
|
|
2319
2167
|
'name': 'example_ortb2_name',
|
|
2320
2168
|
'domain': 'page.example.com',
|
|
@@ -2327,25 +2175,25 @@ describe('ozone Adapter', function () {
|
|
|
2327
2175
|
'search': 'drill'
|
|
2328
2176
|
}
|
|
2329
2177
|
};
|
|
2330
|
-
const request = spec.buildRequests(validBidRequestsNoCustomData,
|
|
2178
|
+
const request = spec.buildRequests(validBidRequestsNoCustomData, bidderRequest);
|
|
2331
2179
|
const payload = JSON.parse(request.data);
|
|
2332
2180
|
expect(payload.imp[0].ext.ozone.customData[0].targeting.name).to.equal('example_ortb2_name');
|
|
2333
2181
|
expect(payload.imp[0].ext.ozone.customData[0].targeting).to.not.have.property('gender')
|
|
2334
|
-
config.resetConfig();
|
|
2335
2182
|
});
|
|
2336
2183
|
it('should add ortb2 user data to the user object', function () {
|
|
2337
|
-
|
|
2184
|
+
let bidderRequest = JSON.parse(JSON.stringify(validBidderRequest));
|
|
2185
|
+
bidderRequest.ortb2 = {
|
|
2338
2186
|
'user': {
|
|
2339
|
-
'gender': '
|
|
2187
|
+
'gender': 'I identify as a box of rocks'
|
|
2340
2188
|
}
|
|
2341
2189
|
};
|
|
2342
|
-
const request = spec.buildRequests(validBidRequests,
|
|
2190
|
+
const request = spec.buildRequests(validBidRequests, bidderRequest);
|
|
2343
2191
|
const payload = JSON.parse(request.data);
|
|
2344
|
-
expect(payload.user.gender).to.equal('
|
|
2345
|
-
config.resetConfig();
|
|
2192
|
+
expect(payload.user.gender).to.equal('I identify as a box of rocks');
|
|
2346
2193
|
});
|
|
2347
2194
|
it('should not override the user.ext.consent string even if this is set in config ortb2', function () {
|
|
2348
|
-
|
|
2195
|
+
let bidderRequest = JSON.parse(JSON.stringify(bidderRequestWithFullGdpr));
|
|
2196
|
+
bidderRequest.ortb2 = {
|
|
2349
2197
|
'user': {
|
|
2350
2198
|
'ext': {
|
|
2351
2199
|
'consent': 'this is the consent override that shouldnt work',
|
|
@@ -2353,15 +2201,14 @@ describe('ozone Adapter', function () {
|
|
|
2353
2201
|
}
|
|
2354
2202
|
}
|
|
2355
2203
|
};
|
|
2356
|
-
const request = spec.buildRequests(validBidRequests,
|
|
2204
|
+
const request = spec.buildRequests(validBidRequests, bidderRequest);
|
|
2357
2205
|
const payload = JSON.parse(request.data);
|
|
2358
2206
|
expect(payload.user.ext.consent2).to.equal('this should be set');
|
|
2359
2207
|
expect(payload.user.ext.consent).to.equal('BOh7mtYOh7mtYAcABBENCU-AAAAncgPIXJiiAoao0PxBFkgCAC8ACIAAQAQQAAIAAAIAAAhBGAAAQAQAEQgAAAAAAABAAAAAAAAAAAAAAACAAAAAAAACgAAAAABAAAAQAAAAAAA');
|
|
2360
|
-
config.resetConfig();
|
|
2361
2208
|
});
|
|
2362
2209
|
it('should have openrtb video params', function() {
|
|
2363
2210
|
let allowed = ['mimes', 'minduration', 'maxduration', 'protocols', 'w', 'h', 'startdelay', 'placement', 'linearity', 'skip', 'skipmin', 'skipafter', 'sequence', 'battr', 'maxextended', 'minbitrate', 'maxbitrate', 'boxingallowed', 'playbackmethod', 'playbackend', 'delivery', 'pos', 'companionad', 'api', 'companiontype', 'ext'];
|
|
2364
|
-
const request = spec.buildRequests(validBidRequests1OutstreamVideo2020, validBidderRequest
|
|
2211
|
+
const request = spec.buildRequests(validBidRequests1OutstreamVideo2020, validBidderRequest);
|
|
2365
2212
|
const payload = JSON.parse(request.data);
|
|
2366
2213
|
const vid = (payload.imp[0].video);
|
|
2367
2214
|
const keys = Object.keys(vid);
|
|
@@ -2391,13 +2238,11 @@ describe('ozone Adapter', function () {
|
|
|
2391
2238
|
});
|
|
2392
2239
|
let localBidRequest = JSON.parse(JSON.stringify(validBidRequestsWithBannerMediaType));
|
|
2393
2240
|
localBidRequest[0].getFloor = function(x) { return {'currency': 'USD', 'floor': 0.8} };
|
|
2394
|
-
const request = spec.buildRequests(localBidRequest, validBidderRequest
|
|
2241
|
+
const request = spec.buildRequests(localBidRequest, validBidderRequest);
|
|
2395
2242
|
const payload = JSON.parse(request.data);
|
|
2396
2243
|
expect(utils.deepAccess(payload, 'imp.0.floor.banner.currency')).to.equal('USD');
|
|
2397
2244
|
expect(utils.deepAccess(payload, 'imp.0.floor.banner.floor')).to.equal(0.8);
|
|
2398
|
-
config.resetConfig();
|
|
2399
2245
|
});
|
|
2400
|
-
|
|
2401
2246
|
it('handles schain object in each bidrequest (will be the same in each br)', function () {
|
|
2402
2247
|
let br = JSON.parse(JSON.stringify(validBidRequests));
|
|
2403
2248
|
let schainConfigObject = {
|
|
@@ -2412,44 +2257,44 @@ describe('ozone Adapter', function () {
|
|
|
2412
2257
|
]
|
|
2413
2258
|
};
|
|
2414
2259
|
br[0]['schain'] = schainConfigObject;
|
|
2415
|
-
const request = spec.buildRequests(br, validBidderRequest
|
|
2260
|
+
const request = spec.buildRequests(br, validBidderRequest);
|
|
2416
2261
|
const data = JSON.parse(request.data);
|
|
2417
2262
|
expect(data.source.ext).to.haveOwnProperty('schain');
|
|
2418
2263
|
expect(data.source.ext.schain).to.deep.equal(schainConfigObject); // .deep.equal() : Target object deeply (but not strictly) equals `{a: 1}`
|
|
2419
2264
|
});
|
|
2420
2265
|
});
|
|
2421
|
-
|
|
2422
2266
|
describe('interpretResponse', function () {
|
|
2267
|
+
beforeEach(function () {
|
|
2268
|
+
config.resetConfig()
|
|
2269
|
+
})
|
|
2423
2270
|
it('should build bid array', function () {
|
|
2424
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2271
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2425
2272
|
const result = spec.interpretResponse(validResponse, request);
|
|
2426
2273
|
expect(result.length).to.equal(1);
|
|
2427
2274
|
});
|
|
2428
|
-
|
|
2429
2275
|
it('should have all relevant fields', function () {
|
|
2430
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2276
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2431
2277
|
const result = spec.interpretResponse(validResponse, request);
|
|
2432
2278
|
const bid = result[0];
|
|
2433
2279
|
expect(bid.cpm).to.equal(validResponse.body.seatbid[0].bid[0].cpm);
|
|
2434
2280
|
expect(bid.width).to.equal(validResponse.body.seatbid[0].bid[0].width);
|
|
2435
2281
|
expect(bid.height).to.equal(validResponse.body.seatbid[0].bid[0].height);
|
|
2436
2282
|
});
|
|
2437
|
-
|
|
2438
2283
|
it('should build bid array with gdpr', function () {
|
|
2439
|
-
let validBR = JSON.parse(JSON.stringify(bidderRequestWithFullGdpr
|
|
2284
|
+
let validBR = JSON.parse(JSON.stringify(bidderRequestWithFullGdpr));
|
|
2440
2285
|
validBR.gdprConsent = {'gdprApplies': 1, 'consentString': 'This is the gdpr consent string'};
|
|
2441
2286
|
const request = spec.buildRequests(validBidRequests, validBR); // works the old way, with GDPR not enforced by default
|
|
2442
2287
|
const result = spec.interpretResponse(validResponse, request);
|
|
2443
2288
|
expect(result.length).to.equal(1);
|
|
2444
2289
|
});
|
|
2445
2290
|
it('should build bid array with usp/CCPA', function () {
|
|
2446
|
-
let validBR = JSON.parse(JSON.stringify(bidderRequestWithFullGdpr
|
|
2291
|
+
let validBR = JSON.parse(JSON.stringify(bidderRequestWithFullGdpr));
|
|
2447
2292
|
validBR.uspConsent = '1YNY';
|
|
2448
2293
|
const request = spec.buildRequests(validBidRequests, validBR);
|
|
2449
2294
|
const payload = JSON.parse(request.data);
|
|
2450
|
-
expect(payload.user.ext.uspConsent).to.
|
|
2295
|
+
expect(payload.user.ext.uspConsent).not.to.exist;
|
|
2296
|
+
expect(payload.regs.ext.us_privacy).to.equal('1YNY');
|
|
2451
2297
|
});
|
|
2452
|
-
|
|
2453
2298
|
it('should build bid array with only partial gdpr', function () {
|
|
2454
2299
|
var validBidderRequestWithGdpr = bidderRequestWithPartialGdpr.bidderRequest;
|
|
2455
2300
|
validBidderRequestWithGdpr.gdprConsent = {'gdprApplies': 1, 'consentString': 'This is the gdpr consent string'};
|
|
@@ -2457,26 +2302,22 @@ describe('ozone Adapter', function () {
|
|
|
2457
2302
|
const payload = JSON.parse(request.data);
|
|
2458
2303
|
expect(payload.user.ext.consent).to.be.a('string');
|
|
2459
2304
|
});
|
|
2460
|
-
|
|
2461
2305
|
it('should fail ok if no seatbid in server response', function () {
|
|
2462
2306
|
const result = spec.interpretResponse({}, {});
|
|
2463
2307
|
expect(result).to.be.an('array');
|
|
2464
2308
|
expect(result).to.be.empty;
|
|
2465
2309
|
});
|
|
2466
|
-
|
|
2467
2310
|
it('should fail ok if seatbid is not an array', function () {
|
|
2468
2311
|
const result = spec.interpretResponse({'body': {'seatbid': 'nothing_here'}}, {});
|
|
2469
2312
|
expect(result).to.be.an('array');
|
|
2470
2313
|
expect(result).to.be.empty;
|
|
2471
2314
|
});
|
|
2472
|
-
|
|
2473
2315
|
it('should have video renderer for outstream video', function () {
|
|
2474
2316
|
const request = spec.buildRequests(validBidRequests1OutstreamVideo2020, validBidderRequest1OutstreamVideo2020.bidderRequest);
|
|
2475
2317
|
const result = spec.interpretResponse(getCleanValidVideoResponse(), validBidderRequest1OutstreamVideo2020);
|
|
2476
2318
|
const bid = result[0];
|
|
2477
2319
|
expect(bid.renderer).to.be.an.instanceOf(Renderer);
|
|
2478
2320
|
});
|
|
2479
|
-
|
|
2480
2321
|
it('should have NO video renderer for instream video', function () {
|
|
2481
2322
|
let instreamRequestsObj = JSON.parse(JSON.stringify(validBidRequests1OutstreamVideo2020));
|
|
2482
2323
|
instreamRequestsObj[0].mediaTypes.video.context = 'instream';
|
|
@@ -2487,99 +2328,87 @@ describe('ozone Adapter', function () {
|
|
|
2487
2328
|
const bid = result[0];
|
|
2488
2329
|
expect(bid.hasOwnProperty('renderer')).to.be.false;
|
|
2489
2330
|
});
|
|
2490
|
-
|
|
2491
2331
|
it('should correctly parse response where there are more bidders than ad slots', function () {
|
|
2492
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2332
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2493
2333
|
const result = spec.interpretResponse(validBidResponse1adWith2Bidders, request);
|
|
2494
2334
|
expect(result.length).to.equal(2);
|
|
2495
2335
|
});
|
|
2496
|
-
|
|
2497
2336
|
it('should have a ttl of 600', function () {
|
|
2498
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2337
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2499
2338
|
const result = spec.interpretResponse(validResponse, request);
|
|
2500
2339
|
expect(result[0].ttl).to.equal(300);
|
|
2501
2340
|
});
|
|
2502
|
-
|
|
2503
2341
|
it('should handle oz_omp_floor_dollars correctly, inserting 1 as necessary', function () {
|
|
2504
2342
|
config.setConfig({'ozone': {'oz_omp_floor': 0.01}});
|
|
2505
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2343
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2506
2344
|
const result = spec.interpretResponse(validResponse, request);
|
|
2507
2345
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_omp')).to.equal('1');
|
|
2508
|
-
config.resetConfig();
|
|
2509
2346
|
});
|
|
2510
2347
|
it('should handle oz_omp_floor_dollars correctly, inserting 0 as necessary', function () {
|
|
2511
2348
|
config.setConfig({'ozone': {'oz_omp_floor': 2.50}});
|
|
2512
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2349
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2513
2350
|
const result = spec.interpretResponse(validResponse, request);
|
|
2514
2351
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_omp')).to.equal('0');
|
|
2515
|
-
config.resetConfig();
|
|
2516
2352
|
});
|
|
2517
2353
|
it('should handle missing oz_omp_floor_dollars correctly, inserting nothing', function () {
|
|
2518
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2354
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2519
2355
|
const result = spec.interpretResponse(validResponse, request);
|
|
2520
2356
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_omp')).to.be.undefined;
|
|
2521
2357
|
});
|
|
2522
2358
|
it('should handle ext.bidder.ozone.floor correctly, setting flr & rid as necessary', function () {
|
|
2523
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2359
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2524
2360
|
let vres = JSON.parse(JSON.stringify(validResponse));
|
|
2525
2361
|
vres.body.seatbid[0].bid[0].ext.bidder.ozone = {floor: 1, ruleId: 'ZjbsYE1q'};
|
|
2526
2362
|
const result = spec.interpretResponse(vres, request);
|
|
2527
2363
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_flr')).to.equal(1);
|
|
2528
2364
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_rid')).to.equal('ZjbsYE1q');
|
|
2529
|
-
config.resetConfig();
|
|
2530
2365
|
});
|
|
2531
2366
|
it('should handle ext.bidder.ozone.floor correctly, inserting 0 as necessary', function () {
|
|
2532
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2367
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2533
2368
|
let vres = JSON.parse(JSON.stringify(validResponse));
|
|
2534
2369
|
vres.body.seatbid[0].bid[0].ext.bidder.ozone = {floor: 0, ruleId: 'ZjbXXE1q'};
|
|
2535
2370
|
const result = spec.interpretResponse(vres, request);
|
|
2536
2371
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_flr')).to.equal(0);
|
|
2537
2372
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_rid')).to.equal('ZjbXXE1q');
|
|
2538
|
-
config.resetConfig();
|
|
2539
2373
|
});
|
|
2540
2374
|
it('should handle ext.bidder.ozone.floor correctly, inserting nothing as necessary', function () {
|
|
2541
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2375
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2542
2376
|
let vres = JSON.parse(JSON.stringify(validResponse));
|
|
2543
2377
|
vres.body.seatbid[0].bid[0].ext.bidder.ozone = {};
|
|
2544
2378
|
const result = spec.interpretResponse(vres, request);
|
|
2545
2379
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_flr', null)).to.equal(null);
|
|
2546
2380
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_rid', null)).to.equal(null);
|
|
2547
|
-
config.resetConfig();
|
|
2548
2381
|
});
|
|
2549
2382
|
it('should handle ext.bidder.ozone.floor correctly, when bidder.ozone is not there', function () {
|
|
2550
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2383
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2551
2384
|
let vres = JSON.parse(JSON.stringify(validResponse));
|
|
2552
2385
|
const result = spec.interpretResponse(vres, request);
|
|
2553
2386
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_flr', null)).to.equal(null);
|
|
2554
2387
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_rid', null)).to.equal(null);
|
|
2555
|
-
config.resetConfig();
|
|
2556
2388
|
});
|
|
2557
2389
|
it('should handle a valid whitelist, removing items not on the list & leaving others', function () {
|
|
2558
2390
|
config.setConfig({'ozone': {'oz_whitelist_adserver_keys': ['oz_appnexus_crid', 'oz_appnexus_adId']}});
|
|
2559
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2391
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2560
2392
|
const result = spec.interpretResponse(validResponse, request);
|
|
2561
2393
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_adv')).to.be.undefined;
|
|
2562
2394
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_adId')).to.equal('2899ec066a91ff8-0-oz-0');
|
|
2563
|
-
config.resetConfig();
|
|
2564
2395
|
});
|
|
2565
2396
|
it('should ignore a whitelist if enhancedAdserverTargeting is false', function () {
|
|
2566
2397
|
config.setConfig({'ozone': {'oz_whitelist_adserver_keys': ['oz_appnexus_crid', 'oz_appnexus_imp_id'], 'enhancedAdserverTargeting': false}});
|
|
2567
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2398
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2568
2399
|
const result = spec.interpretResponse(validResponse, request);
|
|
2569
2400
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_adv')).to.be.undefined;
|
|
2570
2401
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_imp_id')).to.be.undefined;
|
|
2571
|
-
config.resetConfig();
|
|
2572
2402
|
});
|
|
2573
2403
|
it('should correctly handle enhancedAdserverTargeting being false', function () {
|
|
2574
2404
|
config.setConfig({'ozone': {'enhancedAdserverTargeting': false}});
|
|
2575
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2405
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2576
2406
|
const result = spec.interpretResponse(validResponse, request);
|
|
2577
2407
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_adv')).to.be.undefined;
|
|
2578
2408
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_appnexus_imp_id')).to.be.undefined;
|
|
2579
|
-
config.resetConfig();
|
|
2580
2409
|
});
|
|
2581
2410
|
it('should add flr into ads request if floor exists in the auction response', function () {
|
|
2582
|
-
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest
|
|
2411
|
+
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest);
|
|
2583
2412
|
let validres = JSON.parse(JSON.stringify(validResponse2Bids));
|
|
2584
2413
|
validres.body.seatbid[0].bid[0].ext.bidder.ozone = {'floor': 1};
|
|
2585
2414
|
const result = spec.interpretResponse(validres, request);
|
|
@@ -2587,7 +2416,7 @@ describe('ozone Adapter', function () {
|
|
|
2587
2416
|
expect(utils.deepAccess(result[1].adserverTargeting, 'oz_appnexus_flr', '')).to.equal('');
|
|
2588
2417
|
});
|
|
2589
2418
|
it('should add rid into ads request if ruleId exists in the auction response', function () {
|
|
2590
|
-
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest
|
|
2419
|
+
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest);
|
|
2591
2420
|
let validres = JSON.parse(JSON.stringify(validResponse2Bids));
|
|
2592
2421
|
validres.body.seatbid[0].bid[0].ext.bidder.ozone = {'ruleId': 123};
|
|
2593
2422
|
const result = spec.interpretResponse(validres, request);
|
|
@@ -2595,13 +2424,13 @@ describe('ozone Adapter', function () {
|
|
|
2595
2424
|
expect(utils.deepAccess(result[1].adserverTargeting, 'oz_appnexus_rid', '')).to.equal('');
|
|
2596
2425
|
});
|
|
2597
2426
|
it('should add oz_ozappnexus_sid (cid value) for all appnexus bids', function () {
|
|
2598
|
-
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest
|
|
2427
|
+
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest);
|
|
2599
2428
|
let validres = JSON.parse(JSON.stringify(validResponse2BidsSameAdunit));
|
|
2600
2429
|
const result = spec.interpretResponse(validres, request);
|
|
2601
2430
|
expect(utils.deepAccess(result[0].adserverTargeting, 'oz_ozappnexus_sid')).to.equal(result[0].cid);
|
|
2602
2431
|
});
|
|
2603
2432
|
it('should add unique adId values to each bid', function() {
|
|
2604
|
-
const request = spec.buildRequests(validBidRequests, validBidderRequest
|
|
2433
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2605
2434
|
let validres = JSON.parse(JSON.stringify(validResponse2BidsSameAdunit));
|
|
2606
2435
|
const result = spec.interpretResponse(validres, request);
|
|
2607
2436
|
expect(result.length).to.equal(1);
|
|
@@ -2610,7 +2439,7 @@ describe('ozone Adapter', function () {
|
|
|
2610
2439
|
});
|
|
2611
2440
|
it('should correctly process an auction with 2 adunits & multiple bidders one of which bids for both adslots', function() {
|
|
2612
2441
|
let validres = JSON.parse(JSON.stringify(multiResponse1));
|
|
2613
|
-
let request = spec.buildRequests(multiRequest1, multiBidderRequest1
|
|
2442
|
+
let request = spec.buildRequests(multiRequest1, multiBidderRequest1);
|
|
2614
2443
|
let result = spec.interpretResponse(validres, request);
|
|
2615
2444
|
expect(result.length).to.equal(4); // one of the 5 bids will have been removed
|
|
2616
2445
|
expect(result[1]['price']).to.equal(0.521);
|
|
@@ -2620,15 +2449,28 @@ describe('ozone Adapter', function () {
|
|
|
2620
2449
|
validres = JSON.parse(JSON.stringify(multiResponse1));
|
|
2621
2450
|
validres.body.seatbid[0].bid[1].price = 1.1;
|
|
2622
2451
|
validres.body.seatbid[0].bid[1].cpm = 1.1;
|
|
2623
|
-
request = spec.buildRequests(multiRequest1, multiBidderRequest1
|
|
2452
|
+
request = spec.buildRequests(multiRequest1, multiBidderRequest1);
|
|
2624
2453
|
result = spec.interpretResponse(validres, request);
|
|
2625
2454
|
expect(result[1]['price']).to.equal(1.1);
|
|
2626
2455
|
expect(result[1]['impid']).to.equal('3025f169863b7f8');
|
|
2627
2456
|
expect(result[1]['id']).to.equal('18552976939844681');
|
|
2628
2457
|
expect(result[1]['adserverTargeting']['oz_ozappnexus_adId']).to.equal('3025f169863b7f8-0-oz-1');
|
|
2629
2458
|
});
|
|
2459
|
+
it('should add mediaType: banner for a banner ad', function () {
|
|
2460
|
+
const request = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2461
|
+
const result = spec.interpretResponse(validResponse, request);
|
|
2462
|
+
expect(result[0].mediaType).to.equal('banner');
|
|
2463
|
+
});
|
|
2464
|
+
it('should add mediaType: video for a video ad', function () {
|
|
2465
|
+
let instreamRequestsObj = JSON.parse(JSON.stringify(validBidRequests1OutstreamVideo2020));
|
|
2466
|
+
instreamRequestsObj[0].mediaTypes.video.context = 'instream';
|
|
2467
|
+
let instreamBidderReq = JSON.parse(JSON.stringify(validBidderRequest1OutstreamVideo2020));
|
|
2468
|
+
instreamBidderReq.bidderRequest.bids[0].mediaTypes.video.context = 'instream';
|
|
2469
|
+
const result = spec.interpretResponse(getCleanValidVideoResponse(), instreamBidderReq);
|
|
2470
|
+
const bid = result[0];
|
|
2471
|
+
expect(bid.mediaType).to.equal('video');
|
|
2472
|
+
});
|
|
2630
2473
|
});
|
|
2631
|
-
|
|
2632
2474
|
describe('userSyncs', function () {
|
|
2633
2475
|
it('should fail gracefully if no server response', function () {
|
|
2634
2476
|
const result = spec.getUserSyncs('bad', false, gdpr1);
|
|
@@ -2639,7 +2481,7 @@ describe('ozone Adapter', function () {
|
|
|
2639
2481
|
expect(result).to.be.empty;
|
|
2640
2482
|
});
|
|
2641
2483
|
it('should append the various values if they exist', function() {
|
|
2642
|
-
spec.buildRequests(validBidRequests, validBidderRequest
|
|
2484
|
+
spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2643
2485
|
const result = spec.getUserSyncs({iframeEnabled: true}, 'good server response', gdpr1);
|
|
2644
2486
|
expect(result).to.be.an('array');
|
|
2645
2487
|
expect(result[0].url).to.include('publisherId=9876abcd12-3');
|
|
@@ -2648,19 +2490,18 @@ describe('ozone Adapter', function () {
|
|
|
2648
2490
|
expect(result[0].url).to.include('gdpr_consent=BOh7mtYOh7mtYAcABBENCU-AAAAncgPIXJiiAoao0PxBFkgCAC8ACIAAQAQQAAIAAAIAAAhBGAAAQAQAEQgAAAAAAABAAAAAAAAAAAAAAACAAAAAAAACgAAAAABAAAAQAAAAAAA');
|
|
2649
2491
|
});
|
|
2650
2492
|
it('should append ccpa (usp data)', function() {
|
|
2651
|
-
spec.buildRequests(validBidRequests, validBidderRequest
|
|
2493
|
+
spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2652
2494
|
const result = spec.getUserSyncs({iframeEnabled: true}, 'good server response', gdpr1, '1YYN');
|
|
2653
2495
|
expect(result).to.be.an('array');
|
|
2654
2496
|
expect(result[0].url).to.include('usp_consent=1YYN');
|
|
2655
2497
|
});
|
|
2656
2498
|
it('should use "" if no usp is sent to cookieSync', function() {
|
|
2657
|
-
spec.buildRequests(validBidRequests, validBidderRequest
|
|
2499
|
+
spec.buildRequests(validBidRequests, validBidderRequest);
|
|
2658
2500
|
const result = spec.getUserSyncs({iframeEnabled: true}, 'good server response', gdpr1);
|
|
2659
2501
|
expect(result).to.be.an('array');
|
|
2660
2502
|
expect(result[0].url).to.include('usp_consent=&');
|
|
2661
2503
|
});
|
|
2662
2504
|
});
|
|
2663
|
-
|
|
2664
2505
|
describe('video object utils', function () {
|
|
2665
2506
|
it('should find width & height from video object', function () {
|
|
2666
2507
|
let obj = {'playerSize': [640, 480], 'mimes': ['video/mp4'], 'context': 'outstream'};
|
|
@@ -2715,7 +2556,7 @@ describe('ozone Adapter', function () {
|
|
|
2715
2556
|
expect(result).to.be.null;
|
|
2716
2557
|
});
|
|
2717
2558
|
it('should add oz_appnexus_dealid into ads request if dealid exists in the auction response', function () {
|
|
2718
|
-
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest
|
|
2559
|
+
const request = spec.buildRequests(validBidRequestsMulti, validBidderRequest);
|
|
2719
2560
|
let validres = JSON.parse(JSON.stringify(validResponse2Bids));
|
|
2720
2561
|
validres.body.seatbid[0].bid[0].dealid = '1234';
|
|
2721
2562
|
const result = spec.interpretResponse(validres, request);
|
|
@@ -2723,7 +2564,6 @@ describe('ozone Adapter', function () {
|
|
|
2723
2564
|
expect(utils.deepAccess(result[1].adserverTargeting, 'oz_appnexus_dealid', '')).to.equal('');
|
|
2724
2565
|
});
|
|
2725
2566
|
});
|
|
2726
|
-
|
|
2727
2567
|
describe('default size', function () {
|
|
2728
2568
|
it('should should return default sizes if no obj is sent', function () {
|
|
2729
2569
|
let obj = '';
|
|
@@ -2732,7 +2572,6 @@ describe('ozone Adapter', function () {
|
|
|
2732
2572
|
expect(result.defaultWidth).to.equal(300);
|
|
2733
2573
|
});
|
|
2734
2574
|
});
|
|
2735
|
-
|
|
2736
2575
|
describe('getGranularityKeyName', function() {
|
|
2737
2576
|
it('should return a string granularity as-is', function() {
|
|
2738
2577
|
const result = getGranularityKeyName('', 'this is it', '');
|
|
@@ -2747,7 +2586,6 @@ describe('ozone Adapter', function () {
|
|
|
2747
2586
|
expect(result).to.equal('string buckets');
|
|
2748
2587
|
});
|
|
2749
2588
|
});
|
|
2750
|
-
|
|
2751
2589
|
describe('getGranularityObject', function() {
|
|
2752
2590
|
it('should return an object as-is', function() {
|
|
2753
2591
|
const result = getGranularityObject('', {'name': 'mark'}, '', '');
|
|
@@ -2758,19 +2596,19 @@ describe('ozone Adapter', function () {
|
|
|
2758
2596
|
expect(result.name).to.equal('rupert');
|
|
2759
2597
|
});
|
|
2760
2598
|
});
|
|
2761
|
-
|
|
2762
2599
|
describe('blockTheRequest', function() {
|
|
2600
|
+
beforeEach(function () {
|
|
2601
|
+
config.resetConfig()
|
|
2602
|
+
})
|
|
2763
2603
|
it('should return true if oz_request is false', function() {
|
|
2764
2604
|
config.setConfig({'ozone': {'oz_request': false}});
|
|
2765
|
-
let result = spec.blockTheRequest(
|
|
2605
|
+
let result = spec.blockTheRequest();
|
|
2766
2606
|
expect(result).to.be.true;
|
|
2767
|
-
config.resetConfig();
|
|
2768
2607
|
});
|
|
2769
2608
|
it('should return false if oz_request is true', function() {
|
|
2770
2609
|
config.setConfig({'ozone': {'oz_request': true}});
|
|
2771
|
-
let result = spec.blockTheRequest(
|
|
2610
|
+
let result = spec.blockTheRequest();
|
|
2772
2611
|
expect(result).to.be.false;
|
|
2773
|
-
config.resetConfig();
|
|
2774
2612
|
});
|
|
2775
2613
|
});
|
|
2776
2614
|
describe('getPageId', function() {
|
|
@@ -2876,11 +2714,10 @@ describe('ozone Adapter', function () {
|
|
|
2876
2714
|
expect(response[1].bid.length).to.equal(2);
|
|
2877
2715
|
});
|
|
2878
2716
|
});
|
|
2879
|
-
/**
|
|
2880
|
-
* spec.getWhitelabelConfigItem test - get a config value for a whitelabelled bidder,
|
|
2881
|
-
* from a standard ozone.oz_xxxx_yyy string
|
|
2882
|
-
*/
|
|
2883
2717
|
describe('getWhitelabelConfigItem', function() {
|
|
2718
|
+
beforeEach(function () {
|
|
2719
|
+
config.resetConfig()
|
|
2720
|
+
})
|
|
2884
2721
|
it('should fetch the whitelabelled equivalent config value correctly', function () {
|
|
2885
2722
|
var specMock = utils.deepClone(spec);
|
|
2886
2723
|
config.setConfig({'ozone': {'oz_omp_floor': 'ozone-floor-value'}});
|
|
@@ -2896,7 +2733,26 @@ describe('ozone Adapter', function () {
|
|
|
2896
2733
|
let testKey2 = 'ozone.singleRequest';
|
|
2897
2734
|
let markbidder_config2 = specMock.getWhitelabelConfigItem(testKey2);
|
|
2898
2735
|
expect(markbidder_config2).to.equal('markbidder-singlerequest-value');
|
|
2899
|
-
|
|
2736
|
+
});
|
|
2737
|
+
});
|
|
2738
|
+
describe('setBidMediaTypeIfNotExist', function() {
|
|
2739
|
+
it('should leave the bid object alone if it already contains mediaType', function() {
|
|
2740
|
+
let thisBid = {mediaType: 'marktest'};
|
|
2741
|
+
spec.setBidMediaTypeIfNotExist(thisBid, 'replacement');
|
|
2742
|
+
expect(thisBid.mediaType).to.equal('marktest');
|
|
2743
|
+
});
|
|
2744
|
+
it('should change the bid object if it doesnt already contain mediaType', function() {
|
|
2745
|
+
let thisBid = {someKey: 'someValue'};
|
|
2746
|
+
spec.setBidMediaTypeIfNotExist(thisBid, 'replacement');
|
|
2747
|
+
expect(thisBid.mediaType).to.equal('replacement');
|
|
2748
|
+
});
|
|
2749
|
+
});
|
|
2750
|
+
describe('getLoggableBidObject', function() {
|
|
2751
|
+
it('should return an object without a "renderer" element', function () {
|
|
2752
|
+
let obj = {'renderer': {}, 'somevalue': '', 'h': 100};
|
|
2753
|
+
let ret = spec.getLoggableBidObject(obj);
|
|
2754
|
+
expect(ret).to.not.have.own.property('renderer');
|
|
2755
|
+
expect(ret.h).to.equal(100);
|
|
2900
2756
|
});
|
|
2901
2757
|
});
|
|
2902
2758
|
});
|