prebid.js 7.44.0 → 7.45.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/acuityAdsBidAdapter.js +1 -1
- package/dist/adagioBidAdapter.js +1 -1
- package/dist/adbookpspBidAdapter.js +1 -1
- package/dist/adgenerationBidAdapter.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/appushBidAdapter.js +1 -1
- package/dist/asoBidAdapter.js +1 -1
- package/dist/axonixBidAdapter.js +1 -1
- package/dist/beyondmediaBidAdapter.js +1 -1
- package/dist/bidglassBidAdapter.js +1 -1
- package/dist/big-richmediaBidAdapter.js +1 -1
- package/dist/braveBidAdapter.js +1 -1
- package/dist/bridgewellBidAdapter.js +1 -1
- package/dist/brightMountainMediaBidAdapter.js +1 -1
- package/dist/brightcomBidAdapter.js +1 -1
- package/dist/brightcomSSPBidAdapter.js +1 -1
- package/dist/carodaBidAdapter.js +1 -1
- package/dist/chtnwBidAdapter.js +1 -1
- package/dist/coinzillaBidAdapter.js +1 -1
- package/dist/compassBidAdapter.js +1 -1
- package/dist/concertBidAdapter.js +1 -1
- package/dist/connectIdSystem.js +1 -1
- package/dist/connectadBidAdapter.js +1 -1
- package/dist/consumableBidAdapter.js +1 -1
- package/dist/contentexchangeBidAdapter.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/cwireBidAdapter.js +1 -1
- package/dist/dependencies.json +12 -0
- package/dist/domainOverrideToRootDomain.js +1 -0
- package/dist/dspxBidAdapter.js +1 -1
- package/dist/eplanningBidAdapter.js +1 -1
- 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/globalsunBidAdapter.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/gridNMBidAdapter.js +1 -1
- package/dist/growthCodeIdSystem.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/iqzoneBidAdapter.js +1 -1
- package/dist/ivsBidAdapter.js +1 -0
- package/dist/ixBidAdapter.js +1 -1
- package/dist/justpremiumBidAdapter.js +1 -1
- package/dist/jwplayerVideoProvider.js +1 -1
- package/dist/kargoBidAdapter.js +1 -1
- package/dist/koblerBidAdapter.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/liveyieldAnalyticsAdapter.js +1 -1
- package/dist/logicadBidAdapter.js +1 -1
- package/dist/loglyliftBidAdapter.js +1 -1
- package/dist/luponmediaBidAdapter.js +1 -1
- package/dist/magniteAnalyticsAdapter.js +1 -1
- package/dist/malltvAnalyticsAdapter.js +1 -1
- package/dist/marsmediaBidAdapter.js +1 -1
- package/dist/mathildeadsBidAdapter.js +1 -1
- package/dist/mediafuseBidAdapter.js +1 -1
- package/dist/medianetBidAdapter.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/nexx360BidAdapter.js +1 -1
- package/dist/not-for-prod/prebid.js +158 -156
- package/dist/oguryBidAdapter.js +1 -1
- package/dist/onetagBidAdapter.js +1 -1
- package/dist/onomagicBidAdapter.js +1 -1
- package/dist/ooloAnalyticsAdapter.js +1 -1
- package/dist/openxBidAdapter.js +1 -1
- package/dist/openxOrtbBidAdapter.js +1 -1
- package/dist/operaadsBidAdapter.js +1 -1
- package/dist/optidigitalBidAdapter.js +1 -1
- package/dist/outbrainBidAdapter.js +1 -1
- 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/pubxBidAdapter.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/rubiconAnalyticsAdapter.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/smaatoBidAdapter.js +1 -1
- package/dist/smartadserverBidAdapter.js +1 -1
- package/dist/smarthubBidAdapter.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/truereachBidAdapter.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/videoheroesBidAdapter.js +1 -1
- package/dist/vidoomyBidAdapter.js +1 -1
- package/dist/visiblemeasuresBidAdapter.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/yieldoneBidAdapter.js +1 -1
- package/libraries/domainOverrideToRootDomain/index.js +39 -0
- package/modules/acuityAdsBidAdapter.js +1 -1
- package/modules/amxBidAdapter.js +1 -1
- package/modules/amxIdSystem.js +23 -20
- package/modules/amxIdSystem.md +7 -7
- package/modules/appushBidAdapter.js +1 -1
- package/modules/beyondmediaBidAdapter.js +1 -1
- package/modules/braveBidAdapter.js +1 -1
- package/modules/brightcomBidAdapter.js +1 -1
- package/modules/brightcomSSPBidAdapter.js +1 -1
- package/modules/coinzillaBidAdapter.js +1 -2
- package/modules/compassBidAdapter.js +1 -1
- package/modules/connectIdSystem.js +96 -21
- package/modules/connectIdSystem.md +6 -5
- package/modules/contentexchangeBidAdapter.js +1 -1
- package/modules/freewheel-sspBidAdapter.js +8 -0
- package/modules/glimpseBidAdapter.js +1 -2
- package/modules/globalsunBidAdapter.js +1 -1
- package/modules/gridBidAdapter.js +1 -1
- package/modules/gridNMBidAdapter.js +1 -1
- package/modules/growthCodeIdSystem.js +18 -15
- package/modules/gumgumBidAdapter.js +1 -1
- package/modules/iqzoneBidAdapter.js +1 -1
- package/modules/ivsBidAdapter.js +85 -0
- package/modules/ivsBidAdapter.md +34 -0
- package/modules/ixBidAdapter.js +42 -105
- package/modules/jwplayerVideoProvider.js +25 -32
- package/modules/koblerBidAdapter.js +1 -2
- package/modules/kueezBidAdapter.js +1 -1
- package/modules/liveIntentIdSystem.js +8 -0
- package/modules/luponmediaBidAdapter.js +1 -1
- package/modules/magniteAnalyticsAdapter.js +76 -3
- package/modules/mathildeadsBidAdapter.js +1 -1
- package/modules/medianetBidAdapter.js +1 -1
- package/modules/mgidBidAdapter.js +178 -26
- package/modules/minutemediaBidAdapter.js +1 -1
- package/modules/oguryBidAdapter.js +3 -2
- package/modules/onomagicBidAdapter.js +1 -2
- package/modules/openxBidAdapter.js +192 -563
- package/modules/openxBidAdapter.md +22 -20
- package/modules/openxOrtbBidAdapter.js +13 -11
- package/modules/openxOrtbBidAdapter.md +5 -3
- package/modules/operaadsBidAdapter.js +1 -1
- package/modules/pubmaticBidAdapter.js +1 -1
- package/modules/pubxBidAdapter.js +5 -2
- package/modules/riseBidAdapter.js +1 -1
- package/modules/sharedIdSystem.js +4 -27
- package/modules/sharethroughBidAdapter.js +1 -1
- package/modules/shinezBidAdapter.js +1 -1
- package/modules/smarthubBidAdapter.js +1 -1
- package/modules/synacormediaBidAdapter.js +1 -3
- package/modules/truereachBidAdapter.js +1 -2
- package/modules/userId/eids.js +18 -0
- package/modules/userId/eids.md +16 -0
- package/modules/videoheroesBidAdapter.js +1 -1
- package/modules/vidoomyBidAdapter.js +22 -1
- package/modules/visiblemeasuresBidAdapter.js +1 -1
- package/modules/vrtcalBidAdapter.js +1 -1
- package/modules/yieldoneBidAdapter.js +1 -1
- package/package.json +1 -1
- package/src/Renderer.js +2 -1
- package/src/native.js +5 -1
- package/test/spec/auctionmanager_spec.js +2 -2
- package/test/spec/libraries/domainOverrideToRootDomain/index_spec.js +77 -0
- package/test/spec/modules/acuityAdsBidAdapter_spec.js +2 -1
- package/test/spec/modules/amxIdSystem_spec.js +13 -26
- package/test/spec/modules/appushBidAdapter_spec.js +2 -1
- package/test/spec/modules/beyondmediaBidAdapter_spec.js +2 -1
- package/test/spec/modules/compassBidAdapter_spec.js +2 -1
- package/test/spec/modules/connectIdSystem_spec.js +420 -242
- package/test/spec/modules/contentexchangeBidAdapter_spec.js +2 -1
- package/test/spec/modules/eids_spec.js +30 -0
- package/test/spec/modules/freewheel-sspBidAdapter_spec.js +37 -0
- package/test/spec/modules/globalsunBidAdapter_spec.js +2 -1
- package/test/spec/modules/iqzoneBidAdapter_spec.js +2 -1
- package/test/spec/modules/ivsBidAdapter_spec.js +197 -0
- package/test/spec/modules/ixBidAdapter_spec.js +84 -71
- package/test/spec/modules/koblerBidAdapter_spec.js +0 -20
- package/test/spec/modules/liveIntentIdSystem_spec.js +10 -0
- package/test/spec/modules/luponmediaBidAdapter_spec.js +1 -1
- package/test/spec/modules/magniteAnalyticsAdapter_spec.js +129 -1
- package/test/spec/modules/mathildeadsBidAdapter_spec.js +2 -1
- package/test/spec/modules/mgidBidAdapter_spec.js +184 -36
- package/test/spec/modules/oguryBidAdapter_spec.js +19 -4
- package/test/spec/modules/openxBidAdapter_spec.js +1157 -1936
- package/test/spec/modules/openxOrtbBidAdapter_spec.js +12 -39
- package/test/spec/modules/pubxBidAdapter_spec.js +10 -2
- package/test/spec/modules/sharedIdSystem_spec.js +0 -46
- package/test/spec/modules/sharethroughBidAdapter_spec.js +2 -1
- package/test/spec/modules/smarthubBidAdapter_spec.js +2 -1
- package/test/spec/modules/synacormediaBidAdapter_spec.js +0 -26
- package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +17 -4
- package/test/spec/modules/vidoomyBidAdapter_spec.js +35 -0
- package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +2 -1
- package/test/spec/modules/vrtcalBidAdapter_spec.js +3 -2
- package/test/spec/renderer_spec.js +1 -2
|
@@ -79,7 +79,8 @@ describe('ContentexchangeBidAdapter', function () {
|
|
|
79
79
|
gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
|
|
80
80
|
refererInfo: {
|
|
81
81
|
referer: 'https://test.com'
|
|
82
|
-
}
|
|
82
|
+
},
|
|
83
|
+
timeout: 500
|
|
83
84
|
};
|
|
84
85
|
|
|
85
86
|
describe('isBidRequestValid', function () {
|
|
@@ -172,6 +172,36 @@ describe('eids array generation for known sub-modules', function() {
|
|
|
172
172
|
});
|
|
173
173
|
});
|
|
174
174
|
|
|
175
|
+
it('bidswitch', function() {
|
|
176
|
+
const userId = {
|
|
177
|
+
bidswitch: {'id': 'sample_id'}
|
|
178
|
+
};
|
|
179
|
+
const newEids = createEidsArray(userId);
|
|
180
|
+
expect(newEids.length).to.equal(1);
|
|
181
|
+
expect(newEids[0]).to.deep.equal({
|
|
182
|
+
source: 'bidswitch.net',
|
|
183
|
+
uids: [{
|
|
184
|
+
id: 'sample_id',
|
|
185
|
+
atype: 3
|
|
186
|
+
}]
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
it('medianet', function() {
|
|
191
|
+
const userId = {
|
|
192
|
+
medianet: {'id': 'sample_id'}
|
|
193
|
+
};
|
|
194
|
+
const newEids = createEidsArray(userId);
|
|
195
|
+
expect(newEids.length).to.equal(1);
|
|
196
|
+
expect(newEids[0]).to.deep.equal({
|
|
197
|
+
source: 'media.net',
|
|
198
|
+
uids: [{
|
|
199
|
+
id: 'sample_id',
|
|
200
|
+
atype: 3
|
|
201
|
+
}]
|
|
202
|
+
});
|
|
203
|
+
});
|
|
204
|
+
|
|
175
205
|
it('liveIntentId; getValue call and NO ext', function() {
|
|
176
206
|
const userId = {
|
|
177
207
|
lipb: {
|
|
@@ -252,6 +252,13 @@ describe('freewheelSSP BidAdapter Test', () => {
|
|
|
252
252
|
}
|
|
253
253
|
];
|
|
254
254
|
|
|
255
|
+
it('should return context and placement with default values', () => {
|
|
256
|
+
const request = spec.buildRequests(bidRequests);
|
|
257
|
+
const payload = request[0].data;
|
|
258
|
+
expect(payload.video_context).to.equal('instream'); ;
|
|
259
|
+
expect(payload.video_placement).to.equal(1);
|
|
260
|
+
});
|
|
261
|
+
|
|
255
262
|
it('should add parameters to the tag', () => {
|
|
256
263
|
const request = spec.buildRequests(bidRequests);
|
|
257
264
|
const payload = request[0].data;
|
|
@@ -319,6 +326,36 @@ describe('freewheelSSP BidAdapter Test', () => {
|
|
|
319
326
|
});
|
|
320
327
|
})
|
|
321
328
|
|
|
329
|
+
describe('buildRequestsForVideoWithContextAndPlacement', () => {
|
|
330
|
+
let bidRequests = [
|
|
331
|
+
{
|
|
332
|
+
'bidder': 'freewheel-ssp',
|
|
333
|
+
'params': {
|
|
334
|
+
'zoneId': '277225'
|
|
335
|
+
},
|
|
336
|
+
'adUnitCode': 'adunit-code',
|
|
337
|
+
'mediaTypes': {
|
|
338
|
+
'video': {
|
|
339
|
+
'context': 'outstream',
|
|
340
|
+
'placement': 2,
|
|
341
|
+
'playerSize': [300, 600],
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
'sizes': [[300, 250], [300, 600]],
|
|
345
|
+
'bidId': '30b31c1838de1e',
|
|
346
|
+
'bidderRequestId': '22edbae2733bf6',
|
|
347
|
+
'auctionId': '1d1a030790a475',
|
|
348
|
+
}
|
|
349
|
+
];
|
|
350
|
+
|
|
351
|
+
it('should return input context and placement', () => {
|
|
352
|
+
const request = spec.buildRequests(bidRequests);
|
|
353
|
+
const payload = request[0].data;
|
|
354
|
+
expect(payload.video_context).to.equal('outstream'); ;
|
|
355
|
+
expect(payload.video_placement).to.equal(2);
|
|
356
|
+
});
|
|
357
|
+
})
|
|
358
|
+
|
|
322
359
|
describe('interpretResponseForBanner', () => {
|
|
323
360
|
let bidRequests = [
|
|
324
361
|
{
|
|
@@ -76,7 +76,8 @@ describe('GlobalsunBidAdapter', function () {
|
|
|
76
76
|
gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
|
|
77
77
|
refererInfo: {
|
|
78
78
|
referer: 'https://test.com'
|
|
79
|
-
}
|
|
79
|
+
},
|
|
80
|
+
timeout: 500
|
|
80
81
|
};
|
|
81
82
|
|
|
82
83
|
describe('isBidRequestValid', function () {
|
|
@@ -76,7 +76,8 @@ describe('IQZoneBidAdapter', function () {
|
|
|
76
76
|
gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
|
|
77
77
|
refererInfo: {
|
|
78
78
|
referer: 'https://test.com'
|
|
79
|
-
}
|
|
79
|
+
},
|
|
80
|
+
timeout: 500
|
|
80
81
|
};
|
|
81
82
|
|
|
82
83
|
describe('isBidRequestValid', function () {
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { spec, converter } from 'modules/ivsBidAdapter.js';
|
|
2
|
+
import { assert } from 'chai';
|
|
3
|
+
import { deepClone } from '../../../src/utils';
|
|
4
|
+
|
|
5
|
+
describe('ivsBidAdapter', function () {
|
|
6
|
+
describe('isBidRequestValid()', function () {
|
|
7
|
+
let validBid = {
|
|
8
|
+
bidder: 'ivs',
|
|
9
|
+
mediaTypes: {
|
|
10
|
+
video: {
|
|
11
|
+
context: 'instream',
|
|
12
|
+
playerSize: [640, 480],
|
|
13
|
+
mimes: ['video/mp4']
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
params: {
|
|
17
|
+
bidderDomain: 'https://www.example.com',
|
|
18
|
+
publisherId: '3001234'
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
it('should return true for a valid bid', function () {
|
|
23
|
+
assert.isTrue(spec.isBidRequestValid(validBid));
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('should return false if publisherId info is missing', function () {
|
|
27
|
+
let bid = deepClone(validBid);
|
|
28
|
+
delete bid.params.publisherId;
|
|
29
|
+
assert.isFalse(spec.isBidRequestValid(bid));
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('should return false for empty video parameters', function () {
|
|
33
|
+
let bid = deepClone(validBid);
|
|
34
|
+
delete bid.mediaTypes.video;
|
|
35
|
+
assert.isFalse(spec.isBidRequestValid(bid));
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('should return false for non instream context', function () {
|
|
39
|
+
let bid = deepClone(validBid);
|
|
40
|
+
bid.mediaTypes.video.context = 'outstream';
|
|
41
|
+
assert.isFalse(spec.isBidRequestValid(bid));
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe('buildRequests()', function () {
|
|
46
|
+
let validBidRequests, validBidderRequest;
|
|
47
|
+
|
|
48
|
+
beforeEach(function () {
|
|
49
|
+
validBidRequests = [{
|
|
50
|
+
bidder: 'ivs',
|
|
51
|
+
mediaTypes: {
|
|
52
|
+
video: {
|
|
53
|
+
context: 'instream',
|
|
54
|
+
playerSize: [640, 480],
|
|
55
|
+
mimes: ['video/mp4']
|
|
56
|
+
},
|
|
57
|
+
adUnitCode: 'video1',
|
|
58
|
+
transactionId: '1f420478-a3cd-452d-8e33-ac851e7bfba6',
|
|
59
|
+
bidId: '2d986cea00fd01',
|
|
60
|
+
bidderRequestId: '1022d594d79bf5',
|
|
61
|
+
auctionId: '835eacc9-cfe7-4fa2-8738-ab4b5c4f26d2'
|
|
62
|
+
},
|
|
63
|
+
params: {
|
|
64
|
+
bidderDomain: 'https://www.example.com',
|
|
65
|
+
publisherId: '3001234'
|
|
66
|
+
}
|
|
67
|
+
}];
|
|
68
|
+
|
|
69
|
+
validBidderRequest = {
|
|
70
|
+
bidderCode: 'ivs',
|
|
71
|
+
auctionId: '409bd13d-d0be-43c4-9c4f-e6f81ecff475',
|
|
72
|
+
bidderRequestId: '17bfe74bd98e68',
|
|
73
|
+
refererInfo: {
|
|
74
|
+
domain: 'example.com',
|
|
75
|
+
page: 'https://www.example.com/test.html',
|
|
76
|
+
},
|
|
77
|
+
bids: [{
|
|
78
|
+
bidder: 'ivs',
|
|
79
|
+
params: {
|
|
80
|
+
publisherId: '3001234'
|
|
81
|
+
},
|
|
82
|
+
mediaTypes: {
|
|
83
|
+
video: {
|
|
84
|
+
context: 'instream',
|
|
85
|
+
playerSize: [[640, 480]],
|
|
86
|
+
mimes: ['video/mp4']
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
adUnitCode: 'video1',
|
|
90
|
+
transactionId: '91b1977f-d05c-45c3-af1f-69b4e7d11e86',
|
|
91
|
+
sizes: [
|
|
92
|
+
[640, 480]
|
|
93
|
+
],
|
|
94
|
+
}],
|
|
95
|
+
ortb2: {
|
|
96
|
+
site: {
|
|
97
|
+
publisher: {
|
|
98
|
+
domain: 'example.com',
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it('should return a validate bid request', function () {
|
|
106
|
+
const bidRequest = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
107
|
+
assert.equal(bidRequest.method, 'POST');
|
|
108
|
+
assert.deepEqual(bidRequest.options, { contentType: 'application/json' });
|
|
109
|
+
assert.ok(bidRequest.data);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('should contain the required parameters', function () {
|
|
113
|
+
const bidRequest = spec.buildRequests(validBidRequests, validBidderRequest);
|
|
114
|
+
const bidderRequest = bidRequest.data;
|
|
115
|
+
assert.equal(bidderRequest.id, validBidderRequest.auctionId);
|
|
116
|
+
assert.ok(bidderRequest.site);
|
|
117
|
+
assert.ok(bidderRequest.source);
|
|
118
|
+
assert.lengthOf(bidderRequest.imp, 1);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
describe('interpretResponse()', function () {
|
|
123
|
+
let serverResponse, bidderRequest, request;
|
|
124
|
+
|
|
125
|
+
beforeEach(function () {
|
|
126
|
+
serverResponse = {
|
|
127
|
+
body: {
|
|
128
|
+
id: '635ba1ed-68ba-47b4-bcec-4a86565f25f9',
|
|
129
|
+
seatbid: [{
|
|
130
|
+
bid: [{
|
|
131
|
+
crid: 3715,
|
|
132
|
+
id: 'bca9823d-ca7a-4dac-b292-0e1fae5948f8',
|
|
133
|
+
impid: '200d1ca23b15a6',
|
|
134
|
+
price: 1.5,
|
|
135
|
+
nurl: 'https://a.ivstracker.net/dev/getvastxml?ad_creativeid=3715&domain=localhost%3A9999&ip=136.158.51.114&pageurl=http%3A%2F%2Flocalhost%3A9999%2Ftest%2Fpages%2Fivs.html&spid=3001234&adplacement=&brand=unknown&device=desktop&adsclientid=A45-fd46289e-dc60-4be2-a637-4bc8eb953ddf&clientid=3b5e435f-0351-4ba0-bd2d-8d6f3454c5ed&uastring=Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F109.0.0.0%20Safari%2F537.36'
|
|
136
|
+
}]
|
|
137
|
+
}],
|
|
138
|
+
cur: 'USD'
|
|
139
|
+
},
|
|
140
|
+
headers: {}
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
bidderRequest = {
|
|
144
|
+
bidderCode: 'ivs',
|
|
145
|
+
auctionId: '635ba1ed-68ba-47b4-bcec-4a86565f25f9',
|
|
146
|
+
bidderRequestId: '1def3e1d03f5a',
|
|
147
|
+
bids: [{
|
|
148
|
+
bidder: 'ivs',
|
|
149
|
+
params: {
|
|
150
|
+
publisherId: '3001234'
|
|
151
|
+
},
|
|
152
|
+
mediaTypes: {
|
|
153
|
+
video: {
|
|
154
|
+
context: 'instream',
|
|
155
|
+
playerSize: [
|
|
156
|
+
[640, 480]
|
|
157
|
+
],
|
|
158
|
+
mimes: ['video/mp4']
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
adUnitCode: 'video1',
|
|
162
|
+
transactionId: '89e5a3e7-df30-4ed6-a130-edfa91941e67',
|
|
163
|
+
bidId: '200d1ca23b15a6',
|
|
164
|
+
bidderRequestId: '1def3e1d03f5a',
|
|
165
|
+
auctionId: '635ba1ed-68ba-47b4-bcec-4a86565f25f9'
|
|
166
|
+
}],
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
request = { data: converter.toORTB({ bidderRequest }) };
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
if (FEATURES.VIDEO) {
|
|
173
|
+
it('should match parsed server response', function () {
|
|
174
|
+
const results = spec.interpretResponse(serverResponse, request);
|
|
175
|
+
const expected = {
|
|
176
|
+
mediaType: 'video',
|
|
177
|
+
playerWidth: 640,
|
|
178
|
+
playerHeight: 480,
|
|
179
|
+
vastUrl: 'https://a.ivstracker.net/dev/getvastxml?ad_creativeid=3715&domain=localhost%3A9999&ip=136.158.51.114&pageurl=http%3A%2F%2Flocalhost%3A9999%2Ftest%2Fpages%2Fivs.html&spid=3001234&adplacement=&brand=unknown&device=desktop&adsclientid=A45-fd46289e-dc60-4be2-a637-4bc8eb953ddf&clientid=3b5e435f-0351-4ba0-bd2d-8d6f3454c5ed&uastring=Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F109.0.0.0%20Safari%2F537.36',
|
|
180
|
+
requestId: '200d1ca23b15a6',
|
|
181
|
+
seatBidId: 'bca9823d-ca7a-4dac-b292-0e1fae5948f8',
|
|
182
|
+
cpm: 1.5,
|
|
183
|
+
currency: 'USD',
|
|
184
|
+
creativeId: 3715,
|
|
185
|
+
ttl: 360,
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
expect(results.length).to.equal(1);
|
|
189
|
+
sinon.assert.match(results[0], expected);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
it('should return empty when no response', function () {
|
|
194
|
+
assert.ok(!spec.interpretResponse({}, request));
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
});
|
|
@@ -2,14 +2,14 @@ import * as utils from 'src/utils.js';
|
|
|
2
2
|
import { config } from 'src/config.js';
|
|
3
3
|
import { expect } from 'chai';
|
|
4
4
|
import { newBidder } from 'src/adapters/bidderFactory.js';
|
|
5
|
-
import { spec, storage, ERROR_CODES, FEATURE_TOGGLES, LOCAL_STORAGE_FEATURE_TOGGLES_KEY } from '../../../modules/ixBidAdapter.js';
|
|
5
|
+
import { spec, storage, ERROR_CODES, FEATURE_TOGGLES, LOCAL_STORAGE_FEATURE_TOGGLES_KEY, REQUESTED_FEATURE_TOGGLES } from '../../../modules/ixBidAdapter.js';
|
|
6
6
|
import { createEidsArray } from 'modules/userId/eids.js';
|
|
7
7
|
import { deepAccess, deepClone } from '../../../src/utils.js';
|
|
8
8
|
|
|
9
9
|
describe('IndexexchangeAdapter', function () {
|
|
10
10
|
const IX_SECURE_ENDPOINT = 'https://htlb.casalemedia.com/openrtb/pbjs';
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
|
|
12
|
+
FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = ['test1', 'test2'];
|
|
13
13
|
|
|
14
14
|
const SAMPLE_SCHAIN = {
|
|
15
15
|
'ver': '1.0',
|
|
@@ -1669,27 +1669,6 @@ describe('IndexexchangeAdapter', function () {
|
|
|
1669
1669
|
expect(r.user.testProperty).to.be.undefined;
|
|
1670
1670
|
});
|
|
1671
1671
|
|
|
1672
|
-
it('should not add fpd data to r object if it exceeds maximum request', function () {
|
|
1673
|
-
const ortb2 = {
|
|
1674
|
-
site: {
|
|
1675
|
-
keywords: 'power tools, drills',
|
|
1676
|
-
search: 'drill',
|
|
1677
|
-
},
|
|
1678
|
-
user: {
|
|
1679
|
-
keywords: Array(1200).join('#'),
|
|
1680
|
-
}
|
|
1681
|
-
};
|
|
1682
|
-
|
|
1683
|
-
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
1684
|
-
bid.mediaTypes.banner.sizes = LARGE_SET_OF_SIZES;
|
|
1685
|
-
|
|
1686
|
-
const request = spec.buildRequests([bid], { ortb2 })[0];
|
|
1687
|
-
const r = extractPayload(request);
|
|
1688
|
-
|
|
1689
|
-
expect(r.site.ref).to.exist;
|
|
1690
|
-
expect(r.site.keywords).to.be.undefined;
|
|
1691
|
-
expect(r.user).to.be.undefined;
|
|
1692
|
-
});
|
|
1693
1672
|
it('should set gpp and gpp_sid field when defined', function () {
|
|
1694
1673
|
const request = spec.buildRequests(DEFAULT_BANNER_VALID_BID, { ortb2: {regs: {gpp: 'gpp', gpp_sid: [1]}} })[0];
|
|
1695
1674
|
const r = extractPayload(request);
|
|
@@ -2273,7 +2252,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2273
2252
|
expect(requests[0].data.sn).to.be.undefined;
|
|
2274
2253
|
});
|
|
2275
2254
|
|
|
2276
|
-
it('
|
|
2255
|
+
it('1 request, one larger than url size, no splitting', function () {
|
|
2277
2256
|
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
2278
2257
|
bid.mediaTypes.banner.sizes = LARGE_SET_OF_SIZES;
|
|
2279
2258
|
bid.params.siteId = '124';
|
|
@@ -2283,10 +2262,10 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2283
2262
|
|
|
2284
2263
|
const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
2285
2264
|
expect(requests).to.be.an('array');
|
|
2286
|
-
expect(requests).to.have.lengthOf(
|
|
2265
|
+
expect(requests).to.have.lengthOf(1);
|
|
2287
2266
|
});
|
|
2288
2267
|
|
|
2289
|
-
it('6 ad units should generate only
|
|
2268
|
+
it('6 ad units should generate only 1 requests', function () {
|
|
2290
2269
|
const bid1 = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
2291
2270
|
bid1.mediaTypes.banner.sizes = LARGE_SET_OF_SIZES;
|
|
2292
2271
|
bid1.params.siteId = '121';
|
|
@@ -2312,7 +2291,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
2312
2291
|
const requests = spec.buildRequests([bid1, bid2, bid3, bid4, bid5, bid6], DEFAULT_OPTION);
|
|
2313
2292
|
|
|
2314
2293
|
expect(requests).to.be.an('array');
|
|
2315
|
-
expect(requests).to.have.lengthOf(
|
|
2294
|
+
expect(requests).to.have.lengthOf(1);
|
|
2316
2295
|
|
|
2317
2296
|
for (var i = 0; i < requests.length; i++) {
|
|
2318
2297
|
const reqSize = `${requests[i].url}?${utils.parseQueryStringParameters(requests[i].data)}`.length;
|
|
@@ -3611,7 +3590,7 @@ describe('IndexexchangeAdapter', function () {
|
|
|
3611
3590
|
}
|
|
3612
3591
|
}
|
|
3613
3592
|
FEATURE_TOGGLES.getFeatureToggles(LOCAL_STORAGE_FEATURE_TOGGLES_KEY);
|
|
3614
|
-
expect(FEATURE_TOGGLES.isFeatureEnabled('test')).to.be.
|
|
3593
|
+
expect(FEATURE_TOGGLES.isFeatureEnabled('test')).to.be.false;
|
|
3615
3594
|
expect(FEATURE_TOGGLES.featureToggles).to.deep.equal({});
|
|
3616
3595
|
});
|
|
3617
3596
|
|
|
@@ -3672,6 +3651,82 @@ describe('IndexexchangeAdapter', function () {
|
|
|
3672
3651
|
expect(requests).to.be.an('array');
|
|
3673
3652
|
expect(requests).to.have.lengthOf(1);
|
|
3674
3653
|
});
|
|
3654
|
+
|
|
3655
|
+
it('request should have requested feature toggles when local storage is enabled', function () {
|
|
3656
|
+
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
3657
|
+
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3658
|
+
const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3659
|
+
const r = extractPayload(requests[0]);
|
|
3660
|
+
expect(r.ext.features).to.exist;
|
|
3661
|
+
expect(Object.keys(r.ext.features).length).to.equal(FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES.length);
|
|
3662
|
+
});
|
|
3663
|
+
|
|
3664
|
+
it('request should have requested feature toggles when local storage is not enabled', function () {
|
|
3665
|
+
sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
|
|
3666
|
+
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3667
|
+
const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3668
|
+
const r = extractPayload(requests[0]);
|
|
3669
|
+
expect(r.ext.features).to.exist;
|
|
3670
|
+
expect(Object.keys(r.ext.features).length).to.equal(FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES.length);
|
|
3671
|
+
});
|
|
3672
|
+
|
|
3673
|
+
it('request should not have any feature toggles when there is no requested feature toggle', function () {
|
|
3674
|
+
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
3675
|
+
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3676
|
+
FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = []
|
|
3677
|
+
const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3678
|
+
const r = extractPayload(requests[0]);
|
|
3679
|
+
expect(r.ext.features).to.be.undefined;
|
|
3680
|
+
});
|
|
3681
|
+
|
|
3682
|
+
it('request should not have any feature toggles when there is no requested feature toggle and local storage not enabled', function () {
|
|
3683
|
+
sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
|
|
3684
|
+
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3685
|
+
const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3686
|
+
const r = extractPayload(requests[0]);
|
|
3687
|
+
FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = []
|
|
3688
|
+
expect(r.ext.features).to.be.undefined;
|
|
3689
|
+
});
|
|
3690
|
+
|
|
3691
|
+
it('correct activation status of requested feature toggles when local storage not enabled', function () {
|
|
3692
|
+
sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
|
|
3693
|
+
const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3694
|
+
FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = ['test1']
|
|
3695
|
+
const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3696
|
+
const r = extractPayload(requests[0]);
|
|
3697
|
+
expect(r.ext.features).to.deep.equal({
|
|
3698
|
+
[FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: { activated: false }
|
|
3699
|
+
});
|
|
3700
|
+
});
|
|
3701
|
+
|
|
3702
|
+
it('correct activation status of requested feature toggles', function () {
|
|
3703
|
+
sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
|
|
3704
|
+
serverResponse.body.ext.features = {
|
|
3705
|
+
[FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: {
|
|
3706
|
+
activated: true
|
|
3707
|
+
}
|
|
3708
|
+
}
|
|
3709
|
+
FEATURE_TOGGLES.setFeatureToggles(serverResponse);
|
|
3710
|
+
let bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3711
|
+
let requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3712
|
+
let r = extractPayload(requests[0]);
|
|
3713
|
+
expect(r.ext.features).to.deep.equal({
|
|
3714
|
+
[FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: { activated: true }
|
|
3715
|
+
});
|
|
3716
|
+
|
|
3717
|
+
serverResponse.body.ext.features = {
|
|
3718
|
+
[FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: {
|
|
3719
|
+
activated: false
|
|
3720
|
+
}
|
|
3721
|
+
}
|
|
3722
|
+
FEATURE_TOGGLES.setFeatureToggles(serverResponse);
|
|
3723
|
+
bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
|
|
3724
|
+
requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
|
|
3725
|
+
r = extractPayload(requests[0]);
|
|
3726
|
+
expect(r.ext.features).to.deep.equal({
|
|
3727
|
+
[FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: { activated: false }
|
|
3728
|
+
});
|
|
3729
|
+
});
|
|
3675
3730
|
});
|
|
3676
3731
|
|
|
3677
3732
|
describe('LocalStorage error codes', () => {
|
|
@@ -3751,48 +3806,6 @@ describe('IndexexchangeAdapter', function () {
|
|
|
3751
3806
|
expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.BID_FLOOR_INVALID_FORMAT]: 1 } });
|
|
3752
3807
|
});
|
|
3753
3808
|
|
|
3754
|
-
it('should log ERROR_CODES.IX_FPD_EXCEEDS_MAX_SIZE in LocalStorage when there is logError called.', () => {
|
|
3755
|
-
const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
|
|
3756
|
-
|
|
3757
|
-
config.setConfig({
|
|
3758
|
-
ix: {
|
|
3759
|
-
firstPartyData: {
|
|
3760
|
-
cd: Array(1700).join('#')
|
|
3761
|
-
}
|
|
3762
|
-
}
|
|
3763
|
-
});
|
|
3764
|
-
|
|
3765
|
-
expect(spec.isBidRequestValid(bid)).to.be.true;
|
|
3766
|
-
spec.buildRequests([bid], {});
|
|
3767
|
-
expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.IX_FPD_EXCEEDS_MAX_SIZE]: 2 } });
|
|
3768
|
-
});
|
|
3769
|
-
|
|
3770
|
-
it('should log ERROR_CODES.EXCEEDS_MAX_SIZE in LocalStorage when there is logError called.', () => {
|
|
3771
|
-
const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
|
|
3772
|
-
bid.bidderRequestId = Array(8000).join('#');
|
|
3773
|
-
|
|
3774
|
-
expect(spec.isBidRequestValid(bid)).to.be.true;
|
|
3775
|
-
spec.buildRequests([bid], {});
|
|
3776
|
-
expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.EXCEEDS_MAX_SIZE]: 2 } });
|
|
3777
|
-
});
|
|
3778
|
-
|
|
3779
|
-
it('should log ERROR_CODES.PB_FPD_EXCEEDS_MAX_SIZE in LocalStorage when there is logError called.', () => {
|
|
3780
|
-
const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
|
|
3781
|
-
const ortb2 = {
|
|
3782
|
-
site: {
|
|
3783
|
-
ext: {
|
|
3784
|
-
data: {
|
|
3785
|
-
pageType: Array(5700).join('#')
|
|
3786
|
-
}
|
|
3787
|
-
}
|
|
3788
|
-
}
|
|
3789
|
-
};
|
|
3790
|
-
|
|
3791
|
-
expect(spec.isBidRequestValid(bid)).to.be.true;
|
|
3792
|
-
spec.buildRequests([bid], { ortb2 });
|
|
3793
|
-
expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.PB_FPD_EXCEEDS_MAX_SIZE]: 2 } });
|
|
3794
|
-
});
|
|
3795
|
-
|
|
3796
3809
|
it('should log ERROR_CODES.VIDEO_DURATION_INVALID in LocalStorage when there is logError called.', () => {
|
|
3797
3810
|
const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
|
|
3798
3811
|
bid.params.video.minduration = 1;
|
|
@@ -366,26 +366,6 @@ describe('KoblerAdapter', function () {
|
|
|
366
366
|
expect(openRtbRequest.imp[1].pmp.deals[1].id).to.be.equal(dealIds2[1]);
|
|
367
367
|
});
|
|
368
368
|
|
|
369
|
-
it('should read timeout from config', function () {
|
|
370
|
-
const timeout = 4000;
|
|
371
|
-
const validBidRequests = [createValidBidRequest()];
|
|
372
|
-
// No timeout field
|
|
373
|
-
const bidderRequest = {
|
|
374
|
-
auctionId: 'c1243d83-0bed-4fdb-8c76-42b456be17d0',
|
|
375
|
-
refererInfo: {
|
|
376
|
-
page: 'example.com'
|
|
377
|
-
}
|
|
378
|
-
};
|
|
379
|
-
config.setConfig({
|
|
380
|
-
bidderTimeout: timeout
|
|
381
|
-
});
|
|
382
|
-
|
|
383
|
-
const result = spec.buildRequests(validBidRequests, bidderRequest);
|
|
384
|
-
const openRtbRequest = JSON.parse(result.data);
|
|
385
|
-
|
|
386
|
-
expect(openRtbRequest.tmax).to.be.equal(timeout);
|
|
387
|
-
});
|
|
388
|
-
|
|
389
369
|
it('should read floor price using floors module', function () {
|
|
390
370
|
const floorPriceFor580x400 = 6.5148;
|
|
391
371
|
const floorPriceForAnySize = 4.2343;
|
|
@@ -313,6 +313,16 @@ describe('LiveIntentId', function() {
|
|
|
313
313
|
expect(result).to.eql({'lipb': {'lipbid': 'foo', 'nonId': 'foo', 'uid2': 'bar'}, 'uid2': {'id': 'bar'}});
|
|
314
314
|
});
|
|
315
315
|
|
|
316
|
+
it('should decode a bidswitch id to a seperate object when present', function() {
|
|
317
|
+
const result = liveIntentIdSubmodule.decode({ nonId: 'foo', bidswitch: 'bar' });
|
|
318
|
+
expect(result).to.eql({'lipb': {'lipbid': 'foo', 'nonId': 'foo', 'bidswitch': 'bar'}, 'bidswitch': {'id': 'bar'}});
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
it('should decode a medianet id to a seperate object when present', function() {
|
|
322
|
+
const result = liveIntentIdSubmodule.decode({ nonId: 'foo', medianet: 'bar' });
|
|
323
|
+
expect(result).to.eql({'lipb': {'lipbid': 'foo', 'nonId': 'foo', 'medianet': 'bar'}, 'medianet': {'id': 'bar'}});
|
|
324
|
+
});
|
|
325
|
+
|
|
316
326
|
it('should decode values with uid2 but no nonId', function() {
|
|
317
327
|
const result = liveIntentIdSubmodule.decode({ uid2: 'bar' });
|
|
318
328
|
expect(result).to.eql({'uid2': {'id': 'bar'}});
|
|
@@ -133,7 +133,7 @@ describe('luponmediaBidAdapter', function () {
|
|
|
133
133
|
}
|
|
134
134
|
],
|
|
135
135
|
'auctionStart': 1587413920820,
|
|
136
|
-
'timeout':
|
|
136
|
+
'timeout': 1500,
|
|
137
137
|
'refererInfo': {
|
|
138
138
|
'page': 'https://novi.ba/clanak/176067/fast-car-beginner-s-guide-to-tuning-turbo-engines',
|
|
139
139
|
'reachedTop': true,
|