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/prebid.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/** @module pbjs */
|
|
2
2
|
|
|
3
3
|
import { getGlobal } from './prebidGlobal.js';
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
adUnitsFilter, flatten, getHighestCpm, isArrayOfNums, isGptPubadsDefined, uniques, logInfo,
|
|
6
|
+
contains, logError, isArray, deepClone, deepAccess, isNumber, logWarn, logMessage, isFn,
|
|
7
|
+
transformAdServerTargetingObj, bind, replaceAuctionPrice, replaceClickThrough, insertElement,
|
|
8
|
+
inIframe, callBurl, createInvisibleIframe, generateUUID, unsupportedBidderMessage, isEmpty
|
|
9
|
+
} from './utils.js';
|
|
5
10
|
import { listenMessagesFromCreative } from './secureCreatives.js';
|
|
6
11
|
import { userSync } from './userSync.js';
|
|
7
12
|
import { config } from './config.js';
|
|
@@ -17,7 +22,6 @@ import { storageCallbacks } from './storageManager.js';
|
|
|
17
22
|
|
|
18
23
|
const $$PREBID_GLOBAL$$ = getGlobal();
|
|
19
24
|
const CONSTANTS = require('./constants.json');
|
|
20
|
-
const utils = require('./utils.js');
|
|
21
25
|
const adapterManager = require('./adapterManager.js').default;
|
|
22
26
|
const events = require('./events.js');
|
|
23
27
|
const { triggerUserSyncs } = userSync;
|
|
@@ -41,7 +45,7 @@ $$PREBID_GLOBAL$$.libLoaded = true;
|
|
|
41
45
|
|
|
42
46
|
// version auto generated from build
|
|
43
47
|
$$PREBID_GLOBAL$$.version = 'v$prebid.version$';
|
|
44
|
-
|
|
48
|
+
logInfo('Prebid.js v$prebid.version$ loaded');
|
|
45
49
|
|
|
46
50
|
// modules list generated from build
|
|
47
51
|
$$PREBID_GLOBAL$$.installedModules = ['v$prebid.modulesList$'];
|
|
@@ -57,8 +61,8 @@ function checkDefinedPlacement(id) {
|
|
|
57
61
|
.reduce(flatten)
|
|
58
62
|
.filter(uniques);
|
|
59
63
|
|
|
60
|
-
if (!
|
|
61
|
-
|
|
64
|
+
if (!contains(adUnitCodes, id)) {
|
|
65
|
+
logError('The "' + id + '" placement is not defined.');
|
|
62
66
|
return;
|
|
63
67
|
}
|
|
64
68
|
|
|
@@ -74,7 +78,7 @@ function setRenderSize(doc, width, height) {
|
|
|
74
78
|
|
|
75
79
|
function validateSizes(sizes, targLength) {
|
|
76
80
|
let cleanSizes = [];
|
|
77
|
-
if (
|
|
81
|
+
if (isArray(sizes) && ((targLength) ? sizes.length === targLength : sizes.length > 0)) {
|
|
78
82
|
// check if an array of arrays or array of numbers
|
|
79
83
|
if (sizes.every(sz => isArrayOfNums(sz, 2))) {
|
|
80
84
|
cleanSizes = sizes;
|
|
@@ -86,7 +90,7 @@ function validateSizes(sizes, targLength) {
|
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
function validateBannerMediaType(adUnit) {
|
|
89
|
-
const validatedAdUnit =
|
|
93
|
+
const validatedAdUnit = deepClone(adUnit);
|
|
90
94
|
const banner = validatedAdUnit.mediaTypes.banner;
|
|
91
95
|
const bannerSizes = validateSizes(banner.sizes);
|
|
92
96
|
if (bannerSizes.length > 0) {
|
|
@@ -94,14 +98,14 @@ function validateBannerMediaType(adUnit) {
|
|
|
94
98
|
// Deprecation Warning: This property will be deprecated in next release in favor of adUnit.mediaTypes.banner.sizes
|
|
95
99
|
validatedAdUnit.sizes = bannerSizes;
|
|
96
100
|
} else {
|
|
97
|
-
|
|
101
|
+
logError('Detected a mediaTypes.banner object without a proper sizes field. Please ensure the sizes are listed like: [[300, 250], ...]. Removing invalid mediaTypes.banner object from request.');
|
|
98
102
|
delete validatedAdUnit.mediaTypes.banner
|
|
99
103
|
}
|
|
100
104
|
return validatedAdUnit;
|
|
101
105
|
}
|
|
102
106
|
|
|
103
107
|
function validateVideoMediaType(adUnit) {
|
|
104
|
-
const validatedAdUnit =
|
|
108
|
+
const validatedAdUnit = deepClone(adUnit);
|
|
105
109
|
const video = validatedAdUnit.mediaTypes.video;
|
|
106
110
|
if (video.playerSize) {
|
|
107
111
|
let tarPlayerSizeLen = (typeof video.playerSize[0] === 'number') ? 2 : 1;
|
|
@@ -109,13 +113,13 @@ function validateVideoMediaType(adUnit) {
|
|
|
109
113
|
const videoSizes = validateSizes(video.playerSize, tarPlayerSizeLen);
|
|
110
114
|
if (videoSizes.length > 0) {
|
|
111
115
|
if (tarPlayerSizeLen === 2) {
|
|
112
|
-
|
|
116
|
+
logInfo('Transforming video.playerSize from [640,480] to [[640,480]] so it\'s in the proper format.');
|
|
113
117
|
}
|
|
114
118
|
video.playerSize = videoSizes;
|
|
115
119
|
// Deprecation Warning: This property will be deprecated in next release in favor of adUnit.mediaTypes.video.playerSize
|
|
116
120
|
validatedAdUnit.sizes = videoSizes;
|
|
117
121
|
} else {
|
|
118
|
-
|
|
122
|
+
logError('Detected incorrect configuration of mediaTypes.video.playerSize. Please specify only one set of dimensions in a format like: [[640, 480]]. Removing invalid mediaTypes.video.playerSize property from request.');
|
|
119
123
|
delete validatedAdUnit.mediaTypes.video.playerSize;
|
|
120
124
|
}
|
|
121
125
|
}
|
|
@@ -123,30 +127,30 @@ function validateVideoMediaType(adUnit) {
|
|
|
123
127
|
}
|
|
124
128
|
|
|
125
129
|
function validateNativeMediaType(adUnit) {
|
|
126
|
-
const validatedAdUnit =
|
|
130
|
+
const validatedAdUnit = deepClone(adUnit);
|
|
127
131
|
const native = validatedAdUnit.mediaTypes.native;
|
|
128
132
|
if (native.image && native.image.sizes && !Array.isArray(native.image.sizes)) {
|
|
129
|
-
|
|
133
|
+
logError('Please use an array of sizes for native.image.sizes field. Removing invalid mediaTypes.native.image.sizes property from request.');
|
|
130
134
|
delete validatedAdUnit.mediaTypes.native.image.sizes;
|
|
131
135
|
}
|
|
132
136
|
if (native.image && native.image.aspect_ratios && !Array.isArray(native.image.aspect_ratios)) {
|
|
133
|
-
|
|
137
|
+
logError('Please use an array of sizes for native.image.aspect_ratios field. Removing invalid mediaTypes.native.image.aspect_ratios property from request.');
|
|
134
138
|
delete validatedAdUnit.mediaTypes.native.image.aspect_ratios;
|
|
135
139
|
}
|
|
136
140
|
if (native.icon && native.icon.sizes && !Array.isArray(native.icon.sizes)) {
|
|
137
|
-
|
|
141
|
+
logError('Please use an array of sizes for native.icon.sizes field. Removing invalid mediaTypes.native.icon.sizes property from request.');
|
|
138
142
|
delete validatedAdUnit.mediaTypes.native.icon.sizes;
|
|
139
143
|
}
|
|
140
144
|
return validatedAdUnit;
|
|
141
145
|
}
|
|
142
146
|
|
|
143
147
|
function validateAdUnitPos(adUnit, mediaType) {
|
|
144
|
-
let pos =
|
|
148
|
+
let pos = deepAccess(adUnit, `mediaTypes.${mediaType}.pos`);
|
|
145
149
|
|
|
146
|
-
if (!pos || !
|
|
150
|
+
if (!pos || !isNumber(pos) || !isFinite(pos)) {
|
|
147
151
|
let warning = `Value of property 'pos' on ad unit ${adUnit.code} should be of type: Number`;
|
|
148
152
|
|
|
149
|
-
|
|
153
|
+
logWarn(warning);
|
|
150
154
|
events.emit(CONSTANTS.EVENTS.AUCTION_DEBUG, {type: 'WARNING', arguments: warning});
|
|
151
155
|
delete adUnit.mediaTypes[mediaType].pos;
|
|
152
156
|
}
|
|
@@ -169,13 +173,13 @@ export const checkAdUnitSetup = hook('sync', function (adUnits) {
|
|
|
169
173
|
const bids = adUnit.bids;
|
|
170
174
|
let validatedBanner, validatedVideo, validatedNative;
|
|
171
175
|
|
|
172
|
-
if (!bids || !
|
|
173
|
-
|
|
176
|
+
if (!bids || !isArray(bids)) {
|
|
177
|
+
logError(`Detected adUnit.code '${adUnit.code}' did not have 'adUnit.bids' defined or 'adUnit.bids' is not an array. Removing adUnit from auction.`);
|
|
174
178
|
return;
|
|
175
179
|
}
|
|
176
180
|
|
|
177
181
|
if (!mediaTypes || Object.keys(mediaTypes).length === 0) {
|
|
178
|
-
|
|
182
|
+
logError(`Detected adUnit.code '${adUnit.code}' did not have a 'mediaTypes' object defined. This is a required field for the auction, so this adUnit has been removed.`);
|
|
179
183
|
return;
|
|
180
184
|
}
|
|
181
185
|
|
|
@@ -214,14 +218,14 @@ export const checkAdUnitSetup = hook('sync', function (adUnits) {
|
|
|
214
218
|
* @return {Array} returnObj return bids array
|
|
215
219
|
*/
|
|
216
220
|
$$PREBID_GLOBAL$$.getAdserverTargetingForAdUnitCodeStr = function (adunitCode) {
|
|
217
|
-
|
|
221
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.getAdserverTargetingForAdUnitCodeStr', arguments);
|
|
218
222
|
|
|
219
223
|
// call to retrieve bids array
|
|
220
224
|
if (adunitCode) {
|
|
221
225
|
var res = $$PREBID_GLOBAL$$.getAdserverTargetingForAdUnitCode(adunitCode);
|
|
222
|
-
return
|
|
226
|
+
return transformAdServerTargetingObj(res);
|
|
223
227
|
} else {
|
|
224
|
-
|
|
228
|
+
logMessage('Need to call getAdserverTargetingForAdUnitCodeStr with adunitCode');
|
|
225
229
|
}
|
|
226
230
|
};
|
|
227
231
|
|
|
@@ -239,7 +243,7 @@ $$PREBID_GLOBAL$$.getHighestUnusedBidResponseForAdUnitCode = function (adunitCod
|
|
|
239
243
|
|
|
240
244
|
return bid.length ? bid.reduce(getHighestCpm) : {}
|
|
241
245
|
} else {
|
|
242
|
-
|
|
246
|
+
logMessage('Need to call getHighestUnusedBidResponseForAdUnitCode with adunitCode');
|
|
243
247
|
}
|
|
244
248
|
};
|
|
245
249
|
|
|
@@ -260,13 +264,13 @@ $$PREBID_GLOBAL$$.getAdserverTargetingForAdUnitCode = function (adUnitCode) {
|
|
|
260
264
|
*/
|
|
261
265
|
|
|
262
266
|
$$PREBID_GLOBAL$$.getAdserverTargeting = function (adUnitCode) {
|
|
263
|
-
|
|
267
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.getAdserverTargeting', arguments);
|
|
264
268
|
return targeting.getAllTargeting(adUnitCode);
|
|
265
269
|
};
|
|
266
270
|
|
|
267
271
|
function getBids(type) {
|
|
268
272
|
const responses = auctionManager[type]()
|
|
269
|
-
.filter(
|
|
273
|
+
.filter(bind.call(adUnitsFilter, this, auctionManager.getAdUnitCodes()));
|
|
270
274
|
|
|
271
275
|
// find the last auction id to get responses for most recent auction only
|
|
272
276
|
const currentAuctionId = auctionManager.getLastAuctionId();
|
|
@@ -291,7 +295,7 @@ function getBids(type) {
|
|
|
291
295
|
*/
|
|
292
296
|
|
|
293
297
|
$$PREBID_GLOBAL$$.getNoBids = function () {
|
|
294
|
-
|
|
298
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.getNoBids', arguments);
|
|
295
299
|
return getBids('getNoBids');
|
|
296
300
|
};
|
|
297
301
|
|
|
@@ -314,7 +318,7 @@ $$PREBID_GLOBAL$$.getNoBidsForAdUnitCode = function (adUnitCode) {
|
|
|
314
318
|
*/
|
|
315
319
|
|
|
316
320
|
$$PREBID_GLOBAL$$.getBidResponses = function () {
|
|
317
|
-
|
|
321
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.getBidResponses', arguments);
|
|
318
322
|
return getBids('getBidsReceived');
|
|
319
323
|
};
|
|
320
324
|
|
|
@@ -337,9 +341,9 @@ $$PREBID_GLOBAL$$.getBidResponsesForAdUnitCode = function (adUnitCode) {
|
|
|
337
341
|
* @alias module:pbjs.setTargetingForGPTAsync
|
|
338
342
|
*/
|
|
339
343
|
$$PREBID_GLOBAL$$.setTargetingForGPTAsync = function (adUnit, customSlotMatching) {
|
|
340
|
-
|
|
344
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.setTargetingForGPTAsync', arguments);
|
|
341
345
|
if (!isGptPubadsDefined()) {
|
|
342
|
-
|
|
346
|
+
logError('window.googletag is not defined on the page');
|
|
343
347
|
return;
|
|
344
348
|
}
|
|
345
349
|
|
|
@@ -370,9 +374,9 @@ $$PREBID_GLOBAL$$.setTargetingForGPTAsync = function (adUnit, customSlotMatching
|
|
|
370
374
|
* @alias module:pbjs.setTargetingForAst
|
|
371
375
|
*/
|
|
372
376
|
$$PREBID_GLOBAL$$.setTargetingForAst = function (adUnitCodes) {
|
|
373
|
-
|
|
377
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.setTargetingForAn', arguments);
|
|
374
378
|
if (!targeting.isApntagDefined()) {
|
|
375
|
-
|
|
379
|
+
logError('window.apntag is not defined on the page');
|
|
376
380
|
return;
|
|
377
381
|
}
|
|
378
382
|
|
|
@@ -387,7 +391,7 @@ function emitAdRenderFail({ reason, message, bid, id }) {
|
|
|
387
391
|
if (bid) data.bid = bid;
|
|
388
392
|
if (id) data.adId = id;
|
|
389
393
|
|
|
390
|
-
|
|
394
|
+
logError(message);
|
|
391
395
|
events.emit(AD_RENDER_FAILED, data);
|
|
392
396
|
}
|
|
393
397
|
|
|
@@ -407,8 +411,8 @@ function emitAdRenderSucceeded({ doc, bid, id }) {
|
|
|
407
411
|
* @alias module:pbjs.renderAd
|
|
408
412
|
*/
|
|
409
413
|
$$PREBID_GLOBAL$$.renderAd = hook('async', function (doc, id, options) {
|
|
410
|
-
|
|
411
|
-
|
|
414
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.renderAd', arguments);
|
|
415
|
+
logMessage('Calling renderAd with adId :' + id);
|
|
412
416
|
|
|
413
417
|
if (doc && id) {
|
|
414
418
|
try {
|
|
@@ -418,23 +422,23 @@ $$PREBID_GLOBAL$$.renderAd = hook('async', function (doc, id, options) {
|
|
|
418
422
|
if (bid) {
|
|
419
423
|
let shouldRender = true;
|
|
420
424
|
if (bid && bid.status === CONSTANTS.BID_STATUS.RENDERED) {
|
|
421
|
-
|
|
425
|
+
logWarn(`Ad id ${bid.adId} has been rendered before`);
|
|
422
426
|
events.emit(STALE_RENDER, bid);
|
|
423
|
-
if (
|
|
427
|
+
if (deepAccess(config.getConfig('auctionOptions'), 'suppressStaleRender')) {
|
|
424
428
|
shouldRender = false;
|
|
425
429
|
}
|
|
426
430
|
}
|
|
427
431
|
|
|
428
432
|
if (shouldRender) {
|
|
429
433
|
// replace macros according to openRTB with price paid = bid.cpm
|
|
430
|
-
bid.ad =
|
|
431
|
-
bid.adUrl =
|
|
434
|
+
bid.ad = replaceAuctionPrice(bid.ad, bid.cpm);
|
|
435
|
+
bid.adUrl = replaceAuctionPrice(bid.adUrl, bid.cpm);
|
|
432
436
|
|
|
433
437
|
// replacing clickthrough if submitted
|
|
434
438
|
if (options && options.clickThrough) {
|
|
435
439
|
const {clickThrough} = options;
|
|
436
|
-
bid.ad =
|
|
437
|
-
bid.adUrl =
|
|
440
|
+
bid.ad = replaceClickThrough(bid.ad, clickThrough);
|
|
441
|
+
bid.adUrl = replaceClickThrough(bid.adUrl, clickThrough);
|
|
438
442
|
}
|
|
439
443
|
|
|
440
444
|
// save winning bids
|
|
@@ -449,9 +453,9 @@ $$PREBID_GLOBAL$$.renderAd = hook('async', function (doc, id, options) {
|
|
|
449
453
|
|
|
450
454
|
if (isRendererRequired(renderer)) {
|
|
451
455
|
executeRenderer(renderer, bid);
|
|
452
|
-
|
|
456
|
+
insertElement(creativeComment, doc, 'html');
|
|
453
457
|
emitAdRenderSucceeded({ doc, bid, id });
|
|
454
|
-
} else if ((doc === document && !
|
|
458
|
+
} else if ((doc === document && !inIframe()) || mediaType === 'video') {
|
|
455
459
|
const message = `Error trying to write ad. Ad render call ad id ${id} was prevented from writing to the main document.`;
|
|
456
460
|
emitAdRenderFail({reason: PREVENT_WRITING_ON_MAIN_DOCUMENT, message, bid, id});
|
|
457
461
|
} else if (ad) {
|
|
@@ -468,21 +472,21 @@ $$PREBID_GLOBAL$$.renderAd = hook('async', function (doc, id, options) {
|
|
|
468
472
|
doc.write(ad);
|
|
469
473
|
doc.close();
|
|
470
474
|
setRenderSize(doc, width, height);
|
|
471
|
-
|
|
472
|
-
|
|
475
|
+
insertElement(creativeComment, doc, 'html');
|
|
476
|
+
callBurl(bid);
|
|
473
477
|
emitAdRenderSucceeded({ doc, bid, id });
|
|
474
478
|
} else if (adUrl) {
|
|
475
|
-
const iframe =
|
|
479
|
+
const iframe = createInvisibleIframe();
|
|
476
480
|
iframe.height = height;
|
|
477
481
|
iframe.width = width;
|
|
478
482
|
iframe.style.display = 'inline';
|
|
479
483
|
iframe.style.overflow = 'hidden';
|
|
480
484
|
iframe.src = adUrl;
|
|
481
485
|
|
|
482
|
-
|
|
486
|
+
insertElement(iframe, doc, 'body');
|
|
483
487
|
setRenderSize(doc, width, height);
|
|
484
|
-
|
|
485
|
-
|
|
488
|
+
insertElement(creativeComment, doc, 'html');
|
|
489
|
+
callBurl(bid);
|
|
486
490
|
emitAdRenderSucceeded({ doc, bid, id });
|
|
487
491
|
} else {
|
|
488
492
|
const message = `Error trying to write ad. No ad for bid response id: ${id}`;
|
|
@@ -509,7 +513,7 @@ $$PREBID_GLOBAL$$.renderAd = hook('async', function (doc, id, options) {
|
|
|
509
513
|
* @alias module:pbjs.removeAdUnit
|
|
510
514
|
*/
|
|
511
515
|
$$PREBID_GLOBAL$$.removeAdUnit = function (adUnitCode) {
|
|
512
|
-
|
|
516
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.removeAdUnit', arguments);
|
|
513
517
|
|
|
514
518
|
if (!adUnitCode) {
|
|
515
519
|
$$PREBID_GLOBAL$$.adUnits = [];
|
|
@@ -518,7 +522,7 @@ $$PREBID_GLOBAL$$.removeAdUnit = function (adUnitCode) {
|
|
|
518
522
|
|
|
519
523
|
let adUnitCodes;
|
|
520
524
|
|
|
521
|
-
if (
|
|
525
|
+
if (isArray(adUnitCode)) {
|
|
522
526
|
adUnitCodes = adUnitCode;
|
|
523
527
|
} else {
|
|
524
528
|
adUnitCodes = [adUnitCode];
|
|
@@ -546,9 +550,9 @@ $$PREBID_GLOBAL$$.removeAdUnit = function (adUnitCode) {
|
|
|
546
550
|
$$PREBID_GLOBAL$$.requestBids = hook('async', function ({ bidsBackHandler, timeout, adUnits, adUnitCodes, labels, auctionId } = {}) {
|
|
547
551
|
events.emit(REQUEST_BIDS);
|
|
548
552
|
const cbTimeout = timeout || config.getConfig('bidderTimeout');
|
|
549
|
-
adUnits = (adUnits && config.convertAdUnitFpd(
|
|
553
|
+
adUnits = (adUnits && config.convertAdUnitFpd(isArray(adUnits) ? adUnits : [adUnits])) || $$PREBID_GLOBAL$$.adUnits;
|
|
550
554
|
|
|
551
|
-
|
|
555
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.requestBids', arguments);
|
|
552
556
|
|
|
553
557
|
let _s2sConfigs = [];
|
|
554
558
|
const s2sBidders = [];
|
|
@@ -588,7 +592,7 @@ $$PREBID_GLOBAL$$.requestBids = hook('async', function ({ bidsBackHandler, timeo
|
|
|
588
592
|
|
|
589
593
|
const bidders = (s2sBidders) ? allBidders.filter(bidder => !includes(s2sBidders, bidder)) : allBidders;
|
|
590
594
|
|
|
591
|
-
adUnit.transactionId =
|
|
595
|
+
adUnit.transactionId = generateUUID();
|
|
592
596
|
|
|
593
597
|
bidders.forEach(bidder => {
|
|
594
598
|
const adapter = bidderRegistry[bidder];
|
|
@@ -600,7 +604,7 @@ $$PREBID_GLOBAL$$.requestBids = hook('async', function ({ bidsBackHandler, timeo
|
|
|
600
604
|
const bidderEligible = adUnitMediaTypes.some(type => includes(bidderMediaTypes, type));
|
|
601
605
|
if (!bidderEligible) {
|
|
602
606
|
// drop the bidder from the ad unit if it's not compatible
|
|
603
|
-
|
|
607
|
+
logWarn(unsupportedBidderMessage(adUnit, bidder));
|
|
604
608
|
adUnit.bids = adUnit.bids.filter(bid => bid.bidder !== bidder);
|
|
605
609
|
} else {
|
|
606
610
|
adunitCounter.incrementBidderRequestsCounter(adUnit.code, bidder);
|
|
@@ -610,13 +614,13 @@ $$PREBID_GLOBAL$$.requestBids = hook('async', function ({ bidsBackHandler, timeo
|
|
|
610
614
|
});
|
|
611
615
|
|
|
612
616
|
if (!adUnits || adUnits.length === 0) {
|
|
613
|
-
|
|
617
|
+
logMessage('No adUnits configured. No bids requested.');
|
|
614
618
|
if (typeof bidsBackHandler === 'function') {
|
|
615
619
|
// executeCallback, this will only be called in case of first request
|
|
616
620
|
try {
|
|
617
621
|
bidsBackHandler();
|
|
618
622
|
} catch (e) {
|
|
619
|
-
|
|
623
|
+
logError('Error executing bidsBackHandler', null, e);
|
|
620
624
|
}
|
|
621
625
|
}
|
|
622
626
|
return;
|
|
@@ -626,7 +630,7 @@ $$PREBID_GLOBAL$$.requestBids = hook('async', function ({ bidsBackHandler, timeo
|
|
|
626
630
|
|
|
627
631
|
let adUnitsLen = adUnits.length;
|
|
628
632
|
if (adUnitsLen > 15) {
|
|
629
|
-
|
|
633
|
+
logInfo(`Current auction ${auction.getAuctionId()} contains ${adUnitsLen} adUnits.`, adUnits);
|
|
630
634
|
}
|
|
631
635
|
|
|
632
636
|
adUnitCodes.forEach(code => targeting.setLatestAuctionForAdUnit(code, auction.getAuctionId()));
|
|
@@ -656,8 +660,8 @@ $$PREBID_GLOBAL$$.requestBids.before(executeCallbacks, 49);
|
|
|
656
660
|
* @alias module:pbjs.addAdUnits
|
|
657
661
|
*/
|
|
658
662
|
$$PREBID_GLOBAL$$.addAdUnits = function (adUnitArr) {
|
|
659
|
-
|
|
660
|
-
$$PREBID_GLOBAL$$.adUnits.push.apply($$PREBID_GLOBAL$$.adUnits, config.convertAdUnitFpd(
|
|
663
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.addAdUnits', arguments);
|
|
664
|
+
$$PREBID_GLOBAL$$.adUnits.push.apply($$PREBID_GLOBAL$$.adUnits, config.convertAdUnitFpd(isArray(adUnitArr) ? adUnitArr : [adUnitArr]));
|
|
661
665
|
// emit event
|
|
662
666
|
events.emit(ADD_AD_UNITS);
|
|
663
667
|
};
|
|
@@ -679,14 +683,14 @@ $$PREBID_GLOBAL$$.addAdUnits = function (adUnitArr) {
|
|
|
679
683
|
* Currently `bidWon` is the only event that accepts an `id` parameter.
|
|
680
684
|
*/
|
|
681
685
|
$$PREBID_GLOBAL$$.onEvent = function (event, handler, id) {
|
|
682
|
-
|
|
683
|
-
if (!
|
|
684
|
-
|
|
686
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.onEvent', arguments);
|
|
687
|
+
if (!isFn(handler)) {
|
|
688
|
+
logError('The event handler provided is not a function and was not set on event "' + event + '".');
|
|
685
689
|
return;
|
|
686
690
|
}
|
|
687
691
|
|
|
688
692
|
if (id && !eventValidators[event].call(null, id)) {
|
|
689
|
-
|
|
693
|
+
logError('The id provided is not valid for event "' + event + '" and no handler was set.');
|
|
690
694
|
return;
|
|
691
695
|
}
|
|
692
696
|
|
|
@@ -700,7 +704,7 @@ $$PREBID_GLOBAL$$.onEvent = function (event, handler, id) {
|
|
|
700
704
|
* @alias module:pbjs.offEvent
|
|
701
705
|
*/
|
|
702
706
|
$$PREBID_GLOBAL$$.offEvent = function (event, handler, id) {
|
|
703
|
-
|
|
707
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.offEvent', arguments);
|
|
704
708
|
if (id && !eventValidators[event].call(null, id)) {
|
|
705
709
|
return;
|
|
706
710
|
}
|
|
@@ -714,7 +718,7 @@ $$PREBID_GLOBAL$$.offEvent = function (event, handler, id) {
|
|
|
714
718
|
* @alias module:pbjs.getEvents
|
|
715
719
|
*/
|
|
716
720
|
$$PREBID_GLOBAL$$.getEvents = function () {
|
|
717
|
-
|
|
721
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.getEvents');
|
|
718
722
|
return events.getEvents();
|
|
719
723
|
};
|
|
720
724
|
|
|
@@ -725,11 +729,11 @@ $$PREBID_GLOBAL$$.getEvents = function () {
|
|
|
725
729
|
* @alias module:pbjs.registerBidAdapter
|
|
726
730
|
*/
|
|
727
731
|
$$PREBID_GLOBAL$$.registerBidAdapter = function (bidderAdaptor, bidderCode) {
|
|
728
|
-
|
|
732
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.registerBidAdapter', arguments);
|
|
729
733
|
try {
|
|
730
734
|
adapterManager.registerBidAdapter(bidderAdaptor(), bidderCode);
|
|
731
735
|
} catch (e) {
|
|
732
|
-
|
|
736
|
+
logError('Error registering bidder adapter : ' + e.message);
|
|
733
737
|
}
|
|
734
738
|
};
|
|
735
739
|
|
|
@@ -739,11 +743,11 @@ $$PREBID_GLOBAL$$.registerBidAdapter = function (bidderAdaptor, bidderCode) {
|
|
|
739
743
|
* @alias module:pbjs.registerAnalyticsAdapter
|
|
740
744
|
*/
|
|
741
745
|
$$PREBID_GLOBAL$$.registerAnalyticsAdapter = function (options) {
|
|
742
|
-
|
|
746
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.registerAnalyticsAdapter', arguments);
|
|
743
747
|
try {
|
|
744
748
|
adapterManager.registerAnalyticsAdapter(options);
|
|
745
749
|
} catch (e) {
|
|
746
|
-
|
|
750
|
+
logError('Error registering analytics adapter : ' + e.message);
|
|
747
751
|
}
|
|
748
752
|
};
|
|
749
753
|
|
|
@@ -754,7 +758,7 @@ $$PREBID_GLOBAL$$.registerAnalyticsAdapter = function (options) {
|
|
|
754
758
|
* @return {Object} bidResponse [description]
|
|
755
759
|
*/
|
|
756
760
|
$$PREBID_GLOBAL$$.createBid = function (statusCode) {
|
|
757
|
-
|
|
761
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.createBid', arguments);
|
|
758
762
|
return createBid(statusCode);
|
|
759
763
|
};
|
|
760
764
|
|
|
@@ -777,11 +781,11 @@ $$PREBID_GLOBAL$$.createBid = function (statusCode) {
|
|
|
777
781
|
const enableAnalyticsCallbacks = [];
|
|
778
782
|
|
|
779
783
|
const enableAnalyticsCb = hook('async', function (config) {
|
|
780
|
-
if (config && !
|
|
781
|
-
|
|
784
|
+
if (config && !isEmpty(config)) {
|
|
785
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.enableAnalytics for: ', config);
|
|
782
786
|
adapterManager.enableAnalytics(config);
|
|
783
787
|
} else {
|
|
784
|
-
|
|
788
|
+
logError('$$PREBID_GLOBAL$$.enableAnalytics should be called with option {}');
|
|
785
789
|
}
|
|
786
790
|
}, 'enableAnalyticsCb');
|
|
787
791
|
|
|
@@ -793,11 +797,11 @@ $$PREBID_GLOBAL$$.enableAnalytics = function (config) {
|
|
|
793
797
|
* @alias module:pbjs.aliasBidder
|
|
794
798
|
*/
|
|
795
799
|
$$PREBID_GLOBAL$$.aliasBidder = function (bidderCode, alias, options) {
|
|
796
|
-
|
|
800
|
+
logInfo('Invoking $$PREBID_GLOBAL$$.aliasBidder', arguments);
|
|
797
801
|
if (bidderCode && alias) {
|
|
798
802
|
adapterManager.aliasBidAdapter(bidderCode, alias, options);
|
|
799
803
|
} else {
|
|
800
|
-
|
|
804
|
+
logError('bidderCode and alias must be passed as arguments', '$$PREBID_GLOBAL$$.aliasBidder');
|
|
801
805
|
}
|
|
802
806
|
};
|
|
803
807
|
|
|
@@ -883,7 +887,7 @@ $$PREBID_GLOBAL$$.markWinningBidAsUsed = function (markBidRequest) {
|
|
|
883
887
|
} else if (markBidRequest.adId) {
|
|
884
888
|
bids = auctionManager.getBidsReceived().filter(bid => bid.adId === markBidRequest.adId);
|
|
885
889
|
} else {
|
|
886
|
-
|
|
890
|
+
logWarn('Improper use of markWinningBidAsUsed. It needs an adUnitCode or an adId to function.');
|
|
887
891
|
}
|
|
888
892
|
|
|
889
893
|
if (bids.length > 0) {
|
|
@@ -975,10 +979,10 @@ $$PREBID_GLOBAL$$.cmd.push = function (command) {
|
|
|
975
979
|
try {
|
|
976
980
|
command.call();
|
|
977
981
|
} catch (e) {
|
|
978
|
-
|
|
982
|
+
logError('Error processing command :', e.message, e.stack);
|
|
979
983
|
}
|
|
980
984
|
} else {
|
|
981
|
-
|
|
985
|
+
logError('Commands written into $$PREBID_GLOBAL$$.cmd.push must be wrapped in a function');
|
|
982
986
|
}
|
|
983
987
|
};
|
|
984
988
|
|
|
@@ -991,7 +995,7 @@ function processQueue(queue) {
|
|
|
991
995
|
cmd.call();
|
|
992
996
|
cmd.called = true;
|
|
993
997
|
} catch (e) {
|
|
994
|
-
|
|
998
|
+
logError('Error processing command :', 'prebid.js', e);
|
|
995
999
|
}
|
|
996
1000
|
}
|
|
997
1001
|
});
|
package/src/storageManager.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {hook} from './hook.js';
|
|
2
|
-
import
|
|
2
|
+
import { hasDeviceAccess, checkCookieSupport, logError } from './utils.js';
|
|
3
3
|
import includes from 'core-js-pure/features/array/includes.js';
|
|
4
4
|
|
|
5
5
|
const moduleTypeWhiteList = ['core', 'prebid-module'];
|
|
@@ -40,7 +40,7 @@ export function newStorageManager({gvlid, moduleName, moduleType} = {}) {
|
|
|
40
40
|
} else {
|
|
41
41
|
let result = {
|
|
42
42
|
hasEnforcementHook: false,
|
|
43
|
-
valid:
|
|
43
|
+
valid: hasDeviceAccess()
|
|
44
44
|
}
|
|
45
45
|
value = cb(result);
|
|
46
46
|
}
|
|
@@ -135,7 +135,7 @@ export function newStorageManager({gvlid, moduleName, moduleType} = {}) {
|
|
|
135
135
|
const cookiesAreEnabled = function (done) {
|
|
136
136
|
let cb = function (result) {
|
|
137
137
|
if (result && result.valid) {
|
|
138
|
-
if (
|
|
138
|
+
if (checkCookieSupport()) {
|
|
139
139
|
return true;
|
|
140
140
|
}
|
|
141
141
|
window.document.cookie = 'prebid.cookieTest';
|
|
@@ -222,7 +222,7 @@ export function newStorageManager({gvlid, moduleName, moduleType} = {}) {
|
|
|
222
222
|
try {
|
|
223
223
|
return !!window.localStorage;
|
|
224
224
|
} catch (e) {
|
|
225
|
-
|
|
225
|
+
logError('Local storage api disabled');
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
228
|
return false;
|
|
@@ -247,7 +247,7 @@ export function newStorageManager({gvlid, moduleName, moduleType} = {}) {
|
|
|
247
247
|
let cb = function (result) {
|
|
248
248
|
if (result && result.valid) {
|
|
249
249
|
const all = [];
|
|
250
|
-
if (
|
|
250
|
+
if (hasDeviceAccess()) {
|
|
251
251
|
const cookies = document.cookie.split(';');
|
|
252
252
|
while (cookies.length) {
|
|
253
253
|
const cookie = cookies.pop();
|