prebid.js 7.24.0 → 7.26.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 (191) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/adagioBidAdapter.js +1 -1
  3. package/dist/adbookpspBidAdapter.js +1 -1
  4. package/dist/adgenerationBidAdapter.js +1 -1
  5. package/dist/admaticBidAdapter.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/ajaBidAdapter.js +1 -1
  10. package/dist/amxBidAdapter.js +1 -1
  11. package/dist/amxIdSystem.js +1 -1
  12. package/dist/appierAnalyticsAdapter.js +1 -1
  13. package/dist/appnexusBidAdapter.js +1 -1
  14. package/dist/asoBidAdapter.js +1 -1
  15. package/dist/axonixBidAdapter.js +1 -1
  16. package/dist/beopBidAdapter.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/captifyRtdProvider.js +1 -0
  22. package/dist/carodaBidAdapter.js +1 -1
  23. package/dist/chtnwBidAdapter.js +1 -1
  24. package/dist/concertBidAdapter.js +1 -1
  25. package/dist/connectadBidAdapter.js +1 -1
  26. package/dist/consumableBidAdapter.js +1 -1
  27. package/dist/conversantBidAdapter.js +1 -1
  28. package/dist/craftBidAdapter.js +1 -1
  29. package/dist/criteoBidAdapter.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/finativeBidAdapter.js +1 -1
  34. package/dist/glimpseBidAdapter.js +1 -1
  35. package/dist/gmosspBidAdapter.js +1 -1
  36. package/dist/goldbachBidAdapter.js +1 -1
  37. package/dist/gridBidAdapter.js +1 -1
  38. package/dist/gridNMBidAdapter.js +1 -1
  39. package/dist/gumgumBidAdapter.js +1 -1
  40. package/dist/h12mediaBidAdapter.js +1 -1
  41. package/dist/id5IdSystem.js +1 -1
  42. package/dist/improvedigitalBidAdapter.js +1 -1
  43. package/dist/inmarBidAdapter.js +1 -1
  44. package/dist/insticatorBidAdapter.js +1 -1
  45. package/dist/ixBidAdapter.js +1 -1
  46. package/dist/justpremiumBidAdapter.js +1 -1
  47. package/dist/kargoBidAdapter.js +1 -1
  48. package/dist/konduitAnalyticsAdapter.js +1 -1
  49. package/dist/kueezBidAdapter.js +1 -1
  50. package/dist/kueezRtbBidAdapter.js +1 -1
  51. package/dist/lassoBidAdapter.js +1 -1
  52. package/dist/lifestreetBidAdapter.js +1 -1
  53. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  54. package/dist/logicadBidAdapter.js +1 -1
  55. package/dist/loglyliftBidAdapter.js +1 -1
  56. package/dist/magniteAnalyticsAdapter.js +1 -1
  57. package/dist/malltvAnalyticsAdapter.js +1 -1
  58. package/dist/marsmediaBidAdapter.js +1 -1
  59. package/dist/mediafuseBidAdapter.js +1 -1
  60. package/dist/mediasquareBidAdapter.js +1 -1
  61. package/dist/mgidBidAdapter.js +1 -1
  62. package/dist/microadBidAdapter.js +1 -1
  63. package/dist/minutemediaBidAdapter.js +1 -1
  64. package/dist/nextMillenniumBidAdapter.js +1 -1
  65. package/dist/not-for-prod/prebid.js +154 -120
  66. package/dist/oguryBidAdapter.js +1 -1
  67. package/dist/onetagBidAdapter.js +1 -1
  68. package/dist/ooloAnalyticsAdapter.js +1 -1
  69. package/dist/outbrainBidAdapter.js +1 -1
  70. package/dist/parrableIdSystem.js +1 -1
  71. package/dist/pixfutureBidAdapter.js +1 -1
  72. package/dist/prebid-core.js +1 -1
  73. package/dist/publinkIdSystem.js +1 -1
  74. package/dist/pubmaticBidAdapter.js +1 -1
  75. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  76. package/dist/pxyzBidAdapter.js +1 -1
  77. package/dist/quantcastBidAdapter.js +1 -1
  78. package/dist/readpeakBidAdapter.js +1 -1
  79. package/dist/relaidoBidAdapter.js +1 -1
  80. package/dist/rhythmoneBidAdapter.js +1 -1
  81. package/dist/riseBidAdapter.js +1 -1
  82. package/dist/rubiconAnalyticsAdapter.js +1 -1
  83. package/dist/rubiconBidAdapter.js +1 -1
  84. package/dist/seedingAllianceBidAdapter.js +1 -1
  85. package/dist/seedtagBidAdapter.js +1 -1
  86. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  87. package/dist/sharethroughBidAdapter.js +1 -1
  88. package/dist/shinezBidAdapter.js +1 -1
  89. package/dist/smaatoBidAdapter.js +1 -1
  90. package/dist/smartadserverBidAdapter.js +1 -1
  91. package/dist/smartxBidAdapter.js +1 -1
  92. package/dist/smartytechBidAdapter.js +1 -0
  93. package/dist/smilewantedBidAdapter.js +1 -1
  94. package/dist/sonobiBidAdapter.js +1 -1
  95. package/dist/sovrnAnalyticsAdapter.js +1 -1
  96. package/dist/sovrnBidAdapter.js +1 -1
  97. package/dist/sspBCBidAdapter.js +1 -1
  98. package/dist/sublimeBidAdapter.js +1 -1
  99. package/dist/synacormediaBidAdapter.js +1 -1
  100. package/dist/taboolaBidAdapter.js +1 -1
  101. package/dist/tappxBidAdapter.js +1 -1
  102. package/dist/targetVideoBidAdapter.js +1 -1
  103. package/dist/teadsBidAdapter.js +1 -1
  104. package/dist/trionBidAdapter.js +1 -1
  105. package/dist/tripleliftBidAdapter.js +1 -1
  106. package/dist/ttdBidAdapter.js +1 -1
  107. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  108. package/dist/underdogmediaBidAdapter.js +1 -1
  109. package/dist/undertoneBidAdapter.js +1 -1
  110. package/dist/userId.js +1 -1
  111. package/dist/vidazooBidAdapter.js +1 -1
  112. package/dist/videobyteBidAdapter.js +1 -1
  113. package/dist/viqeoBidAdapter.js +1 -0
  114. package/dist/visxBidAdapter.js +1 -1
  115. package/dist/vuukleBidAdapter.js +1 -1
  116. package/dist/widespaceBidAdapter.js +1 -1
  117. package/dist/winrBidAdapter.js +1 -1
  118. package/dist/yahoosspBidAdapter.js +1 -1
  119. package/dist/yieldlabBidAdapter.js +1 -1
  120. package/dist/yieldmoBidAdapter.js +1 -1
  121. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  122. package/dist/zeta_global_sspBidAdapter.js +1 -1
  123. package/dist/zeusPrimeRtdProvider.js +31 -0
  124. package/integrationExamples/gpt/captifyRtdProvider_example.html +167 -0
  125. package/modules/.submodules.json +3 -1
  126. package/modules/adagioBidAdapter.js +1 -1
  127. package/modules/admaticBidAdapter.js +108 -59
  128. package/modules/admaticBidAdapter.md +2 -2
  129. package/modules/beopBidAdapter.js +17 -2
  130. package/modules/captifyRtdProvider.js +146 -0
  131. package/modules/captifyRtdProvider.md +68 -0
  132. package/modules/concertBidAdapter.js +17 -3
  133. package/modules/conversantAnalyticsAdapter.md +12 -13
  134. package/modules/conversantBidAdapter.md +3 -3
  135. package/modules/discoveryBidAdapter.js +38 -17
  136. package/modules/discoveryBidAdapter.md +7 -6
  137. package/modules/gridBidAdapter.js +440 -22
  138. package/modules/kargoBidAdapter.js +14 -8
  139. package/modules/magniteAnalyticsAdapter.js +1 -1
  140. package/modules/microadBidAdapter.js +22 -11
  141. package/modules/nextMillenniumBidAdapter.js +20 -24
  142. package/modules/oguryBidAdapter.js +5 -2
  143. package/modules/pubmaticBidAdapter.js +1 -1
  144. package/modules/seedtagBidAdapter.js +9 -4
  145. package/modules/smartadserverBidAdapter.js +6 -2
  146. package/modules/smartxBidAdapter.js +10 -7
  147. package/modules/smartytechBidAdapter.js +78 -0
  148. package/modules/smartytechBidAdapter.md +44 -0
  149. package/modules/taboolaBidAdapter.js +3 -3
  150. package/modules/taboolaBidAdapter.md +0 -2
  151. package/modules/tappxBidAdapter.js +21 -6
  152. package/modules/ttdBidAdapter.js +4 -3
  153. package/modules/userId/index.js +1 -1
  154. package/modules/vidazooBidAdapter.js +29 -3
  155. package/modules/viqeoBidAdapter.js +180 -0
  156. package/modules/viqeoBidAdapter.md +56 -0
  157. package/modules/yieldlabBidAdapter.js +19 -8
  158. package/modules/yieldmoBidAdapter.js +22 -8
  159. package/modules/yieldoneBidAdapter.js +60 -8
  160. package/modules/yieldoneBidAdapter.md +109 -9
  161. package/modules/zeta_global_sspBidAdapter.js +4 -0
  162. package/modules/zeusPrimeRtdProvider.js +357 -0
  163. package/modules/zeusPrimeRtdProvider.md +60 -0
  164. package/package.json +1 -1
  165. package/src/adloader.js +0 -1
  166. package/test/spec/modules/adagioBidAdapter_spec.js +2 -2
  167. package/test/spec/modules/admaticBidAdapter_spec.js +262 -3
  168. package/test/spec/modules/beopBidAdapter_spec.js +52 -0
  169. package/test/spec/modules/captifyRtdProvider_spec.js +253 -0
  170. package/test/spec/modules/concertBidAdapter_spec.js +26 -15
  171. package/test/spec/modules/discoveryBidAdapter_spec.js +9 -8
  172. package/test/spec/modules/gridBidAdapter_spec.js +289 -1
  173. package/test/spec/modules/kargoBidAdapter_spec.js +76 -4
  174. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +20 -0
  175. package/test/spec/modules/microadBidAdapter_spec.js +48 -0
  176. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +4 -3
  177. package/test/spec/modules/oguryBidAdapter_spec.js +27 -5
  178. package/test/spec/modules/pubmaticBidAdapter_spec.js +2 -2
  179. package/test/spec/modules/seedtagBidAdapter_spec.js +34 -10
  180. package/test/spec/modules/smartadserverBidAdapter_spec.js +80 -0
  181. package/test/spec/modules/smartxBidAdapter_spec.js +32 -0
  182. package/test/spec/modules/smartytechBidAdapter_spec.js +162 -0
  183. package/test/spec/modules/taboolaBidAdapter_spec.js +0 -77
  184. package/test/spec/modules/ttdBidAdapter_spec.js +13 -0
  185. package/test/spec/modules/vidazooBidAdapter_spec.js +1 -0
  186. package/test/spec/modules/viqeoBidAdapter_spec.js +124 -0
  187. package/test/spec/modules/yieldlabBidAdapter_spec.js +125 -0
  188. package/test/spec/modules/yieldmoBidAdapter_spec.js +3 -4
  189. package/test/spec/modules/yieldoneBidAdapter_spec.js +30 -6
  190. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +16 -1
  191. package/test/spec/modules/zeusPrimeRtdProvider_spec.js +410 -0
@@ -310,6 +310,19 @@ describe('ttdBidAdapter', function () {
310
310
  expect(requestBody.imp[0].banner.expdir).to.equal(expdir);
311
311
  });
312
312
 
313
+ it('merges first party site data', function () {
314
+ const ortb2 = {
315
+ site: {
316
+ publisher: {
317
+ domain: 'https://foo.bar',
318
+ }
319
+ }
320
+ };
321
+ const requestBody = testBuildRequests(baseBannerBidRequests, {...baseBidderRequest, ortb2}).data;
322
+ config.resetConfig();
323
+ expect(requestBody.site.publisher).to.deep.equal({domain: 'https://foo.bar', id: '13144370'});
324
+ });
325
+
313
326
  it('sets keywords properly if sent', function () {
314
327
  const ortb2 = {
315
328
  site: {
@@ -182,6 +182,7 @@ describe('VidazooBidAdapter', function () {
182
182
  bidderVersion: adapter.version,
183
183
  prebidVersion: version,
184
184
  schain: BID.schain,
185
+ ptrace: '1000',
185
186
  res: `${window.top.screen.width}x${window.top.screen.height}`,
186
187
  uqs: getTopWindowQueryParams(),
187
188
  'ext.param1': 'loremipsum',
@@ -0,0 +1,124 @@
1
+ import {expect} from 'chai';
2
+ import {spec} from 'modules/viqeoBidAdapter';
3
+
4
+ describe('viqeoBidAdapter', function () {
5
+ it('minimal params', function () {
6
+ expect(spec.isBidRequestValid({
7
+ bidder: 'viqeo',
8
+ params: {
9
+ user: {
10
+ buyeruid: '1',
11
+ },
12
+ playerOptions: {
13
+ videoId: 'ed584da454c7205ca7e4',
14
+ profileId: 1382,
15
+ },
16
+ }})).to.equal(true);
17
+ });
18
+ it('minimal params no playerOptions', function () {
19
+ expect(spec.isBidRequestValid({
20
+ bidder: 'viqeo',
21
+ params: {
22
+ currency: 'EUR',
23
+ }})).to.equal(false);
24
+ });
25
+ it('build request check data', function () {
26
+ const bidRequestData = [{
27
+ bidId: 'id1',
28
+ bidder: 'viqeo',
29
+ params: {
30
+ user: {
31
+ buyeruid: '1',
32
+ },
33
+ currency: 'EUR',
34
+ floor: 0.5,
35
+ playerOptions: {
36
+ videoId: 'ed584da454c7205ca7e4',
37
+ profileId: 1382,
38
+ },
39
+ },
40
+ mediaTypes: {
41
+ video: { playerSize: [[240, 400]] }
42
+ },
43
+ }];
44
+ const request = spec.buildRequests(bidRequestData);
45
+ const requestData = request[0].data;
46
+ expect(requestData.id).to.equal('id1')
47
+ expect(requestData.imp[0].bidfloorcur).to.equal('EUR');
48
+ expect(requestData.imp[0].bidfloor).to.equal(0.5);
49
+ expect(requestData.imp[0].video.w).to.equal(240);
50
+ expect(requestData.imp[0].video.h).to.equal(400);
51
+ expect(requestData.user.buyeruid).to.equal('1');
52
+ });
53
+ it('build request check url', function () {
54
+ const bidRequestData = [{
55
+ bidder: 'viqeo',
56
+ params: {
57
+ playerOptions: {
58
+ videoId: 'ed584da454c7205ca7e4',
59
+ profileId: 1382,
60
+ },
61
+ sspId: 42,
62
+ },
63
+ mediaTypes: {
64
+ video: { playerSize: [[240, 400]] }
65
+ },
66
+ }];
67
+ const request = spec.buildRequests(bidRequestData);
68
+ expect(request[0].url).to.equal('https://ads.betweendigital.com/openrtb_bid/?sspId=42')
69
+ });
70
+ it('response_params common case', function () {
71
+ const bidRequestData = {
72
+ bids: [{
73
+ bidId: 'id1',
74
+ params: {},
75
+ mediaTypes: {
76
+ video: { playerSize: [[240, 400]] }
77
+ },
78
+ }],
79
+ };
80
+ const serverResponse = {
81
+ body: {
82
+ id: 'id1',
83
+ cur: 'EUR',
84
+ seatbid: [{
85
+ bid: [{
86
+ cpm: 0.5,
87
+ ttl: 3600,
88
+ netRevenue: true,
89
+ creativeId: 'test1',
90
+ adm: '',
91
+ }],
92
+ }],
93
+ }
94
+ };
95
+ const bids = spec.interpretResponse(serverResponse, bidRequestData);
96
+ expect(bids).to.have.lengthOf(1);
97
+ });
98
+ it('should set flooPrice to getFloor.floor value if it is greater than params.floor', function() {
99
+ const bidRequestData = [{
100
+ bidId: 'id1',
101
+ bidder: 'viqeo',
102
+ params: {
103
+ currency: 'EUR',
104
+ floor: 0.5,
105
+ playerOptions: {
106
+ videoId: 'ed584da454c7205ca7e4',
107
+ profileId: 1382,
108
+ },
109
+ },
110
+ mediaTypes: {
111
+ video: { playerSize: [[240, 400]] }
112
+ },
113
+ getFloor: () => {
114
+ return {
115
+ currency: 'EUR',
116
+ floor: 3.32
117
+ }
118
+ },
119
+ }];
120
+ const request = spec.buildRequests(bidRequestData);
121
+ const requestData = request[0].data;
122
+ expect(requestData.imp[0].bidfloor).to.equal(3.32)
123
+ });
124
+ });
@@ -80,6 +80,81 @@ const NATIVE_REQUEST = () => Object.assign(DEFAULT_REQUEST(), {
80
80
  }
81
81
  })
82
82
 
83
+ const IAB_REQUEST = () => Object.assign(DEFAULT_REQUEST(), {
84
+ params: {
85
+ adslotId: '1111',
86
+ supplyId: '2222',
87
+ iabContent: {
88
+ id: 'foo',
89
+ episode: '99',
90
+ title: 'bar',
91
+ series: 'baz',
92
+ season: 's01',
93
+ artist: 'foobar',
94
+ genre: 'barbaz',
95
+ isrc: 'CC-XXX-YY-NNNNN',
96
+ url: 'https://foo.test',
97
+ cat: ['cat1', 'cat2,ppp', 'cat3|||//'],
98
+ context: '2',
99
+ keywords: ['k1', 'k2', 'k3', 'k4'],
100
+ live: '0',
101
+ album: 'foo',
102
+ cattax: '3',
103
+ prodq: 2,
104
+ contentrating: 'foo',
105
+ userrating: 'bar',
106
+ qagmediarating: 2,
107
+ sourcerelationship: 1,
108
+ len: 12345,
109
+ language: 'en',
110
+ embeddable: 0,
111
+ producer: {
112
+ id: 'foo',
113
+ name: 'bar',
114
+ cattax: 532,
115
+ cat: [1, 'foo', true],
116
+ domain: 'producer.test'
117
+ },
118
+ data: {
119
+ id: 'foo',
120
+ name: 'bar',
121
+ segment: [{
122
+ name: 'foo',
123
+ value: 'bar',
124
+ ext: {
125
+ foo: {
126
+ bar: 'bar'
127
+ }
128
+ },
129
+ }, {
130
+ name: 'foo2',
131
+ value: 'bar2',
132
+ ext: {
133
+ test: {
134
+ nums: {
135
+ int: 123,
136
+ float: 123.123
137
+ },
138
+ bool: true,
139
+ string: 'foo2'
140
+ }
141
+ }
142
+ }],
143
+ },
144
+ network: {
145
+ id: 'foo',
146
+ name: 'bar',
147
+ domain: 'network.test'
148
+ },
149
+ channel: {
150
+ id: 'bar',
151
+ name: 'foo',
152
+ domain: 'channel.test'
153
+ }
154
+ }
155
+ }
156
+ })
157
+
83
158
  const RESPONSE = {
84
159
  advertiser: 'yieldlab',
85
160
  curl: 'https://www.yieldlab.de',
@@ -251,6 +326,56 @@ describe('yieldlabBidAdapter', () => {
251
326
  const request = spec.buildRequests([{...requestWithoutIabContent, ...siteConfig}])
252
327
  expect(request.url).to.include('iab_content=id%3Aid_from_config')
253
328
  })
329
+
330
+ it('flattens the iabContent, encodes the values, joins the keywords into one value, and than encodes the iab_content request param ', () => {
331
+ const expectedIabContentValue = encodeURIComponent(
332
+ 'id:foo,' +
333
+ 'episode:99,' +
334
+ 'title:bar,' +
335
+ 'series:baz,' +
336
+ 'season:s01,' +
337
+ 'artist:foobar,' +
338
+ 'genre:barbaz,' +
339
+ 'isrc:CC-XXX-YY-NNNNN,' +
340
+ 'url:https%3A%2F%2Ffoo.test,' +
341
+ 'cat:cat1|cat2%2Cppp|cat3%7C%7C%7C%2F%2F,' +
342
+ 'context:2,' +
343
+ 'keywords:k1|k2|k3|k4,' +
344
+ 'live:0,' +
345
+ 'album:foo,' +
346
+ 'cattax:3,' +
347
+ 'prodq:2,' +
348
+ 'contentrating:foo,' +
349
+ 'userrating:bar,' +
350
+ 'qagmediarating:2,' +
351
+ 'sourcerelationship:1,' +
352
+ 'len:12345,' +
353
+ 'language:en,' +
354
+ 'embeddable:0,' +
355
+ 'producer.id:foo,' +
356
+ 'producer.name:bar,' +
357
+ 'producer.cattax:532,' +
358
+ 'cat:1|foo|true,' +
359
+ 'producer.domain:producer.test,' +
360
+ 'data.id:foo,data.name:bar,' +
361
+ 'data.segment.0.name:foo,' +
362
+ 'data.segment.0.value:bar,' +
363
+ 'data.segment.0.ext.foo.bar:bar,' +
364
+ 'data.segment.1.name:foo2,' +
365
+ 'data.segment.1.value:bar2,' +
366
+ 'data.segment.1.ext.test.nums.int:123,' +
367
+ 'data.segment.1.ext.test.nums.float:123.123,' +
368
+ 'data.segment.1.ext.test.bool:true,' +
369
+ 'data.segment.1.ext.test.string:foo2,' +
370
+ 'network.id:foo,network.name:bar,' +
371
+ 'network.domain:network.test,' +
372
+ 'channel.id:bar,' +
373
+ 'channel.name:foo,' +
374
+ 'channel.domain:channel.test'
375
+ )
376
+ const request = spec.buildRequests([IAB_REQUEST()], REQPARAMS)
377
+ expect(request.url).to.include('iab_content=' + expectedIabContentValue)
378
+ })
254
379
  })
255
380
 
256
381
  it('passes unencoded schain string to bid request when complete == 0', () => {
@@ -34,6 +34,7 @@ describe('YieldmoAdapter', function () {
34
34
  userId: {
35
35
  tdid: '8d146286-91d4-4958-aff4-7e489dd1abd6'
36
36
  },
37
+ transactionId: '54a58774-7a41-494e-9aaf-fa7b79164f0c',
37
38
  ...rootParams
38
39
  });
39
40
 
@@ -63,6 +64,7 @@ describe('YieldmoAdapter', function () {
63
64
  ...videoParams
64
65
  }
65
66
  },
67
+ transactionId: '54a58774-7a41-494e-8cbc-fa7b79164f0c',
66
68
  ...rootParams
67
69
  });
68
70
 
@@ -178,10 +180,9 @@ describe('YieldmoAdapter', function () {
178
180
  expect(buildAndGetPlacementInfo(bidArray)).to.equal(
179
181
  '[{"placement_id":"adunit-code","callback_id":"30b31c1838de1e","sizes":[[300,250],[300,600]],"bidFloor":0.1,"auctionId":"1d1a030790a475"}]'
180
182
  );
181
-
182
183
  // multiple placements
183
184
  bidArray.push(mockBannerBid(
184
- {adUnitCode: 'adunit-2', bidId: '123a', bidderRequestId: '321', auctionId: '222'}, {bidFloor: 0.2}));
185
+ {adUnitCode: 'adunit-2', bidId: '123a', bidderRequestId: '321', auctionId: '222', transactionId: '444'}, {bidFloor: 0.2}));
185
186
  expect(buildAndGetPlacementInfo(bidArray)).to.equal(
186
187
  '[{"placement_id":"adunit-code","callback_id":"30b31c1838de1e","sizes":[[300,250],[300,600]],"bidFloor":0.1,"auctionId":"1d1a030790a475"},' +
187
188
  '{"placement_id":"adunit-2","callback_id":"123a","sizes":[[300,250],[300,600]],"bidFloor":0.2,"auctionId":"222"}]'
@@ -193,7 +194,6 @@ describe('YieldmoAdapter', function () {
193
194
  let placementInfo = buildAndGetPlacementInfo(bidArray);
194
195
  expect(placementInfo).to.include('"ym_placement_id":"ym_1293871298"');
195
196
  expect(placementInfo).not.to.include('"ym_placement_id":"ym_0987654321"');
196
-
197
197
  bidArray.push(mockBannerBid({}, {placementId: 'ym_0987654321'}));
198
198
  placementInfo = buildAndGetPlacementInfo(bidArray);
199
199
  expect(placementInfo).to.include('"ym_placement_id":"ym_1293871298"');
@@ -507,7 +507,6 @@ describe('YieldmoAdapter', function () {
507
507
 
508
508
  it('should add auction id to video bid request', function() {
509
509
  const auctionId = '1d1a03073455';
510
-
511
510
  expect(buildAndGetData([mockVideoBid({})]).auctionId).to.deep.equal(auctionId);
512
511
  });
513
512
 
@@ -140,7 +140,7 @@ describe('yieldoneBidAdapter', function() {
140
140
  });
141
141
  });
142
142
 
143
- describe('New Format', function () {
143
+ describe('Single Format', function () {
144
144
  const bidRequests = [
145
145
  {
146
146
  params: {placementId: '0'},
@@ -206,8 +206,11 @@ describe('yieldoneBidAdapter', function() {
206
206
 
207
207
  it('width and height should be set as separate parameters on outstream requests', function () {
208
208
  expect(request[0].data).to.not.have.property('w');
209
+ expect(request[0].data).to.not.have.property('h');
209
210
  expect(request[1].data).to.not.have.property('w');
211
+ expect(request[1].data).to.not.have.property('h');
210
212
  expect(request[2].data).to.not.have.property('w');
213
+ expect(request[2].data).to.not.have.property('h');
211
214
  expect(request[3].data.w).to.equal(1280);
212
215
  expect(request[3].data.h).to.equal(720);
213
216
  expect(request[4].data.w).to.equal(1920);
@@ -260,12 +263,13 @@ describe('yieldoneBidAdapter', function() {
260
263
 
261
264
  it('width and height should be set as separate parameters on outstream requests', function () {
262
265
  expect(request[0].data).to.not.have.property('w');
266
+ expect(request[0].data).to.not.have.property('h');
263
267
  expect(request[1].data.w).to.equal(1920);
264
268
  expect(request[1].data.h).to.equal(1080);
265
269
  });
266
270
  });
267
271
 
268
- describe('FLUX Format', function () {
272
+ describe('1x1 Format', function () {
269
273
  const bidRequests = [
270
274
  {
271
275
  // It will be treated as a banner.
@@ -326,6 +330,7 @@ describe('yieldoneBidAdapter', function() {
326
330
 
327
331
  it('width and height should be set as separate parameters on outstream requests', function () {
328
332
  expect(request[0].data).to.not.have.property('w');
333
+ expect(request[0].data).to.not.have.property('h');
329
334
  expect(request[1].data.w).to.equal(1920);
330
335
  expect(request[1].data.h).to.equal(1080);
331
336
  expect(request[2].data.w).to.equal(DEFAULT_VIDEO_SIZE.w);
@@ -500,9 +505,9 @@ describe('yieldoneBidAdapter', function() {
500
505
  'currency': 'JPY',
501
506
  'statusMessage': 'Bid available',
502
507
  'dealId': 'P1-FIX-7800-DSP-MON',
503
- 'admoain': [
508
+ 'adomain': [
504
509
  'www.example.com'
505
- ]
510
+ ],
506
511
  }
507
512
  };
508
513
 
@@ -528,7 +533,16 @@ describe('yieldoneBidAdapter', function() {
528
533
  }];
529
534
  let result = spec.interpretResponse(serverResponseBanner, bidRequestBanner[0]);
530
535
  expect(Object.keys(result[0])).to.deep.equal(Object.keys(expectedResponse[0]));
536
+ expect(result[0].requestId).to.equal(expectedResponse[0].requestId);
537
+ expect(result[0].cpm).to.equal(expectedResponse[0].cpm);
538
+ expect(result[0].width).to.equal(expectedResponse[0].width);
539
+ expect(result[0].height).to.equal(expectedResponse[0].height);
540
+ expect(result[0].creativeId).to.equal(expectedResponse[0].creativeId);
541
+ expect(result[0].dealId).to.equal(expectedResponse[0].dealId);
542
+ expect(result[0].currency).to.equal(expectedResponse[0].currency);
531
543
  expect(result[0].mediaType).to.equal(expectedResponse[0].mediaType);
544
+ expect(result[0].ad).to.equal(expectedResponse[0].ad);
545
+ expect(result[0].meta.advertiserDomains[0]).to.equal(expectedResponse[0].meta.advertiserDomains[0]);
532
546
  });
533
547
 
534
548
  let serverResponseVideo = {
@@ -537,7 +551,7 @@ describe('yieldoneBidAdapter', function() {
537
551
  'height': 360,
538
552
  'width': 640,
539
553
  'cpm': 0.0536616,
540
- 'dealId': 'P1-FIX-766-DSP-MON',
554
+ 'dealId': 'P1-FIX-7800-DSP-MON',
541
555
  'crid': '2494768',
542
556
  'currency': 'JPY',
543
557
  'statusMessage': 'Bid available',
@@ -575,7 +589,7 @@ describe('yieldoneBidAdapter', function() {
575
589
  'currency': 'JPY',
576
590
  'netRevenue': true,
577
591
  'ttl': 3000,
578
- 'referrer': '',
592
+ 'referrer': 'http%3A%2F%2Flocalhost%3A9876%2F%3Fid%3D74552836',
579
593
  'meta': {
580
594
  'advertiserDomains': []
581
595
  },
@@ -588,9 +602,19 @@ describe('yieldoneBidAdapter', function() {
588
602
  }];
589
603
  let result = spec.interpretResponse(serverResponseVideo, bidRequestVideo[0]);
590
604
  expect(Object.keys(result[0])).to.deep.equal(Object.keys(expectedResponse[0]));
605
+ expect(result[0].requestId).to.equal(expectedResponse[0].requestId);
606
+ expect(result[0].cpm).to.equal(expectedResponse[0].cpm);
607
+ expect(result[0].width).to.equal(expectedResponse[0].width);
608
+ expect(result[0].height).to.equal(expectedResponse[0].height);
609
+ expect(result[0].creativeId).to.equal(expectedResponse[0].creativeId);
610
+ expect(result[0].dealId).to.equal(expectedResponse[0].dealId);
611
+ expect(result[0].currency).to.equal(expectedResponse[0].currency);
612
+ expect(result[0].vastXml).to.equal(expectedResponse[0].vastXml);
591
613
  expect(result[0].mediaType).to.equal(expectedResponse[0].mediaType);
614
+ expect(result[0].referrer).to.equal(expectedResponse[0].referrer);
592
615
  expect(result[0].renderer.id).to.equal(expectedResponse[0].renderer.id);
593
616
  expect(result[0].renderer.url).to.equal(expectedResponse[0].renderer.url);
617
+ expect(result[0].meta.advertiserDomains[0]).to.equal(expectedResponse[0].meta.advertiserDomains[0]);
594
618
  });
595
619
 
596
620
  it('handles empty bid response', function () {
@@ -104,7 +104,8 @@ describe('Zeta Ssp Bid Adapter', function () {
104
104
  },
105
105
  uspConsent: 'someCCPAString',
106
106
  params: params,
107
- userIdAsEids: eids
107
+ userIdAsEids: eids,
108
+ timeout: 500
108
109
  }];
109
110
 
110
111
  const videoRequest = [{
@@ -344,4 +345,18 @@ describe('Zeta Ssp Bid Adapter', function () {
344
345
  expect(payload.imp[1].banner.w).to.eql(600);
345
346
  expect(payload.imp[1].banner.h).to.eql(400);
346
347
  });
348
+
349
+ it('Test provide tmax', function () {
350
+ const request = spec.buildRequests(bannerRequest, bannerRequest[0]);
351
+ const payload = JSON.parse(request.data);
352
+
353
+ expect(payload.tmax).to.eql(500);
354
+ });
355
+
356
+ it('Test provide tmax without value', function () {
357
+ const request = spec.buildRequests(videoRequest, videoRequest[0]);
358
+ const payload = JSON.parse(request.data);
359
+
360
+ expect(payload.tmax).to.be.undefined;
361
+ });
347
362
  });