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 { logWarn, isArray, inIframe, isNumber, isStr, deepClone, deepSetValue, logError, deepAccess, isBoolean } from '../src/utils.js';
|
|
2
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
|
|
4
4
|
import {config} from '../src/config.js';
|
|
@@ -190,22 +190,22 @@ function _checkParamDataType(key, value, datatype) {
|
|
|
190
190
|
var functionToExecute;
|
|
191
191
|
switch (datatype) {
|
|
192
192
|
case DATA_TYPES.BOOLEAN:
|
|
193
|
-
functionToExecute =
|
|
193
|
+
functionToExecute = isBoolean;
|
|
194
194
|
break;
|
|
195
195
|
case DATA_TYPES.NUMBER:
|
|
196
|
-
functionToExecute =
|
|
196
|
+
functionToExecute = isNumber;
|
|
197
197
|
break;
|
|
198
198
|
case DATA_TYPES.STRING:
|
|
199
|
-
functionToExecute =
|
|
199
|
+
functionToExecute = isStr;
|
|
200
200
|
break;
|
|
201
201
|
case DATA_TYPES.ARRAY:
|
|
202
|
-
functionToExecute =
|
|
202
|
+
functionToExecute = isArray;
|
|
203
203
|
break;
|
|
204
204
|
}
|
|
205
205
|
if (functionToExecute(value)) {
|
|
206
206
|
return value;
|
|
207
207
|
}
|
|
208
|
-
|
|
208
|
+
logWarn(LOG_WARN_PREFIX + errMsg);
|
|
209
209
|
return UNDEFINED;
|
|
210
210
|
}
|
|
211
211
|
|
|
@@ -216,7 +216,7 @@ function _parseNativeResponse(bid, newBid) {
|
|
|
216
216
|
try {
|
|
217
217
|
adm = JSON.parse(bid.adm.replace(/\\/g, ''));
|
|
218
218
|
} catch (ex) {
|
|
219
|
-
//
|
|
219
|
+
// logWarn(LOG_WARN_PREFIX + 'Error: Cannot parse native reponse for ad response: ' + newBid.adm);
|
|
220
220
|
return;
|
|
221
221
|
}
|
|
222
222
|
if (adm && adm.native && adm.native.assets && adm.native.assets.length > 0) {
|
|
@@ -274,13 +274,13 @@ function _createBannerRequest(bid) {
|
|
|
274
274
|
var sizes = bid.mediaTypes.banner.sizes;
|
|
275
275
|
var format = [];
|
|
276
276
|
var bannerObj;
|
|
277
|
-
if (sizes !== UNDEFINED &&
|
|
277
|
+
if (sizes !== UNDEFINED && isArray(sizes)) {
|
|
278
278
|
bannerObj = {};
|
|
279
279
|
if (!bid.params.width && !bid.params.height) {
|
|
280
280
|
if (sizes.length === 0) {
|
|
281
281
|
// i.e. since bid.params does not have width or height, and length of sizes is 0, need to ignore this banner imp
|
|
282
282
|
bannerObj = UNDEFINED;
|
|
283
|
-
|
|
283
|
+
logWarn(LOG_WARN_PREFIX + 'Error: mediaTypes.banner.size missing for adunit: ' + bid.params.adUnit + '. Ignoring the banner impression in the adunit.');
|
|
284
284
|
return bannerObj;
|
|
285
285
|
} else {
|
|
286
286
|
bannerObj.w = parseInt(sizes[0][0], 10);
|
|
@@ -303,9 +303,9 @@ function _createBannerRequest(bid) {
|
|
|
303
303
|
}
|
|
304
304
|
}
|
|
305
305
|
bannerObj.pos = 0;
|
|
306
|
-
bannerObj.topframe =
|
|
306
|
+
bannerObj.topframe = inIframe() ? 0 : 1;
|
|
307
307
|
} else {
|
|
308
|
-
|
|
308
|
+
logWarn(LOG_WARN_PREFIX + 'Error: mediaTypes.banner.size missing for adunit: ' + bid.params.adUnit + '. Ignoring the banner impression in the adunit.');
|
|
309
309
|
bannerObj = UNDEFINED;
|
|
310
310
|
}
|
|
311
311
|
return bannerObj;
|
|
@@ -323,10 +323,10 @@ function _createVideoRequest(bid) {
|
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
// read playersize and assign to h and w.
|
|
326
|
-
if (
|
|
326
|
+
if (isArray(bid.mediaTypes.video.playerSize[0])) {
|
|
327
327
|
videoObj.w = parseInt(bid.mediaTypes.video.playerSize[0][0], 10);
|
|
328
328
|
videoObj.h = parseInt(bid.mediaTypes.video.playerSize[0][1], 10);
|
|
329
|
-
} else if (
|
|
329
|
+
} else if (isNumber(bid.mediaTypes.video.playerSize[0])) {
|
|
330
330
|
videoObj.w = parseInt(bid.mediaTypes.video.playerSize[0], 10);
|
|
331
331
|
videoObj.h = parseInt(bid.mediaTypes.video.playerSize[1], 10);
|
|
332
332
|
}
|
|
@@ -337,7 +337,7 @@ function _createVideoRequest(bid) {
|
|
|
337
337
|
}
|
|
338
338
|
} else {
|
|
339
339
|
videoObj = UNDEFINED;
|
|
340
|
-
|
|
340
|
+
logWarn(LOG_WARN_PREFIX + 'Error: Video config params missing for adunit: ' + bid.params.adUnit + ' with mediaType set as video. Ignoring video impression in the adunit.');
|
|
341
341
|
}
|
|
342
342
|
return videoObj;
|
|
343
343
|
}
|
|
@@ -355,7 +355,7 @@ function _checkMediaType(adm, newBid) {
|
|
|
355
355
|
newBid.mediaType = NATIVE;
|
|
356
356
|
}
|
|
357
357
|
} catch (e) {
|
|
358
|
-
|
|
358
|
+
logWarn(LOG_WARN_PREFIX + 'Error: Cannot parse native reponse for ad response: ' + adm);
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
361
|
}
|
|
@@ -401,9 +401,9 @@ function _createImpressionObject(bid, conf) {
|
|
|
401
401
|
pos: 0,
|
|
402
402
|
w: bid.params.width,
|
|
403
403
|
h: bid.params.height,
|
|
404
|
-
topframe:
|
|
404
|
+
topframe: inIframe() ? 0 : 1
|
|
405
405
|
};
|
|
406
|
-
if (
|
|
406
|
+
if (isArray(sizes) && sizes.length > 1) {
|
|
407
407
|
sizes = sizes.splice(1, sizes.length - 1);
|
|
408
408
|
sizes.forEach(size => {
|
|
409
409
|
format.push({
|
|
@@ -428,19 +428,19 @@ export const spec = {
|
|
|
428
428
|
isBidRequestValid: function (bid) {
|
|
429
429
|
if (bid && bid.params) {
|
|
430
430
|
if (!bid.params.zoneId) {
|
|
431
|
-
|
|
431
|
+
logWarn(LOG_WARN_PREFIX + 'Error: missing zoneId');
|
|
432
432
|
return false;
|
|
433
433
|
}
|
|
434
434
|
if (!bid.params.publisherId) {
|
|
435
|
-
|
|
435
|
+
logWarn(LOG_WARN_PREFIX + 'Error: missing publisherId');
|
|
436
436
|
return false;
|
|
437
437
|
}
|
|
438
|
-
if (!
|
|
439
|
-
|
|
438
|
+
if (!isStr(bid.params.publisherId)) {
|
|
439
|
+
logWarn(LOG_WARN_PREFIX + 'Error: publisherId is mandatory and cannot be numeric');
|
|
440
440
|
return false;
|
|
441
441
|
}
|
|
442
|
-
if (!
|
|
443
|
-
|
|
442
|
+
if (!isStr(bid.params.zoneId)) {
|
|
443
|
+
logWarn(LOG_WARN_PREFIX + 'Error: zoneId is mandatory and cannot be numeric');
|
|
444
444
|
return false;
|
|
445
445
|
}
|
|
446
446
|
return true;
|
|
@@ -458,7 +458,7 @@ export const spec = {
|
|
|
458
458
|
let bidCurrency = '';
|
|
459
459
|
let bid;
|
|
460
460
|
validBidRequests.forEach(originalBid => {
|
|
461
|
-
bid =
|
|
461
|
+
bid = deepClone(originalBid);
|
|
462
462
|
_parseAdSlot(bid);
|
|
463
463
|
|
|
464
464
|
conf.zoneId = conf.zoneId || bid.params.zoneId;
|
|
@@ -468,7 +468,7 @@ export const spec = {
|
|
|
468
468
|
if (bidCurrency === '') {
|
|
469
469
|
bidCurrency = bid.params.currency || UNDEFINED;
|
|
470
470
|
} else if (bid.params.hasOwnProperty('currency') && bidCurrency !== bid.params.currency) {
|
|
471
|
-
|
|
471
|
+
logWarn(LOG_WARN_PREFIX + 'Currency specifier ignored. Only one currency permitted.');
|
|
472
472
|
}
|
|
473
473
|
bid.params.currency = bidCurrency;
|
|
474
474
|
|
|
@@ -502,28 +502,28 @@ export const spec = {
|
|
|
502
502
|
if (typeof config.getConfig('device') === 'object') {
|
|
503
503
|
payload.device = Object.assign(payload.device, config.getConfig('device'));
|
|
504
504
|
}
|
|
505
|
-
|
|
505
|
+
deepSetValue(payload, 'source.tid', conf.transactionId);
|
|
506
506
|
// test bids
|
|
507
507
|
if (window.location.href.indexOf('adtrueTest=true') !== -1) {
|
|
508
508
|
payload.test = 1;
|
|
509
509
|
}
|
|
510
510
|
// adding schain object
|
|
511
511
|
if (validBidRequests[0].schain) {
|
|
512
|
-
|
|
512
|
+
deepSetValue(payload, 'source.ext.schain', validBidRequests[0].schain);
|
|
513
513
|
}
|
|
514
514
|
// Attaching GDPR Consent Params
|
|
515
515
|
if (bidderRequest && bidderRequest.gdprConsent) {
|
|
516
|
-
|
|
517
|
-
|
|
516
|
+
deepSetValue(payload, 'user.ext.consent', bidderRequest.gdprConsent.consentString);
|
|
517
|
+
deepSetValue(payload, 'regs.ext.gdpr', (bidderRequest.gdprConsent.gdprApplies ? 1 : 0));
|
|
518
518
|
}
|
|
519
519
|
|
|
520
520
|
// CCPA
|
|
521
521
|
if (bidderRequest && bidderRequest.uspConsent) {
|
|
522
|
-
|
|
522
|
+
deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent);
|
|
523
523
|
}
|
|
524
524
|
// coppa compliance
|
|
525
525
|
if (config.getConfig('coppa') === true) {
|
|
526
|
-
|
|
526
|
+
deepSetValue(payload, 'regs.coppa', 1);
|
|
527
527
|
}
|
|
528
528
|
|
|
529
529
|
return {
|
|
@@ -539,12 +539,12 @@ export const spec = {
|
|
|
539
539
|
let parsedRequest = JSON.parse(bidderRequest.data);
|
|
540
540
|
let parsedReferrer = parsedRequest.site && parsedRequest.site.ref ? parsedRequest.site.ref : '';
|
|
541
541
|
try {
|
|
542
|
-
if (serverResponses.body && serverResponses.body.seatbid &&
|
|
542
|
+
if (serverResponses.body && serverResponses.body.seatbid && isArray(serverResponses.body.seatbid)) {
|
|
543
543
|
// Supporting multiple bid responses for same adSize
|
|
544
544
|
respCur = serverResponses.body.cur || respCur;
|
|
545
545
|
serverResponses.body.seatbid.forEach(seatbidder => {
|
|
546
546
|
seatbidder.bid &&
|
|
547
|
-
|
|
547
|
+
isArray(seatbidder.bid) &&
|
|
548
548
|
seatbidder.bid.forEach(bid => {
|
|
549
549
|
let newBid = {
|
|
550
550
|
requestId: bid.impid,
|
|
@@ -598,7 +598,7 @@ export const spec = {
|
|
|
598
598
|
});
|
|
599
599
|
}
|
|
600
600
|
} catch (error) {
|
|
601
|
-
|
|
601
|
+
logError(error);
|
|
602
602
|
}
|
|
603
603
|
return bidResponses;
|
|
604
604
|
},
|
|
@@ -607,7 +607,7 @@ export const spec = {
|
|
|
607
607
|
return [];
|
|
608
608
|
}
|
|
609
609
|
return responses.reduce((accum, rsp) => {
|
|
610
|
-
let cookieSyncs =
|
|
610
|
+
let cookieSyncs = deepAccess(rsp, 'body.ext.cookie_sync');
|
|
611
611
|
if (cookieSyncs) {
|
|
612
612
|
let cookieSyncObjects = cookieSyncs.map(cookieSync => {
|
|
613
613
|
return {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { deepAccess, getWindowTop, getWindowSelf, getAdUnitSizes } from '../src/utils.js';
|
|
1
2
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
2
3
|
import { config } from '../src/config.js';
|
|
3
4
|
import { BANNER, NATIVE } from '../src/mediaTypes.js'
|
|
4
|
-
import * as utils from '../src/utils.js';
|
|
5
5
|
|
|
6
6
|
export const BIDDER_CODE = 'aduptech';
|
|
7
7
|
export const ENDPOINT_URL_PUBLISHER_PLACEHOLDER = '{PUBLISHER}';
|
|
@@ -37,7 +37,7 @@ export const internal = {
|
|
|
37
37
|
* @returns {string}
|
|
38
38
|
*/
|
|
39
39
|
extractPageUrl: (bidderRequest) => {
|
|
40
|
-
if (bidderRequest &&
|
|
40
|
+
if (bidderRequest && deepAccess(bidderRequest, 'refererInfo.canonicalUrl')) {
|
|
41
41
|
return bidderRequest.refererInfo.canonicalUrl;
|
|
42
42
|
}
|
|
43
43
|
|
|
@@ -46,9 +46,9 @@ export const internal = {
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
try {
|
|
49
|
-
return
|
|
49
|
+
return getWindowTop().location.href;
|
|
50
50
|
} catch (e) {
|
|
51
|
-
return
|
|
51
|
+
return getWindowSelf().location.href;
|
|
52
52
|
}
|
|
53
53
|
},
|
|
54
54
|
|
|
@@ -59,14 +59,14 @@ export const internal = {
|
|
|
59
59
|
* @returns {string}
|
|
60
60
|
*/
|
|
61
61
|
extractReferrer: (bidderRequest) => {
|
|
62
|
-
if (bidderRequest &&
|
|
62
|
+
if (bidderRequest && deepAccess(bidderRequest, 'refererInfo.referer')) {
|
|
63
63
|
return bidderRequest.refererInfo.referer;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
try {
|
|
67
|
-
return
|
|
67
|
+
return getWindowTop().document.referrer;
|
|
68
68
|
} catch (e) {
|
|
69
|
-
return
|
|
69
|
+
return getWindowSelf().document.referrer;
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
|
|
@@ -77,7 +77,7 @@ export const internal = {
|
|
|
77
77
|
* @returns {null|Object.<string, *>}
|
|
78
78
|
*/
|
|
79
79
|
extractBannerConfig: (bidRequest) => {
|
|
80
|
-
const sizes =
|
|
80
|
+
const sizes = getAdUnitSizes(bidRequest);
|
|
81
81
|
if (Array.isArray(sizes) && sizes.length > 0) {
|
|
82
82
|
return { sizes: sizes };
|
|
83
83
|
}
|
|
@@ -92,7 +92,7 @@ export const internal = {
|
|
|
92
92
|
* @returns {null|Object.<string, *>}
|
|
93
93
|
*/
|
|
94
94
|
extractNativeConfig: (bidRequest) => {
|
|
95
|
-
if (bidRequest &&
|
|
95
|
+
if (bidRequest && deepAccess(bidRequest, 'mediaTypes.native')) {
|
|
96
96
|
return bidRequest.mediaTypes.native;
|
|
97
97
|
}
|
|
98
98
|
|
|
@@ -267,7 +267,7 @@ export const spec = {
|
|
|
267
267
|
const bidResponses = [];
|
|
268
268
|
|
|
269
269
|
// stop here on invalid or empty data
|
|
270
|
-
if (!response || !
|
|
270
|
+
if (!response || !deepAccess(response, 'body.bids') || response.body.bids.length === 0) {
|
|
271
271
|
return bidResponses;
|
|
272
272
|
}
|
|
273
273
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { isEmpty, deepAccess, isFn, parseSizesInput, generateUUID, parseUrl } from '../src/utils.js';
|
|
2
2
|
import { config } from '../src/config.js';
|
|
3
3
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
4
4
|
import { VIDEO, BANNER } from '../src/mediaTypes.js';
|
|
@@ -56,7 +56,7 @@ export const spec = {
|
|
|
56
56
|
|
|
57
57
|
interpretResponse(serverResponse, {bidRequest}) {
|
|
58
58
|
let response = serverResponse.body;
|
|
59
|
-
if (response !== null &&
|
|
59
|
+
if (response !== null && isEmpty(response) == false) {
|
|
60
60
|
if (isVideoBid(bidRequest)) {
|
|
61
61
|
let bidResponse = {
|
|
62
62
|
requestId: response.id,
|
|
@@ -103,20 +103,20 @@ export const spec = {
|
|
|
103
103
|
};
|
|
104
104
|
|
|
105
105
|
function isBannerBid(bid) {
|
|
106
|
-
return
|
|
106
|
+
return deepAccess(bid, 'mediaTypes.banner') || !isVideoBid(bid);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
function isVideoBid(bid) {
|
|
110
|
-
return
|
|
110
|
+
return deepAccess(bid, 'mediaTypes.video');
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
function getBannerBidFloor(bid) {
|
|
114
|
-
let floorInfo =
|
|
114
|
+
let floorInfo = isFn(bid.getFloor) ? bid.getFloor({ currency: 'USD', mediaType: 'banner', size: '*' }) : {};
|
|
115
115
|
return floorInfo.floor || getBannerBidParam(bid, 'bidfloor');
|
|
116
116
|
}
|
|
117
117
|
|
|
118
118
|
function getVideoBidFloor(bid) {
|
|
119
|
-
let floorInfo =
|
|
119
|
+
let floorInfo = isFn(bid.getFloor) ? bid.getFloor({ currency: 'USD', mediaType: 'video', size: '*' }) : {};
|
|
120
120
|
return floorInfo.floor || getVideoBidParam(bid, 'bidfloor');
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -129,11 +129,11 @@ function isBannerBidValid(bid) {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
function getVideoBidParam(bid, key) {
|
|
132
|
-
return
|
|
132
|
+
return deepAccess(bid, 'params.video.' + key) || deepAccess(bid, 'params.' + key);
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
function getBannerBidParam(bid, key) {
|
|
136
|
-
return
|
|
136
|
+
return deepAccess(bid, 'params.banner.' + key) || deepAccess(bid, 'params.' + key);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
function isMobile() {
|
|
@@ -184,7 +184,7 @@ function getFirstSize(sizes) {
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
function parseSizes(sizes) {
|
|
187
|
-
return
|
|
187
|
+
return parseSizesInput(sizes).map(size => {
|
|
188
188
|
let [ width, height ] = size.split('x');
|
|
189
189
|
return {
|
|
190
190
|
w: parseInt(width, 10) || undefined,
|
|
@@ -194,11 +194,11 @@ function parseSizes(sizes) {
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
function getVideoSizes(bid) {
|
|
197
|
-
return parseSizes(
|
|
197
|
+
return parseSizes(deepAccess(bid, 'mediaTypes.video.playerSize') || bid.sizes);
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
function getBannerSizes(bid) {
|
|
201
|
-
return parseSizes(
|
|
201
|
+
return parseSizes(deepAccess(bid, 'mediaTypes.banner.sizes') || bid.sizes);
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
function getTopWindowReferrer() {
|
|
@@ -290,7 +290,7 @@ function createVideoRequestData(bid, bidderRequest) {
|
|
|
290
290
|
'bidfloorcur': 'USD',
|
|
291
291
|
'secure': secure,
|
|
292
292
|
'video': Object.assign({
|
|
293
|
-
'id':
|
|
293
|
+
'id': generateUUID(),
|
|
294
294
|
'pos': 0,
|
|
295
295
|
'w': firstSize.w,
|
|
296
296
|
'h': firstSize.h,
|
|
@@ -311,7 +311,7 @@ function createVideoRequestData(bid, bidderRequest) {
|
|
|
311
311
|
|
|
312
312
|
function getTopWindowLocation(bidderRequest) {
|
|
313
313
|
let url = bidderRequest && bidderRequest.refererInfo && bidderRequest.refererInfo.referer;
|
|
314
|
-
return
|
|
314
|
+
return parseUrl(config.getConfig('pageUrl') || url, { decodeSearchAsString: true });
|
|
315
315
|
}
|
|
316
316
|
|
|
317
317
|
function createBannerRequestData(bid, bidderRequest) {
|
|
@@ -378,7 +378,7 @@ function createBannerRequestData(bid, bidderRequest) {
|
|
|
378
378
|
'bidfloorcur': 'USD',
|
|
379
379
|
'secure': secure,
|
|
380
380
|
'banner': {
|
|
381
|
-
'id':
|
|
381
|
+
'id': generateUUID(),
|
|
382
382
|
'pos': 0,
|
|
383
383
|
'w': size['w'],
|
|
384
384
|
'h': size['h']
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { parseSizesInput, uniques, buildUrl, logError } from '../src/utils.js';
|
|
1
2
|
import { ajax } from '../src/ajax.js';
|
|
2
3
|
import adapter from '../src/AnalyticsAdapter.js';
|
|
3
4
|
import adapterManager from '../src/adapterManager.js';
|
|
4
5
|
import CONSTANTS from '../src/constants.json';
|
|
5
|
-
import * as utils from '../src/utils.js';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Analytics adapter from adxcg.com
|
|
@@ -32,7 +32,7 @@ var adxcgAnalyticsAdapter = Object.assign(adapter(
|
|
|
32
32
|
case CONSTANTS.EVENTS.BID_ADJUSTMENT:
|
|
33
33
|
break;
|
|
34
34
|
case CONSTANTS.EVENTS.BID_TIMEOUT:
|
|
35
|
-
adxcgAnalyticsAdapter.context.events.bidTimeout = args.map(item => item.bidder).filter(
|
|
35
|
+
adxcgAnalyticsAdapter.context.events.bidTimeout = args.map(item => item.bidder).filter(uniques);
|
|
36
36
|
break;
|
|
37
37
|
case CONSTANTS.EVENTS.BIDDER_DONE:
|
|
38
38
|
break;
|
|
@@ -67,7 +67,7 @@ function mapBidRequested (bidRequests) {
|
|
|
67
67
|
adUnitCode: bid.adUnitCode,
|
|
68
68
|
bidId: bid.bidId,
|
|
69
69
|
start: bid.startTime,
|
|
70
|
-
sizes:
|
|
70
|
+
sizes: parseSizesInput(bid.sizes).toString(),
|
|
71
71
|
params: bid.params
|
|
72
72
|
};
|
|
73
73
|
}),
|
|
@@ -112,7 +112,7 @@ function mapBidWon (bidResponse) {
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
function send (data) {
|
|
115
|
-
let adxcgAnalyticsRequestUrl =
|
|
115
|
+
let adxcgAnalyticsRequestUrl = buildUrl({
|
|
116
116
|
protocol: 'https',
|
|
117
117
|
hostname: adxcgAnalyticsAdapter.context.host,
|
|
118
118
|
pathname: '/pbrx/v2',
|
|
@@ -143,7 +143,7 @@ adxcgAnalyticsAdapter.context = {};
|
|
|
143
143
|
adxcgAnalyticsAdapter.originEnableAnalytics = adxcgAnalyticsAdapter.enableAnalytics;
|
|
144
144
|
adxcgAnalyticsAdapter.enableAnalytics = function (config) {
|
|
145
145
|
if (!config.options.publisherId) {
|
|
146
|
-
|
|
146
|
+
logError('PublisherId option is not defined. Analytics won\'t work');
|
|
147
147
|
return;
|
|
148
148
|
}
|
|
149
149
|
|