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,7 +1,7 @@
|
|
|
1
|
+
import { logInfo, logError } from '../src/utils.js';
|
|
1
2
|
import {getGlobal} from '../src/prebidGlobal.js';
|
|
2
3
|
import {ajax} from '../src/ajax.js';
|
|
3
4
|
import {config} from '../src/config.js';
|
|
4
|
-
import * as utils from '../src/utils.js';
|
|
5
5
|
import MD5 from 'crypto-js/md5.js';
|
|
6
6
|
|
|
7
7
|
let email;
|
|
@@ -18,18 +18,18 @@ const OBSERVER_CONFIG = {
|
|
|
18
18
|
characterData: true,
|
|
19
19
|
characterDataOldValue: false
|
|
20
20
|
};
|
|
21
|
-
const
|
|
22
|
-
const
|
|
21
|
+
const _logInfo = createLogInfo(LOG_PRE_FIX);
|
|
22
|
+
const _logError = createLogError(LOG_PRE_FIX);
|
|
23
23
|
|
|
24
24
|
function createLogInfo(prefix) {
|
|
25
25
|
return function (...strings) {
|
|
26
|
-
|
|
26
|
+
logInfo(prefix + ' ', ...strings);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
function createLogError(prefix) {
|
|
31
31
|
return function (...strings) {
|
|
32
|
-
|
|
32
|
+
logError(prefix + ' ', ...strings);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -38,39 +38,39 @@ function getEmail(value) {
|
|
|
38
38
|
if (!matched) {
|
|
39
39
|
return null;
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
_logInfo('Email found: ' + matched[0]);
|
|
42
42
|
return matched[0];
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
function bodyAction(mutations, observer) {
|
|
46
|
-
|
|
46
|
+
_logInfo('BODY observer on debounce called');
|
|
47
47
|
// If the email is found in the input element, disconnect the observer
|
|
48
48
|
if (email) {
|
|
49
49
|
observer.disconnect();
|
|
50
|
-
|
|
50
|
+
_logInfo('Email is found, body observer disconnected');
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
const body = document.body.innerHTML;
|
|
55
55
|
email = getEmail(body);
|
|
56
56
|
if (email !== null) {
|
|
57
|
-
|
|
57
|
+
_logInfo(`Email obtained from the body ${email}`);
|
|
58
58
|
observer.disconnect();
|
|
59
|
-
|
|
59
|
+
_logInfo('Post data on email found in body');
|
|
60
60
|
postData();
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
function targetAction(mutations, observer) {
|
|
65
|
-
|
|
65
|
+
_logInfo('Target observer called');
|
|
66
66
|
for (const mutation of mutations) {
|
|
67
67
|
for (const node of mutation.addedNodes) {
|
|
68
68
|
email = node.textContent;
|
|
69
69
|
|
|
70
70
|
if (email) {
|
|
71
|
-
|
|
71
|
+
_logInfo('Email obtained from the target ' + email);
|
|
72
72
|
observer.disconnect();
|
|
73
|
-
|
|
73
|
+
_logInfo('Post data on email found in target');
|
|
74
74
|
postData();
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
@@ -79,18 +79,18 @@ function targetAction(mutations, observer) {
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
function addInputElementsElementListner(conf) {
|
|
82
|
-
|
|
82
|
+
_logInfo('Adding input element listeners');
|
|
83
83
|
const inputs = document.querySelectorAll('input[type=text], input[type=email]');
|
|
84
84
|
|
|
85
85
|
for (var i = 0; i < inputs.length; i++) {
|
|
86
|
-
|
|
86
|
+
_logInfo(`Original Value in Input = ${inputs[i].value}`);
|
|
87
87
|
inputs[i].addEventListener('change', event => processInputChange(event));
|
|
88
88
|
inputs[i].addEventListener('blur', event => processInputChange(event));
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
function removeInputElementsElementListner() {
|
|
93
|
-
|
|
93
|
+
_logInfo('Removing input element listeners');
|
|
94
94
|
const inputs = document.querySelectorAll('input[type=text], input[type=email]');
|
|
95
95
|
|
|
96
96
|
for (var i = 0; i < inputs.length; i++) {
|
|
@@ -101,10 +101,10 @@ function removeInputElementsElementListner() {
|
|
|
101
101
|
|
|
102
102
|
function processInputChange(event) {
|
|
103
103
|
const value = event.target.value;
|
|
104
|
-
|
|
104
|
+
_logInfo(`Modified Value of input ${event.target.value}`);
|
|
105
105
|
email = getEmail(value);
|
|
106
106
|
if (email !== null) {
|
|
107
|
-
|
|
107
|
+
_logInfo('Email found in input ' + email);
|
|
108
108
|
postData();
|
|
109
109
|
removeInputElementsElementListner();
|
|
110
110
|
}
|
|
@@ -124,7 +124,7 @@ function debounce(func, wait, immediate) {
|
|
|
124
124
|
if (callNow) {
|
|
125
125
|
func.apply(context, args);
|
|
126
126
|
} else {
|
|
127
|
-
|
|
127
|
+
_logInfo('Debounce wait time ' + wait);
|
|
128
128
|
timeout = setTimeout(later, wait);
|
|
129
129
|
}
|
|
130
130
|
};
|
|
@@ -138,11 +138,11 @@ function handleTargetElement() {
|
|
|
138
138
|
email = targetElement.innerText;
|
|
139
139
|
|
|
140
140
|
if (!email) {
|
|
141
|
-
|
|
141
|
+
_logInfo('Finding the email with observer');
|
|
142
142
|
targetObserver.observe(targetElement, OBSERVER_CONFIG);
|
|
143
143
|
} else {
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
_logInfo('Target found with target ' + email);
|
|
145
|
+
_logInfo('Post data on email found in target with target');
|
|
146
146
|
postData();
|
|
147
147
|
}
|
|
148
148
|
}
|
|
@@ -150,15 +150,15 @@ function handleTargetElement() {
|
|
|
150
150
|
|
|
151
151
|
function handleBodyElements() {
|
|
152
152
|
if (doesInputElementsHaveEmail()) {
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
_logInfo('Email found in input elements ' + email);
|
|
154
|
+
_logInfo('Post data on email found in target without');
|
|
155
155
|
postData();
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
158
|
email = getEmail(document.body.innerHTML);
|
|
159
159
|
if (email !== null) {
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
_logInfo('Email found in body ' + email);
|
|
161
|
+
_logInfo('Post data on email found in the body without observer');
|
|
162
162
|
postData();
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
@@ -185,10 +185,10 @@ function doesInputElementsHaveEmail() {
|
|
|
185
185
|
function syncCallback() {
|
|
186
186
|
return {
|
|
187
187
|
success: function () {
|
|
188
|
-
|
|
188
|
+
_logInfo('Data synced successfully.');
|
|
189
189
|
},
|
|
190
190
|
error: function () {
|
|
191
|
-
|
|
191
|
+
_logInfo('Data sync failed.');
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
}
|
|
@@ -197,15 +197,15 @@ function postData() {
|
|
|
197
197
|
(getGlobal()).refreshUserIds();
|
|
198
198
|
const userIds = (getGlobal()).getUserIds();
|
|
199
199
|
if (Object.keys(userIds).length === 0) {
|
|
200
|
-
|
|
200
|
+
_logInfo('No user ids');
|
|
201
201
|
return;
|
|
202
202
|
}
|
|
203
|
-
|
|
203
|
+
_logInfo('Users' + userIds);
|
|
204
204
|
const syncPayload = {};
|
|
205
205
|
syncPayload.hid = MD5(email).toString();
|
|
206
206
|
syncPayload.uids = userIds;
|
|
207
207
|
const payloadString = JSON.stringify(syncPayload);
|
|
208
|
-
|
|
208
|
+
_logInfo(payloadString);
|
|
209
209
|
ajax(conf.url, syncCallback(), payloadString, {method: 'POST', withCredentials: true});
|
|
210
210
|
}
|
|
211
211
|
|
|
@@ -221,20 +221,20 @@ function associateIds() {
|
|
|
221
221
|
|
|
222
222
|
export function setConfig(config) {
|
|
223
223
|
if (!config) {
|
|
224
|
-
|
|
224
|
+
_logError('Required confirguration not provided');
|
|
225
225
|
return;
|
|
226
226
|
}
|
|
227
227
|
if (!config.url) {
|
|
228
|
-
|
|
228
|
+
_logError('The required url is not configured');
|
|
229
229
|
return;
|
|
230
230
|
}
|
|
231
231
|
if (typeof config.debounce !== 'number') {
|
|
232
232
|
config.debounce = CONF_DEFAULT_OBSERVER_DEBOUNCE_MS;
|
|
233
|
-
|
|
233
|
+
_logInfo('Set default observer debounce to ' + CONF_DEFAULT_OBSERVER_DEBOUNCE_MS);
|
|
234
234
|
}
|
|
235
235
|
if (typeof config.fullscan !== 'boolean') {
|
|
236
236
|
config.fullscan = CONF_DEFAULT_FULL_BODY_SCAN;
|
|
237
|
-
|
|
237
|
+
_logInfo('Set default fullscan ' + CONF_DEFAULT_FULL_BODY_SCAN);
|
|
238
238
|
}
|
|
239
239
|
conf = config;
|
|
240
240
|
associateIds();
|
package/modules/idxIdSystem.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module modules/idxIdSystem
|
|
5
5
|
* @requires module:modules/userId
|
|
6
6
|
*/
|
|
7
|
-
import
|
|
7
|
+
import { isStr, isPlainObject, logError } from '../src/utils.js';
|
|
8
8
|
import { submodule } from '../src/hook.js';
|
|
9
9
|
import { getStorageManager } from '../src/storageManager.js';
|
|
10
10
|
|
|
@@ -34,7 +34,7 @@ export const idxIdSubmodule = {
|
|
|
34
34
|
* @return { Object | string | undefined }
|
|
35
35
|
*/
|
|
36
36
|
decode(value) {
|
|
37
|
-
const idxVal = value ?
|
|
37
|
+
const idxVal = value ? isStr(value) ? value : isPlainObject(value) ? value.id : undefined : undefined;
|
|
38
38
|
return idxVal ? {
|
|
39
39
|
'idx': idxVal
|
|
40
40
|
} : undefined;
|
|
@@ -52,7 +52,7 @@ export const idxIdSubmodule = {
|
|
|
52
52
|
const idxObj = JSON.parse(idxString);
|
|
53
53
|
return idxObj && idxObj.idx ? { id: idxObj.idx } : undefined;
|
|
54
54
|
} catch (error) {
|
|
55
|
-
|
|
55
|
+
logError(error);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
return undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { deepAccess, deepSetValue, generateUUID } from '../src/utils.js';
|
|
1
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
2
|
-
import * as utils from '../src/utils.js';
|
|
3
3
|
import { config } from '../src/config.js';
|
|
4
4
|
import {ajax} from '../src/ajax.js';
|
|
5
5
|
import { createEidsArray } from './userId/eids.js';
|
|
@@ -43,14 +43,14 @@ const createOpenRtbRequest = (validBidRequests, bidderRequest) => {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
// Set Schain in request
|
|
46
|
-
let schain =
|
|
46
|
+
let schain = deepAccess(validBidRequests, '0.schain');
|
|
47
47
|
if (schain) request.source.ext = { schain: schain };
|
|
48
48
|
|
|
49
49
|
// Set eids
|
|
50
|
-
let bidUserId =
|
|
50
|
+
let bidUserId = deepAccess(validBidRequests, '0.userId');
|
|
51
51
|
let eids = createEidsArray(bidUserId);
|
|
52
52
|
if (eids.length) {
|
|
53
|
-
|
|
53
|
+
deepSetValue(request, 'user.ext.eids', eids);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
// Set device/user/site
|
|
@@ -71,23 +71,23 @@ const createOpenRtbRequest = (validBidRequests, bidderRequest) => {
|
|
|
71
71
|
let gdprApplies = 0;
|
|
72
72
|
if (bidderRequest.gdprConsent) {
|
|
73
73
|
if (typeof bidderRequest.gdprConsent.gdprApplies === 'boolean') gdprApplies = bidderRequest.gdprConsent.gdprApplies ? 1 : 0;
|
|
74
|
-
|
|
74
|
+
deepSetValue(request, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
|
|
75
75
|
}
|
|
76
|
-
|
|
76
|
+
deepSetValue(request, 'regs.ext.gdpr', gdprApplies);
|
|
77
77
|
|
|
78
78
|
if (bidderRequest.uspConsent) {
|
|
79
|
-
|
|
79
|
+
deepSetValue(request, 'regs.ext.us_privacy', bidderRequest.uspConsent);
|
|
80
80
|
this.syncStore.uspConsent = bidderRequest.uspConsent;
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
if (GETCONFIG('coppa') == true)
|
|
83
|
+
if (GETCONFIG('coppa') == true) deepSetValue(request, 'regs.coppa', 1);
|
|
84
84
|
|
|
85
85
|
if (bidderRequest.uspConsent) {
|
|
86
|
-
|
|
86
|
+
deepSetValue(request, 'regs.ext.us_privacy', bidderRequest.uspConsent);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// Set buyer uid
|
|
90
|
-
|
|
90
|
+
deepSetValue(request, 'user.buyeruid', generateUUID());
|
|
91
91
|
|
|
92
92
|
// Create imps with bids
|
|
93
93
|
validBidRequests.forEach((bid) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { deepSetValue, logError, _each, getBidRequest, isNumber, isArray, deepAccess, isFn, isPlainObject, logWarn, getBidIdParameter, getUniqueIdentifierStr, isEmpty, isInteger } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import { config } from '../src/config.js';
|
|
4
4
|
import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
|
|
@@ -62,7 +62,7 @@ export const spec = {
|
|
|
62
62
|
if (bidRequests[0].userId) {
|
|
63
63
|
const eids = createEidsArray(bidRequests[0].userId);
|
|
64
64
|
if (eids.length) {
|
|
65
|
-
|
|
65
|
+
deepSetValue(requestParameters, 'user.ext.eids', eids);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -72,7 +72,7 @@ export const spec = {
|
|
|
72
72
|
);
|
|
73
73
|
|
|
74
74
|
if (requestObj.errors && requestObj.errors.length > 0) {
|
|
75
|
-
|
|
75
|
+
logError('ID WARNING 0x01');
|
|
76
76
|
}
|
|
77
77
|
requestObj.requests.forEach(request => request.bidderRequest = bidderRequest);
|
|
78
78
|
return requestObj.requests;
|
|
@@ -86,13 +86,13 @@ export const spec = {
|
|
|
86
86
|
*/
|
|
87
87
|
interpretResponse: function (serverResponse, {bidderRequest}) {
|
|
88
88
|
const bids = [];
|
|
89
|
-
|
|
89
|
+
_each(serverResponse.body.bid, function (bidObject) {
|
|
90
90
|
if (!bidObject.price || bidObject.price === null ||
|
|
91
91
|
bidObject.hasOwnProperty('errorCode') ||
|
|
92
92
|
(!bidObject.adm && !bidObject.native)) {
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
|
-
const bidRequest =
|
|
95
|
+
const bidRequest = getBidRequest(bidObject.id, [bidderRequest]);
|
|
96
96
|
const bid = {};
|
|
97
97
|
|
|
98
98
|
if (bidObject.native) {
|
|
@@ -132,7 +132,7 @@ export const spec = {
|
|
|
132
132
|
|
|
133
133
|
// Deal ID. Composite ads can have multiple line items and the ID of the first
|
|
134
134
|
// dealID line item will be used.
|
|
135
|
-
if (
|
|
135
|
+
if (isNumber(bidObject.lid) && bidObject.buying_type && bidObject.buying_type !== 'rtb') {
|
|
136
136
|
bid.dealId = bidObject.lid;
|
|
137
137
|
} else if (Array.isArray(bidObject.lid) &&
|
|
138
138
|
Array.isArray(bidObject.buying_type) &&
|
|
@@ -181,7 +181,7 @@ export const spec = {
|
|
|
181
181
|
const syncs = [];
|
|
182
182
|
serverResponses.forEach(response => {
|
|
183
183
|
response.body.bid.forEach(bidObject => {
|
|
184
|
-
if (
|
|
184
|
+
if (isArray(bidObject.sync)) {
|
|
185
185
|
bidObject.sync.forEach(syncElement => {
|
|
186
186
|
if (syncs.indexOf(syncElement) === -1) {
|
|
187
187
|
syncs.push(syncElement);
|
|
@@ -197,15 +197,15 @@ export const spec = {
|
|
|
197
197
|
};
|
|
198
198
|
|
|
199
199
|
function isInstreamVideo(bid) {
|
|
200
|
-
const mediaTypes = Object.keys(
|
|
201
|
-
const videoMediaType =
|
|
202
|
-
const context =
|
|
200
|
+
const mediaTypes = Object.keys(deepAccess(bid, 'mediaTypes', {}));
|
|
201
|
+
const videoMediaType = deepAccess(bid, 'mediaTypes.video');
|
|
202
|
+
const context = deepAccess(bid, 'mediaTypes.video.context');
|
|
203
203
|
return bid.mediaType === 'video' || (mediaTypes.length === 1 && videoMediaType && context !== 'outstream');
|
|
204
204
|
}
|
|
205
205
|
|
|
206
206
|
function isOutstreamVideo(bid) {
|
|
207
|
-
const videoMediaType =
|
|
208
|
-
const context =
|
|
207
|
+
const videoMediaType = deepAccess(bid, 'mediaTypes.video');
|
|
208
|
+
const context = deepAccess(bid, 'mediaTypes.video.context');
|
|
209
209
|
return videoMediaType && context === 'outstream';
|
|
210
210
|
}
|
|
211
211
|
|
|
@@ -225,7 +225,7 @@ function getVideoTargetingParams(bid) {
|
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
function getBidFloor(bid) {
|
|
228
|
-
if (!
|
|
228
|
+
if (!isFn(bid.getFloor)) {
|
|
229
229
|
return null;
|
|
230
230
|
}
|
|
231
231
|
const floor = bid.getFloor({
|
|
@@ -233,7 +233,7 @@ function getBidFloor(bid) {
|
|
|
233
233
|
mediaType: '*',
|
|
234
234
|
size: '*'
|
|
235
235
|
});
|
|
236
|
-
if (
|
|
236
|
+
if (isPlainObject(floor) && !isNaN(floor.floor) && floor.currency === 'USD') {
|
|
237
237
|
return floor.floor;
|
|
238
238
|
}
|
|
239
239
|
return null;
|
|
@@ -259,31 +259,31 @@ function createRenderer(bidRequest) {
|
|
|
259
259
|
id: bidRequest.adUnitCode,
|
|
260
260
|
url: RENDERER_URL,
|
|
261
261
|
loaded: false,
|
|
262
|
-
config:
|
|
262
|
+
config: deepAccess(bidRequest, 'renderer.options'),
|
|
263
263
|
adUnitCode: bidRequest.adUnitCode
|
|
264
264
|
});
|
|
265
265
|
try {
|
|
266
266
|
renderer.setRender(outstreamRender);
|
|
267
267
|
} catch (err) {
|
|
268
|
-
|
|
268
|
+
logWarn('Prebid Error calling setRender on renderer', err);
|
|
269
269
|
}
|
|
270
270
|
return renderer;
|
|
271
271
|
}
|
|
272
272
|
|
|
273
273
|
function getNormalizedBidRequest(bid) {
|
|
274
|
-
let adUnitId =
|
|
275
|
-
let placementId =
|
|
274
|
+
let adUnitId = getBidIdParameter('adUnitCode', bid) || null;
|
|
275
|
+
let placementId = getBidIdParameter('placementId', bid.params) || null;
|
|
276
276
|
let publisherId = null;
|
|
277
277
|
let placementKey = null;
|
|
278
278
|
|
|
279
279
|
if (placementId === null) {
|
|
280
|
-
publisherId =
|
|
281
|
-
placementKey =
|
|
280
|
+
publisherId = getBidIdParameter('publisherId', bid.params) || null;
|
|
281
|
+
placementKey = getBidIdParameter('placementKey', bid.params) || null;
|
|
282
282
|
}
|
|
283
|
-
const keyValues =
|
|
284
|
-
const singleSizeFilter =
|
|
285
|
-
const bidId =
|
|
286
|
-
const transactionId =
|
|
283
|
+
const keyValues = getBidIdParameter('keyValues', bid.params) || null;
|
|
284
|
+
const singleSizeFilter = getBidIdParameter('size', bid.params) || null;
|
|
285
|
+
const bidId = getBidIdParameter('bidId', bid);
|
|
286
|
+
const transactionId = getBidIdParameter('transactionId', bid);
|
|
287
287
|
const currency = config.getConfig('currency.adServerCurrency');
|
|
288
288
|
|
|
289
289
|
let normalizedBidRequest = {};
|
|
@@ -332,8 +332,8 @@ function getNormalizedBidRequest(bid) {
|
|
|
332
332
|
let bidFloor = getBidFloor(bid);
|
|
333
333
|
let bidFloorCur = null;
|
|
334
334
|
if (!bidFloor) {
|
|
335
|
-
bidFloor =
|
|
336
|
-
bidFloorCur =
|
|
335
|
+
bidFloor = getBidIdParameter('bidFloor', bid.params);
|
|
336
|
+
bidFloorCur = getBidIdParameter('bidFloorCur', bid.params);
|
|
337
337
|
}
|
|
338
338
|
if (bidFloor) {
|
|
339
339
|
normalizedBidRequest.bidFloor = bidFloor;
|
|
@@ -344,7 +344,7 @@ function getNormalizedBidRequest(bid) {
|
|
|
344
344
|
|
|
345
345
|
function getNormalizedNativeAd(rawNative) {
|
|
346
346
|
const native = {};
|
|
347
|
-
if (!rawNative || !
|
|
347
|
+
if (!rawNative || !isArray(rawNative.assets)) {
|
|
348
348
|
return null;
|
|
349
349
|
}
|
|
350
350
|
// Assets
|
|
@@ -475,7 +475,7 @@ export function ImproveDigitalAdServerJSClient(endPoint) {
|
|
|
475
475
|
|
|
476
476
|
let impressionObjects = [];
|
|
477
477
|
let impressionObject;
|
|
478
|
-
if (
|
|
478
|
+
if (isArray(requestObject)) {
|
|
479
479
|
for (let counter = 0; counter < requestObject.length; counter++) {
|
|
480
480
|
impressionObject = this.createImpressionObject(requestObject[counter]);
|
|
481
481
|
impressionObjects.push(impressionObject);
|
|
@@ -576,7 +576,7 @@ export function ImproveDigitalAdServerJSClient(endPoint) {
|
|
|
576
576
|
if (requestParameters.requestId) {
|
|
577
577
|
impressionBidRequestObject.id = requestParameters.requestId;
|
|
578
578
|
} else {
|
|
579
|
-
impressionBidRequestObject.id =
|
|
579
|
+
impressionBidRequestObject.id = getUniqueIdentifierStr();
|
|
580
580
|
}
|
|
581
581
|
if (requestParameters.domain) {
|
|
582
582
|
impressionBidRequestObject.domain = requestParameters.domain;
|
|
@@ -625,7 +625,7 @@ export function ImproveDigitalAdServerJSClient(endPoint) {
|
|
|
625
625
|
if (placementObject.id) {
|
|
626
626
|
impressionObject.id = placementObject.id;
|
|
627
627
|
} else {
|
|
628
|
-
impressionObject.id =
|
|
628
|
+
impressionObject.id = getUniqueIdentifierStr();
|
|
629
629
|
}
|
|
630
630
|
if (placementObject.adTypes) {
|
|
631
631
|
impressionObject.ad_types = placementObject.adTypes;
|
|
@@ -654,18 +654,18 @@ export function ImproveDigitalAdServerJSClient(endPoint) {
|
|
|
654
654
|
if (placementObject.transactionId) {
|
|
655
655
|
impressionObject.tid = placementObject.transactionId;
|
|
656
656
|
}
|
|
657
|
-
if (!
|
|
657
|
+
if (!isEmpty(placementObject.video)) {
|
|
658
658
|
const video = Object.assign({}, placementObject.video);
|
|
659
659
|
// skip must be 0 or 1
|
|
660
660
|
if (video.skip !== 1) {
|
|
661
661
|
delete video.skipmin;
|
|
662
662
|
delete video.skipafter;
|
|
663
663
|
if (video.skip !== 0) {
|
|
664
|
-
|
|
664
|
+
logWarn(`video.skip: invalid value '${video.skip}'. Expected 0 or 1`);
|
|
665
665
|
delete video.skip;
|
|
666
666
|
}
|
|
667
667
|
}
|
|
668
|
-
if (!
|
|
668
|
+
if (!isEmpty(video)) {
|
|
669
669
|
impressionObject.video = video;
|
|
670
670
|
}
|
|
671
671
|
}
|
|
@@ -687,11 +687,11 @@ export function ImproveDigitalAdServerJSClient(endPoint) {
|
|
|
687
687
|
|
|
688
688
|
// Set of desired creative sizes
|
|
689
689
|
// Input Format: array of pairs, i.e. [[300, 250], [250, 250]]
|
|
690
|
-
if (placementObject.format &&
|
|
690
|
+
if (placementObject.format && isArray(placementObject.format)) {
|
|
691
691
|
const format = placementObject.format
|
|
692
692
|
.filter(sizePair => sizePair.length === 2 &&
|
|
693
|
-
|
|
694
|
-
|
|
693
|
+
isInteger(sizePair[0]) &&
|
|
694
|
+
isInteger(sizePair[1]) &&
|
|
695
695
|
sizePair[0] >= 0 &&
|
|
696
696
|
sizePair[1] >= 0)
|
|
697
697
|
.map(sizePair => {
|
package/modules/imuIdSystem.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @requires module:modules/userId
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import
|
|
8
|
+
import { timestamp, logError } from '../src/utils.js';
|
|
9
9
|
import { ajax } from '../src/ajax.js'
|
|
10
10
|
import { submodule } from '../src/hook.js';
|
|
11
11
|
import { getStorageManager } from '../src/storageManager.js';
|
|
@@ -20,7 +20,7 @@ const cookiesMaxAge = 97200000000; // 37 months ((365 * 3 + 30) * 24 * 60 * 60 *
|
|
|
20
20
|
|
|
21
21
|
export function setImDataInLocalStorage(value) {
|
|
22
22
|
storage.setDataInLocalStorage(storageKey, value);
|
|
23
|
-
storage.setDataInLocalStorage(`${storageKey}_mt`, new Date(
|
|
23
|
+
storage.setDataInLocalStorage(`${storageKey}_mt`, new Date(timestamp()).toUTCString());
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export function removeImDataFromLocalStorage() {
|
|
@@ -32,7 +32,7 @@ function setImDataInCookie(value) {
|
|
|
32
32
|
storage.setCookie(
|
|
33
33
|
cookieKey,
|
|
34
34
|
value,
|
|
35
|
-
new Date(
|
|
35
|
+
new Date(timestamp() + cookiesMaxAge).toUTCString(),
|
|
36
36
|
'none'
|
|
37
37
|
);
|
|
38
38
|
}
|
|
@@ -73,7 +73,7 @@ export function getApiCallback(callback) {
|
|
|
73
73
|
responseObj = JSON.parse(response);
|
|
74
74
|
apiSuccessProcess(responseObj);
|
|
75
75
|
} catch (error) {
|
|
76
|
-
|
|
76
|
+
logError('User ID - imuid submodule: ' + error);
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
if (callback && responseObj.uid) {
|
|
@@ -81,7 +81,7 @@ export function getApiCallback(callback) {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
error: error => {
|
|
84
|
-
|
|
84
|
+
logError('User ID - imuid submodule was unable to get data from api: ' + error);
|
|
85
85
|
if (callback) {
|
|
86
86
|
callback();
|
|
87
87
|
}
|
|
@@ -128,7 +128,7 @@ export const imuIdSubmodule = {
|
|
|
128
128
|
getId(config) {
|
|
129
129
|
const configParams = (config && config.params) || {};
|
|
130
130
|
if (!configParams || typeof configParams.cid !== 'number') {
|
|
131
|
-
|
|
131
|
+
logError('User ID - imuid submodule requires a valid cid to be defined');
|
|
132
132
|
return undefined;
|
|
133
133
|
}
|
|
134
134
|
let apiUrl = getApiUrl(configParams.cid, configParams.url);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { logError } from '../src/utils.js';
|
|
2
2
|
import { config } from '../src/config.js';
|
|
3
3
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
4
4
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
@@ -83,7 +83,7 @@ export const spec = {
|
|
|
83
83
|
bidResponses.push(bidResponse);
|
|
84
84
|
}
|
|
85
85
|
} catch (error) {
|
|
86
|
-
|
|
86
|
+
logError('Error while parsing inmar response', error);
|
|
87
87
|
}
|
|
88
88
|
return bidResponses;
|
|
89
89
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { parseSizesInput, timestamp } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
3
|
|
|
4
4
|
const BIDDER_CODE = 'innity';
|
|
@@ -11,13 +11,13 @@ export const spec = {
|
|
|
11
11
|
},
|
|
12
12
|
buildRequests: function(validBidRequests, bidderRequest) {
|
|
13
13
|
return validBidRequests.map(bidRequest => {
|
|
14
|
-
let parseSized =
|
|
14
|
+
let parseSized = parseSizesInput(bidRequest.sizes);
|
|
15
15
|
let arrSize = parseSized[0].split('x');
|
|
16
16
|
return {
|
|
17
17
|
method: 'GET',
|
|
18
18
|
url: ENDPOINT,
|
|
19
19
|
data: {
|
|
20
|
-
cb:
|
|
20
|
+
cb: timestamp(),
|
|
21
21
|
ver: 2,
|
|
22
22
|
hb: 1,
|
|
23
23
|
output: 'js',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createTrackPixelHtml } from '../src/utils.js';
|
|
2
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
3
3
|
|
|
4
4
|
const BIDDER_CODE = 'inskin';
|
|
@@ -55,6 +55,18 @@ export const spec = {
|
|
|
55
55
|
parallel: true
|
|
56
56
|
}, validBidRequests[0].params);
|
|
57
57
|
|
|
58
|
+
if (data.publisherId) {
|
|
59
|
+
data.rtb = {
|
|
60
|
+
schain: {
|
|
61
|
+
ext: {
|
|
62
|
+
sid: String(data.publisherId)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
delete data.publisherId;
|
|
68
|
+
}
|
|
69
|
+
|
|
58
70
|
data.keywords = data.keywords || [];
|
|
59
71
|
const restrictions = [];
|
|
60
72
|
|
|
@@ -277,7 +289,7 @@ function getSize(sizes) {
|
|
|
277
289
|
}
|
|
278
290
|
|
|
279
291
|
function retrieveAd(bidId, decision) {
|
|
280
|
-
return "<script>window.top.postMessage({from: 'ism-bid', bidId: '" + bidId + "'}, '*');\x3c/script>" +
|
|
292
|
+
return "<script>window.top.postMessage({from: 'ism-bid', bidId: '" + bidId + "'}, '*');\x3c/script>" + createTrackPixelHtml(decision.impressionUrl);
|
|
281
293
|
}
|
|
282
294
|
|
|
283
295
|
function checkConsent(P, d) {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# Overview
|
|
2
2
|
|
|
3
|
-
Module Name:
|
|
3
|
+
Module Name: Inskin Bid Adapter
|
|
4
4
|
|
|
5
5
|
Module Type: Bid Adapter
|
|
6
6
|
|
|
7
|
-
Maintainer:
|
|
7
|
+
Maintainer: tech@inskinmedia.com
|
|
8
8
|
|
|
9
9
|
# Description
|
|
10
10
|
|
|
11
|
-
Connects to
|
|
11
|
+
Connects to Inskin Media for receiving bids from configured demand sources.
|
|
12
12
|
|
|
13
13
|
# Test Parameters
|
|
14
14
|
```javascript
|
|
@@ -21,7 +21,8 @@ Connects to InSkin Media for receiving bids from configured demand sources.
|
|
|
21
21
|
bidder: 'inskin',
|
|
22
22
|
params: {
|
|
23
23
|
networkId: '9874',
|
|
24
|
-
siteId: '983808'
|
|
24
|
+
siteId: '983808',
|
|
25
|
+
publisherId: '123456'
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
]
|