prebid.js 7.45.0 → 7.47.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/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.js +1 -1
- package/dist/admaticBidAdapter.js +1 -1
- package/dist/adnuntiusBidAdapter.js +1 -1
- package/dist/adrelevantisBidAdapter.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/bidglassBidAdapter.js +1 -1
- package/dist/bidwatchAnalyticsAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectadBidAdapter.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/debugging-standalone.js +1 -1
- package/dist/dependencies.json +3 -0
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/emtvBidAdapter.js +1 -0
- package/dist/eplanningBidAdapter.js +1 -1
- package/dist/eskimiBidAdapter.js +1 -0
- package/dist/feedadBidAdapter.js +1 -1
- package/dist/finativeBidAdapter.js +1 -1
- package/dist/freewheel-sspBidAdapter.js +1 -1
- package/dist/glimpseBidAdapter.js +1 -1
- package/dist/gmosspBidAdapter.js +1 -1
- package/dist/goldbachBidAdapter.js +1 -1
- package/dist/greenbidsAnalyticsAdapter.js +1 -1
- package/dist/gridBidAdapter.js +1 -1
- package/dist/gumgumBidAdapter.js +1 -1
- package/dist/h12mediaBidAdapter.js +1 -1
- package/dist/id5IdSystem.js +1 -1
- package/dist/improvedigitalBidAdapter.js +1 -1
- package/dist/inmarBidAdapter.js +1 -1
- package/dist/insticatorBidAdapter.js +1 -1
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/kargoBidAdapter.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/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.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/mgidBidAdapter.js +1 -1
- package/dist/minutemediaBidAdapter.js +1 -1
- package/dist/minutemediaplusBidAdapter.js +1 -1
- package/dist/missenaBidAdapter.js +1 -1
- package/dist/nativoBidAdapter.js +1 -1
- package/dist/neuwoRtdProvider.js +1 -1
- package/dist/nextMillenniumBidAdapter.js +1 -1
- package/dist/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +137 -135
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/ortbConverter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- package/dist/pairIdSystem.js +1 -0
- package/dist/parrableIdSystem.js +1 -1
- package/dist/pixfutureBidAdapter.js +1 -1
- package/dist/prebid-core.js +1 -1
- 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/readpeakBidAdapter.js +1 -1
- package/dist/relaidoBidAdapter.js +1 -1
- package/dist/rhythmoneBidAdapter.js +1 -1
- package/dist/riseBidAdapter.js +1 -1
- package/dist/rtbhouseBidAdapter.js +1 -1
- package/dist/rubiconAnalyticsAdapter.js +1 -1
- package/dist/rubiconBidAdapter.js +1 -1
- package/dist/seedingAllianceBidAdapter.js +1 -1
- package/dist/seedtagBidAdapter.js +1 -1
- package/dist/sharethroughAnalyticsAdapter.js +1 -1
- package/dist/sharethroughBidAdapter.js +1 -1
- package/dist/shinezBidAdapter.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/sspBCBidAdapter.js +1 -1
- package/dist/stvBidAdapter.js +1 -1
- package/dist/sublimeBidAdapter.js +1 -1
- package/dist/synacormediaBidAdapter.js +1 -1
- package/dist/targetVideoBidAdapter.js +1 -1
- package/dist/teadsBidAdapter.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/userId.js +1 -1
- package/dist/vidazooBidAdapter.js +1 -1
- package/dist/videobyteBidAdapter.js +1 -1
- package/dist/vidoomyBidAdapter.js +1 -1
- package/dist/visxBidAdapter.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/integrationExamples/gpt/fledge_example.html +103 -0
- package/integrationExamples/gpt/prebidServer_fledge_example.html +111 -0
- package/libraries/ortbConverter/processors/video.js +1 -0
- package/modules/admaticBidAdapter.js +7 -2
- package/modules/adnuntiusBidAdapter.js +3 -1
- package/modules/appnexusBidAdapter.js +108 -102
- package/modules/bidwatchAnalyticsAdapter.js +2 -0
- package/modules/conversantBidAdapter.js +3 -0
- package/modules/criteoBidAdapter.js +5 -1
- package/modules/criteoIdSystem.js +27 -14
- package/modules/emtvBidAdapter.js +211 -0
- package/modules/emtvBidAdapter.md +79 -0
- package/modules/eskimiBidAdapter.js +72 -0
- package/modules/eskimiBidAdapter.md +34 -0
- package/modules/gridBidAdapter.js +42 -19
- package/modules/ixBidAdapter.js +30 -0
- package/modules/kargoBidAdapter.js +473 -246
- package/modules/kueezRtbBidAdapter.js +16 -4
- package/modules/mediasquareBidAdapter.js +2 -1
- package/modules/minutemediaplusBidAdapter.js +16 -4
- package/modules/missenaBidAdapter.js +1 -1
- package/modules/nativoBidAdapter.js +110 -21
- package/modules/neuwoRtdProvider.js +0 -2
- package/modules/nextMillenniumBidAdapter.js +2 -0
- package/modules/pairIdSystem.js +79 -0
- package/modules/pubmaticBidAdapter.js +12 -9
- package/modules/rtbhouseBidAdapter.js +3 -3
- package/modules/userId/eids.js +6 -0
- package/modules/vidoomyBidAdapter.js +30 -9
- package/modules/vidoomyBidAdapter.md +12 -2
- package/modules/yieldmoBidAdapter.js +15 -5
- package/package.json +1 -1
- package/src/config.js +78 -127
- package/test/spec/modules/1plusXRtdProvider_spec.js +8 -7
- package/test/spec/modules/adagioBidAdapter_spec.js +0 -25
- package/test/spec/modules/admaticBidAdapter_spec.js +1 -1
- package/test/spec/modules/adnuntiusBidAdapter_spec.js +2 -1
- package/test/spec/modules/appnexusBidAdapter_spec.js +464 -448
- package/test/spec/modules/axonixBidAdapter_spec.js +0 -27
- package/test/spec/modules/big-richmediaBidAdapter_spec.js +68 -64
- package/test/spec/modules/conversantBidAdapter_spec.js +1 -0
- package/test/spec/modules/criteoBidAdapter_spec.js +33 -1
- package/test/spec/modules/criteoIdSystem_spec.js +99 -9
- package/test/spec/modules/emtvBidAdapter_spec.js +400 -0
- package/test/spec/modules/eskimiBidAdapter_spec.js +155 -0
- package/test/spec/modules/gridBidAdapter_spec.js +8 -0
- package/test/spec/modules/ixBidAdapter_spec.js +57 -0
- package/test/spec/modules/kargoBidAdapter_spec.js +297 -140
- package/test/spec/modules/kueezRtbBidAdapter_spec.js +22 -2
- package/test/spec/modules/minutemediaplusBidAdapter_spec.js +22 -2
- package/test/spec/modules/nativoBidAdapter_spec.js +101 -0
- package/test/spec/modules/neuwoRtdProvider_spec.js +0 -1
- package/test/spec/modules/ooloAnalyticsAdapter_spec.js +1 -1
- package/test/spec/modules/pairIdSystem_spec.js +68 -0
- package/test/spec/modules/pubCommonId_spec.js +0 -17
- package/test/spec/modules/pubmaticBidAdapter_spec.js +868 -867
- package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -5
- package/test/spec/modules/rtbhouseBidAdapter_spec.js +2 -2
- package/test/spec/modules/vidoomyBidAdapter_spec.js +72 -0
- package/test/spec/modules/yieldmoBidAdapter_spec.js +19 -1
- package/test/spec/unit/pbjs_api_spec.js +19 -3
- package/test/test_index.js +13 -3
- package/dist/gridNMBidAdapter.js +0 -1
- package/modules/gridNMBidAdapter.js +0 -422
- package/modules/gridNMBidAdapter.md +0 -39
- package/test/spec/modules/gridNMBidAdapter_spec.js +0 -636
|
@@ -27,7 +27,12 @@ var adUnits = [
|
|
|
27
27
|
params: {
|
|
28
28
|
id: '123123',
|
|
29
29
|
pid: '123123',
|
|
30
|
-
bidfloor: 0.5 // This is optional
|
|
30
|
+
bidfloor: 0.5, // This is optional
|
|
31
|
+
bcat: ['IAB1-1'], // Optional - default is []
|
|
32
|
+
badv: ['example.com'], // Optional - default is []
|
|
33
|
+
bapp: ['app.com'], // Optional - default is []
|
|
34
|
+
btype: [1, 2, 3], // Optional - default is []
|
|
35
|
+
battr: [1, 2, 3] // Optional - default is []
|
|
31
36
|
}
|
|
32
37
|
}
|
|
33
38
|
]
|
|
@@ -52,7 +57,12 @@ var adUnits = [
|
|
|
52
57
|
params: {
|
|
53
58
|
id: '123123',
|
|
54
59
|
pid: '123123',
|
|
55
|
-
bidfloor: 0.5 // This is optional
|
|
60
|
+
bidfloor: 0.5, // This is optional
|
|
61
|
+
bcat: ['IAB1-1'], // Optional - default is []
|
|
62
|
+
badv: ['example.com'], // Optional - default is []
|
|
63
|
+
bapp: ['app.com'], // Optional - default is []
|
|
64
|
+
btype: [1, 2, 3], // Optional - default is []
|
|
65
|
+
battr: [1, 2, 3] // Optional - default is []
|
|
56
66
|
}
|
|
57
67
|
}
|
|
58
68
|
]
|
|
@@ -68,6 +68,7 @@ export const spec = {
|
|
|
68
68
|
const videoBidRequests = bidRequests.filter(request => hasVideoMediaType(request));
|
|
69
69
|
let serverRequests = [];
|
|
70
70
|
const eids = getEids(bidRequests[0]) || [];
|
|
71
|
+
|
|
71
72
|
if (bannerBidRequests.length > 0) {
|
|
72
73
|
let serverRequest = {
|
|
73
74
|
pbav: '$prebid.version$',
|
|
@@ -80,7 +81,9 @@ export const spec = {
|
|
|
80
81
|
userConsent: JSON.stringify({
|
|
81
82
|
// case of undefined, stringify will remove param
|
|
82
83
|
gdprApplies: deepAccess(bidderRequest, 'gdprConsent.gdprApplies') || '',
|
|
83
|
-
cmp: deepAccess(bidderRequest, 'gdprConsent.consentString') || ''
|
|
84
|
+
cmp: deepAccess(bidderRequest, 'gdprConsent.consentString') || '',
|
|
85
|
+
gpp: deepAccess(bidderRequest, 'gppConsent.gppString') || '',
|
|
86
|
+
gpp_sid: deepAccess(bidderRequest, 'gppConsent.applicableSections') || []
|
|
84
87
|
}),
|
|
85
88
|
us_privacy: deepAccess(bidderRequest, 'uspConsent') || ''
|
|
86
89
|
};
|
|
@@ -514,12 +517,19 @@ function openRtbSite(bidRequest, bidderRequest) {
|
|
|
514
517
|
*/
|
|
515
518
|
function populateOpenRtbGdpr(openRtbRequest, bidderRequest) {
|
|
516
519
|
const gdpr = bidderRequest.gdprConsent;
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
+
const gpp = deepAccess(bidderRequest, 'gppConsent.gppString');
|
|
521
|
+
const gppsid = deepAccess(bidderRequest, 'gppConsent.applicableSections');
|
|
522
|
+
if (gpp) {
|
|
523
|
+
deepSetValue(openRtbRequest, 'regs.ext.gpp', gpp);
|
|
524
|
+
} else {
|
|
525
|
+
deepSetValue(openRtbRequest, 'regs.ext.gdpr', gdpr && gdpr.gdprApplies ? 1 : 0);
|
|
526
|
+
deepSetValue(openRtbRequest, 'user.ext.consent', gdpr && gdpr.consentString ? gdpr.consentString : '');
|
|
527
|
+
}
|
|
528
|
+
if (gppsid && gppsid.length > 0) {
|
|
529
|
+
deepSetValue(openRtbRequest, 'regs.ext.gpp_sid', gppsid);
|
|
520
530
|
}
|
|
521
531
|
const uspConsent = deepAccess(bidderRequest, 'uspConsent');
|
|
522
|
-
if (uspConsent) {
|
|
532
|
+
if (!gpp && uspConsent) {
|
|
523
533
|
deepSetValue(openRtbRequest, 'regs.ext.us_privacy', uspConsent);
|
|
524
534
|
}
|
|
525
535
|
}
|
package/package.json
CHANGED
package/src/config.js
CHANGED
|
@@ -66,158 +66,109 @@ export function newConfig() {
|
|
|
66
66
|
|
|
67
67
|
function resetConfig() {
|
|
68
68
|
defaults = {};
|
|
69
|
-
let newConfig = {
|
|
70
|
-
// `debug` is equivalent to legacy `pbjs.logging` property
|
|
71
|
-
_debug: DEFAULT_DEBUG,
|
|
72
|
-
get debug() {
|
|
73
|
-
return this._debug;
|
|
74
|
-
},
|
|
75
|
-
set debug(val) {
|
|
76
|
-
this._debug = val;
|
|
77
|
-
},
|
|
78
69
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return this._bidderTimeout;
|
|
83
|
-
},
|
|
84
|
-
set bidderTimeout(val) {
|
|
85
|
-
this._bidderTimeout = val;
|
|
86
|
-
},
|
|
70
|
+
function getProp(name) {
|
|
71
|
+
return props[name].val;
|
|
72
|
+
}
|
|
87
73
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
},
|
|
92
|
-
set publisherDomain(val) {
|
|
93
|
-
logWarn('publisherDomain is deprecated and has no effect since v7 - use pageUrl instead')
|
|
94
|
-
this._publisherDomain = val;
|
|
95
|
-
},
|
|
74
|
+
function setProp(name, val) {
|
|
75
|
+
props[name].val = val;
|
|
76
|
+
}
|
|
96
77
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
this._priceGranularity = (hasGranularity(val)) ? val : GRANULARITY_OPTIONS.MEDIUM;
|
|
103
|
-
} else if (isPlainObject(val)) {
|
|
104
|
-
this._customPriceBucket = val;
|
|
105
|
-
this._priceGranularity = GRANULARITY_OPTIONS.CUSTOM;
|
|
106
|
-
logMessage('Using custom price granularity');
|
|
78
|
+
const props = {
|
|
79
|
+
publisherDomain: {
|
|
80
|
+
set(val) {
|
|
81
|
+
if (val != null) {
|
|
82
|
+
logWarn('publisherDomain is deprecated and has no effect since v7 - use pageUrl instead')
|
|
107
83
|
}
|
|
84
|
+
setProp('publisherDomain', val);
|
|
108
85
|
}
|
|
109
86
|
},
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
_customPriceBucket: {},
|
|
115
|
-
get customPriceBucket() {
|
|
116
|
-
return this._customPriceBucket;
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* mediaTypePriceGranularity
|
|
121
|
-
* @type {MediaTypePriceGranularity}
|
|
122
|
-
*/
|
|
123
|
-
_mediaTypePriceGranularity: {},
|
|
124
|
-
|
|
125
|
-
get mediaTypePriceGranularity() {
|
|
126
|
-
return this._mediaTypePriceGranularity;
|
|
127
|
-
},
|
|
128
|
-
set mediaTypePriceGranularity(val) {
|
|
129
|
-
this._mediaTypePriceGranularity = Object.keys(val).reduce((aggregate, item) => {
|
|
130
|
-
if (validatePriceGranularity(val[item])) {
|
|
87
|
+
priceGranularity: {
|
|
88
|
+
val: GRANULARITY_OPTIONS.MEDIUM,
|
|
89
|
+
set(val) {
|
|
90
|
+
if (validatePriceGranularity(val)) {
|
|
131
91
|
if (typeof val === 'string') {
|
|
132
|
-
|
|
92
|
+
setProp('priceGranularity', (hasGranularity(val)) ? val : GRANULARITY_OPTIONS.MEDIUM);
|
|
133
93
|
} else if (isPlainObject(val)) {
|
|
134
|
-
|
|
135
|
-
|
|
94
|
+
setProp('customPriceBucket', val);
|
|
95
|
+
setProp('priceGranularity', GRANULARITY_OPTIONS.CUSTOM)
|
|
96
|
+
logMessage('Using custom price granularity');
|
|
136
97
|
}
|
|
137
|
-
} else {
|
|
138
|
-
logWarn(`Invalid price granularity for media type: ${item}`);
|
|
139
98
|
}
|
|
140
|
-
|
|
141
|
-
}, {});
|
|
142
|
-
},
|
|
143
|
-
|
|
144
|
-
_sendAllBids: DEFAULT_ENABLE_SEND_ALL_BIDS,
|
|
145
|
-
get enableSendAllBids() {
|
|
146
|
-
return this._sendAllBids;
|
|
99
|
+
}
|
|
147
100
|
},
|
|
148
|
-
|
|
149
|
-
|
|
101
|
+
customPriceBucket: {
|
|
102
|
+
val: {},
|
|
103
|
+
set() {}
|
|
150
104
|
},
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
105
|
+
mediaTypePriceGranularity: {
|
|
106
|
+
val: {},
|
|
107
|
+
set(val) {
|
|
108
|
+
val != null && setProp('mediaTypePriceGranularity', Object.keys(val).reduce((aggregate, item) => {
|
|
109
|
+
if (validatePriceGranularity(val[item])) {
|
|
110
|
+
if (typeof val === 'string') {
|
|
111
|
+
aggregate[item] = (hasGranularity(val[item])) ? val[item] : getProp('priceGranularity');
|
|
112
|
+
} else if (isPlainObject(val)) {
|
|
113
|
+
aggregate[item] = val[item];
|
|
114
|
+
logMessage(`Using custom price granularity for ${item}`);
|
|
115
|
+
}
|
|
116
|
+
} else {
|
|
117
|
+
logWarn(`Invalid price granularity for media type: ${item}`);
|
|
118
|
+
}
|
|
119
|
+
return aggregate;
|
|
120
|
+
}, {}));
|
|
121
|
+
}
|
|
155
122
|
},
|
|
156
|
-
|
|
157
|
-
|
|
123
|
+
bidderSequence: {
|
|
124
|
+
val: DEFAULT_BIDDER_SEQUENCE,
|
|
125
|
+
set(val) {
|
|
126
|
+
if (VALID_ORDERS[val]) {
|
|
127
|
+
setProp('bidderSequence', val);
|
|
128
|
+
} else {
|
|
129
|
+
logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
158
132
|
},
|
|
133
|
+
auctionOptions: {
|
|
134
|
+
val: {},
|
|
135
|
+
set(val) {
|
|
136
|
+
if (validateauctionOptions(val)) {
|
|
137
|
+
setProp('auctionOptions', val);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
let newConfig = {
|
|
143
|
+
// `debug` is equivalent to legacy `pbjs.logging` property
|
|
144
|
+
debug: DEFAULT_DEBUG,
|
|
145
|
+
bidderTimeout: DEFAULT_BIDDER_TIMEOUT,
|
|
146
|
+
enableSendAllBids: DEFAULT_ENABLE_SEND_ALL_BIDS,
|
|
147
|
+
useBidCache: DEFAULT_BID_CACHE,
|
|
159
148
|
|
|
160
149
|
/**
|
|
161
150
|
* deviceAccess set to false will disable setCookie, getCookie, hasLocalStorage
|
|
162
151
|
* @type {boolean}
|
|
163
152
|
*/
|
|
164
|
-
|
|
165
|
-
get deviceAccess() {
|
|
166
|
-
return this._deviceAccess;
|
|
167
|
-
},
|
|
168
|
-
set deviceAccess(val) {
|
|
169
|
-
this._deviceAccess = val;
|
|
170
|
-
},
|
|
171
|
-
|
|
172
|
-
_bidderSequence: DEFAULT_BIDDER_SEQUENCE,
|
|
173
|
-
get bidderSequence() {
|
|
174
|
-
return this._bidderSequence;
|
|
175
|
-
},
|
|
176
|
-
set bidderSequence(val) {
|
|
177
|
-
if (VALID_ORDERS[val]) {
|
|
178
|
-
this._bidderSequence = val;
|
|
179
|
-
} else {
|
|
180
|
-
logWarn(`Invalid order: ${val}. Bidder Sequence was not set.`);
|
|
181
|
-
}
|
|
182
|
-
},
|
|
153
|
+
deviceAccess: DEFAULT_DEVICE_ACCESS,
|
|
183
154
|
|
|
184
155
|
// timeout buffer to adjust for bidder CDN latency
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
return this._timeoutBuffer;
|
|
188
|
-
},
|
|
189
|
-
set timeoutBuffer(val) {
|
|
190
|
-
this._timeoutBuffer = val;
|
|
191
|
-
},
|
|
192
|
-
|
|
193
|
-
_disableAjaxTimeout: DEFAULT_DISABLE_AJAX_TIMEOUT,
|
|
194
|
-
get disableAjaxTimeout() {
|
|
195
|
-
return this._disableAjaxTimeout;
|
|
196
|
-
},
|
|
197
|
-
set disableAjaxTimeout(val) {
|
|
198
|
-
this._disableAjaxTimeout = val;
|
|
199
|
-
},
|
|
156
|
+
timeoutBuffer: DEFAULT_TIMEOUTBUFFER,
|
|
157
|
+
disableAjaxTimeout: DEFAULT_DISABLE_AJAX_TIMEOUT,
|
|
200
158
|
|
|
201
159
|
// default max nested iframes for referer detection
|
|
202
|
-
|
|
203
|
-
get maxNestedIframes() {
|
|
204
|
-
return this._maxNestedIframes;
|
|
205
|
-
},
|
|
206
|
-
set maxNestedIframes(val) {
|
|
207
|
-
this._maxNestedIframes = val;
|
|
208
|
-
},
|
|
209
|
-
|
|
210
|
-
_auctionOptions: {},
|
|
211
|
-
get auctionOptions() {
|
|
212
|
-
return this._auctionOptions;
|
|
213
|
-
},
|
|
214
|
-
set auctionOptions(val) {
|
|
215
|
-
if (validateauctionOptions(val)) {
|
|
216
|
-
this._auctionOptions = val;
|
|
217
|
-
}
|
|
218
|
-
},
|
|
160
|
+
maxNestedIframes: DEFAULT_MAX_NESTED_IFRAMES,
|
|
219
161
|
};
|
|
220
162
|
|
|
163
|
+
Object.defineProperties(newConfig,
|
|
164
|
+
Object.fromEntries(Object.entries(props)
|
|
165
|
+
.map(([k, def]) => [k, Object.assign({
|
|
166
|
+
get: getProp.bind(null, k),
|
|
167
|
+
set: setProp.bind(null, k),
|
|
168
|
+
enumerable: true,
|
|
169
|
+
}, def)]))
|
|
170
|
+
);
|
|
171
|
+
|
|
221
172
|
if (config) {
|
|
222
173
|
callSubscribers(
|
|
223
174
|
Object.keys(config).reduce((memo, topic) => {
|
|
@@ -332,15 +332,16 @@ describe('1plusXRtdProvider', () => {
|
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
it('correctly builds URLs if gdpr parameters are present', () => {
|
|
335
|
-
const url1 = getPapiUrl(customer)
|
|
336
|
-
const url2 = getPapiUrl(customer, extractConsent(consent))
|
|
337
|
-
expect(['&consent_string=myConsent&gdpr_applies=1', '&gdpr_applies=1&consent_string=myConsent']).to.contain(url2.replace(url1, ''))
|
|
335
|
+
const url1 = getPapiUrl(customer);
|
|
336
|
+
const url2 = getPapiUrl(customer, extractConsent(consent));
|
|
337
|
+
expect(['&consent_string=myConsent&gdpr_applies=1', '&gdpr_applies=1&consent_string=myConsent']).to.contain(url2.replace(url1, ''));
|
|
338
338
|
})
|
|
339
339
|
|
|
340
|
-
it('correctly builds URLs if fpid parameters are present')
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
340
|
+
it('correctly builds URLs if fpid parameters are present', () => {
|
|
341
|
+
const url1 = getPapiUrl(customer);
|
|
342
|
+
const url2 = getPapiUrl(customer, {}, 'my_first_party_id');
|
|
343
|
+
expect(url2.replace(url1, '')).to.equal('&fpid=my_first_party_id');
|
|
344
|
+
})
|
|
344
345
|
})
|
|
345
346
|
|
|
346
347
|
describe('updateBidderConfig', () => {
|
|
@@ -1481,31 +1481,6 @@ describe('Adagio bid adapter', () => {
|
|
|
1481
1481
|
});
|
|
1482
1482
|
});
|
|
1483
1483
|
|
|
1484
|
-
describe.skip('optional params auto detection', function() {
|
|
1485
|
-
it('should auto detect adUnitElementId when GPT is used', function() {
|
|
1486
|
-
sandbox.stub(utils, 'getGptSlotInfoForAdUnitCode').withArgs('banner').returns({divId: 'gpt-banner'});
|
|
1487
|
-
expect(adagio.autoDetectAdUnitElementId('banner')).to.eq('gpt-banner');
|
|
1488
|
-
});
|
|
1489
|
-
});
|
|
1490
|
-
|
|
1491
|
-
describe.skip('print number handling', function() {
|
|
1492
|
-
it('should return 1 if no adunit-code found. This means it is the first auction', function() {
|
|
1493
|
-
sandbox.stub(adagio, 'getPageviewId').returns('abc-def');
|
|
1494
|
-
expect(adagio.computePrintNumber('adunit-code')).to.eql(1);
|
|
1495
|
-
});
|
|
1496
|
-
|
|
1497
|
-
it('should increment the adunit print number when the adunit-code has already been used for an other auction', function() {
|
|
1498
|
-
sandbox.stub(adagio, 'getPageviewId').returns('abc-def');
|
|
1499
|
-
|
|
1500
|
-
window.top.ADAGIO.adUnits['adunit-code'] = {
|
|
1501
|
-
pageviewId: 'abc-def',
|
|
1502
|
-
printNumber: 1,
|
|
1503
|
-
};
|
|
1504
|
-
|
|
1505
|
-
expect(adagio.computePrintNumber('adunit-code')).to.eql(2);
|
|
1506
|
-
});
|
|
1507
|
-
});
|
|
1508
|
-
|
|
1509
1484
|
describe('site information using refererDetection or window.top', function() {
|
|
1510
1485
|
it('should returns domain, page and window.referrer in a window.top context', function() {
|
|
1511
1486
|
const bidderRequest = new BidderRequestBuilder({
|
|
@@ -3,7 +3,7 @@ import {spec, storage} from 'modules/admaticBidAdapter.js';
|
|
|
3
3
|
import {newBidder} from 'src/adapters/bidderFactory.js';
|
|
4
4
|
import {getStorageManager} from 'src/storageManager';
|
|
5
5
|
|
|
6
|
-
const ENDPOINT = 'https://layer.serve.admatic.com.tr/pb
|
|
6
|
+
const ENDPOINT = 'https://layer.serve.admatic.com.tr/pb';
|
|
7
7
|
|
|
8
8
|
describe('admaticBidAdapter', () => {
|
|
9
9
|
const adapter = newBidder(spec);
|
|
@@ -8,6 +8,7 @@ import { getStorageManager } from 'src/storageManager.js';
|
|
|
8
8
|
|
|
9
9
|
describe('adnuntiusBidAdapter', function () {
|
|
10
10
|
const URL = 'https://ads.adnuntius.delivery/i?tzo=';
|
|
11
|
+
const EURO_URL = 'https://europe.delivery.adnuntius.com/i?tzo=';
|
|
11
12
|
const GVLID = 855;
|
|
12
13
|
const usi = utils.generateUUID()
|
|
13
14
|
const meta = [{ key: 'usi', value: usi }]
|
|
@@ -35,7 +36,7 @@ describe('adnuntiusBidAdapter', function () {
|
|
|
35
36
|
const ENDPOINT_URL_VIDEO = `${URL}${tzo}&format=json&userId=${usi}&tt=vast4`;
|
|
36
37
|
const ENDPOINT_URL_NOCOOKIE = `${URL}${tzo}&format=json&userId=${usi}&noCookies=true`;
|
|
37
38
|
const ENDPOINT_URL_SEGMENTS = `${URL}${tzo}&format=json&segments=segment1,segment2,segment3&userId=${usi}`;
|
|
38
|
-
const ENDPOINT_URL_CONSENT = `${
|
|
39
|
+
const ENDPOINT_URL_CONSENT = `${EURO_URL}${tzo}&format=json&consentString=consentString&userId=${usi}`;
|
|
39
40
|
const adapter = newBidder(spec);
|
|
40
41
|
|
|
41
42
|
const bidderRequests = [
|