prebid.js 6.24.0 → 6.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 (178) 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/adrelevantisBidAdapter.js +1 -1
  6. package/dist/adtelligentBidAdapter.js +1 -1
  7. package/dist/adxcgBidAdapter.js +1 -1
  8. package/dist/adyoulikeBidAdapter.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/audiencerunBidAdapter.js +1 -1
  16. package/dist/axonixBidAdapter.js +1 -1
  17. package/dist/beopBidAdapter.js +1 -1
  18. package/dist/bidglassBidAdapter.js +1 -1
  19. package/dist/big-richmediaBidAdapter.js +1 -1
  20. package/dist/bluebillywigBidAdapter.js +1 -1
  21. package/dist/bridgewellBidAdapter.js +1 -1
  22. package/dist/brightMountainMediaBidAdapter.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/cpexIdSystem.js +1 -1
  28. package/dist/craftBidAdapter.js +1 -1
  29. package/dist/criteoBidAdapter.js +1 -1
  30. package/dist/currency.js +1 -1
  31. package/dist/dfpAdServerVideo.js +1 -1
  32. package/dist/dspxBidAdapter.js +1 -1
  33. package/dist/eplanningBidAdapter.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/gravitoIdSystem.js +1 -0
  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/impactifyBidAdapter.js +1 -1
  44. package/dist/improvedigitalBidAdapter.js +1 -1
  45. package/dist/inmarBidAdapter.js +1 -1
  46. package/dist/insticatorBidAdapter.js +1 -1
  47. package/dist/invibesBidAdapter.js +1 -1
  48. package/dist/ixBidAdapter.js +1 -1
  49. package/dist/jixieBidAdapter.js +1 -1
  50. package/dist/justpremiumBidAdapter.js +1 -1
  51. package/dist/kargoBidAdapter.js +1 -1
  52. package/dist/konduitAnalyticsAdapter.js +1 -1
  53. package/dist/liveIntentIdSystem.js +1 -1
  54. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  55. package/dist/logicadBidAdapter.js +1 -1
  56. package/dist/loglyliftBidAdapter.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/mediakeysBidAdapter.js +1 -1
  61. package/dist/mediasquareBidAdapter.js +1 -1
  62. package/dist/mgidBidAdapter.js +1 -1
  63. package/dist/minutemediaBidAdapter.js +1 -1
  64. package/dist/not-for-prod/prebid.js +123 -121
  65. package/dist/oguryBidAdapter.js +1 -1
  66. package/dist/oneVideoBidAdapter.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 +3 -3
  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/smaatoBidAdapter.js +1 -1
  89. package/dist/smartadserverBidAdapter.js +1 -1
  90. package/dist/smartxBidAdapter.js +1 -1
  91. package/dist/smilewantedBidAdapter.js +1 -1
  92. package/dist/sonobiBidAdapter.js +1 -1
  93. package/dist/sortableBidAdapter.js +1 -1
  94. package/dist/sovrnAnalyticsAdapter.js +1 -1
  95. package/dist/sovrnBidAdapter.js +1 -1
  96. package/dist/sspBCBidAdapter.js +1 -1
  97. package/dist/sublimeBidAdapter.js +1 -1
  98. package/dist/synacormediaBidAdapter.js +1 -1
  99. package/dist/targetVideoBidAdapter.js +1 -1
  100. package/dist/teadsBidAdapter.js +1 -1
  101. package/dist/trionBidAdapter.js +1 -1
  102. package/dist/tripleliftBidAdapter.js +1 -1
  103. package/dist/trustpidSystem.js +1 -1
  104. package/dist/trustxBidAdapter.js +1 -1
  105. package/dist/ttdBidAdapter.js +1 -1
  106. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  107. package/dist/underdogmediaBidAdapter.js +1 -1
  108. package/dist/undertoneBidAdapter.js +1 -1
  109. package/dist/userId.js +1 -1
  110. package/dist/vidazooBidAdapter.js +1 -1
  111. package/dist/videobyteBidAdapter.js +1 -1
  112. package/dist/videoheroesBidAdapter.js +1 -0
  113. package/dist/vidoomyBidAdapter.js +1 -1
  114. package/dist/visxBidAdapter.js +1 -1
  115. package/dist/vuukleBidAdapter.js +1 -1
  116. package/dist/weboramaRtdProvider.js +1 -1
  117. package/dist/widespaceBidAdapter.js +1 -1
  118. package/dist/winrBidAdapter.js +1 -1
  119. package/dist/yahoosspBidAdapter.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/integrationExamples/gpt/userId_example.html +3 -0
  124. package/integrationExamples/gpt/weboramaRtdProvider_example.html +65 -11
  125. package/modules/.submodules.json +2 -1
  126. package/modules/adagioBidAdapter.js +2 -0
  127. package/modules/adtelligentBidAdapter.js +3 -1
  128. package/modules/alkimiBidAdapter.md +10 -4
  129. package/modules/appnexusBidAdapter.js +13 -2
  130. package/modules/beopBidAdapter.js +51 -6
  131. package/modules/cpexIdSystem.js +1 -2
  132. package/modules/currency.js +4 -13
  133. package/modules/dacIdSystem.md +4 -4
  134. package/modules/dfpAdServerVideo.js +8 -0
  135. package/modules/gravitoIdSystem.js +57 -0
  136. package/modules/gravitoIdSystem.md +28 -0
  137. package/modules/improvedigitalBidAdapter.js +100 -43
  138. package/modules/invibesBidAdapter.js +55 -34
  139. package/modules/ixBidAdapter.js +62 -26
  140. package/modules/ixBidAdapter.md +42 -42
  141. package/modules/jixieBidAdapter.js +2 -0
  142. package/modules/kargoBidAdapter.js +23 -8
  143. package/modules/oguryBidAdapter.js +27 -1
  144. package/modules/trustpidSystem.js +9 -28
  145. package/modules/trustpidSystem.md +11 -34
  146. package/modules/userId/eids.js +6 -0
  147. package/modules/userId/index.js +30 -55
  148. package/modules/userId/userId.md +3 -11
  149. package/modules/videoheroesBidAdapter.js +267 -0
  150. package/modules/videoheroesBidAdapter.md +134 -0
  151. package/modules/vidoomyBidAdapter.js +2 -6
  152. package/modules/weboramaRtdProvider.js +515 -241
  153. package/modules/weboramaRtdProvider.md +488 -51
  154. package/modules/zeta_global_sspBidAdapter.js +1 -1
  155. package/package.json +4 -4
  156. package/src/adserver.js +7 -0
  157. package/src/hook.js +19 -1
  158. package/src/utils/promise.js +36 -0
  159. package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
  160. package/test/spec/modules/appnexusBidAdapter_spec.js +37 -10
  161. package/test/spec/modules/beopBidAdapter_spec.js +15 -2
  162. package/test/spec/modules/dfpAdServerVideo_spec.js +45 -0
  163. package/test/spec/modules/gravitoIdSystem_spec.js +51 -0
  164. package/test/spec/modules/improvedigitalBidAdapter_spec.js +289 -72
  165. package/test/spec/modules/invibesBidAdapter_spec.js +98 -7
  166. package/test/spec/modules/ixBidAdapter_spec.js +132 -26
  167. package/test/spec/modules/jixieBidAdapter_spec.js +17 -0
  168. package/test/spec/modules/kargoBidAdapter_spec.js +45 -3
  169. package/test/spec/modules/liveIntentIdSystem_spec.js +2 -2
  170. package/test/spec/modules/loglyliftBidAdapter_spec.js +8 -0
  171. package/test/spec/modules/oguryBidAdapter_spec.js +181 -3
  172. package/test/spec/modules/trustpidSystem_spec.js +42 -19
  173. package/test/spec/modules/userId_spec.js +18 -0
  174. package/test/spec/modules/videoheroesBidAdapter_spec.js +363 -0
  175. package/test/spec/modules/weboramaRtdProvider_spec.js +2333 -266
  176. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +37 -24
  177. package/test/spec/unit/utils/promise_spec.js +49 -0
  178. package/test/spec/modules/medianetRtdProvider_spec.js +0 -146
@@ -0,0 +1,363 @@
1
+ import { expect } from 'chai';
2
+ import { spec } from 'modules/videoheroesBidAdapter.js';
3
+
4
+ const request_native = {
5
+ code: 'videoheroes-native-prebid',
6
+ mediaTypes: {
7
+ native: {
8
+ title: {
9
+ required: true,
10
+ len: 800
11
+ },
12
+ image: {
13
+ required: true,
14
+ len: 80
15
+ },
16
+ sponsoredBy: {
17
+ required: true
18
+ },
19
+ clickUrl: {
20
+ required: true
21
+ },
22
+ privacyLink: {
23
+ required: false
24
+ },
25
+ body: {
26
+ required: true
27
+ },
28
+ icon: {
29
+ required: true,
30
+ sizes: [50, 50]
31
+ }
32
+ }
33
+ },
34
+ bidder: 'videoheroes',
35
+ params: {
36
+ placementId: '1a8d9c22db19906cb8a5fd4518d05f62'
37
+ }
38
+ };
39
+
40
+ const request_banner = {
41
+ code: 'videoheroes-prebid',
42
+ mediaTypes: {
43
+ banner: {
44
+ sizes: [[300, 250]]
45
+ }
46
+ },
47
+ bidder: 'videoheroes',
48
+ params: {
49
+ placementId: '1a8d9c22db19906cb8a5fd4518d05f62'
50
+ }
51
+ }
52
+
53
+ const bidRequest = {
54
+ gdprConsent: {
55
+ consentString: 'HFIDUYFIUYIUYWIPOI87392DSU',
56
+ gdprApplies: true
57
+ },
58
+ uspConsent: 'uspConsentString',
59
+ bidderRequestId: 'testid',
60
+ refererInfo: {
61
+ referer: 'testdomain.com'
62
+ },
63
+ timeout: 700
64
+ }
65
+
66
+ const request_video = {
67
+ code: 'videoheroes-video-prebid',
68
+ mediaTypes: { video: {
69
+ minduration: 1,
70
+ maxduration: 999,
71
+ boxingallowed: 1,
72
+ skip: 0,
73
+ mimes: [
74
+ 'application/javascript',
75
+ 'video/mp4'
76
+ ],
77
+ playerSize: [[768, 1024]],
78
+ protocols: [
79
+ 2, 3
80
+ ],
81
+ linearity: 1,
82
+ api: [
83
+ 1,
84
+ 2
85
+ ]
86
+ }
87
+ },
88
+
89
+ bidder: 'videoheroes',
90
+ params: {
91
+ placementId: '1a8d9c22db19906cb8a5fd4518d05f62'
92
+ }
93
+
94
+ }
95
+
96
+ const response_banner = {
97
+ id: 'request_id',
98
+ bidid: 'request_imp_id',
99
+ seatbid: [{
100
+ bid: [{
101
+ id: 'bid_id',
102
+ impid: 'request_imp_id',
103
+ price: 5,
104
+ adomain: ['example.com'],
105
+ adm: 'admcode',
106
+ crid: 'crid',
107
+ ext: {
108
+ mediaType: 'banner'
109
+ }
110
+ }]
111
+ }]
112
+ };
113
+
114
+ const response_video = {
115
+ id: 'request_id',
116
+ bidid: 'request_imp_id',
117
+ seatbid: [{
118
+ bid: [{
119
+ id: 'bid_id',
120
+ impid: 'request_imp_id',
121
+ price: 5,
122
+ adomain: ['example.com'],
123
+ adm: 'admcode',
124
+ crid: 'crid',
125
+ ext: {
126
+ mediaType: 'video'
127
+ }
128
+ }],
129
+ }],
130
+ };
131
+
132
+ let imgData = {
133
+ url: `https://example.com/image`,
134
+ w: 1200,
135
+ h: 627
136
+ };
137
+
138
+ const response_native = {
139
+ id: 'request_id',
140
+ bidid: 'request_imp_id',
141
+ seatbid: [{
142
+ bid: [{
143
+ id: 'bid_id',
144
+ impid: 'request_imp_id',
145
+ price: 5,
146
+ adomain: ['example.com'],
147
+ adm: { native:
148
+ {
149
+ assets: [
150
+ {id: 1, title: 'dummyText'},
151
+ {id: 3, image: imgData},
152
+ {
153
+ id: 5,
154
+ data: {value: 'organization.name'}
155
+ }
156
+ ],
157
+ link: {url: 'example.com'},
158
+ imptrackers: ['tracker1.com', 'tracker2.com', 'tracker3.com'],
159
+ jstracker: 'tracker1.com'
160
+ }
161
+ },
162
+ crid: 'crid',
163
+ ext: {
164
+ mediaType: 'native'
165
+ }
166
+ }],
167
+ }],
168
+ };
169
+
170
+ describe('VideoheroesBidAdapter', function() {
171
+ describe('isBidRequestValid', function() {
172
+ it('should return true when required params found', function () {
173
+ expect(spec.isBidRequestValid(request_banner)).to.equal(true);
174
+ });
175
+
176
+ it('should return false when required params are not passed', function () {
177
+ let bid = Object.assign({}, request_banner);
178
+ bid.params = {
179
+ 'IncorrectParam': 0
180
+ };
181
+ expect(spec.isBidRequestValid(bid)).to.equal(false);
182
+ });
183
+ });
184
+
185
+ describe('build Native Request', function () {
186
+ const request = spec.buildRequests([request_native], bidRequest);
187
+
188
+ it('Creates a ServerRequest object with method, URL and data', function () {
189
+ expect(request).to.exist;
190
+ expect(request.method).to.exist;
191
+ expect(request.url).to.exist;
192
+ expect(request.data).to.exist;
193
+ });
194
+
195
+ it('sends bid request to our endpoint via POST', function () {
196
+ expect(request.method).to.equal('POST');
197
+ });
198
+
199
+ it('Returns valid URL', function () {
200
+ expect(request.url).to.equal('https://point.contextualadv.com/?t=2&partner=1a8d9c22db19906cb8a5fd4518d05f62');
201
+ });
202
+
203
+ it('Returns empty data if no valid requests are passed', function () {
204
+ let serverRequest = spec.buildRequests([]);
205
+ expect(serverRequest).to.be.an('array').that.is.empty;
206
+ });
207
+ });
208
+
209
+ describe('build Banner Request', function () {
210
+ const request = spec.buildRequests([request_banner], bidRequest);
211
+
212
+ it('Creates a ServerRequest object with method, URL and data', function () {
213
+ expect(request).to.exist;
214
+ expect(request.method).to.exist;
215
+ expect(request.url).to.exist;
216
+ expect(request.data).to.exist;
217
+ });
218
+
219
+ it('sends bid request to our endpoint via POST', function () {
220
+ expect(request.method).to.equal('POST');
221
+ });
222
+
223
+ it('Returns valid URL', function () {
224
+ expect(request.url).to.equal('https://point.contextualadv.com/?t=2&partner=1a8d9c22db19906cb8a5fd4518d05f62');
225
+ });
226
+ });
227
+
228
+ describe('build Video Request', function () {
229
+ const request = spec.buildRequests([request_video], bidRequest);
230
+
231
+ it('Creates a ServerRequest object with method, URL and data', function () {
232
+ expect(request).to.exist;
233
+ expect(request.method).to.exist;
234
+ expect(request.url).to.exist;
235
+ expect(request.data).to.exist;
236
+ });
237
+
238
+ it('sends bid request to our endpoint via POST', function () {
239
+ expect(request.method).to.equal('POST');
240
+ });
241
+
242
+ it('Returns valid URL', function () {
243
+ expect(request.url).to.equal('https://point.contextualadv.com/?t=2&partner=1a8d9c22db19906cb8a5fd4518d05f62');
244
+ });
245
+ });
246
+
247
+ describe('interpretResponse', function () {
248
+ it('Empty response must return empty array', function() {
249
+ const emptyResponse = null;
250
+ let response = spec.interpretResponse(emptyResponse);
251
+
252
+ expect(response).to.be.an('array').that.is.empty;
253
+ })
254
+
255
+ it('Should interpret banner response', function () {
256
+ const bannerResponse = {
257
+ body: response_banner
258
+ }
259
+
260
+ const expectedBidResponse = {
261
+ requestId: response_banner.seatbid[0].bid[0].impid,
262
+ cpm: response_banner.seatbid[0].bid[0].price,
263
+ width: response_banner.seatbid[0].bid[0].w,
264
+ height: response_banner.seatbid[0].bid[0].h,
265
+ ttl: response_banner.ttl || 1200,
266
+ currency: response_banner.cur || 'USD',
267
+ netRevenue: true,
268
+ creativeId: response_banner.seatbid[0].bid[0].crid,
269
+ dealId: response_banner.seatbid[0].bid[0].dealid,
270
+ mediaType: 'banner',
271
+ ad: response_banner.seatbid[0].bid[0].adm
272
+ }
273
+
274
+ let bannerResponses = spec.interpretResponse(bannerResponse);
275
+
276
+ expect(bannerResponses).to.be.an('array').that.is.not.empty;
277
+ let dataItem = bannerResponses[0];
278
+ expect(dataItem).to.have.all.keys('requestId', 'cpm', 'width', 'height', 'ad', 'ttl', 'creativeId',
279
+ 'netRevenue', 'currency', 'dealId', 'mediaType');
280
+ expect(dataItem.requestId).to.equal(expectedBidResponse.requestId);
281
+ expect(dataItem.cpm).to.equal(expectedBidResponse.cpm);
282
+ expect(dataItem.ad).to.equal(expectedBidResponse.ad);
283
+ expect(dataItem.ttl).to.equal(expectedBidResponse.ttl);
284
+ expect(dataItem.creativeId).to.equal(expectedBidResponse.creativeId);
285
+ expect(dataItem.netRevenue).to.be.true;
286
+ expect(dataItem.currency).to.equal(expectedBidResponse.currency);
287
+ expect(dataItem.width).to.equal(expectedBidResponse.width);
288
+ expect(dataItem.height).to.equal(expectedBidResponse.height);
289
+ });
290
+
291
+ it('Should interpret video response', function () {
292
+ const videoResponse = {
293
+ body: response_video
294
+ }
295
+
296
+ const expectedBidResponse = {
297
+ requestId: response_video.seatbid[0].bid[0].impid,
298
+ cpm: response_video.seatbid[0].bid[0].price,
299
+ width: response_video.seatbid[0].bid[0].w,
300
+ height: response_video.seatbid[0].bid[0].h,
301
+ ttl: response_video.ttl || 1200,
302
+ currency: response_video.cur || 'USD',
303
+ netRevenue: true,
304
+ creativeId: response_video.seatbid[0].bid[0].crid,
305
+ dealId: response_video.seatbid[0].bid[0].dealid,
306
+ mediaType: 'video',
307
+ vastUrl: response_video.seatbid[0].bid[0].adm
308
+ }
309
+
310
+ let videoResponses = spec.interpretResponse(videoResponse);
311
+
312
+ expect(videoResponses).to.be.an('array').that.is.not.empty;
313
+ let dataItem = videoResponses[0];
314
+ expect(dataItem).to.have.all.keys('requestId', 'cpm', 'width', 'height', 'vastUrl', 'ttl', 'creativeId',
315
+ 'netRevenue', 'currency', 'dealId', 'mediaType');
316
+ expect(dataItem.requestId).to.equal(expectedBidResponse.requestId);
317
+ expect(dataItem.cpm).to.equal(expectedBidResponse.cpm);
318
+ expect(dataItem.vastUrl).to.equal(expectedBidResponse.vastUrl)
319
+ expect(dataItem.ttl).to.equal(expectedBidResponse.ttl);
320
+ expect(dataItem.creativeId).to.equal(expectedBidResponse.creativeId);
321
+ expect(dataItem.netRevenue).to.be.true;
322
+ expect(dataItem.currency).to.equal(expectedBidResponse.currency);
323
+ expect(dataItem.width).to.equal(expectedBidResponse.width);
324
+ expect(dataItem.height).to.equal(expectedBidResponse.height);
325
+ });
326
+
327
+ it('Should interpret native response', function () {
328
+ const nativeResponse = {
329
+ body: response_native
330
+ }
331
+
332
+ const expectedBidResponse = {
333
+ requestId: response_native.seatbid[0].bid[0].impid,
334
+ cpm: response_native.seatbid[0].bid[0].price,
335
+ width: response_native.seatbid[0].bid[0].w,
336
+ height: response_native.seatbid[0].bid[0].h,
337
+ ttl: response_native.ttl || 1200,
338
+ currency: response_native.cur || 'USD',
339
+ netRevenue: true,
340
+ creativeId: response_native.seatbid[0].bid[0].crid,
341
+ dealId: response_native.seatbid[0].bid[0].dealid,
342
+ mediaType: 'native',
343
+ native: {clickUrl: response_native.seatbid[0].bid[0].adm.native.link.url}
344
+ }
345
+
346
+ let nativeResponses = spec.interpretResponse(nativeResponse);
347
+
348
+ expect(nativeResponses).to.be.an('array').that.is.not.empty;
349
+ let dataItem = nativeResponses[0];
350
+ expect(dataItem).to.have.all.keys('requestId', 'cpm', 'width', 'height', 'native', 'ttl', 'creativeId',
351
+ 'netRevenue', 'currency', 'dealId', 'mediaType');
352
+ expect(dataItem.requestId).to.equal(expectedBidResponse.requestId);
353
+ expect(dataItem.cpm).to.equal(expectedBidResponse.cpm);
354
+ expect(dataItem.native.clickUrl).to.equal(expectedBidResponse.native.clickUrl)
355
+ expect(dataItem.ttl).to.equal(expectedBidResponse.ttl);
356
+ expect(dataItem.creativeId).to.equal(expectedBidResponse.creativeId);
357
+ expect(dataItem.netRevenue).to.be.true;
358
+ expect(dataItem.currency).to.equal(expectedBidResponse.currency);
359
+ expect(dataItem.width).to.equal(expectedBidResponse.width);
360
+ expect(dataItem.height).to.equal(expectedBidResponse.height);
361
+ });
362
+ });
363
+ })