prebid.js 9.4.1 → 9.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +31 -5
- package/.github/workflows/jscpd.yml +2 -2
- package/.github/workflows/linter.yml +107 -0
- package/creative/crossDomain.js +6 -3
- package/dist/33acrossAnalyticsAdapter.js +1 -1
- package/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/BTBidAdapter.js +1 -1
- package/dist/adagioAnalyticsAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adagioRtdProvider.js +1 -1
- package/dist/adagioUtils.js +1 -1
- package/dist/addefendBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/adkernelUtils.js +1 -0
- package/dist/adlooxRtdProvider.js +1 -1
- package/dist/admixerBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adstirBidAdapter.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/advRedAnalyticsAdapter.js +1 -0
- package/dist/adxcgAnalyticsAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/agmaAnalyticsAdapter.js +1 -1
- package/dist/aidemBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/akamaiDapRtdProvider.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/anonymisedRtdProvider.js +1 -1
- package/dist/apacdexBidAdapter.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/azerionedgeRtdProvider.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/chunk-core.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connatixBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contxtfulRtdProvider.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/currencyUtils.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/dailymotionBidAdapter.js +1 -1
- package/dist/debugging-standalone.js +1 -1
- package/dist/dependencies.json +69 -8
- package/dist/dfpAdServerVideo.js +1 -1
- package/dist/dfpAdpod.js +1 -1
- package/dist/dfpUtils.js +1 -1
- package/dist/discoveryBidAdapter.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/dxkultureBidAdapter.js +1 -1
- package/dist/eightPodAnalyticsAdapter.js +1 -1
- package/dist/eightPodBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/exadsBidAdapter.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/fintezaAnalyticsAdapter.js +1 -1
- package/dist/fpdUtils.js +1 -0
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gptPreAuction.js +1 -1
- package/dist/gptUtils.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/growthCodeRtdProvider.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5AnalyticsAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqAnalyticsAdapter.js +1 -0
- package/dist/ixBidAdapter.js +1 -1
- package/dist/jixieBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerBidAdapter.js +1 -1
- package/dist/jwplayerRtdProvider.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kimberliteBidAdapter.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luceadBidAdapter.js +1 -1
- package/dist/mabidderBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediagoBidAdapter.js +1 -1
- package/dist/medianetAnalyticsAdapter.js +1 -1
- package/dist/medianetBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/missenaBidAdapter.js +1 -1
- package/dist/mobianRtdProvider.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/nobidAnalyticsAdapter.js +1 -1
- package/dist/nobidBidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +208 -199
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openwebBidAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/optoutBidAdapter.js +1 -1
- package/dist/orbidderBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/paapi.js +1 -1
- package/dist/permutiveRtdProvider.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/playdigoBidAdapter.js +1 -1
- package/dist/prebidServerBidAdapter.js +1 -1
- package/dist/programmaticaBidAdapter.js +1 -1
- package/dist/publinkIdSystem.js +1 -1
- package/dist/publirBidAdapter.js +1 -1
- package/dist/pubmaticAnalyticsAdapter.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pubxaiAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevatehealthBidAdapter.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/ringieraxelspringerBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/riseUtils.js +1 -0
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/schainSerializer.js +1 -0
- 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/sizeMapping.js +1 -1
- package/dist/sizeUtils.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smarthubBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/snigelBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stnBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/symitriDapRtdProvider.js +1 -0
- package/dist/taboolaBidAdapter.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/targetVideoUtils.js +1 -0
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/telariaBidAdapter.js +1 -1
- package/dist/teqblazeUtils.js +1 -1
- package/dist/terceptAnalyticsAdapter.js +1 -1
- package/dist/themoneytizerBidAdapter.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/uid2IdSystem_shared.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unrulyBidAdapter.js +1 -1
- package/dist/userAgentUtils.js +1 -0
- package/dist/utiqIdSystem.js +1 -1
- package/dist/vidazooUtils.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/yahooAdsBidAdapter.js +1 -1
- package/dist/yandexIdSystem.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/integrationExamples/gpt/x-domain/creative.html +1 -1
- package/libraries/adkernelUtils/adkernelUtils.js +11 -0
- package/libraries/currencyUtils/floor.js +23 -0
- package/libraries/dfpUtils/dfpUtils.js +7 -0
- package/libraries/fpdUtils/deviceInfo.js +58 -0
- package/libraries/fpdUtils/pageInfo.js +73 -0
- package/libraries/gptUtils/gptUtils.js +23 -1
- package/libraries/riseUtils/index.js +330 -0
- package/libraries/schainSerializer/schainSerializer.js +24 -0
- package/libraries/sizeUtils/tranformSize.js +43 -0
- package/libraries/targetVideoUtils/bidderUtils.js +178 -0
- package/libraries/targetVideoUtils/constants.js +23 -0
- package/libraries/teqblazeUtils/bidderUtils.js +15 -11
- package/libraries/userAgentUtils/index.js +58 -0
- package/libraries/userAgentUtils/userAgentTypes.enums.js +22 -0
- package/modules/.submodules.json +1 -0
- package/modules/33acrossAnalyticsAdapter.js +2 -0
- package/modules/adagioAnalyticsAdapter.js +101 -84
- package/modules/adagioAnalyticsAdapter.md +4 -0
- package/modules/adagioBidAdapter.js +5 -17
- package/modules/adagioRtdProvider.js +18 -4
- package/modules/adkernelAdnBidAdapter.js +1 -12
- package/modules/adkernelBidAdapter.js +4 -13
- package/modules/adlooxAnalyticsAdapter.js +1 -0
- package/modules/admixerBidAdapter.js +10 -6
- package/modules/admixerBidAdapter.md +7 -10
- package/modules/adtrgtmeBidAdapter.js +1 -1
- package/modules/advRedAnalyticsAdapter.js +198 -0
- package/modules/advRedAnalyticsAdapter.md +30 -0
- package/modules/aidemBidAdapter.js +2 -0
- package/modules/akamaiDapRtdProvider.js +19 -798
- package/modules/anonymisedRtdProvider.js +5 -1
- package/modules/anonymisedRtdProvider.md +1 -1
- package/modules/apacdexBidAdapter.js +1 -1
- package/modules/appnexusBidAdapter.js +56 -2
- package/modules/automatadAnalyticsAdapter.js +2 -0
- package/modules/azerionedgeRtdProvider.js +13 -3
- package/modules/azerionedgeRtdProvider.md +0 -17
- package/modules/bridBidAdapter.js +47 -47
- package/modules/cleanioRtdProvider.js +1 -0
- package/modules/concertBidAdapter.js +1 -1
- package/modules/connatixBidAdapter.js +36 -8
- package/modules/connectIdSystem.js +6 -2
- package/modules/contxtfulRtdProvider.js +20 -2
- package/modules/contxtfulRtdProvider.md +1 -0
- package/modules/craftBidAdapter.js +1 -1
- package/modules/criteoBidAdapter.js +1 -1
- package/modules/cwireBidAdapter.js +5 -1
- package/modules/dailymotionBidAdapter.js +85 -65
- package/modules/debugging/debugging.js +3 -0
- package/modules/dfpAdServerVideo.js +15 -33
- package/modules/dfpAdpod.js +2 -6
- package/modules/dgkeywordRtdProvider.js +2 -0
- package/modules/discoveryBidAdapter.js +26 -210
- package/modules/dspxBidAdapter.js +176 -54
- package/modules/eightPodAnalyticsAdapter.js +28 -34
- package/modules/eightPodBidAdapter.js +113 -57
- package/modules/fintezaAnalyticsAdapter.js +9 -4
- package/modules/goldbachBidAdapter.js +1 -1
- package/modules/gptPreAuction.js +63 -4
- package/modules/growthCodeAnalyticsAdapter.js +1 -1
- package/modules/growthCodeRtdProvider.js +1 -1
- package/modules/gumgumBidAdapter.js +14 -10
- package/modules/improvedigitalBidAdapter.js +1 -1
- package/modules/insticatorBidAdapter.js +35 -31
- package/modules/intentIqAnalyticsAdapter.js +234 -0
- package/modules/intentIqAnalyticsAdapter.md +27 -0
- package/modules/intentIqIdSystem.md +0 -0
- package/modules/jwplayerBidAdapter.js +1 -1
- package/modules/jwplayerRtdProvider.js +26 -6
- package/modules/jwplayerVideoProvider.js +6 -0
- package/modules/kargoBidAdapter.js +11 -14
- package/modules/kimberliteBidAdapter.js +24 -7
- package/modules/kimberliteBidAdapter.md +30 -1
- package/modules/mediafuseBidAdapter.js +1 -1
- package/modules/mediagoBidAdapter.js +7 -176
- package/modules/medianetBidAdapter.js +101 -40
- package/modules/mgidBidAdapter.js +3 -1
- package/modules/minutemediaBidAdapter.js +21 -398
- package/modules/mobianRtdProvider.js +16 -2
- package/modules/nextMillenniumBidAdapter.js +1 -27
- package/modules/nexx360BidAdapter.js +3 -2
- package/modules/nobidBidAdapter.js +1 -1
- package/modules/openwebBidAdapter.js +18 -396
- package/modules/optoutBidAdapter.js +1 -1
- package/modules/paapi.js +48 -35
- package/modules/permutiveRtdProvider.js +72 -22
- package/modules/playdigoBidAdapter.js +4 -2
- package/modules/prebidServerBidAdapter/index.js +4 -2
- package/modules/prebidServerBidAdapter/ortbConverter.js +1 -0
- package/modules/programmaticaBidAdapter.js +1 -1
- package/modules/publirBidAdapter.js +20 -273
- package/modules/pubmaticBidAdapter.js +12 -0
- package/modules/pubxaiAnalyticsAdapter.js +306 -164
- package/modules/relevatehealthBidAdapter.js +2 -1
- package/modules/resetdigitalBidAdapter.md +54 -45
- package/modules/richaudienceBidAdapter.js +1 -1
- package/modules/riseBidAdapter.js +19 -400
- package/modules/rtdModule/index.js +5 -3
- package/modules/shinezBidAdapter.js +17 -361
- package/modules/sirdataRtdProvider.js +2 -0
- package/modules/sizeMapping.js +2 -5
- package/modules/smaatoBidAdapter.js +18 -1
- package/modules/smarthubBidAdapter.js +45 -177
- package/modules/smilewantedBidAdapter.js +26 -22
- package/modules/snigelBidAdapter.js +1 -1
- package/modules/sonobiBidAdapter.js +5 -10
- package/modules/stnBidAdapter.js +22 -398
- package/modules/symitriDapRtdProvider.js +812 -0
- package/modules/symitriDapRtdProvider.md +49 -0
- package/modules/targetVideoBidAdapter.js +120 -152
- package/modules/targetVideoBidAdapter.md +20 -3
- package/modules/telariaBidAdapter.js +2 -32
- package/modules/uid2IdSystem_shared.js +51 -39
- package/modules/userId/eids.js +3 -0
- package/modules/utiqIdSystem.js +12 -10
- package/modules/validationFpdModule/index.js +22 -17
- package/modules/videojsVideoProvider.js +3 -0
- package/modules/visxBidAdapter.js +1 -1
- package/modules/winrBidAdapter.js +2 -27
- package/modules/yahooAdsBidAdapter.js +1 -1
- package/modules/yandexIdSystem.js +1 -1
- package/package.json +4 -4
- package/plugins/eslint/index.js +73 -45
- package/src/adloader.js +1 -0
- package/src/ajax.js +15 -0
- package/src/config.js +0 -4
- package/src/debugging.js +1 -0
- package/src/prebid.js +4 -0
- package/src/secureCreatives.js +1 -1
- package/src/storageManager.js +62 -73
- package/src/targeting.js +26 -20
- package/src/utils.js +9 -0
- package/test/pages/consent_mgt_gdpr.html +1 -1
- package/test/spec/ajax_spec.js +11 -0
- package/test/spec/creative/crossDomainCreative_spec.js +26 -9
- package/test/spec/fpd/gdpr_spec.js +1 -1
- package/test/spec/libraries/userAgentUtils_spec.js +109 -0
- package/test/spec/modules/adagioAnalyticsAdapter_spec.js +231 -141
- package/test/spec/modules/adagioBidAdapter_spec.js +32 -66
- package/test/spec/modules/adagioRtdProvider_spec.js +72 -0
- package/test/spec/modules/admixerBidAdapter_spec.js +21 -17
- package/test/spec/modules/advRedAnalyticsAdapter_spec.js +114 -0
- package/test/spec/modules/adxcgBidAdapter_spec.js +1 -1
- package/test/spec/modules/appnexusBidAdapter_spec.js +36 -0
- package/test/spec/modules/azerionedgeRtdProvider_spec.js +36 -21
- package/test/spec/modules/connatixBidAdapter_spec.js +55 -2
- package/test/spec/modules/connectIdSystem_spec.js +27 -28
- package/test/spec/modules/consentManagement_spec.js +1 -1
- package/test/spec/modules/contxtfulRtdProvider_spec.js +6 -0
- package/test/spec/modules/dailymotionBidAdapter_spec.js +497 -4
- package/test/spec/modules/discoveryBidAdapter_spec.js +9 -6
- package/test/spec/modules/dspxBidAdapter_spec.js +188 -7
- package/test/spec/modules/eightPodAnalyticsAdapter_spec.js +22 -13
- package/test/spec/modules/gptPreAuction_spec.js +143 -1
- package/test/spec/modules/gumgumBidAdapter_spec.js +17 -0
- package/test/spec/modules/insticatorBidAdapter_spec.js +8 -1
- package/test/spec/modules/intentIqAnalyticsAdapter_spec.js +172 -0
- package/test/spec/modules/jwplayerRtdProvider_spec.js +61 -0
- package/test/spec/modules/kargoBidAdapter_spec.js +7 -8
- package/test/spec/modules/kimberliteBidAdapter_spec.js +137 -65
- package/test/spec/modules/mediagoBidAdapter_spec.js +34 -37
- package/test/spec/modules/medianetBidAdapter_spec.js +297 -16
- package/test/spec/modules/mgidBidAdapter_spec.js +15 -5
- package/test/spec/modules/mobianRtdProvider_spec.js +1 -3
- package/test/spec/modules/nexx360BidAdapter_spec.js +1 -1
- package/test/spec/modules/paapi_spec.js +177 -111
- package/test/spec/modules/permutiveRtdProvider_spec.js +42 -8
- package/test/spec/modules/prebidServerBidAdapter_spec.js +17 -3
- package/test/spec/modules/proxistoreBidAdapter_spec.js +1 -1
- package/test/spec/modules/pubmaticBidAdapter_spec.js +40 -0
- package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +970 -603
- package/test/spec/modules/pulsepointBidAdapter_spec.js +4 -4
- package/test/spec/modules/smaatoBidAdapter_spec.js +36 -1
- package/test/spec/modules/smarthubBidAdapter_spec.js +6 -4
- package/test/spec/modules/smilewantedBidAdapter_spec.js +57 -1
- package/test/spec/modules/symitriDapRtdProvider_spec.js +600 -0
- package/test/spec/modules/targetVideoBidAdapter_spec.js +112 -11
- package/test/spec/modules/yandexIdSystem_spec.js +6 -1
- package/test/spec/schainSerializer/schainSerializer_spec.js +138 -0
- package/test/spec/unit/core/storageManager_spec.js +68 -51
- package/test/spec/unit/pbjs_api_spec.js +11 -0
- package/test/spec/utils_spec.js +19 -0
- /package/src/utils/{gpdr.js → gdpr.js} +0 -0
|
@@ -1,23 +1,28 @@
|
|
|
1
|
-
import {deepAccess, isFn, logError, logMessage} from '../src/utils.js';
|
|
2
1
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
2
|
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
|
|
4
|
-
import {
|
|
5
|
-
|
|
3
|
+
import {
|
|
4
|
+
buildPlacementProcessingFunction,
|
|
5
|
+
buildRequestsBase,
|
|
6
|
+
interpretResponseBuilder,
|
|
7
|
+
isBidRequestValid
|
|
8
|
+
} from '../libraries/teqblazeUtils/bidderUtils.js';
|
|
6
9
|
|
|
7
10
|
const BIDDER_CODE = 'smarthub';
|
|
8
11
|
const ALIASES = [
|
|
9
12
|
{code: 'markapp', skipPbsAliasing: true},
|
|
10
13
|
{code: 'jdpmedia', skipPbsAliasing: true},
|
|
11
14
|
{code: 'tredio', skipPbsAliasing: true},
|
|
15
|
+
{code: 'vimayx', skipPbsAliasing: true},
|
|
12
16
|
];
|
|
13
17
|
const BASE_URLS = {
|
|
14
18
|
smarthub: 'https://prebid.smart-hub.io/pbjs',
|
|
15
19
|
markapp: 'https://markapp-prebid.smart-hub.io/pbjs',
|
|
16
20
|
jdpmedia: 'https://jdpmedia-prebid.smart-hub.io/pbjs',
|
|
17
|
-
tredio: 'https://tredio-prebid.smart-hub.io/pbjs'
|
|
21
|
+
tredio: 'https://tredio-prebid.smart-hub.io/pbjs',
|
|
22
|
+
vimayx: 'https://vimayx-prebid.smart-hub.io/pbjs',
|
|
18
23
|
};
|
|
19
24
|
|
|
20
|
-
|
|
25
|
+
const _getUrl = (partnerName) => {
|
|
21
26
|
const aliases = ALIASES.map(el => el.code);
|
|
22
27
|
if (aliases.includes(partnerName)) {
|
|
23
28
|
return BASE_URLS[partnerName];
|
|
@@ -26,187 +31,50 @@ function getUrl(partnerName) {
|
|
|
26
31
|
return `${BASE_URLS[BIDDER_CODE]}?partnerName=${partnerName}`;
|
|
27
32
|
}
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function getPlacementReqData(bid) {
|
|
46
|
-
const { params, bidId, mediaTypes, bidder } = bid;
|
|
47
|
-
const schain = bid.schain || {};
|
|
48
|
-
const { partnerName, seat, token, iabCat, minBidfloor, pos } = params;
|
|
49
|
-
const bidfloor = getBidFloor(bid);
|
|
50
|
-
|
|
51
|
-
const plcmt = {
|
|
52
|
-
partnerName: String(partnerName || bidder).toLowerCase(),
|
|
53
|
-
seat,
|
|
54
|
-
token,
|
|
55
|
-
iabCat,
|
|
56
|
-
minBidfloor,
|
|
57
|
-
pos,
|
|
58
|
-
bidId,
|
|
59
|
-
schain,
|
|
60
|
-
bidfloor,
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
if (mediaTypes && mediaTypes[BANNER]) {
|
|
64
|
-
plcmt.adFormat = BANNER;
|
|
65
|
-
plcmt.sizes = mediaTypes[BANNER].sizes;
|
|
66
|
-
} else if (mediaTypes && mediaTypes[VIDEO]) {
|
|
67
|
-
plcmt.adFormat = VIDEO;
|
|
68
|
-
plcmt.playerSize = mediaTypes[VIDEO].playerSize;
|
|
69
|
-
plcmt.minduration = mediaTypes[VIDEO].minduration;
|
|
70
|
-
plcmt.maxduration = mediaTypes[VIDEO].maxduration;
|
|
71
|
-
plcmt.mimes = mediaTypes[VIDEO].mimes;
|
|
72
|
-
plcmt.protocols = mediaTypes[VIDEO].protocols;
|
|
73
|
-
plcmt.startdelay = mediaTypes[VIDEO].startdelay;
|
|
74
|
-
plcmt.placement = mediaTypes[VIDEO].plcmt;
|
|
75
|
-
plcmt.plcmt = mediaTypes[VIDEO].plcmt; // https://github.com/prebid/Prebid.js/issues/10452
|
|
76
|
-
plcmt.skip = mediaTypes[VIDEO].skip;
|
|
77
|
-
plcmt.skipafter = mediaTypes[VIDEO].skipafter;
|
|
78
|
-
plcmt.minbitrate = mediaTypes[VIDEO].minbitrate;
|
|
79
|
-
plcmt.maxbitrate = mediaTypes[VIDEO].maxbitrate;
|
|
80
|
-
plcmt.delivery = mediaTypes[VIDEO].delivery;
|
|
81
|
-
plcmt.playbackmethod = mediaTypes[VIDEO].playbackmethod;
|
|
82
|
-
plcmt.api = mediaTypes[VIDEO].api;
|
|
83
|
-
plcmt.linearity = mediaTypes[VIDEO].linearity;
|
|
84
|
-
} else if (mediaTypes && mediaTypes[NATIVE]) {
|
|
85
|
-
plcmt.native = mediaTypes[NATIVE];
|
|
86
|
-
plcmt.adFormat = NATIVE;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return plcmt;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function getBidFloor(bid) {
|
|
93
|
-
if (!isFn(bid.getFloor)) {
|
|
94
|
-
return deepAccess(bid, 'params.bidfloor', 0);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
try {
|
|
98
|
-
const bidFloor = bid.getFloor({
|
|
99
|
-
currency: 'USD',
|
|
100
|
-
mediaType: '*',
|
|
101
|
-
size: '*',
|
|
34
|
+
const getPartnerName = (bid) => String(bid.params?.partnerName || bid.bidder).toLowerCase();
|
|
35
|
+
|
|
36
|
+
const getPlacementReqData = buildPlacementProcessingFunction({
|
|
37
|
+
addPlacementType() {},
|
|
38
|
+
addCustomFieldsToPlacement(bid, bidderRequest, placement) {
|
|
39
|
+
const { seat, token, iabCat, minBidfloor, pos } = bid.params;
|
|
40
|
+
Object.assign(placement, {
|
|
41
|
+
partnerName: getPartnerName(bid),
|
|
42
|
+
seat,
|
|
43
|
+
token,
|
|
44
|
+
iabCat,
|
|
45
|
+
minBidfloor,
|
|
46
|
+
pos,
|
|
102
47
|
});
|
|
103
|
-
return bidFloor.floor;
|
|
104
|
-
} catch (e) {
|
|
105
|
-
logError(e);
|
|
106
|
-
return 0;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function buildRequestParams(bidderRequest = {}, placements = []) {
|
|
111
|
-
let deviceWidth = 0;
|
|
112
|
-
let deviceHeight = 0;
|
|
113
|
-
|
|
114
|
-
let winLocation;
|
|
115
|
-
try {
|
|
116
|
-
const winTop = window.top;
|
|
117
|
-
deviceWidth = winTop.screen.width;
|
|
118
|
-
deviceHeight = winTop.screen.height;
|
|
119
|
-
winLocation = winTop.location;
|
|
120
|
-
} catch (e) {
|
|
121
|
-
logMessage(e);
|
|
122
|
-
winLocation = window.location;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
const refferUrl = bidderRequest.refererInfo && bidderRequest.refererInfo.page;
|
|
126
|
-
let refferLocation;
|
|
127
|
-
try {
|
|
128
|
-
refferLocation = refferUrl && new URL(refferUrl);
|
|
129
|
-
} catch (e) {
|
|
130
|
-
logMessage(e);
|
|
131
48
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
gdpr: bidderRequest.gdprConsent || undefined,
|
|
149
|
-
tmax: bidderRequest.timeout
|
|
150
|
-
};
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
const buildRequests = (validBidRequests = [], bidderRequest = {}) => {
|
|
52
|
+
const bidsByPartner = validBidRequests.reduce((bidsByPartner, bid) => {
|
|
53
|
+
const partner = getPartnerName(bid);
|
|
54
|
+
(bidsByPartner[partner] = bidsByPartner[partner] || []).push(bid);
|
|
55
|
+
return bidsByPartner;
|
|
56
|
+
}, {});
|
|
57
|
+
return Object.entries(bidsByPartner).map(([partner, validBidRequests]) => {
|
|
58
|
+
return buildRequestsBase({
|
|
59
|
+
adUrl: _getUrl(partner),
|
|
60
|
+
bidderRequest,
|
|
61
|
+
validBidRequests,
|
|
62
|
+
placementProcessingFunction: getPlacementReqData
|
|
63
|
+
})
|
|
64
|
+
})
|
|
151
65
|
}
|
|
152
66
|
|
|
153
67
|
export const spec = {
|
|
154
68
|
code: BIDDER_CODE,
|
|
155
69
|
aliases: ALIASES,
|
|
156
70
|
supportedMediaTypes: [BANNER, VIDEO, NATIVE],
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (mediaTypes && mediaTypes[BANNER]) {
|
|
163
|
-
valid = valid && Boolean(mediaTypes[BANNER] && mediaTypes[BANNER].sizes);
|
|
164
|
-
} else if (mediaTypes && mediaTypes[VIDEO]) {
|
|
165
|
-
valid = valid && Boolean(mediaTypes[VIDEO] && mediaTypes[VIDEO].playerSize);
|
|
166
|
-
} else if (mediaTypes && mediaTypes[NATIVE]) {
|
|
167
|
-
valid = valid && Boolean(mediaTypes[NATIVE]);
|
|
168
|
-
} else {
|
|
169
|
-
valid = false;
|
|
71
|
+
isBidRequestValid: isBidRequestValid(['seat', 'token'], 'every'),
|
|
72
|
+
buildRequests,
|
|
73
|
+
interpretResponse: interpretResponseBuilder({
|
|
74
|
+
addtlBidValidation(bid) {
|
|
75
|
+
return bid.hasOwnProperty('netRevenue')
|
|
170
76
|
}
|
|
171
|
-
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
buildRequests: (validBidRequests = [], bidderRequest = {}) => {
|
|
175
|
-
// convert Native ORTB definition to old-style prebid native definition
|
|
176
|
-
validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
|
|
177
|
-
const tempObj = {};
|
|
178
|
-
|
|
179
|
-
const len = validBidRequests.length;
|
|
180
|
-
for (let i = 0; i < len; i++) {
|
|
181
|
-
const bid = validBidRequests[i];
|
|
182
|
-
const data = getPlacementReqData(bid);
|
|
183
|
-
tempObj[data.partnerName] = tempObj[data.partnerName] || [];
|
|
184
|
-
tempObj[data.partnerName].push(data);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
return Object.keys(tempObj).map(key => {
|
|
188
|
-
const request = buildRequestParams(bidderRequest, tempObj[key]);
|
|
189
|
-
return {
|
|
190
|
-
method: 'POST',
|
|
191
|
-
url: getUrl(key),
|
|
192
|
-
data: request,
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
},
|
|
196
|
-
|
|
197
|
-
interpretResponse: (serverResponse) => {
|
|
198
|
-
let response = [];
|
|
199
|
-
for (let i = 0; i < serverResponse.body.length; i++) {
|
|
200
|
-
let resItem = serverResponse.body[i];
|
|
201
|
-
if (isBidResponseValid(resItem)) {
|
|
202
|
-
const advertiserDomains = resItem.adomain && resItem.adomain.length ? resItem.adomain : [];
|
|
203
|
-
resItem.meta = { ...resItem.meta, advertiserDomains };
|
|
204
|
-
|
|
205
|
-
response.push(resItem);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return response;
|
|
209
|
-
}
|
|
77
|
+
})
|
|
210
78
|
};
|
|
211
79
|
|
|
212
80
|
registerBidder(spec);
|
|
@@ -4,6 +4,7 @@ import {config} from '../src/config.js';
|
|
|
4
4
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
5
5
|
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
|
|
6
6
|
import {INSTREAM, OUTSTREAM} from '../src/video.js';
|
|
7
|
+
import {serializeSupplyChain} from '../libraries/schainSerializer/schainSerializer.js'
|
|
7
8
|
import {convertOrtbRequestToProprietaryNative, toOrtbNativeRequest, toLegacyResponse} from '../src/native.js';
|
|
8
9
|
|
|
9
10
|
const BIDDER_CODE = 'smilewanted';
|
|
@@ -82,7 +83,8 @@ export const spec = {
|
|
|
82
83
|
or from mediaTypes.banner.pos
|
|
83
84
|
*/
|
|
84
85
|
positionType: bid.params.positionType || '',
|
|
85
|
-
prebidVersion: '$prebid.version$'
|
|
86
|
+
prebidVersion: '$prebid.version$',
|
|
87
|
+
schain: serializeSupplyChain(bid.schain, ['asi', 'sid', 'hp', 'rid', 'name', 'domain', 'ext']),
|
|
86
88
|
};
|
|
87
89
|
|
|
88
90
|
const floor = getBidFloor(bid);
|
|
@@ -154,16 +156,16 @@ export const spec = {
|
|
|
154
156
|
if (response) {
|
|
155
157
|
const dealId = response.dealId || '';
|
|
156
158
|
const bidResponse = {
|
|
157
|
-
|
|
159
|
+
ad: response.ad,
|
|
158
160
|
cpm: response.cpm,
|
|
159
|
-
width: response.width,
|
|
160
|
-
height: response.height,
|
|
161
161
|
creativeId: response.creativeId,
|
|
162
|
-
dealId: response.dealId,
|
|
163
162
|
currency: response.currency,
|
|
163
|
+
dealId: response.dealId,
|
|
164
|
+
height: response.height,
|
|
164
165
|
netRevenue: response.isNetCpm,
|
|
166
|
+
requestId: bidRequestData.bidId,
|
|
165
167
|
ttl: response.ttl,
|
|
166
|
-
|
|
168
|
+
width: response.width,
|
|
167
169
|
};
|
|
168
170
|
|
|
169
171
|
if (response.formatTypeSw === 'video_instream' || response.formatTypeSw === 'video_outstream') {
|
|
@@ -209,28 +211,30 @@ export const spec = {
|
|
|
209
211
|
* @param {Object} uspConsent The USP consent parameters
|
|
210
212
|
* @return {UserSync[]} The user syncs which should be dropped.
|
|
211
213
|
*/
|
|
212
|
-
getUserSyncs: function(syncOptions, responses, gdprConsent, uspConsent) {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
if (
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
214
|
+
getUserSyncs: function (syncOptions, responses, gdprConsent, uspConsent) {
|
|
215
|
+
const syncs = [];
|
|
216
|
+
|
|
217
|
+
if (syncOptions.iframeEnabled) {
|
|
218
|
+
let params = [];
|
|
219
|
+
|
|
220
|
+
if (gdprConsent && typeof gdprConsent.consentString === 'string') {
|
|
221
|
+
// add 'gdpr' only if 'gdprApplies' is defined
|
|
222
|
+
if (typeof gdprConsent.gdprApplies === 'boolean') {
|
|
223
|
+
params.push(`gdpr=${Number(gdprConsent.gdprApplies)}&gdpr_consent=${gdprConsent.consentString}`);
|
|
224
|
+
} else {
|
|
225
|
+
params.push(`gdpr_consent=${gdprConsent.consentString}`);
|
|
226
|
+
}
|
|
221
227
|
}
|
|
222
|
-
}
|
|
223
228
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
229
|
+
if (uspConsent) {
|
|
230
|
+
params.push(`us_privacy=${encodeURIComponent(uspConsent)}`);
|
|
231
|
+
}
|
|
227
232
|
|
|
228
|
-
|
|
233
|
+
const paramsStr = params.length > 0 ? '?' + params.join('&') : '';
|
|
229
234
|
|
|
230
|
-
if (syncOptions.iframeEnabled) {
|
|
231
235
|
syncs.push({
|
|
232
236
|
type: 'iframe',
|
|
233
|
-
url: 'https://csync.smilewanted.com' +
|
|
237
|
+
url: 'https://csync.smilewanted.com' + paramsStr
|
|
234
238
|
});
|
|
235
239
|
}
|
|
236
240
|
|
|
@@ -2,7 +2,7 @@ import {config} from '../src/config.js';
|
|
|
2
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import {BANNER} from '../src/mediaTypes.js';
|
|
4
4
|
import {deepAccess, isArray, isFn, isPlainObject, inIframe, getDNT, generateUUID} from '../src/utils.js';
|
|
5
|
-
import {hasPurpose1Consent} from '../src/utils/
|
|
5
|
+
import {hasPurpose1Consent} from '../src/utils/gdpr.js';
|
|
6
6
|
import {getStorageManager} from '../src/storageManager.js';
|
|
7
7
|
|
|
8
8
|
const BIDDER_CODE = 'snigel';
|
|
@@ -414,8 +414,6 @@ export function _getPlatform(context = window) {
|
|
|
414
414
|
* @return {object} firstPartyData - Data object containing first party information
|
|
415
415
|
*/
|
|
416
416
|
function loadOrCreateFirstPartyData() {
|
|
417
|
-
var localStorageEnabled;
|
|
418
|
-
|
|
419
417
|
var FIRST_PARTY_KEY = '_iiq_fdata';
|
|
420
418
|
var tryParse = function (data) {
|
|
421
419
|
try {
|
|
@@ -426,19 +424,14 @@ function loadOrCreateFirstPartyData() {
|
|
|
426
424
|
};
|
|
427
425
|
var readData = function (key) {
|
|
428
426
|
if (hasLocalStorage()) {
|
|
427
|
+
// TODO FIX RULES VIOLATION
|
|
428
|
+
// eslint-disable-next-line prebid/no-global
|
|
429
429
|
return window.localStorage.getItem(key);
|
|
430
430
|
}
|
|
431
431
|
return null;
|
|
432
432
|
};
|
|
433
|
+
// TODO FIX RULES VIOLATION - USE STORAGE MANAGER
|
|
433
434
|
var hasLocalStorage = function () {
|
|
434
|
-
if (typeof localStorageEnabled != 'undefined') { return localStorageEnabled; } else {
|
|
435
|
-
try {
|
|
436
|
-
localStorageEnabled = !!window.localStorage;
|
|
437
|
-
return localStorageEnabled;
|
|
438
|
-
} catch (e) {
|
|
439
|
-
localStorageEnabled = false;
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
435
|
return false;
|
|
443
436
|
};
|
|
444
437
|
var generateGUID = function () {
|
|
@@ -452,6 +445,8 @@ function loadOrCreateFirstPartyData() {
|
|
|
452
445
|
var storeData = function (key, value) {
|
|
453
446
|
try {
|
|
454
447
|
if (hasLocalStorage()) {
|
|
448
|
+
// TODO FIX RULES VIOLATION
|
|
449
|
+
// eslint-disable-next-line prebid/no-global
|
|
455
450
|
window.localStorage.setItem(key, value);
|
|
456
451
|
}
|
|
457
452
|
} catch (error) {
|