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,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { inIframe, logError, logMessage, deepAccess } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
3
|
const BIDDER_CODE = 'h12media';
|
|
4
4
|
const DEFAULT_URL = 'https://bidder.h12-media.com/prebid/';
|
|
@@ -15,7 +15,7 @@ export const spec = {
|
|
|
15
15
|
},
|
|
16
16
|
|
|
17
17
|
buildRequests: function(validBidRequests, bidderRequest) {
|
|
18
|
-
const isiframe =
|
|
18
|
+
const isiframe = inIframe();
|
|
19
19
|
const screenSize = getClientDimensions();
|
|
20
20
|
const docSize = getDocumentDimensions();
|
|
21
21
|
|
|
@@ -24,7 +24,7 @@ export const spec = {
|
|
|
24
24
|
const requestUrl = bidderParams.endpointdom || DEFAULT_URL;
|
|
25
25
|
let pubsubid = bidderParams.pubsubid || '';
|
|
26
26
|
if (pubsubid && pubsubid.length > 32) {
|
|
27
|
-
|
|
27
|
+
logError('Bidder param \'pubsubid\' should be not more than 32 chars.');
|
|
28
28
|
pubsubid = '';
|
|
29
29
|
}
|
|
30
30
|
const pubcontainerid = bidderParams.pubcontainerid;
|
|
@@ -57,7 +57,7 @@ export const spec = {
|
|
|
57
57
|
try {
|
|
58
58
|
windowTop = window.top;
|
|
59
59
|
} catch (e) {
|
|
60
|
-
|
|
60
|
+
logMessage(e);
|
|
61
61
|
windowTop = window;
|
|
62
62
|
}
|
|
63
63
|
|
|
@@ -66,11 +66,11 @@ export const spec = {
|
|
|
66
66
|
url: requestUrl,
|
|
67
67
|
options: {withCredentials: true},
|
|
68
68
|
data: {
|
|
69
|
-
gdpr: !!
|
|
70
|
-
gdpr_cs:
|
|
71
|
-
usp: !!
|
|
72
|
-
usp_cs:
|
|
73
|
-
topLevelUrl:
|
|
69
|
+
gdpr: !!deepAccess(bidderRequest, 'gdprConsent.gdprApplies', false),
|
|
70
|
+
gdpr_cs: deepAccess(bidderRequest, 'gdprConsent.consentString', ''),
|
|
71
|
+
usp: !!deepAccess(bidderRequest, 'uspConsent', false),
|
|
72
|
+
usp_cs: deepAccess(bidderRequest, 'uspConsent', ''),
|
|
73
|
+
topLevelUrl: deepAccess(bidderRequest, 'refererInfo.referer', ''),
|
|
74
74
|
refererUrl: windowTop.document.referrer,
|
|
75
75
|
isiframe,
|
|
76
76
|
version: '$prebid.version$',
|
|
@@ -122,14 +122,14 @@ export const spec = {
|
|
|
122
122
|
}
|
|
123
123
|
return bidResponses;
|
|
124
124
|
} catch (err) {
|
|
125
|
-
|
|
125
|
+
logError(err);
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
128
|
|
|
129
129
|
getUserSyncs: function(syncOptions, serverResponses, gdprConsent, usPrivacy) {
|
|
130
130
|
const syncs = [];
|
|
131
|
-
const uspApplies = !!
|
|
132
|
-
const uspString =
|
|
131
|
+
const uspApplies = !!deepAccess(usPrivacy, 'uspConsent', false);
|
|
132
|
+
const uspString = deepAccess(usPrivacy, 'uspConsent', '');
|
|
133
133
|
gdprConsent = gdprConsent || {
|
|
134
134
|
gdprApplies: false, consentString: '',
|
|
135
135
|
};
|
package/modules/haloIdSystem.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import {ajax} from '../src/ajax.js';
|
|
9
9
|
import {getStorageManager} from '../src/storageManager.js';
|
|
10
10
|
import {submodule} from '../src/hook.js';
|
|
11
|
-
import
|
|
11
|
+
import { isFn, isStr, isPlainObject, logError } from '../src/utils.js';
|
|
12
12
|
|
|
13
13
|
const MODULE_NAME = 'haloId';
|
|
14
14
|
const AU_GVLID = 561;
|
|
@@ -21,9 +21,9 @@ export const storage = getStorageManager(AU_GVLID, 'halo');
|
|
|
21
21
|
* @param {String} defaultVal
|
|
22
22
|
*/
|
|
23
23
|
function paramOrDefault(param, defaultVal, arg) {
|
|
24
|
-
if (
|
|
24
|
+
if (isFn(param)) {
|
|
25
25
|
return param(arg);
|
|
26
|
-
} else if (
|
|
26
|
+
} else if (isStr(param)) {
|
|
27
27
|
return param;
|
|
28
28
|
}
|
|
29
29
|
return defaultVal;
|
|
@@ -44,7 +44,7 @@ export const haloIdSubmodule = {
|
|
|
44
44
|
*/
|
|
45
45
|
decode(value) {
|
|
46
46
|
let haloId = storage.getDataFromLocalStorage('auHaloId');
|
|
47
|
-
if (
|
|
47
|
+
if (isStr(haloId)) {
|
|
48
48
|
return {haloId: haloId};
|
|
49
49
|
}
|
|
50
50
|
return (value && typeof value['haloId'] === 'string') ? { 'haloId': value['haloId'] } : undefined;
|
|
@@ -56,7 +56,7 @@ export const haloIdSubmodule = {
|
|
|
56
56
|
* @returns {IdResponse|undefined}
|
|
57
57
|
*/
|
|
58
58
|
getId(config) {
|
|
59
|
-
if (!
|
|
59
|
+
if (!isPlainObject(config.params)) {
|
|
60
60
|
config.params = {};
|
|
61
61
|
}
|
|
62
62
|
const url = paramOrDefault(config.params.url,
|
|
@@ -65,7 +65,7 @@ export const haloIdSubmodule = {
|
|
|
65
65
|
|
|
66
66
|
const resp = function (callback) {
|
|
67
67
|
let haloId = storage.getDataFromLocalStorage('auHaloId');
|
|
68
|
-
if (
|
|
68
|
+
if (isStr(haloId)) {
|
|
69
69
|
const responseObj = {haloId: haloId};
|
|
70
70
|
callback(responseObj);
|
|
71
71
|
} else {
|
|
@@ -76,13 +76,13 @@ export const haloIdSubmodule = {
|
|
|
76
76
|
try {
|
|
77
77
|
responseObj = JSON.parse(response);
|
|
78
78
|
} catch (error) {
|
|
79
|
-
|
|
79
|
+
logError(error);
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
callback(responseObj);
|
|
83
83
|
},
|
|
84
84
|
error: error => {
|
|
85
|
-
|
|
85
|
+
logError(`${MODULE_NAME}: ID fetch encountered an error`, error);
|
|
86
86
|
callback();
|
|
87
87
|
}
|
|
88
88
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { _map, logWarn, deepAccess, isArray } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js'
|
|
3
3
|
import { auctionManager } from '../src/auctionManager.js'
|
|
4
4
|
import { BANNER, VIDEO } from '../src/mediaTypes.js'
|
|
@@ -21,7 +21,7 @@ const placementTypes = {
|
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
function buildBidRequests(validBidRequests) {
|
|
24
|
-
return
|
|
24
|
+
return _map(validBidRequests, function(validBidRequest) {
|
|
25
25
|
const params = validBidRequest.params;
|
|
26
26
|
const bidRequest = {
|
|
27
27
|
bidId: validBidRequest.bidId,
|
|
@@ -63,7 +63,7 @@ const createRenderer = (bid) => {
|
|
|
63
63
|
try {
|
|
64
64
|
renderer.setRender(outstreamRender);
|
|
65
65
|
} catch (err) {
|
|
66
|
-
|
|
66
|
+
logWarn('Prebid Error calling setRender on renderer', err);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
return renderer;
|
|
@@ -143,8 +143,8 @@ function hasVideoMandatoryParams(mediaTypes) {
|
|
|
143
143
|
const isHasVideoContext = !!mediaTypes.video && (mediaTypes.video.context === 'instream' || mediaTypes.video.context === 'outstream');
|
|
144
144
|
|
|
145
145
|
const isPlayerSize =
|
|
146
|
-
!!
|
|
147
|
-
|
|
146
|
+
!!deepAccess(mediaTypes, 'video.playerSize') &&
|
|
147
|
+
isArray(deepAccess(mediaTypes, 'video.playerSize'));
|
|
148
148
|
|
|
149
149
|
return isHasVideoContext && isPlayerSize;
|
|
150
150
|
}
|
|
@@ -237,8 +237,8 @@ export const spec = {
|
|
|
237
237
|
let bidRequests = JSON.parse(bidRequest.data).bidRequests;
|
|
238
238
|
const serverBody = serverResponse.body;
|
|
239
239
|
|
|
240
|
-
if (serverBody && serverBody.bids &&
|
|
241
|
-
return
|
|
240
|
+
if (serverBody && serverBody.bids && isArray(serverBody.bids)) {
|
|
241
|
+
return _map(serverBody.bids, function(bid) {
|
|
242
242
|
let rawBid = find(bidRequests, function (item) {
|
|
243
243
|
return item.bidId === bid.bidId;
|
|
244
244
|
});
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { submodule } from '../src/hook.js';
|
|
2
|
-
import { getGlobal } from '../src/prebidGlobal.js';
|
|
3
2
|
import * as utils from '../src/utils.js';
|
|
4
|
-
import {
|
|
3
|
+
import { ajax } from '../src/ajax.js';
|
|
4
|
+
import { getGlobal } from '../src/prebidGlobal.js';
|
|
5
5
|
|
|
6
6
|
/** @type {string} */
|
|
7
7
|
const MODULE_NAME = 'realTimeData';
|
|
8
8
|
const SUBMODULE_NAME = 'ias';
|
|
9
|
-
|
|
10
|
-
let
|
|
9
|
+
const IAS_HOST = 'https://pixel.adsafeprotected.com/services/pub';
|
|
10
|
+
export let iasTargeting = {};
|
|
11
|
+
const BRAND_SAFETY_OBJECT_FIELD_NAME = 'brandSafety';
|
|
12
|
+
const FRAUD_FIELD_NAME = 'fr';
|
|
13
|
+
const SLOTS_OBJECT_FIELD_NAME = 'slots';
|
|
14
|
+
const CUSTOM_FIELD_NAME = 'custom';
|
|
15
|
+
const IAS_KW = 'ias-kw';
|
|
11
16
|
|
|
12
17
|
/**
|
|
13
18
|
* Module init
|
|
@@ -16,6 +21,11 @@ let bidResponses = {};
|
|
|
16
21
|
* @return {boolean}
|
|
17
22
|
*/
|
|
18
23
|
export function init(config, userConsent) {
|
|
24
|
+
const params = config.params;
|
|
25
|
+
if (!params || !params.pubId) {
|
|
26
|
+
utils.logError('missing pubId param for IAS provider');
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
19
29
|
return true;
|
|
20
30
|
}
|
|
21
31
|
|
|
@@ -31,11 +41,12 @@ function stringifySlotSizes(sizes) {
|
|
|
31
41
|
return result;
|
|
32
42
|
}
|
|
33
43
|
|
|
34
|
-
function stringifySlot(bidRequest
|
|
44
|
+
function stringifySlot(bidRequest) {
|
|
35
45
|
const sizes = utils.getAdUnitSizes(bidRequest);
|
|
36
46
|
const id = bidRequest.code;
|
|
37
47
|
const ss = stringifySlotSizes(sizes);
|
|
38
|
-
const
|
|
48
|
+
const adSlot = utils.getGptSlotInfoForAdUnitCode(bidRequest.code);
|
|
49
|
+
const p = utils.isEmpty(adSlot) ? bidRequest.code : adSlot.gptSlot;
|
|
39
50
|
const slot = { id, ss, p };
|
|
40
51
|
const keyValues = utils.getKeys(slot).map(function (key) {
|
|
41
52
|
return [key, slot[key]].join(':');
|
|
@@ -51,35 +62,29 @@ function stringifyScreenSize() {
|
|
|
51
62
|
return [(window.screen && window.screen.width) || -1, (window.screen && window.screen.height) || -1].join('.');
|
|
52
63
|
}
|
|
53
64
|
|
|
54
|
-
function
|
|
65
|
+
function formatTargetingData(adUnit) {
|
|
55
66
|
let result = {};
|
|
56
|
-
if (
|
|
57
|
-
|
|
67
|
+
if (iasTargeting[BRAND_SAFETY_OBJECT_FIELD_NAME]) {
|
|
68
|
+
utils.mergeDeep(result, iasTargeting[BRAND_SAFETY_OBJECT_FIELD_NAME]);
|
|
69
|
+
}
|
|
70
|
+
if (iasTargeting[FRAUD_FIELD_NAME]) {
|
|
71
|
+
result[FRAUD_FIELD_NAME] = iasTargeting[FRAUD_FIELD_NAME];
|
|
72
|
+
}
|
|
73
|
+
if (iasTargeting[CUSTOM_FIELD_NAME] && IAS_KW in iasTargeting[CUSTOM_FIELD_NAME]) {
|
|
74
|
+
result[IAS_KW] = iasTargeting[CUSTOM_FIELD_NAME][IAS_KW];
|
|
75
|
+
}
|
|
76
|
+
if (iasTargeting[SLOTS_OBJECT_FIELD_NAME] && adUnit in iasTargeting[SLOTS_OBJECT_FIELD_NAME]) {
|
|
77
|
+
utils.mergeDeep(result, iasTargeting[SLOTS_OBJECT_FIELD_NAME][adUnit]);
|
|
58
78
|
}
|
|
59
|
-
result.fr = response.fr;
|
|
60
|
-
result.custom = response.custom;
|
|
61
79
|
return result;
|
|
62
80
|
}
|
|
63
81
|
|
|
64
|
-
function
|
|
65
|
-
utils.getKeys(src).reduce((dest, srcKey) => {
|
|
66
|
-
dest[srcKey] = src[srcKey];
|
|
67
|
-
return dest;
|
|
68
|
-
}, dest);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
function getBidRequestData(reqBidsConfigObj, callback, config) {
|
|
72
|
-
const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
|
|
73
|
-
let isFinish = false;
|
|
74
|
-
|
|
75
|
-
const IAS_HOST = 'https://pixel.adsafeprotected.com/services/pub';
|
|
76
|
-
const { pubId, adUnitPath } = config.params;
|
|
77
|
-
const anId = pubId;
|
|
82
|
+
function constructQueryString(anId, adUnits) {
|
|
78
83
|
let queries = [];
|
|
79
84
|
queries.push(['anId', anId]);
|
|
80
85
|
|
|
81
86
|
queries = queries.concat(adUnits.reduce(function (acc, request) {
|
|
82
|
-
acc.push(['slot', stringifySlot(request
|
|
87
|
+
acc.push(['slot', stringifySlot(request)]);
|
|
83
88
|
return acc;
|
|
84
89
|
}, []));
|
|
85
90
|
|
|
@@ -87,58 +92,69 @@ function getBidRequestData(reqBidsConfigObj, callback, config) {
|
|
|
87
92
|
queries.push(['sr', stringifyScreenSize()]);
|
|
88
93
|
queries.push(['url', encodeURIComponent(window.location.href)]);
|
|
89
94
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
commonBidResponse.slots = iasResponse.slots;
|
|
102
|
-
bidResponses = commonBidResponse;
|
|
103
|
-
adUnits.forEach(adUnit => {
|
|
104
|
-
adUnit.bids.forEach(bid => {
|
|
105
|
-
const rtd = bid.rtd || {};
|
|
106
|
-
const iasRtd = {};
|
|
107
|
-
iasRtd[SUBMODULE_NAME] = Object.assign({}, rtd[SUBMODULE_NAME], bidResponses);
|
|
108
|
-
bid.rtd = Object.assign({}, rtd, iasRtd);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
isFinish = true;
|
|
113
|
-
}
|
|
114
|
-
callback();
|
|
115
|
-
},
|
|
116
|
-
error: function () {
|
|
117
|
-
utils.logError('failed to retrieve targeting information');
|
|
118
|
-
callback();
|
|
119
|
-
}
|
|
120
|
-
});
|
|
95
|
+
return encodeURI(queries.map(qs => qs.join('=')).join('&'));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function parseResponse(result) {
|
|
99
|
+
let iasResponse = {};
|
|
100
|
+
try {
|
|
101
|
+
iasResponse = JSON.parse(result);
|
|
102
|
+
} catch (err) {
|
|
103
|
+
utils.logError('error', err);
|
|
104
|
+
}
|
|
105
|
+
iasTargeting = iasResponse;
|
|
121
106
|
}
|
|
122
107
|
|
|
123
108
|
function getTargetingData(adUnits, config, userConsent) {
|
|
124
109
|
const targeting = {};
|
|
125
|
-
Object.keys(bidResponses).forEach(key => bidResponses[key] === undefined ? delete bidResponses[key] : {});
|
|
126
110
|
try {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
111
|
+
if (!utils.isEmpty(iasTargeting)) {
|
|
112
|
+
adUnits.forEach(function (adUnit) {
|
|
113
|
+
targeting[adUnit] = formatTargetingData(adUnit);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
130
116
|
} catch (err) {
|
|
131
117
|
utils.logError('error', err);
|
|
132
118
|
}
|
|
119
|
+
utils.logInfo('IAS targeting', targeting);
|
|
133
120
|
return targeting;
|
|
134
121
|
}
|
|
135
122
|
|
|
123
|
+
export function getApiCallback() {
|
|
124
|
+
return {
|
|
125
|
+
success: function (response, req) {
|
|
126
|
+
if (req.status === 200) {
|
|
127
|
+
try {
|
|
128
|
+
parseResponse(response);
|
|
129
|
+
} catch (e) {
|
|
130
|
+
utils.logError('Unable to parse IAS response.', e);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
error: function () {
|
|
135
|
+
utils.logError('failed to retrieve IAS data');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function getBidRequestData(reqBidsConfigObj, callback, config, userConsent) {
|
|
141
|
+
const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
|
|
142
|
+
const { pubId } = config.params;
|
|
143
|
+
const queryString = constructQueryString(pubId, adUnits);
|
|
144
|
+
ajax(
|
|
145
|
+
`${IAS_HOST}?${queryString}`,
|
|
146
|
+
getApiCallback(),
|
|
147
|
+
undefined,
|
|
148
|
+
{ method: 'GET' }
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
|
|
136
152
|
/** @type {RtdSubmodule} */
|
|
137
153
|
export const iasSubModule = {
|
|
138
154
|
name: SUBMODULE_NAME,
|
|
139
155
|
init: init,
|
|
140
|
-
|
|
141
|
-
|
|
156
|
+
getTargetingData: getTargetingData,
|
|
157
|
+
getBidRequestData: getBidRequestData
|
|
142
158
|
};
|
|
143
159
|
|
|
144
160
|
submodule(MODULE_NAME, iasSubModule);
|
package/modules/id5IdSystem.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @requires module:modules/userId
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import
|
|
8
|
+
import { deepAccess, logInfo, deepSetValue, logError, isEmpty, isEmptyStr, logWarn } from '../src/utils.js';
|
|
9
9
|
import { ajax } from '../src/ajax.js';
|
|
10
10
|
import { submodule } from '../src/hook.js';
|
|
11
11
|
import { getRefererInfo } from '../src/refererDetection.js';
|
|
@@ -67,25 +67,25 @@ export const id5IdSubmodule = {
|
|
|
67
67
|
}
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
-
const abTestingResult =
|
|
70
|
+
const abTestingResult = deepAccess(value, 'ab_testing.result');
|
|
71
71
|
switch (abTestingResult) {
|
|
72
72
|
case 'control':
|
|
73
73
|
// A/B Testing is enabled and user is in the Control Group
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
logInfo(LOG_PREFIX + 'A/B Testing - user is in the Control Group: ID5 ID is NOT exposed');
|
|
75
|
+
deepSetValue(responseObj, 'id5id.ext.abTestingControlGroup', true);
|
|
76
76
|
break;
|
|
77
77
|
case 'error':
|
|
78
78
|
// A/B Testing is enabled, but configured improperly, so skip A/B testing
|
|
79
|
-
|
|
79
|
+
logError(LOG_PREFIX + 'A/B Testing ERROR! controlGroupPct must be a number >= 0 and <= 1');
|
|
80
80
|
break;
|
|
81
81
|
case 'normal':
|
|
82
82
|
// A/B Testing is enabled but user is not in the Control Group, so ID5 ID is shared
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
logInfo(LOG_PREFIX + 'A/B Testing - user is NOT in the Control Group');
|
|
84
|
+
deepSetValue(responseObj, 'id5id.ext.abTestingControlGroup', false);
|
|
85
85
|
break;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
logInfo(LOG_PREFIX + 'Decoded ID', responseObj);
|
|
89
89
|
|
|
90
90
|
return responseObj;
|
|
91
91
|
},
|
|
@@ -120,19 +120,19 @@ export const id5IdSubmodule = {
|
|
|
120
120
|
};
|
|
121
121
|
|
|
122
122
|
// pass in optional data, but only if populated
|
|
123
|
-
if (hasGdpr && typeof consentData.consentString !== 'undefined' && !
|
|
123
|
+
if (hasGdpr && typeof consentData.consentString !== 'undefined' && !isEmpty(consentData.consentString) && !isEmptyStr(consentData.consentString)) {
|
|
124
124
|
data.gdpr_consent = consentData.consentString;
|
|
125
125
|
}
|
|
126
|
-
if (typeof usp !== 'undefined' && !
|
|
126
|
+
if (typeof usp !== 'undefined' && !isEmpty(usp) && !isEmptyStr(usp)) {
|
|
127
127
|
data.us_privacy = usp;
|
|
128
128
|
}
|
|
129
|
-
if (typeof signature !== 'undefined' && !
|
|
129
|
+
if (typeof signature !== 'undefined' && !isEmptyStr(signature)) {
|
|
130
130
|
data.s = signature;
|
|
131
131
|
}
|
|
132
|
-
if (typeof config.params.pd !== 'undefined' && !
|
|
132
|
+
if (typeof config.params.pd !== 'undefined' && !isEmptyStr(config.params.pd)) {
|
|
133
133
|
data.pd = config.params.pd;
|
|
134
134
|
}
|
|
135
|
-
if (typeof config.params.provider !== 'undefined' && !
|
|
135
|
+
if (typeof config.params.provider !== 'undefined' && !isEmptyStr(config.params.provider)) {
|
|
136
136
|
data.provider = config.params.provider;
|
|
137
137
|
}
|
|
138
138
|
|
|
@@ -151,7 +151,7 @@ export const id5IdSubmodule = {
|
|
|
151
151
|
if (response) {
|
|
152
152
|
try {
|
|
153
153
|
responseObj = JSON.parse(response);
|
|
154
|
-
|
|
154
|
+
logInfo(LOG_PREFIX + 'response received from the server', responseObj);
|
|
155
155
|
|
|
156
156
|
resetNb(config.params.partner);
|
|
157
157
|
|
|
@@ -165,17 +165,17 @@ export const id5IdSubmodule = {
|
|
|
165
165
|
removeLegacyCookies(config.params.partner);
|
|
166
166
|
}
|
|
167
167
|
} catch (error) {
|
|
168
|
-
|
|
168
|
+
logError(LOG_PREFIX + error);
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
callback(responseObj);
|
|
172
172
|
},
|
|
173
173
|
error: error => {
|
|
174
|
-
|
|
174
|
+
logError(LOG_PREFIX + 'getId fetch encountered an error', error);
|
|
175
175
|
callback();
|
|
176
176
|
}
|
|
177
177
|
};
|
|
178
|
-
|
|
178
|
+
logInfo(LOG_PREFIX + 'requesting an ID from the server', data);
|
|
179
179
|
ajax(url, callbacks, JSON.stringify(data), { method: 'POST', withCredentials: true });
|
|
180
180
|
};
|
|
181
181
|
return { callback: resp };
|
|
@@ -198,29 +198,29 @@ export const id5IdSubmodule = {
|
|
|
198
198
|
const partnerId = (config && config.params && config.params.partner) || 0;
|
|
199
199
|
incrementNb(partnerId);
|
|
200
200
|
|
|
201
|
-
|
|
201
|
+
logInfo(LOG_PREFIX + 'using cached ID', cacheIdObj);
|
|
202
202
|
return cacheIdObj;
|
|
203
203
|
}
|
|
204
204
|
};
|
|
205
205
|
|
|
206
206
|
function hasRequiredConfig(config) {
|
|
207
207
|
if (!config || !config.params || !config.params.partner || typeof config.params.partner !== 'number') {
|
|
208
|
-
|
|
208
|
+
logError(LOG_PREFIX + 'partner required to be defined as a number');
|
|
209
209
|
return false;
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
if (!config.storage || !config.storage.type || !config.storage.name) {
|
|
213
|
-
|
|
213
|
+
logError(LOG_PREFIX + 'storage required to be set');
|
|
214
214
|
return false;
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
// in a future release, we may return false if storage type or name are not set as required
|
|
218
218
|
if (config.storage.type !== LOCAL_STORAGE) {
|
|
219
|
-
|
|
219
|
+
logWarn(LOG_PREFIX + `storage type recommended to be '${LOCAL_STORAGE}'. In a future release this may become a strict requirement`);
|
|
220
220
|
}
|
|
221
221
|
// in a future release, we may return false if storage type or name are not set as required
|
|
222
222
|
if (config.storage.name !== ID5_STORAGE_NAME) {
|
|
223
|
-
|
|
223
|
+
logWarn(LOG_PREFIX + `storage name recommended to be '${ID5_STORAGE_NAME}'. In a future release this may become a strict requirement`);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
return true;
|
|
@@ -265,7 +265,7 @@ function getLegacyCookieSignature() {
|
|
|
265
265
|
* @param {integer} partnerId
|
|
266
266
|
*/
|
|
267
267
|
function removeLegacyCookies(partnerId) {
|
|
268
|
-
|
|
268
|
+
logInfo(LOG_PREFIX + 'removing legacy cookies');
|
|
269
269
|
LEGACY_COOKIE_NAMES.forEach(function(cookie) {
|
|
270
270
|
storage.setCookie(`${cookie}`, ' ', expDaysStr(-1));
|
|
271
271
|
storage.setCookie(`${cookie}_nb`, ' ', expDaysStr(-1));
|
|
@@ -313,7 +313,7 @@ export function storeInLocalStorage(key, value, expDays) {
|
|
|
313
313
|
* @returns {Object} an object which always contains at least the property "enabled"
|
|
314
314
|
*/
|
|
315
315
|
function getAbTestingConfig(config) {
|
|
316
|
-
return
|
|
316
|
+
return deepAccess(config, 'params.abTesting', { enabled: false });
|
|
317
317
|
}
|
|
318
318
|
|
|
319
319
|
submodule('userId', id5IdSubmodule);
|