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
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import { logInfo, logError, getWindowLocation, parseQS, logMessage, _each, deepAccess, logWarn, _map, flatten, uniques, isEmpty, parseSizesInput } from '../src/utils.js';
|
|
1
2
|
import adapter from '../src/AnalyticsAdapter.js';
|
|
2
3
|
import CONSTANTS from '../src/constants.json';
|
|
3
4
|
import adapterManager from '../src/adapterManager.js';
|
|
4
5
|
import { ajax } from '../src/ajax.js';
|
|
5
6
|
import find from 'core-js-pure/features/array/find.js';
|
|
6
7
|
import includes from 'core-js-pure/features/array/includes.js';
|
|
7
|
-
const utils = require('../src/utils.js');
|
|
8
8
|
|
|
9
9
|
export const AUCTION_STATES = {
|
|
10
10
|
INIT: 'initialized', // auction has initialized
|
|
@@ -92,7 +92,7 @@ openxAdapter.enableAnalytics = function(adapterConfig = {options: {}}) {
|
|
|
92
92
|
// campaign properties defined by config will override utm query parameters
|
|
93
93
|
analyticsConfig.campaign = {...buildCampaignFromUtmCodes(), ...analyticsConfig.campaign};
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
logInfo('OpenX Analytics enabled with config', analyticsConfig);
|
|
96
96
|
|
|
97
97
|
// override track method with v2 handlers
|
|
98
98
|
openxAdapter.track = prebidAnalyticsEventHandler;
|
|
@@ -103,7 +103,7 @@ openxAdapter.enableAnalytics = function(adapterConfig = {options: {}}) {
|
|
|
103
103
|
if (pubads.addEventListener) {
|
|
104
104
|
pubads.addEventListener(SLOT_LOADED, args => {
|
|
105
105
|
openxAdapter.track({eventType: SLOT_LOADED, args});
|
|
106
|
-
|
|
106
|
+
logInfo('OX: SlotOnLoad event triggered');
|
|
107
107
|
});
|
|
108
108
|
}
|
|
109
109
|
});
|
|
@@ -160,9 +160,9 @@ function isValidConfig({options: analyticsOptions}) {
|
|
|
160
160
|
let [property, type, required] = failedValidation;
|
|
161
161
|
|
|
162
162
|
if (required) {
|
|
163
|
-
|
|
163
|
+
logError(`OpenXAnalyticsAdapter: Expected '${property}' to exist and of type '${type}'`);
|
|
164
164
|
} else {
|
|
165
|
-
|
|
165
|
+
logError(`OpenXAnalyticsAdapter: Expected '${property}' to be type '${type}'`);
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
|
|
@@ -170,8 +170,8 @@ function isValidConfig({options: analyticsOptions}) {
|
|
|
170
170
|
}
|
|
171
171
|
|
|
172
172
|
function buildCampaignFromUtmCodes() {
|
|
173
|
-
const location =
|
|
174
|
-
const queryParams =
|
|
173
|
+
const location = getWindowLocation();
|
|
174
|
+
const queryParams = parseQS(location && location.search);
|
|
175
175
|
let campaign = {};
|
|
176
176
|
|
|
177
177
|
UTM_TAGS.forEach(function(utmKey) {
|
|
@@ -231,7 +231,7 @@ function detectBrowser() {
|
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
function prebidAnalyticsEventHandler({eventType, args}) {
|
|
234
|
-
|
|
234
|
+
logMessage(eventType, Object.assign({}, args));
|
|
235
235
|
switch (eventType) {
|
|
236
236
|
case AUCTION_INIT:
|
|
237
237
|
onAuctionInit(args);
|
|
@@ -401,8 +401,8 @@ function onBidResponse(bidResponse) {
|
|
|
401
401
|
}
|
|
402
402
|
|
|
403
403
|
function onBidTimeout(args) {
|
|
404
|
-
|
|
405
|
-
let timedOutRequest =
|
|
404
|
+
_each(args, ({auctionId, adUnitCode, bidId: requestId}) => {
|
|
405
|
+
let timedOutRequest = deepAccess(auctionMap,
|
|
406
406
|
`${auctionId}.adUnitCodeToAdUnitMap.${adUnitCode}.bidRequestsMap.${requestId}`);
|
|
407
407
|
|
|
408
408
|
if (timedOutRequest) {
|
|
@@ -433,7 +433,7 @@ function onAuctionEnd(endedAuction) {
|
|
|
433
433
|
*/
|
|
434
434
|
function onBidWon(bidResponse) {
|
|
435
435
|
const { auctionId, adUnitCode, requestId, adId } = bidResponse;
|
|
436
|
-
let winningBid =
|
|
436
|
+
let winningBid = deepAccess(auctionMap,
|
|
437
437
|
`${auctionId}.adUnitCodeToAdUnitMap.${adUnitCode}.bidRequestsMap.${requestId}.bids.${adId}`);
|
|
438
438
|
|
|
439
439
|
if (winningBid) {
|
|
@@ -444,10 +444,10 @@ function onBidWon(bidResponse) {
|
|
|
444
444
|
const bidder = auction.adUnitCodeToAdUnitMap[adUnitCode].bidRequestsMap[requestId].bidder;
|
|
445
445
|
ajax(`${endpoint}?t=win&b=${adId}&a=${analyticsConfig.orgId}&bidder=${bidder}&ts=${auction.startTime}`,
|
|
446
446
|
() => {
|
|
447
|
-
|
|
447
|
+
logInfo(`Openx Analytics - Sending complete impression event for ${adId} at ${Date.now()}`)
|
|
448
448
|
});
|
|
449
449
|
} else {
|
|
450
|
-
|
|
450
|
+
logInfo(`Openx Analytics - impression event for ${adId} will be sent with auction data`)
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
}
|
|
@@ -522,7 +522,7 @@ function isAtf(elementId, scrollLeft = 0, scrollTop = 0) {
|
|
|
522
522
|
}
|
|
523
523
|
}
|
|
524
524
|
} else {
|
|
525
|
-
|
|
525
|
+
logWarn('OX: DOM element not for id ' + elementId);
|
|
526
526
|
}
|
|
527
527
|
return isAtf;
|
|
528
528
|
}
|
|
@@ -552,7 +552,7 @@ function delayedSend(auction) {
|
|
|
552
552
|
let payload = JSON.stringify([buildAuctionPayload(auction)]);
|
|
553
553
|
|
|
554
554
|
ajax(analyticsConfig.endpoint || ENDPOINT, () => {
|
|
555
|
-
|
|
555
|
+
logInfo(`OpenX Analytics - Sending complete auction at ${Date.now()}`);
|
|
556
556
|
}, payload, { contentType: 'application/json' });
|
|
557
557
|
}, delayTime);
|
|
558
558
|
}
|
|
@@ -579,15 +579,15 @@ function getPathToBidResponseByBidId(bidId) {
|
|
|
579
579
|
return [];
|
|
580
580
|
}
|
|
581
581
|
|
|
582
|
-
|
|
582
|
+
_each(auctionMap, currentAuction => {
|
|
583
583
|
// skip completed auctions
|
|
584
584
|
if (currentAuction.state === AUCTION_STATES.COMPLETED) {
|
|
585
585
|
return;
|
|
586
586
|
}
|
|
587
587
|
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
588
|
+
_each(currentAuction.adUnitCodeToAdUnitMap, (currentAdunit) => {
|
|
589
|
+
_each(currentAdunit.bidRequestsMap, currentBiddRequest => {
|
|
590
|
+
_each(currentBiddRequest.bids, (currentBidResponse, bidResponseId) => {
|
|
591
591
|
if (bidId === bidResponseId) {
|
|
592
592
|
auction = currentAuction;
|
|
593
593
|
adUnit = currentAdunit;
|
|
@@ -604,12 +604,12 @@ function getAuctionByGoogleTagSLot(slot) {
|
|
|
604
604
|
let slotAdunitCodes = [slot.getSlotElementId(), slot.getAdUnitPath()];
|
|
605
605
|
let slotAuction;
|
|
606
606
|
|
|
607
|
-
|
|
607
|
+
_each(auctionMap, auction => {
|
|
608
608
|
if (auction.state === AUCTION_STATES.COMPLETED) {
|
|
609
609
|
return;
|
|
610
610
|
}
|
|
611
611
|
|
|
612
|
-
|
|
612
|
+
_each(auction.adUnitCodeToAdUnitMap, (bidderRequestIdMap, adUnitCode) => {
|
|
613
613
|
if (includes(slotAdunitCodes, adUnitCode)) {
|
|
614
614
|
slotAuction = auction;
|
|
615
615
|
}
|
|
@@ -649,7 +649,7 @@ function buildAuctionPayload(auction) {
|
|
|
649
649
|
};
|
|
650
650
|
|
|
651
651
|
function buildAdUnitsPayload(adUnitCodeToAdUnitMap) {
|
|
652
|
-
return
|
|
652
|
+
return _map(adUnitCodeToAdUnitMap, (adUnit) => {
|
|
653
653
|
let {code, adPosition} = adUnit;
|
|
654
654
|
|
|
655
655
|
return {
|
|
@@ -659,7 +659,7 @@ function buildAuctionPayload(auction) {
|
|
|
659
659
|
};
|
|
660
660
|
|
|
661
661
|
function buildBidRequestPayload(bidRequestsMap) {
|
|
662
|
-
return
|
|
662
|
+
return _map(bidRequestsMap, (bidRequest) => {
|
|
663
663
|
let {bidder, source, bids, mediaTypes, timeLimit, timedOut} = bidRequest;
|
|
664
664
|
return {
|
|
665
665
|
bidder,
|
|
@@ -669,7 +669,7 @@ function buildAuctionPayload(auction) {
|
|
|
669
669
|
availableMediaTypes: getMediaTypes(mediaTypes),
|
|
670
670
|
timeLimit,
|
|
671
671
|
timedOut,
|
|
672
|
-
bidResponses:
|
|
672
|
+
bidResponses: _map(bidRequest.bids, (bidderBidResponse) => {
|
|
673
673
|
let {
|
|
674
674
|
adId,
|
|
675
675
|
cpm,
|
|
@@ -716,11 +716,11 @@ function buildAuctionPayload(auction) {
|
|
|
716
716
|
}
|
|
717
717
|
|
|
718
718
|
function buildUserIdProviders(userIds) {
|
|
719
|
-
return
|
|
720
|
-
return
|
|
719
|
+
return _map(userIds, (userId) => {
|
|
720
|
+
return _map(userId, (id, module) => {
|
|
721
721
|
return hasUserData(module, id) ? module : false
|
|
722
722
|
}).filter(module => module);
|
|
723
|
-
}).reduce(
|
|
723
|
+
}).reduce(flatten, []).filter(uniques).sort();
|
|
724
724
|
}
|
|
725
725
|
|
|
726
726
|
function hasUserData(module, idOrIdObject) {
|
|
@@ -728,7 +728,7 @@ function buildAuctionPayload(auction) {
|
|
|
728
728
|
|
|
729
729
|
switch (module) {
|
|
730
730
|
case 'digitrustid':
|
|
731
|
-
normalizedId =
|
|
731
|
+
normalizedId = deepAccess(idOrIdObject, 'data.id');
|
|
732
732
|
break;
|
|
733
733
|
case 'lipb':
|
|
734
734
|
normalizedId = idOrIdObject.lipbid;
|
|
@@ -737,17 +737,17 @@ function buildAuctionPayload(auction) {
|
|
|
737
737
|
normalizedId = idOrIdObject;
|
|
738
738
|
}
|
|
739
739
|
|
|
740
|
-
return !
|
|
740
|
+
return !isEmpty(normalizedId);
|
|
741
741
|
}
|
|
742
742
|
|
|
743
743
|
function getMediaTypeSizes(mediaTypes) {
|
|
744
|
-
return
|
|
745
|
-
return
|
|
744
|
+
return _map(mediaTypes, (mediaTypeConfig, mediaType) => {
|
|
745
|
+
return parseSizesInput(mediaTypeConfig.sizes)
|
|
746
746
|
.map(size => `${mediaType}_${size}`);
|
|
747
|
-
}).reduce(
|
|
747
|
+
}).reduce(flatten, []);
|
|
748
748
|
}
|
|
749
749
|
|
|
750
750
|
function getMediaTypes(mediaTypes) {
|
|
751
|
-
return
|
|
751
|
+
return _map(mediaTypes, (mediaTypeConfig, mediaType) => mediaType);
|
|
752
752
|
}
|
|
753
753
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { deepAccess, convertTypes, isArray, inIframe, _map, deepSetValue, _each, parseSizesInput, parseUrl } from '../src/utils.js';
|
|
1
2
|
import {config} from '../src/config.js';
|
|
2
3
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
|
-
import * as utils from '../src/utils.js';
|
|
4
4
|
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
5
5
|
import includes from 'core-js-pure/features/array/includes.js'
|
|
6
6
|
|
|
@@ -51,8 +51,8 @@ export const spec = {
|
|
|
51
51
|
supportedMediaTypes: SUPPORTED_AD_TYPES,
|
|
52
52
|
isBidRequestValid: function (bidRequest) {
|
|
53
53
|
const hasDelDomainOrPlatform = bidRequest.params.delDomain || bidRequest.params.platform;
|
|
54
|
-
if (
|
|
55
|
-
return !!bidRequest.params.unit ||
|
|
54
|
+
if (deepAccess(bidRequest, 'mediaTypes.banner') && hasDelDomainOrPlatform) {
|
|
55
|
+
return !!bidRequest.params.unit || deepAccess(bidRequest, 'mediaTypes.banner.sizes.length') > 0;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
return !!(bidRequest.params.unit && hasDelDomainOrPlatform);
|
|
@@ -87,8 +87,8 @@ export const spec = {
|
|
|
87
87
|
getUserSyncs: function (syncOptions, responses, gdprConsent, uspConsent) {
|
|
88
88
|
if (syncOptions.iframeEnabled || syncOptions.pixelEnabled) {
|
|
89
89
|
let pixelType = syncOptions.iframeEnabled ? 'iframe' : 'image';
|
|
90
|
-
let url =
|
|
91
|
-
|
|
90
|
+
let url = deepAccess(responses, '0.body.ads.pixels') ||
|
|
91
|
+
deepAccess(responses, '0.body.pixels') ||
|
|
92
92
|
generateDefaultSyncUrl(gdprConsent, uspConsent);
|
|
93
93
|
|
|
94
94
|
return [{
|
|
@@ -98,7 +98,7 @@ export const spec = {
|
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
100
|
transformBidParams: function(params, isOpenRtb) {
|
|
101
|
-
return
|
|
101
|
+
return convertTypes({
|
|
102
102
|
'unit': 'string',
|
|
103
103
|
'customFloor': 'number'
|
|
104
104
|
}, params);
|
|
@@ -123,7 +123,7 @@ function generateDefaultSyncUrl(gdprConsent, uspConsent) {
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
function isVideoRequest(bidRequest) {
|
|
126
|
-
return (
|
|
126
|
+
return (deepAccess(bidRequest, 'mediaTypes.video') && !deepAccess(bidRequest, 'mediaTypes.banner')) || bidRequest.mediaType === VIDEO;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
function createBannerBidResponses(oxResponseObj, {bids, startTime}) {
|
|
@@ -215,7 +215,7 @@ function getViewportDimensions(isIfr) {
|
|
|
215
215
|
|
|
216
216
|
function formatCustomParms(customKey, customParams) {
|
|
217
217
|
let value = customParams[customKey];
|
|
218
|
-
if (
|
|
218
|
+
if (isArray(value)) {
|
|
219
219
|
// if value is an array, join them with commas first
|
|
220
220
|
value = value.join(',');
|
|
221
221
|
}
|
|
@@ -240,7 +240,7 @@ function getMediaTypeFromRequest(serverRequest) {
|
|
|
240
240
|
}
|
|
241
241
|
|
|
242
242
|
function buildCommonQueryParamsFromBids(bids, bidderRequest) {
|
|
243
|
-
const isInIframe =
|
|
243
|
+
const isInIframe = inIframe();
|
|
244
244
|
let defaultParams;
|
|
245
245
|
|
|
246
246
|
defaultParams = {
|
|
@@ -252,7 +252,7 @@ function buildCommonQueryParamsFromBids(bids, bidderRequest) {
|
|
|
252
252
|
tws: getViewportDimensions(isInIframe),
|
|
253
253
|
be: 1,
|
|
254
254
|
bc: bids[0].params.bc || `${BIDDER_CONFIG}_${BIDDER_VERSION}`,
|
|
255
|
-
dddid:
|
|
255
|
+
dddid: _map(bids, bid => bid.transactionId).join(','),
|
|
256
256
|
nocache: new Date().getTime()
|
|
257
257
|
};
|
|
258
258
|
|
|
@@ -304,8 +304,8 @@ function buildCommonQueryParamsFromBids(bids, bidderRequest) {
|
|
|
304
304
|
}
|
|
305
305
|
|
|
306
306
|
// normalize publisher common id
|
|
307
|
-
if (
|
|
308
|
-
|
|
307
|
+
if (deepAccess(bids[0], 'crumbs.pubcid')) {
|
|
308
|
+
deepSetValue(bids[0], 'userId.pubcid', deepAccess(bids[0], 'crumbs.pubcid'));
|
|
309
309
|
}
|
|
310
310
|
defaultParams = appendUserIdsToQueryParams(defaultParams, bids[0].userId);
|
|
311
311
|
|
|
@@ -318,7 +318,7 @@ function buildCommonQueryParamsFromBids(bids, bidderRequest) {
|
|
|
318
318
|
}
|
|
319
319
|
|
|
320
320
|
function appendUserIdsToQueryParams(queryParams, userIds) {
|
|
321
|
-
|
|
321
|
+
_each(userIds, (userIdObjectOrValue, userIdProviderKey) => {
|
|
322
322
|
const key = USER_ID_CODE_TO_QUERY_ARG[userIdProviderKey];
|
|
323
323
|
|
|
324
324
|
if (USER_ID_CODE_TO_QUERY_ARG.hasOwnProperty(userIdProviderKey)) {
|
|
@@ -371,13 +371,13 @@ function buildOXBannerRequest(bids, bidderRequest) {
|
|
|
371
371
|
let customParamsForAllBids = [];
|
|
372
372
|
let hasCustomParam = false;
|
|
373
373
|
let queryParams = buildCommonQueryParamsFromBids(bids, bidderRequest);
|
|
374
|
-
let auids =
|
|
374
|
+
let auids = _map(bids, bid => bid.params.unit);
|
|
375
375
|
|
|
376
|
-
queryParams.aus =
|
|
377
|
-
queryParams.divids =
|
|
376
|
+
queryParams.aus = _map(bids, bid => parseSizesInput(bid.mediaTypes.banner.sizes).join(',')).join('|');
|
|
377
|
+
queryParams.divids = _map(bids, bid => encodeURIComponent(bid.adUnitCode)).join(',');
|
|
378
378
|
// gpid
|
|
379
|
-
queryParams.aucs =
|
|
380
|
-
let gpid =
|
|
379
|
+
queryParams.aucs = _map(bids, function (bid) {
|
|
380
|
+
let gpid = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
|
|
381
381
|
return encodeURIComponent(gpid || '')
|
|
382
382
|
}).join(',');
|
|
383
383
|
|
|
@@ -395,7 +395,7 @@ function buildOXBannerRequest(bids, bidderRequest) {
|
|
|
395
395
|
|
|
396
396
|
bids.forEach(function (bid) {
|
|
397
397
|
if (bid.params.customParams) {
|
|
398
|
-
let customParamsForBid =
|
|
398
|
+
let customParamsForBid = _map(Object.keys(bid.params.customParams), customKey => formatCustomParms(customKey, bid.params.customParams));
|
|
399
399
|
let formattedCustomParams = window.btoa(customParamsForBid.join('&'));
|
|
400
400
|
hasCustomParam = true;
|
|
401
401
|
customParamsForAllBids.push(formattedCustomParams);
|
|
@@ -435,22 +435,22 @@ function buildOXVideoRequest(bid, bidderRequest) {
|
|
|
435
435
|
}
|
|
436
436
|
|
|
437
437
|
function generateVideoParameters(bid, bidderRequest) {
|
|
438
|
-
const videoMediaType =
|
|
438
|
+
const videoMediaType = deepAccess(bid, `mediaTypes.video`);
|
|
439
439
|
let queryParams = buildCommonQueryParamsFromBids([bid], bidderRequest);
|
|
440
|
-
let oxVideoConfig =
|
|
441
|
-
let context =
|
|
442
|
-
let playerSize =
|
|
440
|
+
let oxVideoConfig = deepAccess(bid, 'params.video') || {};
|
|
441
|
+
let context = deepAccess(bid, 'mediaTypes.video.context');
|
|
442
|
+
let playerSize = deepAccess(bid, 'mediaTypes.video.playerSize');
|
|
443
443
|
let width;
|
|
444
444
|
let height;
|
|
445
445
|
|
|
446
446
|
// normalize config for video size
|
|
447
|
-
if (
|
|
447
|
+
if (isArray(bid.sizes) && bid.sizes.length === 2 && !isArray(bid.sizes[0])) {
|
|
448
448
|
width = parseInt(bid.sizes[0], 10);
|
|
449
449
|
height = parseInt(bid.sizes[1], 10);
|
|
450
|
-
} else if (
|
|
450
|
+
} else if (isArray(bid.sizes) && isArray(bid.sizes[0]) && bid.sizes[0].length === 2) {
|
|
451
451
|
width = parseInt(bid.sizes[0][0], 10);
|
|
452
452
|
height = parseInt(bid.sizes[0][1], 10);
|
|
453
|
-
} else if (
|
|
453
|
+
} else if (isArray(playerSize) && playerSize.length === 2) {
|
|
454
454
|
width = parseInt(playerSize[0], 10);
|
|
455
455
|
height = parseInt(playerSize[1], 10);
|
|
456
456
|
}
|
|
@@ -463,7 +463,7 @@ function generateVideoParameters(bid, bidderRequest) {
|
|
|
463
463
|
legacyParams = legacyParams.openrtb;
|
|
464
464
|
}
|
|
465
465
|
// support for video object or full openrtb object
|
|
466
|
-
if (
|
|
466
|
+
if (isArray(legacyParams.imp)) {
|
|
467
467
|
legacyParams = legacyParams.imp[0].video;
|
|
468
468
|
}
|
|
469
469
|
Object.keys(legacyParams)
|
|
@@ -502,7 +502,7 @@ function generateVideoParameters(bid, bidderRequest) {
|
|
|
502
502
|
queryParams.vtest = 1;
|
|
503
503
|
}
|
|
504
504
|
|
|
505
|
-
let gpid =
|
|
505
|
+
let gpid = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
|
|
506
506
|
if (gpid) {
|
|
507
507
|
queryParams.aucs = encodeURIComponent(gpid)
|
|
508
508
|
}
|
|
@@ -517,7 +517,7 @@ function createVideoBidResponses(response, {bid, startTime}) {
|
|
|
517
517
|
let bidResponses = [];
|
|
518
518
|
|
|
519
519
|
if (response !== undefined && response.vastUrl !== '' && response.pub_rev > 0) {
|
|
520
|
-
let vastQueryParams =
|
|
520
|
+
let vastQueryParams = parseUrl(response.vastUrl).search || {};
|
|
521
521
|
let bidResponse = {};
|
|
522
522
|
bidResponse.requestId = bid.bidId;
|
|
523
523
|
if (response.deal_id) {
|