prebid.js 5.14.0 → 5.18.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/.devcontainer/Dockerfile +11 -0
- package/.devcontainer/devcontainer.json +27 -0
- package/.devcontainer/postCreate.sh +6 -0
- package/allowedModules.js +2 -1
- package/integrationExamples/gpt/afpExample.html +242 -0
- package/integrationExamples/gpt/afpGamExample.html +152 -0
- package/integrationExamples/gpt/weboramaRtdProvider_example.html +126 -0
- package/modules/.submodules.json +29 -27
- package/modules/33acrossBidAdapter.js +23 -20
- package/modules/a4gBidAdapter.js +3 -3
- package/modules/ablidaBidAdapter.js +2 -2
- package/modules/adWMGBidAdapter.js +4 -4
- package/modules/adagioAnalyticsAdapter.js +4 -4
- package/modules/adagioBidAdapter.js +85 -82
- package/modules/adbookpspBidAdapter.js +56 -54
- package/modules/adfBidAdapter.js +24 -16
- package/modules/adgenerationBidAdapter.js +42 -18
- package/modules/adhashBidAdapter.js +105 -0
- package/modules/adhashBidAdapter.md +1 -1
- package/modules/adkernelAdnAnalyticsAdapter.js +6 -6
- package/modules/adkernelAdnBidAdapter.js +23 -23
- package/modules/adkernelBidAdapter.js +49 -44
- package/modules/adlooxAdServerVideo.js +26 -26
- package/modules/adlooxAnalyticsAdapter.js +38 -35
- package/modules/adlooxRtdProvider.js +49 -46
- package/modules/admanBidAdapter.js +4 -4
- package/modules/admixerBidAdapter.js +13 -2
- package/modules/admixerIdSystem.js +4 -4
- package/modules/adnowBidAdapter.js +4 -4
- package/modules/adnuntiusBidAdapter.js +6 -5
- package/modules/adoceanBidAdapter.js +10 -10
- package/modules/adpartnerBidAdapter.js +3 -3
- package/modules/adpod.js +45 -42
- package/modules/adprimeBidAdapter.js +4 -4
- package/modules/adqueryBidAdapter.js +204 -0
- package/modules/adqueryBidAdapter.md +32 -0
- package/modules/adrelevantisBidAdapter.js +30 -27
- package/modules/adriverBidAdapter.js +13 -13
- package/modules/adtargetBidAdapter.js +24 -24
- package/modules/adtelligentBidAdapter.js +29 -29
- package/modules/adtrueBidAdapter.js +35 -35
- package/modules/aduptechBidAdapter.js +10 -10
- package/modules/advangelistsBidAdapter.js +14 -14
- package/modules/adxcgAnalyticsAdapter.js +5 -5
- package/modules/adxcgBidAdapter.js +56 -56
- package/modules/adxpremiumAnalyticsAdapter.js +17 -17
- package/modules/adyoulikeBidAdapter.js +11 -11
- package/modules/afpBidAdapter.js +166 -0
- package/modules/afpBidAdapter.md +348 -0
- package/modules/ajaBidAdapter.js +12 -12
- package/modules/akamaiDAPIdSystem.js +9 -9
- package/modules/aniviewBidAdapter.js +2 -2
- package/modules/aolBidAdapter.js +15 -14
- package/modules/apacdexBidAdapter.js +16 -16
- package/modules/appnexusBidAdapter.js +59 -59
- package/modules/apstreamBidAdapter.js +5 -5
- package/modules/asoBidAdapter.js +30 -30
- package/modules/astraoneBidAdapter.js +2 -2
- package/modules/atsAnalyticsAdapter.js +35 -30
- package/modules/audiencerunBidAdapter.js +15 -15
- package/modules/automatadBidAdapter.js +2 -2
- package/modules/axonixBidAdapter.js +7 -7
- package/modules/beachfrontBidAdapter.js +23 -23
- package/modules/beopBidAdapter.js +22 -22
- package/modules/bidViewabilityIO.js +7 -7
- package/modules/bidglassBidAdapter.js +8 -8
- package/modules/bidscubeBidAdapter.js +3 -3
- package/modules/bizzclickBidAdapter.js +10 -10
- package/modules/bliinkBidAdapter.js +58 -32
- package/modules/bliinkBidAdapter.md +29 -6
- package/modules/bluebillywigBidAdapter.js +30 -30
- package/modules/boldwinBidAdapter.js +4 -4
- package/modules/braveBidAdapter.js +5 -5
- package/modules/bridgewellBidAdapter.js +5 -5
- package/modules/brightMountainMediaBidAdapter.js +10 -10
- package/modules/brightcomBidAdapter.js +18 -18
- package/modules/britepoolIdSystem.js +7 -7
- package/modules/browsiRtdProvider.js +8 -8
- package/modules/bucksenseBidAdapter.js +9 -9
- package/modules/buzzoolaBidAdapter.js +4 -4
- package/modules/byDataAnalyticsAdapter.js +12 -12
- package/modules/ccxBidAdapter.js +38 -38
- package/modules/cleanmedianetBidAdapter.js +9 -9
- package/modules/clickforceBidAdapter.js +4 -4
- package/modules/cointrafficBidAdapter.js +4 -4
- package/modules/coinzillaBidAdapter.js +2 -2
- package/modules/colossussspBidAdapter.js +7 -3
- package/modules/concertAnalyticsAdapter.js +3 -3
- package/modules/concertBidAdapter.js +16 -17
- package/modules/connectadBidAdapter.js +13 -13
- package/modules/consentManagement.js +29 -28
- package/modules/consentManagementUsp.js +14 -14
- package/modules/consumableBidAdapter.js +3 -3
- package/modules/contentexchangeBidAdapter.js +5 -5
- package/modules/conversantBidAdapter.js +32 -31
- package/modules/cpmstarBidAdapter.js +8 -9
- package/modules/craftBidAdapter.js +10 -10
- package/modules/criteoBidAdapter.js +16 -16
- package/modules/criteoIdSystem.js +5 -5
- package/modules/currency.js +18 -18
- package/modules/cwireBidAdapter.js +272 -0
- package/modules/cwireBidAdapter.md +43 -0
- package/modules/datablocksBidAdapter.js +12 -12
- package/modules/deepintentBidAdapter.js +13 -13
- package/modules/dgkeywordRtdProvider.js +10 -11
- package/modules/districtmDMXBidAdapter.js +15 -15
- package/modules/dmdIdSystem.js +5 -5
- package/modules/docereeBidAdapter.js +9 -9
- package/modules/dspxBidAdapter.js +5 -5
- package/modules/ebdrBidAdapter.js +9 -9
- package/modules/emx_digitalBidAdapter.js +23 -23
- package/modules/enrichmentFpdModule.js +10 -9
- package/modules/eplanningAnalyticsAdapter.js +2 -2
- package/modules/eplanningBidAdapter.js +10 -10
- package/modules/etargetBidAdapter.js +4 -4
- package/modules/express.js +9 -10
- package/modules/fabrickIdSystem.js +6 -6
- package/modules/feedadBidAdapter.js +5 -5
- package/modules/fintezaAnalyticsAdapter.js +4 -4
- package/modules/flocIdSystem.js +5 -5
- package/modules/fluctBidAdapter.js +6 -5
- package/modules/freewheel-sspBidAdapter.js +6 -6
- package/modules/gamoshiBidAdapter.js +22 -22
- package/modules/gdprEnforcement.js +13 -14
- package/modules/getintentBidAdapter.js +3 -4
- package/modules/glimpseBidAdapter.js +160 -48
- package/modules/glimpseBidAdapter.md +11 -74
- package/modules/gmosspBidAdapter.js +17 -17
- package/modules/gnetBidAdapter.js +5 -5
- package/modules/googleAnalyticsAdapter.js +6 -6
- package/modules/gothamadsBidAdapter.js +9 -9
- package/modules/gptPreAuction.js +7 -7
- package/modules/gridBidAdapter.js +15 -16
- package/modules/gridNMBidAdapter.js +214 -63
- package/modules/growadvertisingBidAdapter.js +7 -8
- package/modules/gumgumBidAdapter.js +19 -13
- package/modules/h12mediaBidAdapter.js +12 -12
- package/modules/haloIdSystem.js +8 -8
- package/modules/hybridBidAdapter.js +7 -7
- package/modules/iasRtdProvider.js +79 -63
- package/modules/id5IdSystem.js +24 -24
- package/modules/idImportLibrary.js +35 -35
- package/modules/idxIdSystem.js +3 -3
- package/modules/impactifyBidAdapter.js +10 -10
- package/modules/improvedigitalBidAdapter.js +36 -36
- package/modules/imuIdSystem.js +6 -6
- package/modules/inmarBidAdapter.js +2 -2
- package/modules/innityBidAdapter.js +3 -3
- package/modules/inskinBidAdapter.js +14 -2
- package/modules/inskinBidAdapter.md +5 -4
- package/modules/instreamTracking.js +5 -5
- package/modules/integr8BidAdapter.js +4 -4
- package/modules/intentIqIdSystem.js +7 -7
- package/modules/interactiveOffersBidAdapter.js +5 -5
- package/modules/invibesBidAdapter.js +53 -19
- package/modules/invisiblyAnalyticsAdapter.js +5 -5
- package/modules/iqmBidAdapter.js +19 -19
- package/modules/iqzoneBidAdapter.js +5 -5
- package/modules/ixBidAdapter.js +73 -73
- package/modules/jixieBidAdapter.js +6 -6
- package/modules/justpremiumBidAdapter.js +5 -1
- package/modules/kargoBidAdapter.js +16 -9
- package/modules/kargoBidAdapter.md +20 -0
- package/modules/kinessoIdSystem.js +8 -8
- package/modules/koblerBidAdapter.js +12 -12
- package/modules/konduitAnalyticsAdapter.js +4 -4
- package/modules/konduitWrapper.js +14 -14
- package/modules/krushmediaBidAdapter.js +4 -4
- package/modules/kubientBidAdapter.js +5 -5
- package/modules/limelightDigitalBidAdapter.js +4 -4
- package/modules/liveIntentIdSystem.js +4 -5
- package/modules/livewrappedAnalyticsAdapter.js +27 -15
- package/modules/livewrappedBidAdapter.js +7 -7
- package/modules/liveyieldAnalyticsAdapter.js +13 -13
- package/modules/lockerdomeBidAdapter.js +2 -2
- package/modules/loganBidAdapter.js +4 -4
- package/modules/lotamePanoramaIdSystem.js +13 -13
- package/modules/lunamediahbBidAdapter.js +2 -2
- package/modules/madvertiseBidAdapter.js +3 -3
- package/modules/marsmediaBidAdapter.js +26 -26
- package/modules/mathildeadsBidAdapter.js +5 -5
- package/modules/mediaforceBidAdapter.js +11 -11
- package/modules/mediakeysBidAdapter.js +444 -53
- package/modules/mediakeysBidAdapter.md +108 -0
- package/modules/medianetAnalyticsAdapter.js +48 -125
- package/modules/medianetBidAdapter.js +38 -33
- package/modules/medianetRtdProvider.js +7 -7
- package/modules/merkleIdSystem.js +19 -19
- package/modules/mgidBidAdapter.js +50 -50
- package/modules/microadBidAdapter.js +3 -3
- package/modules/multibid/index.js +15 -13
- package/modules/mwOpenLinkIdSystem.js +7 -7
- package/modules/mytargetBidAdapter.js +112 -0
- package/modules/nativoBidAdapter.js +46 -31
- package/modules/nativoBidAdapter.md +0 -1
- package/modules/naveggIdSystem.js +3 -3
- package/modules/nextMillenniumBidAdapter.js +6 -6
- package/modules/nextrollBidAdapter.js +375 -0
- package/modules/nobidBidAdapter.js +12 -11
- package/modules/novatiqIdSystem.js +8 -8
- package/modules/oguryBidAdapter.js +22 -6
- package/modules/oneVideoBidAdapter.js +20 -20
- package/modules/onomagicBidAdapter.js +16 -16
- package/modules/ooloAnalyticsAdapter.js +13 -13
- package/modules/openwebBidAdapter.js +26 -26
- package/modules/openxAnalyticsAdapter.js +33 -33
- package/modules/openxBidAdapter.js +29 -29
- package/modules/operaadsBidAdapter.js +53 -53
- package/modules/optimeraRtdProvider.js +9 -9
- package/modules/optoutBidAdapter.js +3 -3
- package/modules/orbidderBidAdapter.js +3 -3
- package/modules/outbrainBidAdapter.js +13 -13
- package/modules/ozoneBidAdapter.js +131 -131
- package/modules/padsquadBidAdapter.js +4 -4
- package/modules/parrableIdSystem.js +17 -17
- package/modules/pixfutureBidAdapter.js +45 -25
- package/modules/pixfutureBidAdapter.md +127 -0
- package/modules/prebidServerBidAdapter/index.js +109 -105
- package/modules/prebidmanagerAnalyticsAdapter.js +7 -7
- package/modules/priceFloors.js +47 -47
- package/modules/proxistoreBidAdapter.js +6 -8
- package/modules/pubCommonId.js +11 -11
- package/modules/pubProvidedIdSystem.js +3 -3
- package/modules/publinkIdSystem.js +23 -7
- package/modules/publinkIdSystem.md +7 -2
- package/modules/pubmaticAnalyticsAdapter.js +16 -16
- package/modules/pubmaticBidAdapter.js +109 -93
- package/modules/pubmaticBidAdapter.md +1 -1
- package/modules/pubperfAnalyticsAdapter.js +3 -3
- package/modules/pubwiseAnalyticsAdapter.js +6 -6
- package/modules/pubwiseBidAdapter.js +23 -23
- package/modules/pubxBidAdapter.js +2 -2
- package/modules/pubxaiAnalyticsAdapter.js +7 -7
- package/modules/pulsepointBidAdapter.js +13 -13
- package/modules/pxyzBidAdapter.js +7 -7
- package/modules/quantcastBidAdapter.js +16 -16
- package/modules/radsBidAdapter.js +5 -5
- package/modules/realvuAnalyticsAdapter.js +5 -7
- package/modules/reconciliationRtdProvider.js +6 -6
- package/modules/relaidoBidAdapter.js +44 -38
- package/modules/resetdigitalBidAdapter.js +3 -4
- package/modules/revcontentBidAdapter.js +9 -9
- package/modules/rhythmoneBidAdapter.js +17 -16
- package/modules/richaudienceBidAdapter.js +9 -9
- package/modules/riseBidAdapter.js +26 -26
- package/modules/riseBidAdapter.md +1 -3
- package/modules/roxotAnalyticsAdapter.js +14 -14
- package/modules/rtbhouseBidAdapter.js +7 -7
- package/modules/rtbsapeBidAdapter.js +3 -4
- package/modules/rtdModule/index.js +3 -3
- package/modules/rubiconAnalyticsAdapter.js +82 -82
- package/modules/rubiconBidAdapter.js +72 -68
- package/modules/scaleableAnalyticsAdapter.js +2 -2
- package/modules/seedingAllianceBidAdapter.js +231 -0
- package/modules/seedtagBidAdapter.js +10 -10
- package/modules/sharedIdSystem.js +11 -11
- package/modules/sharethroughAnalyticsAdapter.js +8 -8
- package/modules/sharethroughBidAdapter.js +20 -27
- package/modules/showheroes-bsBidAdapter.js +23 -23
- package/modules/sigmoidAnalyticsAdapter.js +4 -5
- package/modules/sirdataRtdProvider.js +34 -34
- package/modules/sizeMappingV2.js +39 -39
- package/modules/slimcutBidAdapter.js +121 -0
- package/modules/smaatoBidAdapter.js +44 -44
- package/modules/smartadserverBidAdapter.js +7 -7
- package/modules/smartxBidAdapter.js +72 -72
- package/modules/smartyadsBidAdapter.js +2 -2
- package/modules/smilewantedBidAdapter.js +6 -6
- package/modules/sonobiAnalyticsAdapter.js +23 -23
- package/modules/sortableAnalyticsAdapter.js +5 -5
- package/modules/sortableBidAdapter.js +28 -28
- package/modules/sovrnAnalyticsAdapter.js +5 -5
- package/modules/sovrnBidAdapter.js +22 -22
- package/modules/spotxBidAdapter.js +97 -83
- package/modules/sspBCBidAdapter.js +216 -21
- package/modules/sspBCBidAdapter.md +1 -1
- package/modules/staqAnalyticsAdapter.js +9 -9
- package/modules/stroeerCoreBidAdapter.js +16 -16
- package/modules/sublimeBidAdapter.js +6 -6
- package/modules/talkadsBidAdapter.js +129 -0
- package/modules/talkadsBidAdapter.md +60 -0
- package/modules/tapadIdSystem.js +3 -3
- package/modules/tappxBidAdapter.js +63 -64
- package/modules/teadsBidAdapter.js +20 -20
- package/modules/telariaBidAdapter.js +17 -17
- package/modules/temedyaBidAdapter.js +4 -4
- package/modules/terceptAnalyticsAdapter.js +4 -4
- package/modules/theAdxBidAdapter.js +16 -16
- package/modules/timeoutRtdProvider.js +15 -15
- package/modules/tpmnBidAdapter.js +3 -3
- package/modules/trionBidAdapter.js +15 -15
- package/modules/tripleliftBidAdapter.js +27 -24
- package/modules/truereachBidAdapter.js +4 -4
- package/modules/trustxBidAdapter.js +22 -18
- package/modules/ucfunnelBidAdapter.js +3 -3
- package/modules/uid2IdSystem.js +6 -6
- package/modules/underdogmediaBidAdapter.js +4 -4
- package/modules/unicornBidAdapter.js +15 -15
- package/modules/unifiedIdSystem.js +4 -4
- package/modules/unrulyBidAdapter.js +16 -16
- package/modules/userId/eids.js +9 -9
- package/modules/userId/index.js +37 -35
- package/modules/validationFpdModule/index.js +15 -15
- package/modules/vdoaiBidAdapter.js +2 -2
- package/modules/verizonMediaIdSystem.js +5 -5
- package/modules/vidazooBidAdapter.js +5 -5
- package/modules/videobyteBidAdapter.js +24 -24
- package/modules/videoreachBidAdapter.js +7 -7
- package/modules/vidoomyBidAdapter.js +105 -22
- package/modules/viewdeosDXBidAdapter.js +17 -17
- package/modules/visxBidAdapter.js +21 -29
- package/modules/voxBidAdapter.js +7 -7
- package/modules/vuukleBidAdapter.js +2 -2
- package/modules/waardexBidAdapter.js +26 -26
- package/modules/weboramaRtdProvider.js +174 -0
- package/modules/weboramaRtdProvider.md +70 -0
- package/modules/winrBidAdapter.js +27 -27
- package/modules/wipesBidAdapter.js +2 -2
- package/modules/yahoosspBidAdapter.js +637 -0
- package/modules/yahoosspBidAdapter.md +795 -0
- package/modules/yieldlabBidAdapter.js +57 -12
- package/modules/yieldlabBidAdapter.md +16 -1
- package/modules/yieldliftBidAdapter.js +9 -9
- package/modules/yieldmoBidAdapter.js +64 -50
- package/modules/yieldoneAnalyticsAdapter.js +6 -6
- package/modules/yieldoneBidAdapter.js +11 -11
- package/modules/yuktamediaAnalyticsAdapter.js +15 -15
- package/modules/zeotapIdPlusIdSystem.js +2 -2
- package/modules/zetaBidAdapter.js +6 -6
- package/modules/zeta_global_sspBidAdapter.js +14 -14
- package/package.json +1 -1
- package/src/AnalyticsAdapter.js +6 -6
- package/src/Renderer.js +10 -8
- package/src/adapterManager.js +45 -42
- package/src/adloader.js +6 -6
- package/src/ajax.js +8 -9
- package/src/auction.js +26 -23
- package/src/bidfactory.js +2 -2
- package/src/config.js +52 -50
- package/src/cpmBucketManager.js +2 -2
- package/src/prebid.js +85 -81
- package/src/storageManager.js +5 -5
- package/src/targeting.js +25 -26
- package/src/userSync.js +35 -22
- package/src/videoCache.js +2 -2
- package/test/.eslintrc.js +2 -1
- package/test/spec/modules/adfBidAdapter_spec.js +55 -0
- package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
- package/test/spec/modules/adhashBidAdapter_spec.js +155 -0
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
- package/test/spec/modules/adqueryBidAdapter_spec.js +185 -0
- package/test/spec/modules/afpBidAdapter_spec.js +306 -0
- package/test/spec/modules/atsAnalyticsAdapter_spec.js +37 -2
- package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
- package/test/spec/modules/colossussspBidAdapter_spec.js +14 -6
- package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
- package/test/spec/modules/eplanningBidAdapter_spec.js +3 -3
- package/test/spec/modules/glimpseBidAdapter_spec.js +302 -204
- package/test/spec/modules/gridBidAdapter_spec.js +38 -2
- package/test/spec/modules/gridNMBidAdapter_spec.js +121 -47
- package/test/spec/modules/gumgumBidAdapter_spec.js +27 -6
- package/test/spec/modules/iasRtdProvider_spec.js +71 -6
- package/test/spec/modules/inskinBidAdapter_spec.js +10 -1
- package/test/spec/modules/invibesBidAdapter_spec.js +114 -2
- package/test/spec/modules/justpremiumBidAdapter_spec.js +16 -2
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +33 -7
- package/test/spec/modules/mediakeysBidAdapter_spec.js +406 -51
- package/test/spec/modules/medianetAnalyticsAdapter_spec.js +39 -7
- package/test/spec/modules/medianetBidAdapter_spec.js +62 -1
- package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
- package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
- package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
- package/test/spec/modules/nobidBidAdapter_spec.js +65 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +120 -7
- package/test/spec/modules/publinkIdSystem_spec.js +42 -12
- package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
- package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
- package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +100 -81
- package/test/spec/modules/rubiconAnalyticsSchema.json +5 -2
- package/test/spec/modules/seedingAllianceAdapter_spec.js +186 -0
- package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
- package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
- package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
- package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
- package/test/spec/modules/tappxBidAdapter_spec.js +39 -3
- package/test/spec/modules/tripleliftBidAdapter_spec.js +2 -0
- package/test/spec/modules/trustxBidAdapter_spec.js +35 -2
- package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
- package/test/spec/modules/visxBidAdapter_spec.js +48 -4
- package/test/spec/modules/weboramaRtdProvider_spec.js +288 -0
- package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
- package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
- package/test/spec/modules/yieldmoBidAdapter_spec.js +30 -9
- package/test/spec/unit/pbjs_api_spec.js +4 -0
- package/test/spec/userSync_spec.js +30 -2
- package/modules/turktelekomBidAdapter.md +0 -49
package/src/config.js
CHANGED
|
@@ -16,13 +16,15 @@ import { isValidPriceConfig } from './cpmBucketManager.js';
|
|
|
16
16
|
import find from 'core-js-pure/features/array/find.js';
|
|
17
17
|
import includes from 'core-js-pure/features/array/includes.js';
|
|
18
18
|
import Set from 'core-js-pure/features/set';
|
|
19
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
mergeDeep, deepClone, getParameterByName, isPlainObject, logMessage, logWarn, logError,
|
|
21
|
+
isArray, isStr, isBoolean, deepAccess, bind
|
|
22
|
+
} from './utils.js';
|
|
20
23
|
|
|
21
24
|
const from = require('core-js-pure/features/array/from.js');
|
|
22
|
-
const utils = require('./utils.js');
|
|
23
25
|
const CONSTANTS = require('./constants.json');
|
|
24
26
|
|
|
25
|
-
const DEFAULT_DEBUG =
|
|
27
|
+
const DEFAULT_DEBUG = getParameterByName(CONSTANTS.DEBUG_MODE).toUpperCase() === 'TRUE';
|
|
26
28
|
const DEFAULT_BIDDER_TIMEOUT = 3000;
|
|
27
29
|
const DEFAULT_PUBLISHER_DOMAIN = window.location.origin;
|
|
28
30
|
const DEFAULT_ENABLE_SEND_ALL_BIDS = true;
|
|
@@ -103,10 +105,10 @@ export function newConfig() {
|
|
|
103
105
|
if (validatePriceGranularity(val)) {
|
|
104
106
|
if (typeof val === 'string') {
|
|
105
107
|
this._priceGranularity = (hasGranularity(val)) ? val : GRANULARITY_OPTIONS.MEDIUM;
|
|
106
|
-
} else if (
|
|
108
|
+
} else if (isPlainObject(val)) {
|
|
107
109
|
this._customPriceBucket = val;
|
|
108
110
|
this._priceGranularity = GRANULARITY_OPTIONS.CUSTOM;
|
|
109
|
-
|
|
111
|
+
logMessage('Using custom price granularity');
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
114
|
},
|
|
@@ -133,12 +135,12 @@ export function newConfig() {
|
|
|
133
135
|
if (validatePriceGranularity(val[item])) {
|
|
134
136
|
if (typeof val === 'string') {
|
|
135
137
|
aggregate[item] = (hasGranularity(val[item])) ? val[item] : this._priceGranularity;
|
|
136
|
-
} else if (
|
|
138
|
+
} else if (isPlainObject(val)) {
|
|
137
139
|
aggregate[item] = val[item];
|
|
138
|
-
|
|
140
|
+
logMessage(`Using custom price granularity for ${item}`);
|
|
139
141
|
}
|
|
140
142
|
} else {
|
|
141
|
-
|
|
143
|
+
logWarn(`Invalid price granularity for media type: ${item}`);
|
|
142
144
|
}
|
|
143
145
|
return aggregate;
|
|
144
146
|
}, {});
|
|
@@ -180,7 +182,7 @@ export function newConfig() {
|
|
|
180
182
|
if (VALID_ORDERS[val]) {
|
|
181
183
|
this._bidderSequence = val;
|
|
182
184
|
} else {
|
|
183
|
-
|
|
185
|
+
logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);
|
|
184
186
|
}
|
|
185
187
|
},
|
|
186
188
|
|
|
@@ -242,16 +244,16 @@ export function newConfig() {
|
|
|
242
244
|
|
|
243
245
|
function validatePriceGranularity(val) {
|
|
244
246
|
if (!val) {
|
|
245
|
-
|
|
247
|
+
logError('Prebid Error: no value passed to `setPriceGranularity()`');
|
|
246
248
|
return false;
|
|
247
249
|
}
|
|
248
250
|
if (typeof val === 'string') {
|
|
249
251
|
if (!hasGranularity(val)) {
|
|
250
|
-
|
|
252
|
+
logWarn('Prebid Warning: setPriceGranularity was called with invalid setting, using `medium` as default.');
|
|
251
253
|
}
|
|
252
|
-
} else if (
|
|
254
|
+
} else if (isPlainObject(val)) {
|
|
253
255
|
if (!isValidPriceConfig(val)) {
|
|
254
|
-
|
|
256
|
+
logError('Invalid custom price value passed to `setPriceGranularity()`');
|
|
255
257
|
return false;
|
|
256
258
|
}
|
|
257
259
|
}
|
|
@@ -259,27 +261,27 @@ export function newConfig() {
|
|
|
259
261
|
}
|
|
260
262
|
|
|
261
263
|
function validateauctionOptions(val) {
|
|
262
|
-
if (!
|
|
263
|
-
|
|
264
|
+
if (!isPlainObject(val)) {
|
|
265
|
+
logWarn('Auction Options must be an object')
|
|
264
266
|
return false
|
|
265
267
|
}
|
|
266
268
|
|
|
267
269
|
for (let k of Object.keys(val)) {
|
|
268
270
|
if (k !== 'secondaryBidders' && k !== 'suppressStaleRender') {
|
|
269
|
-
|
|
271
|
+
logWarn(`Auction Options given an incorrect param: ${k}`)
|
|
270
272
|
return false
|
|
271
273
|
}
|
|
272
274
|
if (k === 'secondaryBidders') {
|
|
273
|
-
if (!
|
|
274
|
-
|
|
275
|
+
if (!isArray(val[k])) {
|
|
276
|
+
logWarn(`Auction Options ${k} must be of type Array`);
|
|
275
277
|
return false
|
|
276
|
-
} else if (!val[k].every(
|
|
277
|
-
|
|
278
|
+
} else if (!val[k].every(isStr)) {
|
|
279
|
+
logWarn(`Auction Options ${k} must be only string`);
|
|
278
280
|
return false
|
|
279
281
|
}
|
|
280
282
|
} else if (k === 'suppressStaleRender') {
|
|
281
|
-
if (!
|
|
282
|
-
|
|
283
|
+
if (!isBoolean(val[k])) {
|
|
284
|
+
logWarn(`Auction Options ${k} must be of type boolean`);
|
|
283
285
|
return false;
|
|
284
286
|
}
|
|
285
287
|
}
|
|
@@ -293,7 +295,7 @@ export function newConfig() {
|
|
|
293
295
|
* @private
|
|
294
296
|
*/
|
|
295
297
|
function _getConfig() {
|
|
296
|
-
if (currBidder && bidderConfig &&
|
|
298
|
+
if (currBidder && bidderConfig && isPlainObject(bidderConfig[currBidder])) {
|
|
297
299
|
let currBidderConfig = bidderConfig[currBidder];
|
|
298
300
|
const configTopicSet = new Set(Object.keys(config).concat(Object.keys(currBidderConfig)));
|
|
299
301
|
|
|
@@ -303,7 +305,7 @@ export function newConfig() {
|
|
|
303
305
|
} else if (typeof config[topic] === 'undefined') {
|
|
304
306
|
memo[topic] = currBidderConfig[topic];
|
|
305
307
|
} else {
|
|
306
|
-
if (
|
|
308
|
+
if (isPlainObject(currBidderConfig[topic])) {
|
|
307
309
|
memo[topic] = mergeDeep({}, config[topic], currBidderConfig[topic]);
|
|
308
310
|
} else {
|
|
309
311
|
memo[topic] = currBidderConfig[topic];
|
|
@@ -329,7 +331,7 @@ export function newConfig() {
|
|
|
329
331
|
if (args.length <= 1 && typeof args[0] !== 'function') {
|
|
330
332
|
const option = args[0];
|
|
331
333
|
const configClone = deepClone(_getConfig());
|
|
332
|
-
return option ?
|
|
334
|
+
return option ? deepAccess(configClone, option) : configClone;
|
|
333
335
|
}
|
|
334
336
|
|
|
335
337
|
return subscribe(...args);
|
|
@@ -346,7 +348,7 @@ export function newConfig() {
|
|
|
346
348
|
function getConfig(...args) {
|
|
347
349
|
if (args.length <= 1 && typeof args[0] !== 'function') {
|
|
348
350
|
const option = args[0];
|
|
349
|
-
return option ?
|
|
351
|
+
return option ? deepAccess(_getConfig(), option) : _getConfig();
|
|
350
352
|
}
|
|
351
353
|
|
|
352
354
|
return subscribe(...args);
|
|
@@ -371,9 +373,9 @@ export function newConfig() {
|
|
|
371
373
|
let prop = (type === 'site') ? 'context' : type;
|
|
372
374
|
duplicate[prop] = (prop === 'context' || prop === 'user') ? Object.keys(obj[type]).filter(key => key !== 'data').reduce((result, key) => {
|
|
373
375
|
if (key === 'ext') {
|
|
374
|
-
|
|
376
|
+
mergeDeep(result, obj[type][key]);
|
|
375
377
|
} else {
|
|
376
|
-
|
|
378
|
+
mergeDeep(result, {[key]: obj[type][key]});
|
|
377
379
|
}
|
|
378
380
|
|
|
379
381
|
return result;
|
|
@@ -391,14 +393,14 @@ export function newConfig() {
|
|
|
391
393
|
|
|
392
394
|
let duplicate = {};
|
|
393
395
|
|
|
394
|
-
if (
|
|
396
|
+
if (deepAccess(obj, 'ext.data')) {
|
|
395
397
|
Object.keys(obj.ext.data).forEach((key) => {
|
|
396
398
|
if (key === 'pbadslot') {
|
|
397
|
-
|
|
399
|
+
mergeDeep(duplicate, {context: {pbAdSlot: obj.ext.data[key]}});
|
|
398
400
|
} else if (key === 'adserver') {
|
|
399
|
-
|
|
401
|
+
mergeDeep(duplicate, {context: {adServer: obj.ext.data[key]}});
|
|
400
402
|
} else {
|
|
401
|
-
|
|
403
|
+
mergeDeep(duplicate, {context: {data: {[key]: obj.ext.data[key]}}});
|
|
402
404
|
}
|
|
403
405
|
});
|
|
404
406
|
}
|
|
@@ -416,9 +418,9 @@ export function newConfig() {
|
|
|
416
418
|
let prop = (type === 'context') ? 'site' : type;
|
|
417
419
|
duplicate[prop] = (prop === 'site' || prop === 'user') ? Object.keys(opt[type]).reduce((result, key) => {
|
|
418
420
|
if (key === 'data') {
|
|
419
|
-
|
|
421
|
+
mergeDeep(result, {ext: {data: opt[type][key]}});
|
|
420
422
|
} else {
|
|
421
|
-
|
|
423
|
+
mergeDeep(result, {[key]: opt[type][key]});
|
|
422
424
|
}
|
|
423
425
|
|
|
424
426
|
return result;
|
|
@@ -438,14 +440,14 @@ export function newConfig() {
|
|
|
438
440
|
Object.keys(opt).filter(prop => prop === 'context').forEach((type) => {
|
|
439
441
|
Object.keys(opt[type]).forEach((key) => {
|
|
440
442
|
if (key === 'data') {
|
|
441
|
-
|
|
443
|
+
mergeDeep(duplicate, {ext: {data: opt[type][key]}});
|
|
442
444
|
} else {
|
|
443
445
|
if (typeof opt[type][key] === 'object' && !Array.isArray(opt[type][key])) {
|
|
444
446
|
Object.keys(opt[type][key]).forEach(data => {
|
|
445
|
-
|
|
447
|
+
mergeDeep(duplicate, {ext: {data: {[key.toLowerCase()]: {[data.toLowerCase()]: opt[type][key][data]}}}});
|
|
446
448
|
});
|
|
447
449
|
} else {
|
|
448
|
-
|
|
450
|
+
mergeDeep(duplicate, {ext: {data: {[key.toLowerCase()]: opt[type][key]}}});
|
|
449
451
|
}
|
|
450
452
|
}
|
|
451
453
|
});
|
|
@@ -462,7 +464,7 @@ export function newConfig() {
|
|
|
462
464
|
|
|
463
465
|
arr.forEach((adunit) => {
|
|
464
466
|
if (adunit.fpd) {
|
|
465
|
-
(adunit['ortb2Imp']) ?
|
|
467
|
+
(adunit['ortb2Imp']) ? mergeDeep(adunit['ortb2Imp'], convertImpFpd(adunit.fpd)) : adunit['ortb2Imp'] = convertImpFpd(adunit.fpd);
|
|
466
468
|
convert.push((({ fpd, ...duplicate }) => duplicate)(adunit));
|
|
467
469
|
} else {
|
|
468
470
|
convert.push(adunit);
|
|
@@ -477,8 +479,8 @@ export function newConfig() {
|
|
|
477
479
|
* listeners that were added by the `subscribe` function
|
|
478
480
|
*/
|
|
479
481
|
function setConfig(options) {
|
|
480
|
-
if (!
|
|
481
|
-
|
|
482
|
+
if (!isPlainObject(options)) {
|
|
483
|
+
logError('setConfig options must be an object');
|
|
482
484
|
return;
|
|
483
485
|
}
|
|
484
486
|
|
|
@@ -489,7 +491,7 @@ export function newConfig() {
|
|
|
489
491
|
let prop = (topic === 'fpd') ? 'ortb2' : topic;
|
|
490
492
|
let option = (topic === 'fpd') ? convertFpd(options[topic]) : options[topic];
|
|
491
493
|
|
|
492
|
-
if (
|
|
494
|
+
if (isPlainObject(defaults[prop]) && isPlainObject(option)) {
|
|
493
495
|
option = Object.assign({}, defaults[prop], option);
|
|
494
496
|
}
|
|
495
497
|
|
|
@@ -504,8 +506,8 @@ export function newConfig() {
|
|
|
504
506
|
* @param {object} options
|
|
505
507
|
*/
|
|
506
508
|
function setDefaults(options) {
|
|
507
|
-
if (!
|
|
508
|
-
|
|
509
|
+
if (!isPlainObject(defaults)) {
|
|
510
|
+
logError('defaults must be an object');
|
|
509
511
|
return;
|
|
510
512
|
}
|
|
511
513
|
|
|
@@ -546,7 +548,7 @@ export function newConfig() {
|
|
|
546
548
|
}
|
|
547
549
|
|
|
548
550
|
if (typeof callback !== 'function') {
|
|
549
|
-
|
|
551
|
+
logError('listener must be a function');
|
|
550
552
|
return;
|
|
551
553
|
}
|
|
552
554
|
|
|
@@ -589,7 +591,7 @@ export function newConfig() {
|
|
|
589
591
|
let prop = (topic === 'fpd') ? 'ortb2' : topic;
|
|
590
592
|
let option = (topic === 'fpd') ? convertFpd(config.config[topic]) : config.config[topic];
|
|
591
593
|
|
|
592
|
-
if (
|
|
594
|
+
if (isPlainObject(option)) {
|
|
593
595
|
bidderConfig[bidder][prop] = Object.assign({}, bidderConfig[bidder][prop] || {}, option);
|
|
594
596
|
} else {
|
|
595
597
|
bidderConfig[bidder][prop] = option;
|
|
@@ -597,16 +599,16 @@ export function newConfig() {
|
|
|
597
599
|
});
|
|
598
600
|
});
|
|
599
601
|
} catch (e) {
|
|
600
|
-
|
|
602
|
+
logError(e);
|
|
601
603
|
}
|
|
602
604
|
function check(obj) {
|
|
603
|
-
if (!
|
|
605
|
+
if (!isPlainObject(obj)) {
|
|
604
606
|
throw 'setBidderConfig bidder options must be an object';
|
|
605
607
|
}
|
|
606
608
|
if (!(Array.isArray(obj.bidders) && obj.bidders.length)) {
|
|
607
609
|
throw 'setBidderConfig bidder options must contain a bidders list with at least 1 bidder';
|
|
608
610
|
}
|
|
609
|
-
if (!
|
|
611
|
+
if (!isPlainObject(obj.config)) {
|
|
610
612
|
throw 'setBidderConfig bidder options must contain a config object';
|
|
611
613
|
}
|
|
612
614
|
}
|
|
@@ -627,9 +629,9 @@ export function newConfig() {
|
|
|
627
629
|
return function(cb) {
|
|
628
630
|
return function(...args) {
|
|
629
631
|
if (typeof cb === 'function') {
|
|
630
|
-
return runWithBidder(bidder,
|
|
632
|
+
return runWithBidder(bidder, bind.call(cb, this, ...args))
|
|
631
633
|
} else {
|
|
632
|
-
|
|
634
|
+
logWarn('config.callbackWithBidder callback is not a function');
|
|
633
635
|
}
|
|
634
636
|
}
|
|
635
637
|
}
|
package/src/cpmBucketManager.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import find from 'core-js-pure/features/array/find.js';
|
|
2
|
-
|
|
2
|
+
import { isEmpty } from './utils.js';
|
|
3
3
|
|
|
4
4
|
const _defaultPrecision = 2;
|
|
5
5
|
const _lgPriceConfig = {
|
|
@@ -102,7 +102,7 @@ function getCpmStringValue(cpm, config, granularityMultiplier) {
|
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
function isValidPriceConfig(config) {
|
|
105
|
-
if (
|
|
105
|
+
if (isEmpty(config) || !config.buckets || !Array.isArray(config.buckets)) {
|
|
106
106
|
return false;
|
|
107
107
|
}
|
|
108
108
|
let isValid = true;
|