prebid.js 8.4.0 → 8.6.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/dist/33acrossBidAdapter.js +1 -1
- package/dist/33acrossIdSystem.js +1 -1
- package/dist/a1MediaRtdProvider.js +1 -0
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adfBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/adkernelAdnBidAdapter.js +1 -1
- package/dist/adkernelBidAdapter.js +1 -1
- package/dist/admixerIdSystem.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adqueryBidAdapter.js +1 -1
- package/dist/adqueryIdSystem.js +1 -1
- package/dist/adrelevantisBidAdapter.js +1 -1
- package/dist/adsinteractiveBidAdapter.js +1 -1
- package/dist/adtelligentIdSystem.js +1 -1
- package/dist/adtrgtmeBidAdapter.js +1 -1
- package/dist/adxcgBidAdapter.js +1 -1
- package/dist/adyoulikeBidAdapter.js +1 -1
- package/dist/ajaBidAdapter.js +1 -1
- package/dist/amxBidAdapter.js +1 -1
- package/dist/amxIdSystem.js +1 -1
- package/dist/appierAnalyticsAdapter.js +1 -1
- package/dist/appnexusBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/beachfrontBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/britepoolIdSystem.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consentManagementGpp.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/conversantAnalyticsAdapter.js +1 -1
- package/dist/conversantBidAdapter.js +1 -1
- package/dist/craftBidAdapter.js +1 -1
- package/dist/criteoBidAdapter.js +1 -1
- package/dist/criteoIdSystem.js +1 -1
- package/dist/cwireBidAdapter.js +1 -1
- package/dist/czechAdIdSystem.js +1 -1
- package/dist/dacIdSystem.js +1 -1
- package/dist/deepintentDpesIdSystem.js +1 -1
- package/dist/dependencies.json +6 -0
- package/dist/dmdIdSystem.js +1 -1
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/euidIdSystem.js +1 -1
- package/dist/fabrickIdSystem.js +1 -1
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/ftrackIdSystem.js +1 -1
- package/dist/geolocationRtdProvider.js +1 -0
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/gravitoIdSystem.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/greenbidsRtdProvider.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/growthCodeAnalyticsAdapter.js +1 -1
- package/dist/growthCodeIdSystem.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/hadronIdSystem.js +1 -1
- package/dist/hypelabBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/identityLinkIdSystem.js +1 -1
- package/dist/idxIdSystem.js +1 -1
- package/dist/imdsBidAdapter.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/imuIdSystem.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/intentIqIdSystem.js +1 -1
- package/dist/invibesBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justIdSystem.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/kinessoIdSystem.js +1 -1
- package/dist/konduitAnalyticsAdapter.js +1 -1
- package/dist/kueezBidAdapter.js +1 -1
- package/dist/kueezRtbBidAdapter.js +1 -1
- package/dist/kulturemediaBidAdapter.js +1 -1
- package/dist/lassoBidAdapter.js +1 -1
- package/dist/lifestreetBidAdapter.js +1 -1
- package/dist/liveIntentIdSystem.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/lotamePanoramaIdSystem.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/mediasquareBidAdapter.js +1 -1
- package/dist/merkleIdSystem.js +1 -1
- package/dist/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/mspa.js +1 -1
- package/dist/mwOpenLinkIdSystem.js +1 -1
- package/dist/naveggIdSystem.js +1 -1
- package/dist/netIdSystem.js +1 -1
- package/dist/newspassidBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +186 -181
- package/dist/novatiqIdSystem.js +1 -1
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/oneKeyIdSystem.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/ozoneBidAdapter.js +1 -1
- package/dist/pairIdSystem.js +1 -1
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- package/dist/pubCircleBidAdapter.js +1 -0
- package/dist/publinkIdSystem.js +1 -1
- package/dist/pubmaticBidAdapter.js +1 -1
- package/dist/pubwiseAnalyticsAdapter.js +1 -1
- package/dist/pxyzBidAdapter.js +1 -1
- package/dist/quantcastBidAdapter.js +1 -1
- package/dist/quantcastIdSystem.js +1 -1
- package/dist/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/relevadRtdProvider.js +1 -1
- package/dist/retailspotBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharedIdSystem.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.js +1 -1
- package/dist/silverpushBidAdapter.js +1 -1
- package/dist/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smartxBidAdapter.js +1 -1
- package/dist/smilewantedBidAdapter.js +1 -1
- package/dist/sonobiBidAdapter.js +1 -1
- package/dist/sovrnAnalyticsAdapter.js +1 -1
- package/dist/sovrnBidAdapter.js +1 -1
- package/dist/ssmasBidAdapter.js +1 -0
- package/dist/sspBCBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/tapadIdSystem.js +1 -1
- package/dist/tappxBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.js +1 -1
- package/dist/tncIdSystem.js +1 -1
- package/dist/topicsFpdModule.js +1 -1
- package/dist/trionBidAdapter.js +1 -1
- package/dist/tripleliftBidAdapter.js +1 -1
- package/dist/ttdBidAdapter.js +1 -1
- package/dist/ucfunnelAnalyticsAdapter.js +1 -1
- package/dist/uid2IdSystem.js +1 -1
- package/dist/underdogmediaBidAdapter.js +1 -1
- package/dist/undertoneBidAdapter.js +1 -1
- package/dist/unifiedIdSystem.js +1 -1
- package/dist/userId.js +1 -1
- package/dist/utiqSystem.js +1 -1
- package/dist/verizonMediaIdSystem.js +1 -1
- package/dist/viantOrtbBidAdapter.js +1 -0
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/videojsVideoProvider.js +1 -1
- package/dist/visxBidAdapter.js +1 -1
- package/dist/vrtcalBidAdapter.js +1 -1
- package/dist/vuukleBidAdapter.js +1 -1
- package/dist/widespaceBidAdapter.js +1 -1
- package/dist/winrBidAdapter.js +1 -1
- package/dist/yahoosspBidAdapter.js +1 -1
- package/dist/yieldmoBidAdapter.js +1 -1
- package/dist/yieldoneAnalyticsAdapter.js +1 -1
- package/dist/zeotapIdPlusIdSystem.js +1 -1
- package/integrationExamples/gpt/adUnitFloors.html +0 -1
- package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +1 -1
- package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +1 -1
- package/integrationExamples/videoModule/jwplayer/bidsBackHandlerOverride.html +137 -0
- package/integrationExamples/videoModule/jwplayer/eventListeners.html +1 -1
- package/integrationExamples/videoModule/jwplayer/eventsUI.html +1 -1
- package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +1 -1
- package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +1 -1
- package/integrationExamples/videoModule/jwplayer/playlist.html +1 -1
- package/integrationExamples/videoModule/videojs/bidsBackHandlerOverride.html +164 -0
- package/libraries/mspa/activityControls.js +51 -32
- package/modules/.submodules.json +1 -0
- package/modules/33acrossIdSystem.js +9 -0
- package/modules/a1MediaRtdProvider.js +92 -0
- package/modules/a1MediaRtdProvider.md +46 -0
- package/modules/adfBidAdapter.js +4 -1
- package/modules/adgenerationBidAdapter.js +3 -3
- package/modules/adkernelAdnBidAdapter.js +1 -1
- package/modules/adkernelBidAdapter.js +10 -3
- package/modules/admixerIdSystem.js +6 -0
- package/modules/adnuntiusBidAdapter.js +5 -13
- package/modules/adqueryIdSystem.js +6 -0
- package/modules/adsinteractiveBidAdapter.js +2 -2
- package/modules/adtelligentIdSystem.js +6 -0
- package/modules/adyoulikeBidAdapter.js +6 -3
- package/modules/amxIdSystem.js +6 -0
- package/modules/appnexusBidAdapter.js +1 -1
- package/modules/beachfrontBidAdapter.js +32 -6
- package/modules/britepoolIdSystem.js +6 -0
- package/modules/connectIdSystem.js +6 -0
- package/modules/consentManagementGpp.js +10 -1
- package/modules/consumableBidAdapter.js +9 -1
- package/modules/criteoBidAdapter.js +18 -0
- package/modules/criteoIdSystem.js +6 -0
- package/modules/cwireBidAdapter.js +19 -0
- package/modules/czechAdIdSystem.js +6 -0
- package/modules/dacIdSystem.js +6 -0
- package/modules/deepintentDpesIdSystem.js +7 -2
- package/modules/dmdIdSystem.js +6 -0
- package/modules/euidIdSystem.js +9 -0
- package/modules/fabrickIdSystem.js +6 -0
- package/modules/ftrackIdSystem.js +16 -0
- package/modules/geolocationRtdProvider.js +65 -0
- package/modules/gravitoIdSystem.js +6 -0
- package/modules/greenbidsRtdProvider.js +1 -1
- package/modules/growthCodeAnalyticsAdapter.js +7 -2
- package/modules/growthCodeIdSystem.js +20 -1
- package/modules/hadronIdSystem.js +6 -0
- package/modules/id5IdSystem.js +34 -8
- package/modules/identityLinkIdSystem.js +6 -0
- package/modules/idxIdSystem.js +6 -0
- package/modules/imdsBidAdapter.js +38 -14
- package/modules/imuIdSystem.js +10 -0
- package/modules/intentIqIdSystem.js +6 -0
- package/modules/invibesBidAdapter.js +5 -5
- package/modules/ixBidAdapter.js +16 -0
- package/modules/justIdSystem.js +6 -0
- package/modules/kinessoIdSystem.js +7 -2
- package/modules/liveIntentIdSystem.js +53 -0
- package/modules/lotamePanoramaIdSystem.js +6 -0
- package/modules/merkleIdSystem.js +24 -0
- package/modules/mwOpenLinkIdSystem.js +6 -0
- package/modules/naveggIdSystem.js +6 -0
- package/modules/netIdSystem.js +6 -0
- package/modules/newspassid.md +76 -0
- package/modules/newspassidBidAdapter.js +44 -18
- package/modules/novatiqIdSystem.js +12 -0
- package/modules/oneKeyIdSystem.js +26 -0
- package/modules/ozoneBidAdapter.js +65 -18
- package/modules/ozoneBidAdapter.md +3 -1
- package/modules/pairIdSystem.js +6 -0
- package/modules/parrableIdSystem.js +38 -2
- package/modules/pubCircleBidAdapter.js +231 -0
- package/modules/pubCircleBidAdapter.md +79 -0
- package/modules/publinkIdSystem.js +7 -1
- package/modules/quantcastIdSystem.js +6 -0
- package/modules/relevadRtdProvider.js +6 -7
- package/modules/rubiconBidAdapter.js +9 -0
- package/modules/sharedIdSystem.js +6 -0
- package/modules/silverpushBidAdapter.js +2 -2
- package/modules/ssmasBidAdapter.js +126 -0
- package/modules/ssmasBidAdapter.md +35 -0
- package/modules/sspBCBidAdapter.js +36 -13
- package/modules/tapadIdSystem.js +6 -0
- package/modules/tappxBidAdapter.js +10 -1
- package/modules/tappxBidAdapter.md +17 -0
- package/modules/tncIdSystem.js +6 -0
- package/modules/topicsFpdModule.js +21 -48
- package/modules/tripleliftBidAdapter.js +5 -0
- package/modules/uid2IdSystem.js +14 -0
- package/modules/unifiedIdSystem.js +11 -0
- package/modules/userId/eids.js +6 -445
- package/modules/userId/index.js +36 -24
- package/modules/utiqSystem.js +9 -0
- package/modules/verizonMediaIdSystem.js +6 -0
- package/modules/viantOrtbBidAdapter.js +113 -0
- package/modules/viantOrtbBidAdapter.md +54 -0
- package/modules/vidazooBidAdapter.js +9 -2
- package/modules/videojsVideoProvider.js +9 -2
- package/modules/vrtcalBidAdapter.js +10 -6
- package/modules/zeotapIdPlusIdSystem.js +6 -0
- package/package.json +1 -1
- package/src/adapters/bidderFactory.js +15 -6
- package/src/adloader.js +2 -1
- package/test/spec/libraries/mspa/activityControls_spec.js +145 -212
- package/test/spec/modules/a1MediaRtdProvider_spec.js +105 -0
- package/test/spec/modules/adfBidAdapter_spec.js +47 -0
- package/test/spec/modules/adgenerationBidAdapter_spec.js +6 -6
- package/test/spec/modules/adkernelAdnBidAdapter_spec.js +1 -2
- package/test/spec/modules/adkernelBidAdapter_spec.js +7 -2
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +116 -64
- package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -24
- package/test/spec/modules/appnexusBidAdapter_spec.js +12 -1
- package/test/spec/modules/beachfrontBidAdapter_spec.js +35 -2
- package/test/spec/modules/consentManagementGpp_spec.js +16 -0
- package/test/spec/modules/consumableBidAdapter_spec.js +15 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +31 -3
- package/test/spec/modules/cwireBidAdapter_spec.js +47 -0
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +5 -5
- package/test/spec/modules/geolocationRtdProvider_spec.js +119 -0
- package/test/spec/modules/greenbidsRtdProvider_spec.js +1 -1
- package/test/spec/modules/id5IdSystem_spec.js +18 -0
- package/test/spec/modules/imdsBidAdapter_spec.js +98 -17
- package/test/spec/modules/invibesBidAdapter_spec.js +123 -32
- package/test/spec/modules/ixBidAdapter_spec.js +23 -5
- package/test/spec/modules/medianetBidAdapter_spec.js +117 -0
- package/test/spec/modules/newspassidBidAdapter_spec.js +6 -0
- package/test/spec/modules/outbrainBidAdapter_spec.js +3 -5
- package/test/spec/modules/ozoneBidAdapter_spec.js +27 -1
- package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -20
- package/test/spec/modules/priceFloors_spec.js +14 -0
- package/test/spec/modules/pubCircleBidAdapter_spec.js +399 -0
- package/test/spec/modules/pubmaticBidAdapter_spec.js +6 -373
- package/test/spec/modules/rubiconBidAdapter_spec.js +220 -9
- package/test/spec/modules/smaatoBidAdapter_spec.js +4 -6
- package/test/spec/modules/ssmasBidAdapter_spec.js +244 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +18 -19
- package/test/spec/modules/topicsFpdModule_spec.js +343 -365
- package/test/spec/modules/tripleliftBidAdapter_spec.js +40 -0
- package/test/spec/modules/userId_spec.js +116 -7
- package/test/spec/modules/viantOrtbBidAdapter_spec.js +432 -0
- package/test/spec/modules/vrtcalBidAdapter_spec.js +12 -4
- package/test/spec/modules/xeBidAdapter_spec.js +366 -368
- package/test/spec/modules/yahoosspBidAdapter_spec.js +5 -18
- package/test/spec/unit/core/bidderFactory_spec.js +61 -14
- package/integrationExamples/gpt/pbjs_video_adUnit.html +0 -109
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
import {deepAccess, deepSetValue, getAdUnitSizes, isFn, isPlainObject, logWarn} from '../src/utils.js';
|
|
3
|
+
import {deepAccess, deepSetValue, getAdUnitSizes, isFn, isPlainObject, logWarn, mergeDeep} from '../src/utils.js';
|
|
4
4
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
5
5
|
import {BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
6
6
|
import {includes} from '../src/polyfill.js';
|
|
@@ -8,7 +8,8 @@ import {config} from '../src/config.js';
|
|
|
8
8
|
|
|
9
9
|
const BID_SCHEME = 'https://';
|
|
10
10
|
const BID_DOMAIN = 'technoratimedia.com';
|
|
11
|
-
const
|
|
11
|
+
const USER_SYNC_IFRAME_URL = 'https://ad-cdn.technoratimedia.com/html/usersync.html';
|
|
12
|
+
const USER_SYNC_PIXEL_URL = 'https://sync.technoratimedia.com/services';
|
|
12
13
|
const VIDEO_PARAMS = [ 'minduration', 'maxduration', 'startdelay', 'placement', 'linearity', 'mimes', 'protocols', 'api' ];
|
|
13
14
|
const BLOCKED_AD_SIZES = [
|
|
14
15
|
'1x1',
|
|
@@ -38,11 +39,11 @@ export const spec = {
|
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
const refererInfo = bidderRequest.refererInfo;
|
|
41
|
-
|
|
42
|
+
// start with some defaults, overridden by anything set in ortb2, if provided.
|
|
43
|
+
const openRtbBidRequest = mergeDeep({
|
|
42
44
|
id: bidderRequest.bidderRequestId,
|
|
43
45
|
site: {
|
|
44
|
-
|
|
45
|
-
domain: refererInfo.domain || location.hostname,
|
|
46
|
+
domain: refererInfo.domain,
|
|
46
47
|
page: refererInfo.page,
|
|
47
48
|
ref: refererInfo.ref
|
|
48
49
|
},
|
|
@@ -50,7 +51,7 @@ export const spec = {
|
|
|
50
51
|
ua: navigator.userAgent
|
|
51
52
|
},
|
|
52
53
|
imp: []
|
|
53
|
-
};
|
|
54
|
+
}, bidderRequest.ortb2 || {});
|
|
54
55
|
|
|
55
56
|
const tmax = bidderRequest.timeout;
|
|
56
57
|
if (tmax) {
|
|
@@ -101,9 +102,17 @@ export const spec = {
|
|
|
101
102
|
}
|
|
102
103
|
});
|
|
103
104
|
|
|
104
|
-
//
|
|
105
|
-
if (
|
|
106
|
-
deepSetValue(openRtbBidRequest, 'regs.
|
|
105
|
+
// Move us_privacy from regs.ext to regs if there isn't already a us_privacy in regs
|
|
106
|
+
if (openRtbBidRequest.regs?.ext?.us_privacy && !openRtbBidRequest.regs?.us_privacy) {
|
|
107
|
+
deepSetValue(openRtbBidRequest, 'regs.us_privacy', openRtbBidRequest.regs.ext.us_privacy);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Remove regs.ext.us_privacy
|
|
111
|
+
if (openRtbBidRequest.regs?.ext?.us_privacy) {
|
|
112
|
+
delete openRtbBidRequest.regs.ext.us_privacy;
|
|
113
|
+
if (Object.keys(openRtbBidRequest.regs.ext).length < 1) {
|
|
114
|
+
delete openRtbBidRequest.regs.ext;
|
|
115
|
+
}
|
|
107
116
|
}
|
|
108
117
|
|
|
109
118
|
// User ID
|
|
@@ -117,7 +126,7 @@ export const spec = {
|
|
|
117
126
|
if (openRtbBidRequest.imp.length && seatId) {
|
|
118
127
|
return {
|
|
119
128
|
method: 'POST',
|
|
120
|
-
url: `${BID_SCHEME}${seatId}.${BID_DOMAIN}/openrtb/bids/${seatId}?src
|
|
129
|
+
url: `${BID_SCHEME}${seatId}.${BID_DOMAIN}/openrtb/bids/${seatId}?src=pbjs%2F$prebid.version$`,
|
|
121
130
|
data: openRtbBidRequest,
|
|
122
131
|
options: {
|
|
123
132
|
contentType: 'application/json',
|
|
@@ -294,16 +303,31 @@ export const spec = {
|
|
|
294
303
|
}
|
|
295
304
|
return bids;
|
|
296
305
|
},
|
|
297
|
-
getUserSyncs: function
|
|
306
|
+
getUserSyncs: function(syncOptions, serverResponses, gdprConsent, uspConsent, gppConsent) {
|
|
298
307
|
const syncs = [];
|
|
308
|
+
const queryParams = ['src=pbjs%2F$prebid.version$'];
|
|
309
|
+
if (gdprConsent) {
|
|
310
|
+
queryParams.push(`gdpr=${Number(gdprConsent.gdprApplies && 1)}&consent=${encodeURIComponent(gdprConsent.consentString || '')}`);
|
|
311
|
+
}
|
|
312
|
+
if (uspConsent) {
|
|
313
|
+
queryParams.push('us_privacy=' + encodeURIComponent(uspConsent));
|
|
314
|
+
}
|
|
315
|
+
if (gppConsent) {
|
|
316
|
+
queryParams.push('gpp=' + encodeURIComponent(gppConsent.gppString || '') + '&gppsid=' + encodeURIComponent((gppConsent.applicableSections || []).join(',')));
|
|
317
|
+
}
|
|
318
|
+
|
|
299
319
|
if (syncOptions.iframeEnabled) {
|
|
300
320
|
syncs.push({
|
|
301
321
|
type: 'iframe',
|
|
302
|
-
url: `${
|
|
322
|
+
url: `${USER_SYNC_IFRAME_URL}?${queryParams.join('&')}`
|
|
323
|
+
});
|
|
324
|
+
} else if (syncOptions.pixelEnabled) {
|
|
325
|
+
syncs.push({
|
|
326
|
+
type: 'pixel',
|
|
327
|
+
url: `${USER_SYNC_PIXEL_URL}?srv=cs&${queryParams.join('&')}`
|
|
303
328
|
});
|
|
304
|
-
} else {
|
|
305
|
-
logWarn('IMDS: Please enable iframe based user sync.');
|
|
306
329
|
}
|
|
330
|
+
|
|
307
331
|
return syncs;
|
|
308
332
|
}
|
|
309
333
|
};
|
package/modules/imuIdSystem.js
CHANGED
|
@@ -160,6 +160,16 @@ export const imuIdSubmodule = {
|
|
|
160
160
|
imppid: localData.ppid
|
|
161
161
|
}
|
|
162
162
|
};
|
|
163
|
+
},
|
|
164
|
+
eids: {
|
|
165
|
+
'imppid': {
|
|
166
|
+
source: 'ppid.intimatemerger.com',
|
|
167
|
+
atype: 1
|
|
168
|
+
},
|
|
169
|
+
'imuid': {
|
|
170
|
+
source: 'intimatemerger.com',
|
|
171
|
+
atype: 1
|
|
172
|
+
},
|
|
163
173
|
}
|
|
164
174
|
};
|
|
165
175
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {logInfo} from '../src/utils.js';
|
|
2
2
|
import {registerBidder} from '../src/adapters/bidderFactory.js';
|
|
3
3
|
import {getStorageManager} from '../src/storageManager.js';
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ const CONSTANTS = {
|
|
|
9
9
|
SYNC_ENDPOINT: 'https://k.r66net.com/GetUserSync',
|
|
10
10
|
TIME_TO_LIVE: 300,
|
|
11
11
|
DEFAULT_CURRENCY: 'EUR',
|
|
12
|
-
PREBID_VERSION:
|
|
12
|
+
PREBID_VERSION: 10,
|
|
13
13
|
METHOD: 'GET',
|
|
14
14
|
INVIBES_VENDOR_ID: 436,
|
|
15
15
|
USERID_PROVIDERS: ['pubcid', 'pubProvidedId', 'uid2', 'zeotapIdPlus', 'id5id'],
|
|
@@ -116,7 +116,7 @@ function buildRequest(bidRequests, bidderRequest) {
|
|
|
116
116
|
bidParamsJson.userId = userIdModel;
|
|
117
117
|
}
|
|
118
118
|
let data = {
|
|
119
|
-
location: getDocumentLocation(
|
|
119
|
+
location: getDocumentLocation(bidderRequest),
|
|
120
120
|
videoAdHtmlId: generateRandomId(),
|
|
121
121
|
showFallback: currentQueryStringParams['advs'] === '0',
|
|
122
122
|
ivbsCampIdsLocal: readFromLocalStorage('IvbsCampIdsLocal'),
|
|
@@ -371,8 +371,8 @@ function generateRandomId() {
|
|
|
371
371
|
return (Math.round(Math.random() * 1e12)).toString(36).substring(0, 10);
|
|
372
372
|
}
|
|
373
373
|
|
|
374
|
-
function getDocumentLocation(
|
|
375
|
-
return
|
|
374
|
+
function getDocumentLocation(bidderRequest) {
|
|
375
|
+
return bidderRequest.refererInfo.page.substring(0, 300);
|
|
376
376
|
}
|
|
377
377
|
|
|
378
378
|
function getUserIds(bidUserId) {
|
package/modules/ixBidAdapter.js
CHANGED
|
@@ -736,6 +736,7 @@ function buildRequest(validBidRequests, bidderRequest, impressions, version) {
|
|
|
736
736
|
|
|
737
737
|
const isLastAdUnit = adUnitIndex === impKeys.length - 1;
|
|
738
738
|
|
|
739
|
+
r = addDeviceInfo(r);
|
|
739
740
|
r = deduplicateImpExtFields(r);
|
|
740
741
|
r = removeSiteIDs(r);
|
|
741
742
|
|
|
@@ -2056,4 +2057,19 @@ function getFormatCount(imp) {
|
|
|
2056
2057
|
return formatCount;
|
|
2057
2058
|
}
|
|
2058
2059
|
|
|
2060
|
+
/**
|
|
2061
|
+
* Adds device.w / device.h info
|
|
2062
|
+
* @param {object} r
|
|
2063
|
+
* @returns object
|
|
2064
|
+
*/
|
|
2065
|
+
export function addDeviceInfo(r) {
|
|
2066
|
+
if (r.device == undefined) {
|
|
2067
|
+
r.device = {};
|
|
2068
|
+
}
|
|
2069
|
+
r.device.h = window.screen.height;
|
|
2070
|
+
r.device.w = window.screen.width;
|
|
2071
|
+
|
|
2072
|
+
return r;
|
|
2073
|
+
}
|
|
2074
|
+
|
|
2059
2075
|
registerBidder(spec);
|
package/modules/justIdSystem.js
CHANGED
|
@@ -233,8 +233,13 @@ export const kinessoIdSubmodule = {
|
|
|
233
233
|
const payloadString = JSON.stringify(kinessoIdPayload);
|
|
234
234
|
ajax(kinessoSyncUrl(accountId, consentData), syncId(knnsoId), payloadString, {method: 'POST', withCredentials: true});
|
|
235
235
|
return {'id': knnsoId};
|
|
236
|
-
}
|
|
237
|
-
|
|
236
|
+
},
|
|
237
|
+
eids: {
|
|
238
|
+
'kpuid': {
|
|
239
|
+
source: 'kpuid.com',
|
|
240
|
+
atype: 3
|
|
241
|
+
},
|
|
242
|
+
},
|
|
238
243
|
};
|
|
239
244
|
|
|
240
245
|
// Register submodule for userId
|
|
@@ -242,6 +242,59 @@ export const liveIntentIdSubmodule = {
|
|
|
242
242
|
}
|
|
243
243
|
|
|
244
244
|
return { callback: result };
|
|
245
|
+
},
|
|
246
|
+
eids: {
|
|
247
|
+
'lipb': {
|
|
248
|
+
getValue: function(data) {
|
|
249
|
+
return data.lipbid;
|
|
250
|
+
},
|
|
251
|
+
source: 'liveintent.com',
|
|
252
|
+
atype: 3,
|
|
253
|
+
getEidExt: function(data) {
|
|
254
|
+
if (Array.isArray(data.segments) && data.segments.length) {
|
|
255
|
+
return {
|
|
256
|
+
segments: data.segments
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
'bidswitch': {
|
|
262
|
+
source: 'bidswitch.net',
|
|
263
|
+
atype: 3,
|
|
264
|
+
getValue: function(data) {
|
|
265
|
+
return data.id;
|
|
266
|
+
},
|
|
267
|
+
getUidExt: function(data) {
|
|
268
|
+
if (data.ext) {
|
|
269
|
+
return data.ext;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
'medianet': {
|
|
274
|
+
source: 'media.net',
|
|
275
|
+
atype: 3,
|
|
276
|
+
getValue: function(data) {
|
|
277
|
+
return data.id;
|
|
278
|
+
},
|
|
279
|
+
getUidExt: function(data) {
|
|
280
|
+
if (data.ext) {
|
|
281
|
+
return data.ext;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
'magnite': {
|
|
286
|
+
source: 'rubiconproject.com',
|
|
287
|
+
atype: 3,
|
|
288
|
+
getValue: function(data) {
|
|
289
|
+
return data.id;
|
|
290
|
+
},
|
|
291
|
+
getUidExt: function(data) {
|
|
292
|
+
if (data.ext) {
|
|
293
|
+
return data.ext;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
|
|
245
298
|
}
|
|
246
299
|
};
|
|
247
300
|
|
|
@@ -368,6 +368,12 @@ export const lotamePanoramaIdSubmodule = {
|
|
|
368
368
|
|
|
369
369
|
return { callback: resolveIdFunction };
|
|
370
370
|
},
|
|
371
|
+
eids: {
|
|
372
|
+
lotamePanoramaId: {
|
|
373
|
+
source: 'crwdcntrl.net',
|
|
374
|
+
atype: 1,
|
|
375
|
+
},
|
|
376
|
+
},
|
|
371
377
|
};
|
|
372
378
|
|
|
373
379
|
submodule('userId', lotamePanoramaIdSubmodule);
|
|
@@ -196,6 +196,30 @@ export const merkleIdSubmodule = {
|
|
|
196
196
|
|
|
197
197
|
logInfo('User ID - merkleId not refreshed');
|
|
198
198
|
return {id: storedId};
|
|
199
|
+
},
|
|
200
|
+
eids: {
|
|
201
|
+
'merkleId': {
|
|
202
|
+
atype: 3,
|
|
203
|
+
getSource: function(data) {
|
|
204
|
+
if (data?.ext?.ssp) {
|
|
205
|
+
return `${data.ext.ssp}.merkleinc.com`
|
|
206
|
+
}
|
|
207
|
+
return 'merkleinc.com'
|
|
208
|
+
},
|
|
209
|
+
getValue: function(data) {
|
|
210
|
+
return data.id;
|
|
211
|
+
},
|
|
212
|
+
getUidExt: function(data) {
|
|
213
|
+
if (data.keyID) {
|
|
214
|
+
return {
|
|
215
|
+
keyID: data.keyID
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (data.ext) {
|
|
219
|
+
return data.ext;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
},
|
|
199
223
|
}
|
|
200
224
|
|
|
201
225
|
};
|
|
@@ -137,6 +137,12 @@ export const mwOpenLinkIdSubModule = {
|
|
|
137
137
|
const submoduleConfigParams = (submoduleConfig && submoduleConfig.params) || {};
|
|
138
138
|
if (!isValidConfig(submoduleConfigParams)) return undefined;
|
|
139
139
|
return setID(submoduleConfigParams);
|
|
140
|
+
},
|
|
141
|
+
eids: {
|
|
142
|
+
'mwOpenLinkId': {
|
|
143
|
+
source: 'mediawallahscript.com',
|
|
144
|
+
atype: 1
|
|
145
|
+
},
|
|
140
146
|
}
|
|
141
147
|
};
|
|
142
148
|
|
package/modules/netIdSystem.js
CHANGED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
Module Name: NewspassId Bidder Adapter
|
|
3
|
+
Module Type: Bidder Adapter
|
|
4
|
+
Maintainer: techsupport@newspassid.com
|
|
5
|
+
layout: bidder
|
|
6
|
+
title: Newspass ID
|
|
7
|
+
description: LMC Newspass ID Prebid JS Bidder Adapter
|
|
8
|
+
biddercode: newspassid
|
|
9
|
+
gdpr_supported: false
|
|
10
|
+
gvl_id: none
|
|
11
|
+
usp_supported: true
|
|
12
|
+
coppa_supported: false
|
|
13
|
+
schain_supported: true
|
|
14
|
+
dchain_supported: false
|
|
15
|
+
userIds: criteo, id5Id, tdid, identityLink, liveIntentId, parrableId, pubCommonId, lotamePanoramaId, sharedId, fabrickId
|
|
16
|
+
media_types: banner
|
|
17
|
+
safeframes_ok: true
|
|
18
|
+
deals_supported: true
|
|
19
|
+
floors_supported: false
|
|
20
|
+
fpd_supported: false
|
|
21
|
+
pbjs: true
|
|
22
|
+
pbs: false
|
|
23
|
+
prebid_member: false
|
|
24
|
+
multiformat_supported: will-bid-on-any
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
### Description
|
|
28
|
+
|
|
29
|
+
LMC Newspass ID Prebid JS Bidder Adapter that connects to the NewspassId demand source(s).
|
|
30
|
+
|
|
31
|
+
The Newspass bid adapter supports Banner mediaTypes ONLY.
|
|
32
|
+
This is intended for USA audiences only, and does not support GDPR
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Bid Params
|
|
36
|
+
|
|
37
|
+
{: .table .table-bordered .table-striped }
|
|
38
|
+
|
|
39
|
+
| Name | Scope | Description | Example | Type |
|
|
40
|
+
|-----------|----------|---------------------------|------------|----------|
|
|
41
|
+
| `siteId` | required | The site ID. | `"NPID0000001"` | `string` |
|
|
42
|
+
| `publisherId` | required | The publisher ID. | `"4204204201"` | `string` |
|
|
43
|
+
| `placementId` | required | The placement ID. | `"0420420421"` | `string` |
|
|
44
|
+
| `customData` | optional | publisher key-values used for targeting | `[{"settings":{},"targeting":{"key1": "value1", "key2": "value2"}}], ` | `array` |
|
|
45
|
+
|
|
46
|
+
### Test Parameters
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
A test ad unit that will consistently return test creatives:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
//Banner adUnit
|
|
54
|
+
|
|
55
|
+
adUnits = [{
|
|
56
|
+
code: 'id-of-your-banner-div',
|
|
57
|
+
mediaTypes: {
|
|
58
|
+
banner: {
|
|
59
|
+
sizes: [[300, 250], [300,600]]
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
bids: [{
|
|
63
|
+
bidder: 'newspassid',
|
|
64
|
+
params: {
|
|
65
|
+
publisherId: 'NEWSPASS0001', /* an ID to identify the publisher account - required */
|
|
66
|
+
siteId: '4204204201', /* An ID used to identify a site within a publisher account - required */
|
|
67
|
+
placementId: '8000000015', /* an ID used to identify the piece of inventory - required - for appnexus test use 13144370. */
|
|
68
|
+
customData: [{"settings": {}, "targeting": {"key": "value", "key2": ["value1", "value2"]}}],/* optional array with 'targeting' placeholder for passing publisher specific key-values for targeting. */
|
|
69
|
+
}
|
|
70
|
+
}]
|
|
71
|
+
}];
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Note:
|
|
75
|
+
|
|
76
|
+
Please contact us at techsupport@newspassid.com for any assistance testing your implementation before going live into production.
|
|
@@ -1,15 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import {
|
|
2
|
+
logInfo,
|
|
3
|
+
logError,
|
|
4
|
+
deepAccess,
|
|
5
|
+
logWarn,
|
|
6
|
+
deepSetValue,
|
|
7
|
+
isArray,
|
|
8
|
+
contains,
|
|
9
|
+
parseUrl,
|
|
10
|
+
generateUUID
|
|
11
|
+
} from '../src/utils.js';
|
|
12
|
+
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
13
|
+
import { BANNER, NATIVE } from '../src/mediaTypes.js';
|
|
4
14
|
import {config} from '../src/config.js';
|
|
5
15
|
import {getPriceBucketString} from '../src/cpmBucketManager.js';
|
|
6
16
|
import {getRefererInfo} from '../src/refererDetection.js';
|
|
7
|
-
|
|
8
17
|
const BIDDER_CODE = 'newspassid';
|
|
9
18
|
const ORIGIN = 'https://bidder.newspassid.com' // applies only to auction & cookie
|
|
10
19
|
const AUCTIONURI = '/openrtb2/auction';
|
|
11
20
|
const NEWSPASSCOOKIESYNC = '/static/load-cookie.html';
|
|
12
|
-
const NEWSPASSVERSION = '1.
|
|
21
|
+
const NEWSPASSVERSION = '1.1.4';
|
|
13
22
|
export const spec = {
|
|
14
23
|
version: NEWSPASSVERSION,
|
|
15
24
|
code: BIDDER_CODE,
|
|
@@ -155,7 +164,7 @@ export const spec = {
|
|
|
155
164
|
let placementId = placementIdOverrideFromGetParam || this.getPlacementId(npBidRequest); // prefer to use a valid override param, else the bidRequest placement Id
|
|
156
165
|
obj.id = npBidRequest.bidId; // this causes an error if we change it to something else, even if you update the bidRequest object: "WARNING: Bidder newspass made bid for unknown request ID: mb7953.859498327448. Ignoring."
|
|
157
166
|
obj.tagid = placementId;
|
|
158
|
-
let parsed = parseUrl(getRefererInfo().page);
|
|
167
|
+
let parsed = parseUrl(this.getRefererInfo().page);
|
|
159
168
|
obj.secure = parsed.protocol === 'https' ? 1 : 0;
|
|
160
169
|
let arrBannerSizes = [];
|
|
161
170
|
if (!npBidRequest.hasOwnProperty('mediaTypes')) {
|
|
@@ -189,7 +198,6 @@ export const spec = {
|
|
|
189
198
|
deepSetValue(obj, 'ext.prebid', {'storedrequest': {'id': placementId}});
|
|
190
199
|
obj.ext['newspassid'] = {};
|
|
191
200
|
obj.ext['newspassid'].adUnitCode = npBidRequest.adUnitCode; // eg. 'mpu'
|
|
192
|
-
obj.ext['newspassid'].transactionId = npBidRequest.transactionId; // this is the transactionId PER adUnit, common across bidders for this unit
|
|
193
201
|
if (npBidRequest.params.hasOwnProperty('customData')) {
|
|
194
202
|
obj.ext['newspassid'].customData = npBidRequest.params.customData;
|
|
195
203
|
}
|
|
@@ -216,6 +224,10 @@ export const spec = {
|
|
|
216
224
|
if (!schain && deepAccess(npBidRequest, 'schain')) {
|
|
217
225
|
schain = npBidRequest.schain;
|
|
218
226
|
}
|
|
227
|
+
let gpid = deepAccess(npBidRequest, 'ortb2Imp.ext.gpid');
|
|
228
|
+
if (gpid) {
|
|
229
|
+
deepSetValue(obj, 'ext.gpid', gpid);
|
|
230
|
+
}
|
|
219
231
|
return obj;
|
|
220
232
|
});
|
|
221
233
|
let extObj = {};
|
|
@@ -240,7 +252,7 @@ export const spec = {
|
|
|
240
252
|
let userExtEids = deepAccess(validBidRequests, '0.userIdAsEids', []); // generate the UserIDs in the correct format for UserId module
|
|
241
253
|
npRequest.site = {
|
|
242
254
|
'publisher': {'id': htmlParams.publisherId},
|
|
243
|
-
'page': getRefererInfo().page,
|
|
255
|
+
'page': this.getRefererInfo().page,
|
|
244
256
|
'id': htmlParams.siteId
|
|
245
257
|
};
|
|
246
258
|
npRequest.test = config.getConfig('debug') ? 1 : 0;
|
|
@@ -259,12 +271,9 @@ export const spec = {
|
|
|
259
271
|
}
|
|
260
272
|
if (singleRequest) {
|
|
261
273
|
logInfo('buildRequests starting to generate response for a single request');
|
|
262
|
-
//
|
|
263
|
-
npRequest.id = bidderRequest.auctionId; // Unique ID of the bid request, provided by the exchange.
|
|
264
|
-
npRequest.auctionId = bidderRequest.auctionId; // not sure if this should be here?
|
|
274
|
+
npRequest.id = generateUUID(); // Unique ID of the bid request, provided by the exchange. (REQUIRED)
|
|
265
275
|
npRequest.imp = tosendtags;
|
|
266
276
|
npRequest.ext = extObj;
|
|
267
|
-
deepSetValue(npRequest, 'source.tid', bidderRequest.auctionId);// RTB 2.5 : tid is Transaction ID that must be common across all participants in this bid request (e.g., potentially multiple exchanges).
|
|
268
277
|
deepSetValue(npRequest, 'user.ext.eids', userExtEids);
|
|
269
278
|
var ret = {
|
|
270
279
|
method: 'POST',
|
|
@@ -280,12 +289,9 @@ export const spec = {
|
|
|
280
289
|
let arrRet = tosendtags.map(imp => {
|
|
281
290
|
logInfo('buildRequests starting to generate non-single response, working on imp : ', imp);
|
|
282
291
|
let npRequestSingle = Object.assign({}, npRequest);
|
|
283
|
-
|
|
284
|
-
npRequestSingle.id = imp.ext['newspassid'].transactionId; // Unique ID of the bid request, provided by the exchange.
|
|
285
|
-
npRequestSingle.auctionId = imp.ext['newspassid'].transactionId; // not sure if this should be here?
|
|
292
|
+
npRequestSingle.id = generateUUID();
|
|
286
293
|
npRequestSingle.imp = [imp];
|
|
287
294
|
npRequestSingle.ext = extObj;
|
|
288
|
-
deepSetValue(npRequestSingle, 'source.tid', bidderRequest.auctionId);// RTB 2.5 : tid is Transaction ID that must be common across all participants in this bid request (e.g., potentially multiple exchanges).
|
|
289
295
|
deepSetValue(npRequestSingle, 'user.ext.eids', userExtEids);
|
|
290
296
|
logInfo('buildRequests RequestSingle (for non-single) = ', npRequestSingle);
|
|
291
297
|
return {
|
|
@@ -305,6 +311,7 @@ export const spec = {
|
|
|
305
311
|
logInfo(`interpretResponse time: ${startTime}. buildRequests done -> interpretResponse start was ${startTime - this.propertyBag.buildRequestsEnd}ms`);
|
|
306
312
|
logInfo(`serverResponse, request`, JSON.parse(JSON.stringify(serverResponse)), JSON.parse(JSON.stringify(request)));
|
|
307
313
|
serverResponse = serverResponse.body || {};
|
|
314
|
+
let aucId = serverResponse.id; // this will be correct for single requests and non-single
|
|
308
315
|
if (!serverResponse.hasOwnProperty('seatbid')) {
|
|
309
316
|
return [];
|
|
310
317
|
}
|
|
@@ -351,7 +358,7 @@ export const spec = {
|
|
|
351
358
|
logInfo(`newspassid.enhancedAdserverTargeting is set to false, no per-bid keys will be sent to adserver.`);
|
|
352
359
|
}
|
|
353
360
|
let {seat: winningSeat, bid: winningBid} = this.getWinnerForRequestBid(thisBid.bidId, serverResponse.seatbid);
|
|
354
|
-
adserverTargeting['np_auc_id'] = String(
|
|
361
|
+
adserverTargeting['np_auc_id'] = String(aucId);
|
|
355
362
|
adserverTargeting['np_winner'] = String(winningSeat);
|
|
356
363
|
adserverTargeting['np_bid'] = 'true';
|
|
357
364
|
if (enhancedAdserverTargeting) {
|
|
@@ -490,10 +497,29 @@ export const spec = {
|
|
|
490
497
|
return null;
|
|
491
498
|
},
|
|
492
499
|
getGetParametersAsObject() {
|
|
493
|
-
let parsed = parseUrl(getRefererInfo().
|
|
500
|
+
let parsed = parseUrl(this.getRefererInfo().location); // was getRefererInfo().page but this is not backwards compatible
|
|
494
501
|
logInfo('getGetParametersAsObject found:', parsed.search);
|
|
495
502
|
return parsed.search;
|
|
496
503
|
},
|
|
504
|
+
getRefererInfo() {
|
|
505
|
+
if (getRefererInfo().hasOwnProperty('location')) {
|
|
506
|
+
logInfo('FOUND location on getRefererInfo OK (prebid >= 7); will use getRefererInfo for location & page');
|
|
507
|
+
return getRefererInfo();
|
|
508
|
+
} else {
|
|
509
|
+
logInfo('DID NOT FIND location on getRefererInfo (prebid < 7); will use legacy code that ALWAYS worked reliably to get location & page ;-)');
|
|
510
|
+
try {
|
|
511
|
+
return {
|
|
512
|
+
page: top.location.href,
|
|
513
|
+
location: top.location.href
|
|
514
|
+
};
|
|
515
|
+
} catch (e) {
|
|
516
|
+
return {
|
|
517
|
+
page: window.location.href,
|
|
518
|
+
location: window.location.href
|
|
519
|
+
};
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
},
|
|
497
523
|
blockTheRequest() {
|
|
498
524
|
let npRequest = config.getConfig('newspassid.np_request');
|
|
499
525
|
if (typeof npRequest == 'boolean' && !npRequest) {
|
|
@@ -259,6 +259,18 @@ export const novatiqIdSubmodule = {
|
|
|
259
259
|
srcId = configParams.sourceid;
|
|
260
260
|
}
|
|
261
261
|
return srcId;
|
|
262
|
+
},
|
|
263
|
+
eids: {
|
|
264
|
+
'novatiq': {
|
|
265
|
+
getValue: function(data) {
|
|
266
|
+
if (data.snowflake.id === undefined) {
|
|
267
|
+
return data.snowflake;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
return data.snowflake.id;
|
|
271
|
+
},
|
|
272
|
+
source: 'novatiq.com',
|
|
273
|
+
},
|
|
262
274
|
}
|
|
263
275
|
};
|
|
264
276
|
submodule('userId', novatiqIdSubmodule);
|
|
@@ -72,6 +72,32 @@ export const oneKeyIdSubmodule = {
|
|
|
72
72
|
return {
|
|
73
73
|
callback: getIdsAndPreferences
|
|
74
74
|
};
|
|
75
|
+
},
|
|
76
|
+
eids: {
|
|
77
|
+
'oneKeyData': {
|
|
78
|
+
getValue: function(data) {
|
|
79
|
+
if (data && Array.isArray(data.identifiers) && data.identifiers[0]) {
|
|
80
|
+
return data.identifiers[0].value;
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
source: 'paf',
|
|
84
|
+
atype: 1,
|
|
85
|
+
getEidExt: function(data) {
|
|
86
|
+
if (data && data.preferences) {
|
|
87
|
+
return {preferences: data.preferences};
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
getUidExt: function(data) {
|
|
91
|
+
if (data && Array.isArray(data.identifiers) && data.identifiers[0]) {
|
|
92
|
+
const id = data.identifiers[0];
|
|
93
|
+
return {
|
|
94
|
+
version: id.version,
|
|
95
|
+
type: id.type,
|
|
96
|
+
source: id.source
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
75
101
|
}
|
|
76
102
|
};
|
|
77
103
|
|