prebid.js 5.18.0 → 6.1.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/.babelrc.js +1 -10
- package/README.md +3 -1
- package/browsers.json +1 -8
- package/gulpfile.js +1 -0
- package/integrationExamples/gpt/akamaidap_segments_example.html +132 -0
- package/modules/.submodules.json +1 -0
- package/modules/adfBidAdapter.js +21 -16
- package/modules/adheseBidAdapter.js +7 -2
- package/modules/adkernelBidAdapter.js +1 -0
- package/modules/adlivetechBidAdapter.md +61 -0
- package/modules/adomikAnalyticsAdapter.js +10 -4
- package/modules/adtelligentBidAdapter.js +2 -1
- package/modules/airgridRtdProvider.js +1 -1
- package/modules/akamaiDapRtdProvider.js +474 -0
- package/modules/akamaiDapRtdProvider.md +47 -0
- package/modules/appnexusBidAdapter.js +9 -3
- package/modules/atsAnalyticsAdapter.js +67 -46
- package/modules/atsAnalyticsAdapter.md +1 -0
- package/modules/betweenBidAdapter.js +20 -3
- package/modules/browsiRtdProvider.js +106 -18
- package/modules/cleanioRtdProvider.js +192 -0
- package/modules/cleanioRtdProvider.md +59 -0
- package/modules/codefuelBidAdapter.js +181 -0
- package/modules/codefuelBidAdapter.md +111 -0
- package/modules/connectIdSystem.js +104 -0
- package/modules/connectIdSystem.md +33 -0
- package/modules/datablocksBidAdapter.js +3 -3
- package/modules/deepintentBidAdapter.js +107 -10
- package/modules/deepintentBidAdapter.md +36 -1
- package/modules/deltaprojectsBidAdapter.js +252 -0
- package/modules/deltaprojectsBidAdapter.md +32 -0
- package/modules/engageyaBidAdapter.js +171 -0
- package/modules/glimpseBidAdapter.js +31 -16
- package/modules/gptPreAuction.js +11 -5
- package/modules/gridBidAdapter.js +1 -0
- package/modules/gumgumBidAdapter.js +8 -0
- package/modules/id5IdSystem.md +6 -6
- package/modules/imRtdProvider.js +31 -0
- package/modules/inskinBidAdapter.js +7 -3
- package/modules/ixBidAdapter.js +174 -22
- package/modules/jixieBidAdapter.js +8 -2
- package/modules/justpremiumBidAdapter.js +6 -1
- package/modules/limelightDigitalBidAdapter.js +22 -2
- package/modules/livewrappedAnalyticsAdapter.js +49 -1
- package/modules/merkleIdSystem.js +5 -0
- package/modules/multibid/index.js +3 -3
- package/modules/nativoBidAdapter.js +32 -2
- package/modules/nextMillenniumBidAdapter.js +12 -3
- package/modules/oguryBidAdapter.js +16 -2
- package/modules/openxBidAdapter.js +40 -23
- package/modules/operaadsBidAdapter.js +21 -1
- package/modules/otmBidAdapter.js +146 -0
- package/modules/otmBidAdapter.md +27 -26
- package/modules/outbrainBidAdapter.js +5 -0
- package/modules/playwireBidAdapter.md +61 -0
- package/modules/prebidServerBidAdapter/index.js +3 -3
- package/modules/publinkIdSystem.js +11 -6
- package/modules/pubmaticBidAdapter.js +2 -0
- package/modules/rtdModule/index.js +2 -2
- package/modules/saambaaBidAdapter.js +420 -0
- package/modules/saambaaBidAdapter.md +65 -68
- package/modules/seedtagBidAdapter.js +6 -0
- package/modules/smaatoBidAdapter.js +6 -1
- package/modules/sonobiBidAdapter.js +7 -0
- package/modules/sortableBidAdapter.js +1 -0
- package/modules/sspBCBidAdapter.js +34 -3
- package/modules/teadsBidAdapter.js +3 -0
- package/modules/tripleliftBidAdapter.js +22 -5
- package/modules/trustxBidAdapter.js +18 -7
- package/modules/undertoneBidAdapter.js +9 -5
- package/modules/undertoneBidAdapter.md +5 -1
- package/modules/userId/eids.js +18 -0
- package/modules/userId/eids.md +7 -0
- package/modules/userId/userId.md +12 -0
- package/modules/ventesBidAdapter.js +370 -0
- package/modules/ventesBidAdapter.md +94 -0
- package/modules/videobyteBidAdapter.js +13 -6
- package/modules/videobyteBidAdapter.md +49 -0
- package/modules/vidoomyBidAdapter.js +51 -100
- package/modules/visxBidAdapter.js +1 -1
- package/modules/yahoosspBidAdapter.js +6 -6
- package/modules/yieldlabBidAdapter.js +41 -10
- package/modules/yieldlabBidAdapter.md +91 -48
- package/modules/yieldmoSyntheticInventoryModule.js +46 -0
- package/modules/yieldmoSyntheticInventoryModule.md +68 -0
- package/package.json +6 -1
- package/src/adapterManager.js +19 -8
- package/src/adapters/bidderFactory.js +4 -3
- package/src/auction.js +11 -11
- package/src/constants.json +1 -0
- package/src/secureCreatives.js +6 -7
- package/src/targeting.js +11 -9
- package/test/spec/modules/adfBidAdapter_spec.js +83 -29
- package/test/spec/modules/adheseBidAdapter_spec.js +27 -1
- package/test/spec/modules/adomikAnalyticsAdapter_spec.js +3 -1
- package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
- package/test/spec/modules/akamaiDapRtdProvider_spec.js +246 -0
- package/test/spec/modules/appnexusBidAdapter_spec.js +16 -1
- package/test/spec/modules/atsAnalyticsAdapter_spec.js +42 -9
- package/test/spec/modules/betweenBidAdapter_spec.js +41 -0
- package/test/spec/modules/browsiRtdProvider_spec.js +62 -7
- package/test/spec/modules/cleanioRtdProvider_spec.js +188 -0
- package/test/spec/modules/codefuelBidAdapter_spec.js +316 -0
- package/test/spec/modules/connectIdSystem_spec.js +189 -0
- package/test/spec/modules/datablocksBidAdapter_spec.js +3 -3
- package/test/spec/modules/deepintentBidAdapter_spec.js +153 -3
- package/test/spec/modules/deltaprojectsBidAdapter_spec.js +399 -0
- package/test/spec/modules/engageyaBidAdapter_spec.js +422 -0
- package/test/spec/modules/eplanningBidAdapter_spec.js +8 -8
- package/test/spec/modules/glimpseBidAdapter_spec.js +33 -0
- package/test/spec/modules/gptPreAuction_spec.js +58 -4
- package/test/spec/modules/gumgumBidAdapter_spec.js +5 -1
- package/test/spec/modules/imRtdProvider_spec.js +25 -0
- package/test/spec/modules/ixBidAdapter_spec.js +298 -5
- package/test/spec/modules/jixieBidAdapter_spec.js +13 -11
- package/test/spec/modules/justpremiumBidAdapter_spec.js +9 -2
- package/test/spec/modules/konduitWrapper_spec.js +0 -1
- package/test/spec/modules/limelightDigitalBidAdapter_spec.js +155 -1
- package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +52 -7
- package/test/spec/modules/merkleIdSystem_spec.js +18 -0
- package/test/spec/modules/multibid_spec.js +31 -31
- package/test/spec/modules/nativoBidAdapter_spec.js +35 -18
- package/test/spec/modules/nextMillenniumBidAdapter_spec.js +13 -1
- package/test/spec/modules/oguryBidAdapter_spec.js +66 -23
- package/test/spec/modules/openxBidAdapter_spec.js +90 -13
- package/test/spec/modules/operaadsBidAdapter_spec.js +38 -6
- package/test/spec/modules/otmBidAdapter_spec.js +67 -0
- package/test/spec/modules/outbrainBidAdapter_spec.js +18 -0
- package/test/spec/modules/prebidServerBidAdapter_spec.js +19 -2
- package/test/spec/modules/publinkIdSystem_spec.js +6 -6
- package/test/spec/modules/seedtagBidAdapter_spec.js +3 -0
- package/test/spec/modules/smaatoBidAdapter_spec.js +30 -0
- package/test/spec/modules/sonobiBidAdapter_spec.js +34 -1
- package/test/spec/modules/sortableBidAdapter_spec.js +11 -0
- package/test/spec/modules/sspBCBidAdapter_spec.js +33 -3
- package/test/spec/modules/teadsBidAdapter_spec.js +132 -0
- package/test/spec/modules/tripleliftBidAdapter_spec.js +128 -0
- package/test/spec/modules/trustxBidAdapter_spec.js +45 -3
- package/test/spec/modules/undertoneBidAdapter_spec.js +52 -0
- package/test/spec/modules/ventesBidAdapter_spec.js +845 -0
- package/test/spec/modules/videobyteBidAdapter_spec.js +2 -2
- package/test/spec/modules/vidoomyBidAdapter_spec.js +32 -13
- package/test/spec/modules/visxBidAdapter_spec.js +1 -1
- package/test/spec/modules/yieldlabBidAdapter_spec.js +81 -0
- package/test/spec/modules/yieldmoSyntheticInventoryModule_spec.js +89 -0
- package/test/spec/unit/core/adapterManager_spec.js +56 -6
- package/test/spec/unit/core/bidderFactory_spec.js +61 -1
- package/test/spec/unit/pbjs_api_spec.js +37 -2
- package/test/spec/unit/secureCreatives_spec.js +54 -25
- package/wdio.conf.js +1 -1
|
@@ -13,6 +13,11 @@ const ALLOWED_PLACEMENTS = {
|
|
|
13
13
|
banner: true,
|
|
14
14
|
video: true
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
// Global Vendor List Id
|
|
18
|
+
// https://iabeurope.eu/vendor-list-tcf-v2-0/
|
|
19
|
+
const GVLID = 157;
|
|
20
|
+
|
|
16
21
|
const mediaTypesMap = {
|
|
17
22
|
[BANNER]: 'display',
|
|
18
23
|
[VIDEO]: 'video'
|
|
@@ -158,6 +163,7 @@ export function getTimeoutUrl (data) {
|
|
|
158
163
|
|
|
159
164
|
export const spec = {
|
|
160
165
|
code: BIDDER_CODE,
|
|
166
|
+
gvlid: GVLID,
|
|
161
167
|
aliases: [SEEDTAG_ALIAS],
|
|
162
168
|
supportedMediaTypes: [BANNER, VIDEO],
|
|
163
169
|
/**
|
|
@@ -5,7 +5,7 @@ import {ADPOD, BANNER, VIDEO} from '../src/mediaTypes.js';
|
|
|
5
5
|
|
|
6
6
|
const BIDDER_CODE = 'smaato';
|
|
7
7
|
const SMAATO_ENDPOINT = 'https://prebid.ad.smaato.net/oapi/prebid';
|
|
8
|
-
const SMAATO_CLIENT = 'prebid_js_$prebid.version$_1.
|
|
8
|
+
const SMAATO_CLIENT = 'prebid_js_$prebid.version$_1.5'
|
|
9
9
|
const CURRENCY = 'USD';
|
|
10
10
|
|
|
11
11
|
const buildOpenRtbBidRequest = (bidRequest, bidderRequest) => {
|
|
@@ -37,6 +37,11 @@ const buildOpenRtbBidRequest = (bidRequest, bidderRequest) => {
|
|
|
37
37
|
user: {
|
|
38
38
|
ext: {}
|
|
39
39
|
},
|
|
40
|
+
source: {
|
|
41
|
+
ext: {
|
|
42
|
+
schain: bidRequest.schain
|
|
43
|
+
}
|
|
44
|
+
},
|
|
40
45
|
ext: {
|
|
41
46
|
client: SMAATO_CLIENT
|
|
42
47
|
}
|
|
@@ -83,8 +83,15 @@ export const spec = {
|
|
|
83
83
|
'lib_name': 'prebid',
|
|
84
84
|
'lib_v': '$prebid.version$',
|
|
85
85
|
'us': 0,
|
|
86
|
+
|
|
86
87
|
};
|
|
87
88
|
|
|
89
|
+
const fpd = config.getConfig('ortb2');
|
|
90
|
+
|
|
91
|
+
if (fpd) {
|
|
92
|
+
payload.fpd = JSON.stringify(fpd);
|
|
93
|
+
}
|
|
94
|
+
|
|
88
95
|
if (config.getConfig('userSync') && config.getConfig('userSync').syncsPerBidder) {
|
|
89
96
|
payload.us = config.getConfig('userSync').syncsPerBidder;
|
|
90
97
|
}
|
|
@@ -9,11 +9,13 @@ const BIDDER_URL = 'https://ssp.wp.pl/bidder/';
|
|
|
9
9
|
const SYNC_URL = 'https://ssp.wp.pl/bidder/usersync';
|
|
10
10
|
const NOTIFY_URL = 'https://ssp.wp.pl/bidder/notify';
|
|
11
11
|
const TMAX = 450;
|
|
12
|
-
const BIDDER_VERSION = '5.
|
|
12
|
+
const BIDDER_VERSION = '5.3';
|
|
13
13
|
const W = window;
|
|
14
14
|
const { navigator } = W;
|
|
15
15
|
const oneCodeDetection = {};
|
|
16
|
+
const adUnitsCalled = {};
|
|
16
17
|
const adSizesCalled = {};
|
|
18
|
+
const pageView = {};
|
|
17
19
|
var consentApiVersion;
|
|
18
20
|
|
|
19
21
|
/**
|
|
@@ -70,6 +72,7 @@ const cookieSupport = () => {
|
|
|
70
72
|
};
|
|
71
73
|
|
|
72
74
|
const applyClientHints = ortbRequest => {
|
|
75
|
+
const { location } = document;
|
|
73
76
|
const { connection = {}, deviceMemory, userAgentData = {} } = navigator;
|
|
74
77
|
const viewport = W.visualViewport || false;
|
|
75
78
|
const segments = [];
|
|
@@ -85,6 +88,16 @@ const applyClientHints = ortbRequest => {
|
|
|
85
88
|
'CH-isMobile': userAgentData.mobile,
|
|
86
89
|
};
|
|
87
90
|
|
|
91
|
+
/**
|
|
92
|
+
Check / generate page view id
|
|
93
|
+
Should be generated dureing first call to applyClientHints(),
|
|
94
|
+
and re-generated if pathname has changed
|
|
95
|
+
*/
|
|
96
|
+
if (!pageView.id || location.pathname !== pageView.path) {
|
|
97
|
+
pageView.path = location.pathname;
|
|
98
|
+
pageView.id = Math.floor(1E20 * Math.random());
|
|
99
|
+
}
|
|
100
|
+
|
|
88
101
|
Object.keys(hints).forEach(key => {
|
|
89
102
|
const hint = hints[key];
|
|
90
103
|
|
|
@@ -100,6 +113,14 @@ const applyClientHints = ortbRequest => {
|
|
|
100
113
|
id: '12',
|
|
101
114
|
name: 'NetInfo',
|
|
102
115
|
segment: segments,
|
|
116
|
+
}, {
|
|
117
|
+
id: '7',
|
|
118
|
+
name: 'pvid',
|
|
119
|
+
segment: [
|
|
120
|
+
{
|
|
121
|
+
value: `${pageView.id}`
|
|
122
|
+
}
|
|
123
|
+
]
|
|
103
124
|
}];
|
|
104
125
|
|
|
105
126
|
ortbRequest.user = Object.assign(ortbRequest.user, { data });
|
|
@@ -129,6 +150,7 @@ const setOnAny = (collection, key) => collection.reduce((prev, next) => prev ||
|
|
|
129
150
|
*/
|
|
130
151
|
const sendNotification = payload => {
|
|
131
152
|
ajax(NOTIFY_URL, null, JSON.stringify(payload), {
|
|
153
|
+
contentType: 'application/json',
|
|
132
154
|
withCredentials: false,
|
|
133
155
|
method: 'POST',
|
|
134
156
|
crossOrigin: true
|
|
@@ -267,8 +289,14 @@ const mapImpression = slot => {
|
|
|
267
289
|
send this info as ext.pbsize
|
|
268
290
|
*/
|
|
269
291
|
const slotSize = slot.sizes.length ? slot.sizes.reduce((prev, next) => prev[0] * prev[1] <= next[0] * next[1] ? next : prev).join('x') : '1x1';
|
|
270
|
-
|
|
271
|
-
|
|
292
|
+
|
|
293
|
+
if (!adUnitsCalled[adUnitCode]) {
|
|
294
|
+
// this is a new adunit - assign & save pbsize
|
|
295
|
+
adSizesCalled[slotSize] = adSizesCalled[slotSize] ? adSizesCalled[slotSize] += 1 : 1;
|
|
296
|
+
adUnitsCalled[adUnitCode] = `${slotSize}_${adSizesCalled[slotSize]}`
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
ext.data = Object.assign({ pbsize: adUnitsCalled[adUnitCode] }, ext.data);
|
|
272
300
|
|
|
273
301
|
const imp = {
|
|
274
302
|
id: id && siteId ? id : 'bidid-' + bidId,
|
|
@@ -325,6 +353,9 @@ const parseNative = nativeData => {
|
|
|
325
353
|
case 0:
|
|
326
354
|
result.title = asset.title.text;
|
|
327
355
|
break;
|
|
356
|
+
case 1:
|
|
357
|
+
result.cta = asset.data.value;
|
|
358
|
+
break;
|
|
328
359
|
case 2:
|
|
329
360
|
result.icon = {
|
|
330
361
|
url: asset.img.url,
|
|
@@ -190,6 +190,8 @@ function buildRequestObject(bid) {
|
|
|
190
190
|
const reqObj = {};
|
|
191
191
|
let placementId = getValue(bid.params, 'placementId');
|
|
192
192
|
let pageId = getValue(bid.params, 'pageId');
|
|
193
|
+
const impressionData = deepAccess(bid, 'ortb2Imp.ext.data');
|
|
194
|
+
const gpid = deepAccess(impressionData, 'pbadslot') || deepAccess(impressionData, 'adserver.adslot');
|
|
193
195
|
|
|
194
196
|
reqObj.sizes = getSizes(bid);
|
|
195
197
|
reqObj.bidId = getBidIdParameter('bidId', bid);
|
|
@@ -199,6 +201,7 @@ function buildRequestObject(bid) {
|
|
|
199
201
|
reqObj.adUnitCode = getBidIdParameter('adUnitCode', bid);
|
|
200
202
|
reqObj.auctionId = getBidIdParameter('auctionId', bid);
|
|
201
203
|
reqObj.transactionId = getBidIdParameter('transactionId', bid);
|
|
204
|
+
if (gpid) { reqObj.gpid = gpid; }
|
|
202
205
|
return reqObj;
|
|
203
206
|
}
|
|
204
207
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { tryAppendQueryString, logMessage, isEmpty } from '../src/utils.js';
|
|
1
|
+
import { tryAppendQueryString, logMessage, isEmpty, isStr, isPlainObject, isArray, logWarn } from '../src/utils.js';
|
|
2
2
|
import { BANNER, VIDEO } from '../src/mediaTypes.js';
|
|
3
3
|
import { registerBidder } from '../src/adapters/bidderFactory.js';
|
|
4
4
|
import { config } from '../src/config.js';
|
|
@@ -262,19 +262,36 @@ function getPubCommonEids(bidRequest) {
|
|
|
262
262
|
function getEids(bidRequest, type, source, rtiPartner) {
|
|
263
263
|
return bidRequest
|
|
264
264
|
.map(getUserId(type)) // bids -> userIds of a certain type
|
|
265
|
-
.filter((
|
|
265
|
+
.filter(filterEids(type)) // filter out unqualified userIds
|
|
266
266
|
.map(formatEid(source, rtiPartner)); // userIds -> eid objects
|
|
267
267
|
}
|
|
268
268
|
|
|
269
|
+
const filterEids = type => (userId, i, arr) => {
|
|
270
|
+
let isValidUserId =
|
|
271
|
+
!!userId && // is not null nor empty
|
|
272
|
+
(isStr(userId)
|
|
273
|
+
? !!userId
|
|
274
|
+
: isPlainObject(userId) && // or, is object
|
|
275
|
+
!isArray(userId) && // not an array
|
|
276
|
+
!isEmpty(userId) && // is not empty
|
|
277
|
+
userId.id && // contains nested id field
|
|
278
|
+
isStr(userId.id) && // nested id field is a string
|
|
279
|
+
!!userId.id); // that is not empty
|
|
280
|
+
if (!isValidUserId && arr[0] !== undefined) {
|
|
281
|
+
logWarn(`Triplelift: invalid ${type} userId format`);
|
|
282
|
+
}
|
|
283
|
+
return isValidUserId;
|
|
284
|
+
};
|
|
285
|
+
|
|
269
286
|
function getUserId(type) {
|
|
270
|
-
return
|
|
287
|
+
return bid => bid && bid.userId && bid.userId[type];
|
|
271
288
|
}
|
|
272
289
|
|
|
273
290
|
function formatEid(source, rtiPartner) {
|
|
274
|
-
return (
|
|
291
|
+
return (userId) => ({
|
|
275
292
|
source,
|
|
276
293
|
uids: [{
|
|
277
|
-
id,
|
|
294
|
+
id: userId.id ? userId.id : userId,
|
|
278
295
|
ext: { rtiPartner }
|
|
279
296
|
}]
|
|
280
297
|
});
|
|
@@ -76,7 +76,7 @@ export const spec = {
|
|
|
76
76
|
if (!userIdAsEids) {
|
|
77
77
|
userIdAsEids = bid.userIdAsEids;
|
|
78
78
|
}
|
|
79
|
-
const {params: {uid, keywords}, mediaTypes, bidId, adUnitCode, rtd} = bid;
|
|
79
|
+
const {params: {uid, keywords}, mediaTypes, bidId, adUnitCode, rtd, ortb2Imp} = bid;
|
|
80
80
|
bidsMap[bidId] = bid;
|
|
81
81
|
const bidFloor = _getFloor(mediaTypes || {}, bid);
|
|
82
82
|
if (rtd) {
|
|
@@ -102,6 +102,15 @@ export const spec = {
|
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
104
|
|
|
105
|
+
if (ortb2Imp && ortb2Imp.ext && ortb2Imp.ext.data) {
|
|
106
|
+
impObj.ext.data = ortb2Imp.ext.data;
|
|
107
|
+
if (impObj.ext.data.adserver && impObj.ext.data.adserver.adslot) {
|
|
108
|
+
impObj.ext.gpid = impObj.ext.data.adserver.adslot.toString();
|
|
109
|
+
} else {
|
|
110
|
+
impObj.ext.gpid = ortb2Imp.ext.data.pbadslot && ortb2Imp.ext.data.pbadslot.toString();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
105
114
|
if (!isEmpty(keywords)) {
|
|
106
115
|
if (!pageKeywords) {
|
|
107
116
|
pageKeywords = keywords;
|
|
@@ -429,9 +438,10 @@ function addSegments(name, segName, segments, data, bidConfigName) {
|
|
|
429
438
|
if (segments && segments.length) {
|
|
430
439
|
data.push({
|
|
431
440
|
name: name,
|
|
432
|
-
segment: segments
|
|
433
|
-
|
|
434
|
-
|
|
441
|
+
segment: segments
|
|
442
|
+
.map((seg) => seg && (seg.id || seg))
|
|
443
|
+
.filter((seg) => seg && (typeof seg === 'string' || typeof seg === 'number'))
|
|
444
|
+
.map((seg) => ({ name: segName, value: seg.toString() }))
|
|
435
445
|
});
|
|
436
446
|
} else if (bidConfigName) {
|
|
437
447
|
const configData = config.getConfig('ortb2.user.data');
|
|
@@ -445,9 +455,10 @@ function addSegments(name, segName, segments, data, bidConfigName) {
|
|
|
445
455
|
if (segData && segData.length) {
|
|
446
456
|
data.push({
|
|
447
457
|
name: name,
|
|
448
|
-
segment: segData
|
|
449
|
-
|
|
450
|
-
|
|
458
|
+
segment: segData
|
|
459
|
+
.map((seg) => seg && (seg.id || seg))
|
|
460
|
+
.filter((seg) => seg && (typeof seg === 'string' || typeof seg === 'number'))
|
|
461
|
+
.map((seg) => ({ name: segName, value: seg.toString() }))
|
|
451
462
|
});
|
|
452
463
|
}
|
|
453
464
|
}
|
|
@@ -85,13 +85,17 @@ export const spec = {
|
|
|
85
85
|
const vw = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
|
|
86
86
|
const vh = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
|
|
87
87
|
const pageSizeArray = vw == 0 || vh == 0 ? null : [vw, vh];
|
|
88
|
+
const commons = {
|
|
89
|
+
'adapterVersion': '$prebid.version$',
|
|
90
|
+
'uids': validBidRequests[0].userId,
|
|
91
|
+
'pageSize': pageSizeArray
|
|
92
|
+
};
|
|
93
|
+
if (validBidRequests[0].schain) {
|
|
94
|
+
commons.schain = validBidRequests[0].schain;
|
|
95
|
+
}
|
|
88
96
|
const payload = {
|
|
89
97
|
'x-ut-hb-params': [],
|
|
90
|
-
'commons':
|
|
91
|
-
'adapterVersion': '$prebid.version$',
|
|
92
|
-
'uids': validBidRequests[0].userId,
|
|
93
|
-
'pageSize': pageSizeArray
|
|
94
|
-
}
|
|
98
|
+
'commons': commons
|
|
95
99
|
};
|
|
96
100
|
const referer = bidderRequest.refererInfo.referer;
|
|
97
101
|
const hostname = parseUrl(referer).hostname;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
# Overview
|
|
2
2
|
|
|
3
3
|
```
|
|
4
|
-
Module Name:
|
|
4
|
+
Module Name: Undertone Bidder Adapter
|
|
5
5
|
Module Type: Bidder Adapter
|
|
6
6
|
Maintainer: RampProgrammatic@perion.com
|
|
7
|
+
gdpr_supported: true
|
|
8
|
+
usp_supported: true
|
|
9
|
+
schain_supported: true
|
|
10
|
+
media_types: video, native
|
|
7
11
|
```
|
|
8
12
|
# Description
|
|
9
13
|
|
package/modules/userId/eids.js
CHANGED
|
@@ -181,15 +181,18 @@ const USER_IDS_CONFIG = {
|
|
|
181
181
|
source: 'neustar.biz',
|
|
182
182
|
atype: 1
|
|
183
183
|
},
|
|
184
|
+
|
|
184
185
|
// MediaWallah OpenLink
|
|
185
186
|
'mwOpenLinkId': {
|
|
186
187
|
source: 'mediawallahscript.com',
|
|
187
188
|
atype: 1
|
|
188
189
|
},
|
|
190
|
+
|
|
189
191
|
'tapadId': {
|
|
190
192
|
source: 'tapad.com',
|
|
191
193
|
atype: 1
|
|
192
194
|
},
|
|
195
|
+
|
|
193
196
|
// Novatiq Snowflake
|
|
194
197
|
'novatiq': {
|
|
195
198
|
getValue: function(data) {
|
|
@@ -198,6 +201,7 @@ const USER_IDS_CONFIG = {
|
|
|
198
201
|
source: 'novatiq.com',
|
|
199
202
|
atype: 1
|
|
200
203
|
},
|
|
204
|
+
|
|
201
205
|
'uid2': {
|
|
202
206
|
source: 'uidapi.com',
|
|
203
207
|
atype: 3,
|
|
@@ -205,40 +209,54 @@ const USER_IDS_CONFIG = {
|
|
|
205
209
|
return data.id;
|
|
206
210
|
}
|
|
207
211
|
},
|
|
212
|
+
|
|
208
213
|
// Akamai Data Activation Platform (DAP)
|
|
209
214
|
'dapId': {
|
|
210
215
|
source: 'akamai.com',
|
|
211
216
|
atype: 1
|
|
212
217
|
},
|
|
218
|
+
|
|
213
219
|
'deepintentId': {
|
|
214
220
|
source: 'deepintent.com',
|
|
215
221
|
atype: 3
|
|
216
222
|
},
|
|
223
|
+
|
|
217
224
|
// Admixer Id
|
|
218
225
|
'admixerId': {
|
|
219
226
|
source: 'admixer.net',
|
|
220
227
|
atype: 3
|
|
221
228
|
},
|
|
229
|
+
|
|
222
230
|
// Adtelligent Id
|
|
223
231
|
'adtelligentId': {
|
|
224
232
|
source: 'adtelligent.com',
|
|
225
233
|
atype: 3
|
|
226
234
|
},
|
|
235
|
+
|
|
227
236
|
amxId: {
|
|
228
237
|
source: 'amxrtb.com',
|
|
229
238
|
atype: 1,
|
|
230
239
|
},
|
|
240
|
+
|
|
231
241
|
'publinkId': {
|
|
232
242
|
source: 'epsilon.com',
|
|
233
243
|
atype: 3
|
|
234
244
|
},
|
|
245
|
+
|
|
235
246
|
'kpuid': {
|
|
236
247
|
source: 'kpuid.com',
|
|
237
248
|
atype: 3
|
|
238
249
|
},
|
|
250
|
+
|
|
239
251
|
'imuid': {
|
|
240
252
|
source: 'intimatemerger.com',
|
|
241
253
|
atype: 1
|
|
254
|
+
},
|
|
255
|
+
|
|
256
|
+
// Yahoo ConnectID
|
|
257
|
+
'connectId': {
|
|
258
|
+
source: 'yahoo.com',
|
|
259
|
+
atype: 3
|
|
242
260
|
}
|
|
243
261
|
};
|
|
244
262
|
|
package/modules/userId/eids.md
CHANGED
package/modules/userId/userId.md
CHANGED
|
@@ -285,6 +285,18 @@ pbjs.setConfig({
|
|
|
285
285
|
params: {
|
|
286
286
|
cid: 5126 // Set your Intimate Merger Customer ID here for production
|
|
287
287
|
}
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: 'connectId',
|
|
291
|
+
params: {
|
|
292
|
+
pixelId: 58776,
|
|
293
|
+
he: '0bef996248d63cea1529cb86de31e9547a712d9f380146e98bbd39beec70355a'
|
|
294
|
+
},
|
|
295
|
+
storage: {
|
|
296
|
+
name: 'connectId',
|
|
297
|
+
type: 'html5',
|
|
298
|
+
expires: 15
|
|
299
|
+
}
|
|
288
300
|
}],
|
|
289
301
|
syncDelay: 5000
|
|
290
302
|
}
|