prebid.js 7.36.0 → 7.37.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.
Files changed (157) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/adagioBidAdapter.js +1 -1
  4. package/dist/adbookpspBidAdapter.js +1 -1
  5. package/dist/adgenerationBidAdapter.js +1 -1
  6. package/dist/adrelevantisBidAdapter.js +1 -1
  7. package/dist/adtrgtmeBidAdapter.js +1 -1
  8. package/dist/adxcgBidAdapter.js +1 -1
  9. package/dist/adyoulikeBidAdapter.js +1 -1
  10. package/dist/ajaBidAdapter.js +1 -1
  11. package/dist/amxBidAdapter.js +1 -1
  12. package/dist/amxIdSystem.js +1 -1
  13. package/dist/appierAnalyticsAdapter.js +1 -1
  14. package/dist/appnexusBidAdapter.js +1 -1
  15. package/dist/asoBidAdapter.js +1 -1
  16. package/dist/axonixBidAdapter.js +1 -1
  17. package/dist/bidglassBidAdapter.js +1 -1
  18. package/dist/big-richmediaBidAdapter.js +1 -1
  19. package/dist/bridgewellBidAdapter.js +1 -1
  20. package/dist/brightMountainMediaBidAdapter.js +1 -1
  21. package/dist/carodaBidAdapter.js +1 -1
  22. package/dist/chtnwBidAdapter.js +1 -1
  23. package/dist/concertBidAdapter.js +1 -1
  24. package/dist/connectadBidAdapter.js +1 -1
  25. package/dist/consumableBidAdapter.js +1 -1
  26. package/dist/conversantBidAdapter.js +1 -1
  27. package/dist/craftBidAdapter.js +1 -1
  28. package/dist/criteoBidAdapter.js +1 -1
  29. package/dist/cwireBidAdapter.js +1 -1
  30. package/dist/discoveryBidAdapter.js +1 -1
  31. package/dist/dspxBidAdapter.js +1 -1
  32. package/dist/eplanningBidAdapter.js +1 -1
  33. package/dist/feedadBidAdapter.js +1 -1
  34. package/dist/finativeBidAdapter.js +1 -1
  35. package/dist/glimpseBidAdapter.js +1 -1
  36. package/dist/gmosspBidAdapter.js +1 -1
  37. package/dist/goldbachBidAdapter.js +1 -1
  38. package/dist/gridBidAdapter.js +1 -1
  39. package/dist/gridNMBidAdapter.js +1 -1
  40. package/dist/gumgumBidAdapter.js +1 -1
  41. package/dist/h12mediaBidAdapter.js +1 -1
  42. package/dist/id5IdSystem.js +1 -1
  43. package/dist/improvedigitalBidAdapter.js +1 -1
  44. package/dist/incrxBidAdapter.js +1 -1
  45. package/dist/inmarBidAdapter.js +1 -1
  46. package/dist/insticatorBidAdapter.js +1 -1
  47. package/dist/ixBidAdapter.js +1 -1
  48. package/dist/justpremiumBidAdapter.js +1 -1
  49. package/dist/konduitAnalyticsAdapter.js +1 -1
  50. package/dist/kueezBidAdapter.js +1 -1
  51. package/dist/kueezRtbBidAdapter.js +1 -1
  52. package/dist/lassoBidAdapter.js +1 -1
  53. package/dist/lifestreetBidAdapter.js +1 -1
  54. package/dist/livewrappedBidAdapter.js +1 -1
  55. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  56. package/dist/logicadBidAdapter.js +1 -1
  57. package/dist/loglyliftBidAdapter.js +1 -1
  58. package/dist/magniteAnalyticsAdapter.js +1 -1
  59. package/dist/malltvAnalyticsAdapter.js +1 -1
  60. package/dist/marsmediaBidAdapter.js +1 -1
  61. package/dist/mediafuseBidAdapter.js +1 -1
  62. package/dist/mediagoBidAdapter.js +1 -1
  63. package/dist/mediasquareBidAdapter.js +1 -1
  64. package/dist/mgidBidAdapter.js +1 -1
  65. package/dist/minutemediaBidAdapter.js +1 -1
  66. package/dist/minutemediaplusBidAdapter.js +1 -0
  67. package/dist/nextMillenniumBidAdapter.js +1 -1
  68. package/dist/nexx360BidAdapter.js +1 -1
  69. package/dist/not-for-prod/prebid.js +124 -123
  70. package/dist/oguryBidAdapter.js +1 -1
  71. package/dist/onetagBidAdapter.js +1 -1
  72. package/dist/ooloAnalyticsAdapter.js +1 -1
  73. package/dist/outbrainBidAdapter.js +1 -1
  74. package/dist/parrableIdSystem.js +1 -1
  75. package/dist/pixfutureBidAdapter.js +1 -1
  76. package/dist/prebid-core.js +1 -1
  77. package/dist/prebidServerBidAdapter.js +1 -1
  78. package/dist/proxistoreBidAdapter.js +1 -1
  79. package/dist/publinkIdSystem.js +1 -1
  80. package/dist/pubmaticBidAdapter.js +1 -1
  81. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  82. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  83. package/dist/pxyzBidAdapter.js +1 -1
  84. package/dist/quantcastBidAdapter.js +1 -1
  85. package/dist/readpeakBidAdapter.js +1 -1
  86. package/dist/relaidoBidAdapter.js +1 -1
  87. package/dist/rhythmoneBidAdapter.js +1 -1
  88. package/dist/riseBidAdapter.js +1 -1
  89. package/dist/rubiconAnalyticsAdapter.js +1 -1
  90. package/dist/rubiconBidAdapter.js +1 -1
  91. package/dist/seedingAllianceBidAdapter.js +1 -1
  92. package/dist/seedtagBidAdapter.js +1 -1
  93. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  94. package/dist/sharethroughBidAdapter.js +1 -1
  95. package/dist/shinezBidAdapter.js +1 -1
  96. package/dist/smaatoBidAdapter.js +1 -1
  97. package/dist/smartadserverBidAdapter.js +1 -1
  98. package/dist/smartxBidAdapter.js +1 -1
  99. package/dist/smilewantedBidAdapter.js +1 -1
  100. package/dist/sonobiBidAdapter.js +1 -1
  101. package/dist/sovrnAnalyticsAdapter.js +1 -1
  102. package/dist/sovrnBidAdapter.js +1 -1
  103. package/dist/sspBCBidAdapter.js +1 -1
  104. package/dist/sublimeBidAdapter.js +1 -1
  105. package/dist/synacormediaBidAdapter.js +1 -1
  106. package/dist/targetVideoBidAdapter.js +1 -1
  107. package/dist/teadsBidAdapter.js +1 -1
  108. package/dist/trionBidAdapter.js +1 -1
  109. package/dist/tripleliftBidAdapter.js +1 -1
  110. package/dist/ttdBidAdapter.js +1 -1
  111. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  112. package/dist/uid2IdSystem.js +1 -1
  113. package/dist/underdogmediaBidAdapter.js +1 -1
  114. package/dist/undertoneBidAdapter.js +1 -1
  115. package/dist/vidazooBidAdapter.js +1 -1
  116. package/dist/videobyteBidAdapter.js +1 -1
  117. package/dist/visxBidAdapter.js +1 -1
  118. package/dist/vuukleBidAdapter.js +1 -1
  119. package/dist/widespaceBidAdapter.js +1 -1
  120. package/dist/winrBidAdapter.js +1 -1
  121. package/dist/yahoosspBidAdapter.js +1 -1
  122. package/dist/yieldmoBidAdapter.js +1 -1
  123. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  124. package/modules/adagioBidAdapter.js +14 -14
  125. package/modules/adagioBidAdapter.md +3 -1
  126. package/modules/criteoBidAdapter.js +4 -5
  127. package/modules/cwireBidAdapter.md +9 -3
  128. package/modules/discoveryBidAdapter.js +22 -12
  129. package/modules/incrxBidAdapter.js +2 -0
  130. package/modules/kueezRtbBidAdapter.js +54 -20
  131. package/modules/livewrappedBidAdapter.js +28 -16
  132. package/modules/mediagoBidAdapter.js +22 -17
  133. package/modules/minutemediaplusBidAdapter.js +291 -0
  134. package/modules/minutemediaplusBidAdapter.md +35 -0
  135. package/modules/nextMillenniumBidAdapter.js +9 -1
  136. package/modules/prebidServerBidAdapter/ortbConverter.js +6 -0
  137. package/modules/proxistoreBidAdapter.js +2 -2
  138. package/modules/pubxaiAnalyticsAdapter.js +2 -2
  139. package/modules/sonobiBidAdapter.js +1 -10
  140. package/modules/tripleliftBidAdapter.js +4 -0
  141. package/modules/yieldmoBidAdapter.js +1 -0
  142. package/package.json +1 -1
  143. package/src/adapterManager.js +30 -14
  144. package/src/utils.js +1 -1
  145. package/test/spec/modules/adagioBidAdapter_spec.js +2 -2
  146. package/test/spec/modules/criteoBidAdapter_spec.js +24 -1
  147. package/test/spec/modules/incrxBidAdapter_spec.js +4 -0
  148. package/test/spec/modules/kueezRtbBidAdapter_spec.js +63 -22
  149. package/test/spec/modules/livewrappedBidAdapter_spec.js +267 -2
  150. package/test/spec/modules/minutemediaplusBidAdapter_spec.js +519 -0
  151. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +11 -0
  152. package/test/spec/modules/prebidServerBidAdapter_spec.js +56 -0
  153. package/test/spec/modules/proxistoreBidAdapter_spec.js +2 -2
  154. package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +3 -1
  155. package/test/spec/modules/sonobiBidAdapter_spec.js +3 -25
  156. package/test/spec/modules/tripleliftBidAdapter_spec.js +7 -0
  157. package/test/spec/unit/core/adapterManager_spec.js +147 -0
@@ -65,15 +65,21 @@ var _analyticsRegistry = {};
65
65
 
66
66
  function getBids({bidderCode, auctionId, bidderRequestId, adUnits, src, metrics}) {
67
67
  return adUnits.reduce((result, adUnit) => {
68
- result.push(adUnit.bids.filter(bid => bid.bidder === bidderCode)
69
- .reduce((bids, bid) => {
70
- bid = Object.assign({}, bid, getDefinedParams(adUnit, [
71
- 'nativeParams',
72
- 'nativeOrtbRequest',
73
- 'ortb2Imp',
74
- 'mediaType',
75
- 'renderer'
76
- ]));
68
+ const bids = adUnit.bids.filter(bid => bid.bidder === bidderCode);
69
+ if (bidderCode == null && bids.length === 0 && adUnit.s2sBid != null) {
70
+ bids.push({bidder: null});
71
+ }
72
+ result.push(
73
+ bids.reduce((bids, bid) => {
74
+ bid = Object.assign({}, bid,
75
+ {ortb2Imp: mergeDeep({}, adUnit.ortb2Imp, bid.ortb2Imp)},
76
+ getDefinedParams(adUnit, [
77
+ 'nativeParams',
78
+ 'nativeOrtbRequest',
79
+ 'mediaType',
80
+ 'renderer'
81
+ ])
82
+ );
77
83
 
78
84
  const mediaTypes = bid.mediaTypes == null ? adUnit.mediaTypes : bid.mediaTypes
79
85
 
@@ -128,9 +134,18 @@ export const filterBidsForAdUnit = hook('sync', _filterBidsForAdUnit, 'filterBid
128
134
 
129
135
  function getAdUnitCopyForPrebidServer(adUnits, s2sConfig) {
130
136
  let adUnitsCopy = deepClone(adUnits);
137
+ let hasModuleBids = false;
131
138
 
132
139
  adUnitsCopy.forEach((adUnit) => {
133
140
  // filter out client side bids
141
+ const s2sBids = adUnit.bids.filter((b) => b.module === 'pbsBidAdapter' && b.params?.configName === s2sConfig.configName);
142
+ if (s2sBids.length === 1) {
143
+ adUnit.s2sBid = s2sBids[0];
144
+ hasModuleBids = true;
145
+ adUnit.ortb2Imp = mergeDeep({}, adUnit.s2sBid.ortb2Imp, adUnit.ortb2Imp);
146
+ } else if (s2sBids.length > 1) {
147
+ logWarn('Multiple "module" bids for the same s2s configuration; all will be ignored', s2sBids);
148
+ }
134
149
  adUnit.bids = filterBidsForAdUnit(adUnit.bids, s2sConfig)
135
150
  .map((bid) => {
136
151
  bid.bid_id = getUniqueIdentifierStr();
@@ -140,9 +155,9 @@ function getAdUnitCopyForPrebidServer(adUnits, s2sConfig) {
140
155
 
141
156
  // don't send empty requests
142
157
  adUnitsCopy = adUnitsCopy.filter(adUnit => {
143
- return adUnit.bids.length !== 0;
158
+ return adUnit.bids.length !== 0 || adUnit.s2sBid != null;
144
159
  });
145
- return adUnitsCopy;
160
+ return {adUnits: adUnitsCopy, hasModuleBids};
146
161
  }
147
162
 
148
163
  function getAdUnitCopyForClientAdapters(adUnits) {
@@ -244,11 +259,12 @@ adapterManager.makeBidRequests = hook('sync', function (adUnits, auctionStart, a
244
259
 
245
260
  _s2sConfigs.forEach(s2sConfig => {
246
261
  if (s2sConfig && s2sConfig.enabled) {
247
- let adUnitsS2SCopy = getAdUnitCopyForPrebidServer(adUnits, s2sConfig);
262
+ let {adUnits: adUnitsS2SCopy, hasModuleBids} = getAdUnitCopyForPrebidServer(adUnits, s2sConfig);
248
263
 
249
264
  // uniquePbsTid is so we know which server to send which bids to during the callBids function
250
265
  let uniquePbsTid = generateUUID();
251
- serverBidders.forEach(bidderCode => {
266
+
267
+ (serverBidders.length === 0 && hasModuleBids ? [null] : serverBidders).forEach(bidderCode => {
252
268
  const bidderRequestId = getUniqueIdentifierStr();
253
269
  const metrics = auctionMetrics.fork();
254
270
  const bidderRequest = addOrtb2({
@@ -279,7 +295,7 @@ adapterManager.makeBidRequests = hook('sync', function (adUnits, auctionStart, a
279
295
 
280
296
  bidRequests.forEach(request => {
281
297
  if (request.adUnitsS2SCopy === undefined) {
282
- request.adUnitsS2SCopy = adUnitsS2SCopy.filter(adUnitCopy => adUnitCopy.bids.length > 0);
298
+ request.adUnitsS2SCopy = adUnitsS2SCopy.filter(au => au.bids.length > 0 || au.s2sBid != null);
283
299
  }
284
300
  });
285
301
  }
package/src/utils.js CHANGED
@@ -710,7 +710,7 @@ export function getKeyByValue(obj, value) {
710
710
  export function getBidderCodes(adUnits = $$PREBID_GLOBAL$$.adUnits) {
711
711
  // this could memoize adUnits
712
712
  return adUnits.map(unit => unit.bids.map(bid => bid.bidder)
713
- .reduce(flatten, [])).reduce(flatten, []).filter(uniques);
713
+ .reduce(flatten, [])).reduce(flatten, []).filter((bidder) => typeof bidder !== 'undefined').filter(uniques);
714
714
  }
715
715
 
716
716
  export function isGptPubadsDefined() {
@@ -381,8 +381,8 @@ describe('Adagio bid adapter', () => {
381
381
  context: 'outstream',
382
382
  playerSize: [[300, 250]],
383
383
  mimes: ['video/mp4'],
384
- api: 5, // will be removed because invalid
385
- playbackmethod: [7], // will be removed because invalid
384
+ api: 'val', // will be removed because invalid
385
+ playbackmethod: ['val'], // will be removed because invalid
386
386
  }
387
387
  },
388
388
  }).withParams({
@@ -1156,6 +1156,18 @@ describe('The Criteo bidding adapter', function () {
1156
1156
  it('should properly build a request with first party data', function () {
1157
1157
  const siteData = {
1158
1158
  keywords: ['power tools'],
1159
+ content: {
1160
+ data: [{
1161
+ name: 'some_provider',
1162
+ ext: {
1163
+ segtax: 3
1164
+ },
1165
+ segment: [
1166
+ { 'id': '1001' },
1167
+ { 'id': '1002' }
1168
+ ]
1169
+ }]
1170
+ },
1159
1171
  ext: {
1160
1172
  data: {
1161
1173
  pageType: 'article'
@@ -1164,6 +1176,16 @@ describe('The Criteo bidding adapter', function () {
1164
1176
  };
1165
1177
  const userData = {
1166
1178
  gender: 'M',
1179
+ data: [{
1180
+ name: 'some_provider',
1181
+ ext: {
1182
+ segtax: 3
1183
+ },
1184
+ segment: [
1185
+ { 'id': '1001' },
1186
+ { 'id': '1002' }
1187
+ ]
1188
+ }],
1167
1189
  ext: {
1168
1190
  data: {
1169
1191
  registered: true
@@ -1203,7 +1225,8 @@ describe('The Criteo bidding adapter', function () {
1203
1225
 
1204
1226
  const request = spec.buildRequests(bidRequests, { ...bidderRequest, ortb2 });
1205
1227
  expect(request.data.publisher.ext).to.deep.equal({ data: { pageType: 'article' } });
1206
- expect(request.data.user.ext).to.deep.equal({ data: { registered: true } });
1228
+ expect(request.data.user).to.deep.equal(userData);
1229
+ expect(request.data.site).to.deep.equal(siteData);
1207
1230
  expect(request.data.slots[0].ext).to.deep.equal({
1208
1231
  bidfloor: 0.75,
1209
1232
  data: {
@@ -71,6 +71,8 @@ describe('IncrementX', function () {
71
71
  cpm: '0.7',
72
72
  ad: '<html><h1>Ad from IncrementX</h1></html>',
73
73
  slotBidId: 'bid-id-123456',
74
+ adType: '1',
75
+ settings: '1,2',
74
76
  nurl: 'htt://nurl.com',
75
77
  statusText: 'Success'
76
78
  }
@@ -80,6 +82,8 @@ describe('IncrementX', function () {
80
82
  requestId: 'bid-id-123456',
81
83
  cpm: '0.7',
82
84
  currency: 'USD',
85
+ adType: '1',
86
+ settings: '1,2',
83
87
  netRevenue: false,
84
88
  width: '300',
85
89
  height: '250',
@@ -1,4 +1,4 @@
1
- import { expect } from 'chai';
1
+ import {expect} from 'chai';
2
2
  import {
3
3
  spec as adapter,
4
4
  SUPPORTED_ID_SYSTEMS,
@@ -13,9 +13,10 @@ import {
13
13
  getUniqueDealId,
14
14
  } from 'modules/kueezRtbBidAdapter.js';
15
15
  import * as utils from 'src/utils.js';
16
- import { version } from 'package.json';
17
- import { useFakeTimers } from 'sinon';
18
- import { BANNER, VIDEO } from '../../../src/mediaTypes';
16
+ import {version} from 'package.json';
17
+ import {useFakeTimers} from 'sinon';
18
+ import {BANNER, VIDEO} from '../../../src/mediaTypes';
19
+ import {config} from '../../../src/config';
19
20
 
20
21
  const SUB_DOMAIN = 'exchange';
21
22
 
@@ -36,6 +37,10 @@ const BID = {
36
37
  'transactionId': 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
37
38
  'sizes': [[300, 250], [300, 600]],
38
39
  'bidderRequestId': '1fdb5ff1b6eaa7',
40
+ 'auctionId': 'auction_id',
41
+ 'bidRequestsCount': 4,
42
+ 'bidderRequestsCount': 3,
43
+ 'bidderWinsCount': 1,
39
44
  'requestId': 'b0777d85-d061-450e-9bc7-260dd54bbb7a',
40
45
  'schain': 'a0819c69-005b-41ed-af06-1be1e0aefefc',
41
46
  'mediaTypes': [BANNER]
@@ -46,6 +51,10 @@ const VIDEO_BID = {
46
51
  'adUnitCode': '63550ad1ff6642d368cba59dh5884270560',
47
52
  'bidderRequestId': '12a8ae9ada9c13',
48
53
  'transactionId': '56e184c6-bde9-497b-b9b9-cf47a61381ee',
54
+ 'auctionId': 'auction_id',
55
+ 'bidRequestsCount': 4,
56
+ 'bidderRequestsCount': 3,
57
+ 'bidderWinsCount': 1,
49
58
  'schain': 'a0819c69-005b-41ed-af06-1be1e0aefefc',
50
59
  'params': {
51
60
  'subDomain': SUB_DOMAIN,
@@ -78,10 +87,18 @@ const BIDDER_REQUEST = {
78
87
  'consentString': 'consent_string',
79
88
  'gdprApplies': true
80
89
  },
90
+ 'gppString': 'gpp_string',
91
+ 'gppSid': [7],
81
92
  'uspConsent': 'consent_string',
82
93
  'refererInfo': {
83
94
  'page': 'https://www.greatsite.com',
84
95
  'ref': 'https://www.somereferrer.com'
96
+ },
97
+ 'ortb2': {
98
+ 'regs': {
99
+ 'gpp': 'gpp_string',
100
+ 'gpp_sid': [7]
101
+ }
85
102
  }
86
103
  };
87
104
 
@@ -134,7 +151,7 @@ const REQUEST = {
134
151
 
135
152
  function getTopWindowQueryParams() {
136
153
  try {
137
- const parsedUrl = utils.parseUrl(window.top.document.URL, { decodeSearchAsString: true });
154
+ const parsedUrl = utils.parseUrl(window.top.document.URL, {decodeSearchAsString: true});
138
155
  return parsedUrl.search;
139
156
  } catch (e) {
140
157
  return '';
@@ -213,6 +230,9 @@ describe('KueezRtbBidAdapter', function () {
213
230
 
214
231
  it('should build video request', function () {
215
232
  const hashUrl = hashCode(BIDDER_REQUEST.refererInfo.page);
233
+ config.setConfig({
234
+ bidderTimeout: 3000
235
+ });
216
236
  const requests = adapter.buildRequests([VIDEO_BID], BIDDER_REQUEST);
217
237
  expect(requests).to.have.length(1);
218
238
  expect(requests[0]).to.deep.equal({
@@ -223,11 +243,20 @@ describe('KueezRtbBidAdapter', function () {
223
243
  bidFloor: 0.1,
224
244
  bidId: '2d52001cabd527',
225
245
  bidderVersion: adapter.version,
246
+ bidderRequestId: '12a8ae9ada9c13',
226
247
  cb: 1000,
227
248
  gdpr: 1,
228
249
  gdprConsent: 'consent_string',
229
250
  usPrivacy: 'consent_string',
251
+ gppString: 'gpp_string',
252
+ gppSid: [7],
230
253
  prebidVersion: version,
254
+ transactionId: '56e184c6-bde9-497b-b9b9-cf47a61381ee',
255
+ auctionId: 'auction_id',
256
+ bidRequestsCount: 4,
257
+ bidderRequestsCount: 3,
258
+ bidderWinsCount: 1,
259
+ bidderTimeout: 3000,
231
260
  publisherId: '59ac17c192832d0011283fe3',
232
261
  url: 'https%3A%2F%2Fwww.greatsite.com',
233
262
  referrer: 'https://www.somereferrer.com',
@@ -259,6 +288,9 @@ describe('KueezRtbBidAdapter', function () {
259
288
 
260
289
  it('should build banner request for each size', function () {
261
290
  const hashUrl = hashCode(BIDDER_REQUEST.refererInfo.page);
291
+ config.setConfig({
292
+ bidderTimeout: 3000
293
+ });
262
294
  const requests = adapter.buildRequests([BID], BIDDER_REQUEST);
263
295
  expect(requests).to.have.length(1);
264
296
  expect(requests[0]).to.deep.equal({
@@ -267,7 +299,16 @@ describe('KueezRtbBidAdapter', function () {
267
299
  data: {
268
300
  gdprConsent: 'consent_string',
269
301
  gdpr: 1,
302
+ gppString: 'gpp_string',
303
+ gppSid: [7],
270
304
  usPrivacy: 'consent_string',
305
+ transactionId: 'c881914b-a3b5-4ecf-ad9c-1c2f37c6aabf',
306
+ auctionId: 'auction_id',
307
+ bidRequestsCount: 4,
308
+ bidderRequestsCount: 3,
309
+ bidderWinsCount: 1,
310
+ bidderTimeout: 3000,
311
+ bidderRequestId: '1fdb5ff1b6eaa7',
271
312
  sizes: ['300x250', '300x600'],
272
313
  url: 'https%3A%2F%2Fwww.greatsite.com',
273
314
  referrer: 'https://www.somereferrer.com',
@@ -296,7 +337,7 @@ describe('KueezRtbBidAdapter', function () {
296
337
  });
297
338
  describe('getUserSyncs', function () {
298
339
  it('should have valid user sync with iframeEnabled', function () {
299
- const result = adapter.getUserSyncs({ iframeEnabled: true }, [SERVER_RESPONSE]);
340
+ const result = adapter.getUserSyncs({iframeEnabled: true}, [SERVER_RESPONSE]);
300
341
 
301
342
  expect(result).to.deep.equal([{
302
343
  type: 'iframe',
@@ -305,7 +346,7 @@ describe('KueezRtbBidAdapter', function () {
305
346
  });
306
347
 
307
348
  it('should have valid user sync with cid on response', function () {
308
- const result = adapter.getUserSyncs({ iframeEnabled: true }, [SERVER_RESPONSE]);
349
+ const result = adapter.getUserSyncs({iframeEnabled: true}, [SERVER_RESPONSE]);
309
350
  expect(result).to.deep.equal([{
310
351
  type: 'iframe',
311
352
  url: 'https://sync.kueezrtb.com/api/sync/iframe/?cid=testcid123&gdpr=0&gdpr_consent=&us_privacy='
@@ -313,7 +354,7 @@ describe('KueezRtbBidAdapter', function () {
313
354
  });
314
355
 
315
356
  it('should have valid user sync with pixelEnabled', function () {
316
- const result = adapter.getUserSyncs({ pixelEnabled: true }, [SERVER_RESPONSE]);
357
+ const result = adapter.getUserSyncs({pixelEnabled: true}, [SERVER_RESPONSE]);
317
358
 
318
359
  expect(result).to.deep.equal([{
319
360
  'url': 'https://sync.kueezrtb.com/api/sync/image/?cid=testcid123&gdpr=0&gdpr_consent=&us_privacy=',
@@ -329,12 +370,12 @@ describe('KueezRtbBidAdapter', function () {
329
370
  });
330
371
 
331
372
  it('should return empty array when there is no ad', function () {
332
- const responses = adapter.interpretResponse({ price: 1, ad: '' });
373
+ const responses = adapter.interpretResponse({price: 1, ad: ''});
333
374
  expect(responses).to.be.empty;
334
375
  });
335
376
 
336
377
  it('should return empty array when there is no price', function () {
337
- const responses = adapter.interpretResponse({ price: null, ad: 'great ad' });
378
+ const responses = adapter.interpretResponse({price: null, ad: 'great ad'});
338
379
  expect(responses).to.be.empty;
339
380
  });
340
381
 
@@ -394,11 +435,11 @@ describe('KueezRtbBidAdapter', function () {
394
435
  const userId = (function () {
395
436
  switch (idSystemProvider) {
396
437
  case 'lipb':
397
- return { lipbid: id };
438
+ return {lipbid: id};
398
439
  case 'parrableId':
399
- return { eid: id };
440
+ return {eid: id};
400
441
  case 'id5id':
401
- return { uid: id };
442
+ return {uid: id};
402
443
  default:
403
444
  return id;
404
445
  }
@@ -417,18 +458,18 @@ describe('KueezRtbBidAdapter', function () {
417
458
 
418
459
  describe('alternate param names extractors', function () {
419
460
  it('should return undefined when param not supported', function () {
420
- const cid = extractCID({ 'c_id': '1' });
421
- const pid = extractPID({ 'p_id': '1' });
422
- const subDomain = extractSubDomain({ 'sub_domain': 'prebid' });
461
+ const cid = extractCID({'c_id': '1'});
462
+ const pid = extractPID({'p_id': '1'});
463
+ const subDomain = extractSubDomain({'sub_domain': 'prebid'});
423
464
  expect(cid).to.be.undefined;
424
465
  expect(pid).to.be.undefined;
425
466
  expect(subDomain).to.be.undefined;
426
467
  });
427
468
 
428
469
  it('should return value when param supported', function () {
429
- const cid = extractCID({ 'cID': '1' });
430
- const pid = extractPID({ 'Pid': '2' });
431
- const subDomain = extractSubDomain({ 'subDOMAIN': 'prebid' });
470
+ const cid = extractCID({'cID': '1'});
471
+ const pid = extractPID({'Pid': '2'});
472
+ const subDomain = extractSubDomain({'subDOMAIN': 'prebid'});
432
473
  expect(cid).to.be.equal('1');
433
474
  expect(pid).to.be.equal('2');
434
475
  expect(subDomain).to.be.equal('prebid');
@@ -488,7 +529,7 @@ describe('KueezRtbBidAdapter', function () {
488
529
  now
489
530
  });
490
531
  setStorageItem('myKey', 2020);
491
- const { value, created } = getStorageItem('myKey');
532
+ const {value, created} = getStorageItem('myKey');
492
533
  expect(created).to.be.equal(now);
493
534
  expect(value).to.be.equal(2020);
494
535
  expect(typeof value).to.be.equal('number');
@@ -504,8 +545,8 @@ describe('KueezRtbBidAdapter', function () {
504
545
  });
505
546
 
506
547
  it('should parse JSON value', function () {
507
- const data = JSON.stringify({ event: 'send' });
508
- const { event } = tryParseJSON(data);
548
+ const data = JSON.stringify({event: 'send'});
549
+ const {event} = tryParseJSON(data);
509
550
  expect(event).to.be.equal('send');
510
551
  });
511
552