prebid.js 5.16.0 → 5.20.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 (182) hide show
  1. package/.devcontainer/Dockerfile +11 -0
  2. package/.devcontainer/devcontainer.json +27 -0
  3. package/.devcontainer/postCreate.sh +6 -0
  4. package/browsers.json +1 -0
  5. package/integrationExamples/gpt/akamaidap_segments_example.html +132 -0
  6. package/modules/.submodules.json +1 -0
  7. package/modules/adfBidAdapter.js +21 -16
  8. package/modules/adgenerationBidAdapter.js +28 -4
  9. package/modules/adkernelBidAdapter.js +3 -1
  10. package/modules/admixerBidAdapter.js +11 -0
  11. package/modules/adnuntiusBidAdapter.js +1 -0
  12. package/modules/adtelligentBidAdapter.js +2 -1
  13. package/modules/airgridRtdProvider.js +1 -1
  14. package/modules/akamaiDapRtdProvider.js +474 -0
  15. package/modules/akamaiDapRtdProvider.md +47 -0
  16. package/modules/aolBidAdapter.js +2 -1
  17. package/modules/appnexusBidAdapter.js +5 -3
  18. package/modules/atsAnalyticsAdapter.js +89 -63
  19. package/modules/atsAnalyticsAdapter.md +1 -0
  20. package/modules/betweenBidAdapter.js +20 -3
  21. package/modules/bliinkBidAdapter.js +58 -32
  22. package/modules/bliinkBidAdapter.md +29 -6
  23. package/modules/browsiRtdProvider.js +106 -18
  24. package/modules/cleanioRtdProvider.js +192 -0
  25. package/modules/cleanioRtdProvider.md +59 -0
  26. package/modules/codefuelBidAdapter.js +183 -0
  27. package/modules/codefuelBidAdapter.md +111 -0
  28. package/modules/connectIdSystem.js +104 -0
  29. package/modules/connectIdSystem.md +33 -0
  30. package/modules/cwireBidAdapter.js +272 -0
  31. package/modules/cwireBidAdapter.md +43 -0
  32. package/modules/deepintentBidAdapter.js +106 -9
  33. package/modules/deepintentBidAdapter.md +36 -1
  34. package/modules/deltaprojectsBidAdapter.js +252 -0
  35. package/modules/deltaprojectsBidAdapter.md +32 -0
  36. package/modules/dgkeywordRtdProvider.js +0 -1
  37. package/modules/engageyaBidAdapter.js +157 -0
  38. package/modules/glimpseBidAdapter.js +160 -48
  39. package/modules/glimpseBidAdapter.md +11 -74
  40. package/modules/gridBidAdapter.js +1 -0
  41. package/modules/gridNMBidAdapter.js +7 -6
  42. package/modules/gumgumBidAdapter.js +16 -2
  43. package/modules/iasRtdProvider.js +83 -67
  44. package/modules/inskinBidAdapter.js +7 -3
  45. package/modules/ixBidAdapter.js +8 -1
  46. package/modules/jixieBidAdapter.js +8 -2
  47. package/modules/justpremiumBidAdapter.js +6 -1
  48. package/modules/kargoBidAdapter.js +14 -7
  49. package/modules/kargoBidAdapter.md +20 -0
  50. package/modules/limelightDigitalBidAdapter.js +22 -2
  51. package/modules/livewrappedAnalyticsAdapter.js +53 -3
  52. package/modules/mediakeysBidAdapter.js +405 -14
  53. package/modules/mediakeysBidAdapter.md +108 -0
  54. package/modules/multibid/index.js +3 -3
  55. package/modules/mytargetBidAdapter.js +112 -0
  56. package/modules/nativoBidAdapter.js +48 -29
  57. package/modules/nativoBidAdapter.md +0 -1
  58. package/modules/nextMillenniumBidAdapter.js +12 -3
  59. package/modules/nextrollBidAdapter.js +375 -0
  60. package/modules/nobidBidAdapter.js +2 -1
  61. package/modules/oguryBidAdapter.js +36 -7
  62. package/modules/openxBidAdapter.js +34 -22
  63. package/modules/operaadsBidAdapter.js +21 -1
  64. package/modules/otmBidAdapter.js +146 -0
  65. package/modules/otmBidAdapter.md +27 -26
  66. package/modules/outbrainBidAdapter.js +5 -0
  67. package/modules/pixfutureBidAdapter.js +24 -4
  68. package/modules/pixfutureBidAdapter.md +127 -0
  69. package/modules/playwireBidAdapter.md +61 -0
  70. package/modules/prebidServerBidAdapter/index.js +1 -1
  71. package/modules/proxistoreBidAdapter.js +4 -6
  72. package/modules/publinkIdSystem.js +17 -7
  73. package/modules/publinkIdSystem.md +7 -2
  74. package/modules/pubmaticBidAdapter.js +22 -6
  75. package/modules/pubmaticBidAdapter.md +1 -1
  76. package/modules/relaidoBidAdapter.js +8 -2
  77. package/modules/rtdModule/index.js +2 -2
  78. package/modules/sharethroughBidAdapter.js +12 -19
  79. package/modules/slimcutBidAdapter.js +121 -0
  80. package/modules/sonobiBidAdapter.js +7 -0
  81. package/modules/sortableBidAdapter.js +1 -0
  82. package/modules/spotxBidAdapter.js +15 -1
  83. package/modules/sspBCBidAdapter.js +207 -12
  84. package/modules/sspBCBidAdapter.md +1 -1
  85. package/modules/talkadsBidAdapter.js +129 -0
  86. package/modules/talkadsBidAdapter.md +60 -0
  87. package/modules/tappxBidAdapter.js +6 -5
  88. package/modules/teadsBidAdapter.js +3 -0
  89. package/modules/tripleliftBidAdapter.js +22 -5
  90. package/modules/trustxBidAdapter.js +17 -11
  91. package/modules/undertoneBidAdapter.js +9 -5
  92. package/modules/undertoneBidAdapter.md +5 -1
  93. package/modules/unicornBidAdapter.js +3 -3
  94. package/modules/userId/eids.js +18 -0
  95. package/modules/userId/eids.md +7 -0
  96. package/modules/userId/userId.md +12 -0
  97. package/modules/ventesBidAdapter.js +370 -0
  98. package/modules/ventesBidAdapter.md +94 -0
  99. package/modules/videobyteBidAdapter.js +13 -6
  100. package/modules/videobyteBidAdapter.md +49 -0
  101. package/modules/vidoomyBidAdapter.js +20 -12
  102. package/modules/visxBidAdapter.js +15 -22
  103. package/modules/yahoosspBidAdapter.js +637 -0
  104. package/modules/yahoosspBidAdapter.md +795 -0
  105. package/modules/yieldlabBidAdapter.js +48 -3
  106. package/modules/yieldlabBidAdapter.md +16 -1
  107. package/modules/yieldmoBidAdapter.js +20 -6
  108. package/modules/yieldmoSyntheticInventoryModule.js +46 -0
  109. package/modules/yieldmoSyntheticInventoryModule.md +68 -0
  110. package/package.json +1 -1
  111. package/src/adapterManager.js +5 -0
  112. package/src/adapters/bidderFactory.js +4 -3
  113. package/src/auction.js +11 -11
  114. package/src/constants.json +1 -0
  115. package/src/secureCreatives.js +6 -7
  116. package/src/targeting.js +11 -9
  117. package/test/.eslintrc.js +2 -1
  118. package/test/spec/modules/adfBidAdapter_spec.js +83 -29
  119. package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
  120. package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
  121. package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
  122. package/test/spec/modules/akamaiDapRtdProvider_spec.js +246 -0
  123. package/test/spec/modules/appnexusBidAdapter_spec.js +2 -1
  124. package/test/spec/modules/atsAnalyticsAdapter_spec.js +77 -9
  125. package/test/spec/modules/betweenBidAdapter_spec.js +41 -0
  126. package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
  127. package/test/spec/modules/browsiRtdProvider_spec.js +62 -7
  128. package/test/spec/modules/cleanioRtdProvider_spec.js +188 -0
  129. package/test/spec/modules/codefuelBidAdapter_spec.js +316 -0
  130. package/test/spec/modules/connectIdSystem_spec.js +189 -0
  131. package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
  132. package/test/spec/modules/deepintentBidAdapter_spec.js +153 -3
  133. package/test/spec/modules/deltaprojectsBidAdapter_spec.js +399 -0
  134. package/test/spec/modules/engageyaBidAdapter_spec.js +286 -0
  135. package/test/spec/modules/glimpseBidAdapter_spec.js +302 -204
  136. package/test/spec/modules/gridNMBidAdapter_spec.js +40 -1
  137. package/test/spec/modules/gumgumBidAdapter_spec.js +23 -6
  138. package/test/spec/modules/iasRtdProvider_spec.js +71 -6
  139. package/test/spec/modules/ixBidAdapter_spec.js +13 -3
  140. package/test/spec/modules/jixieBidAdapter_spec.js +13 -11
  141. package/test/spec/modules/justpremiumBidAdapter_spec.js +9 -2
  142. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +155 -1
  143. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +67 -12
  144. package/test/spec/modules/mediakeysBidAdapter_spec.js +406 -51
  145. package/test/spec/modules/multibid_spec.js +31 -31
  146. package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
  147. package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
  148. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +13 -1
  149. package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
  150. package/test/spec/modules/nobidBidAdapter_spec.js +65 -1
  151. package/test/spec/modules/oguryBidAdapter_spec.js +125 -37
  152. package/test/spec/modules/openxBidAdapter_spec.js +85 -13
  153. package/test/spec/modules/operaadsBidAdapter_spec.js +38 -6
  154. package/test/spec/modules/otmBidAdapter_spec.js +67 -0
  155. package/test/spec/modules/outbrainBidAdapter_spec.js +18 -0
  156. package/test/spec/modules/publinkIdSystem_spec.js +34 -15
  157. package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
  158. package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
  159. package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
  160. package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
  161. package/test/spec/modules/sonobiBidAdapter_spec.js +34 -1
  162. package/test/spec/modules/sortableBidAdapter_spec.js +11 -0
  163. package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
  164. package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
  165. package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
  166. package/test/spec/modules/teadsBidAdapter_spec.js +132 -0
  167. package/test/spec/modules/tripleliftBidAdapter_spec.js +128 -0
  168. package/test/spec/modules/trustxBidAdapter_spec.js +38 -5
  169. package/test/spec/modules/undertoneBidAdapter_spec.js +52 -0
  170. package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
  171. package/test/spec/modules/ventesBidAdapter_spec.js +845 -0
  172. package/test/spec/modules/videobyteBidAdapter_spec.js +2 -2
  173. package/test/spec/modules/visxBidAdapter_spec.js +48 -4
  174. package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
  175. package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
  176. package/test/spec/modules/yieldmoBidAdapter_spec.js +30 -9
  177. package/test/spec/modules/yieldmoSyntheticInventoryModule_spec.js +89 -0
  178. package/test/spec/unit/core/adapterManager_spec.js +32 -0
  179. package/test/spec/unit/core/bidderFactory_spec.js +61 -1
  180. package/test/spec/unit/pbjs_api_spec.js +37 -2
  181. package/test/spec/unit/secureCreatives_spec.js +54 -25
  182. package/modules/turktelekomBidAdapter.md +0 -49
@@ -2,6 +2,7 @@ import livewrappedAnalyticsAdapter, { BID_WON_TIMEOUT } from 'modules/livewrappe
2
2
  import CONSTANTS from 'src/constants.json';
3
3
  import { config } from 'src/config.js';
4
4
  import { server } from 'test/mocks/xhr.js';
5
+ import { setConfig } from 'modules/currency.js';
5
6
 
6
7
  let events = require('src/events');
7
8
  let utils = require('src/utils');
@@ -16,7 +17,8 @@ const {
16
17
  BIDDER_DONE,
17
18
  BID_WON,
18
19
  BID_TIMEOUT,
19
- SET_TARGETING
20
+ SET_TARGETING,
21
+ AD_RENDER_FAILED
20
22
  },
21
23
  STATUS: {
22
24
  GOOD
@@ -27,6 +29,9 @@ const BID1 = {
27
29
  width: 980,
28
30
  height: 240,
29
31
  cpm: 1.1,
32
+ originalCpm: 12.0,
33
+ currency: 'USD',
34
+ originalCurrency: 'FOO',
30
35
  timeToRespond: 200,
31
36
  bidId: '2ecff0db240757',
32
37
  requestId: '2ecff0db240757',
@@ -42,6 +47,9 @@ const BID2 = Object.assign({}, BID1, {
42
47
  width: 300,
43
48
  height: 250,
44
49
  cpm: 2.2,
50
+ originalCpm: 23.0,
51
+ currency: 'USD',
52
+ originalCurrency: 'FOO',
45
53
  timeToRespond: 300,
46
54
  bidId: '3ecff0db240757',
47
55
  requestId: '3ecff0db240757',
@@ -115,6 +123,14 @@ const MOCK = {
115
123
  'bidId': '2ecff0db240757',
116
124
  'auctionId': '25c6d7f5-699a-4bfc-87c9-996f915341fa'
117
125
  }
126
+ ],
127
+ AD_RENDER_FAILED: [
128
+ {
129
+ 'bidId': '2ecff0db240757',
130
+ 'reason': CONSTANTS.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD,
131
+ 'message': 'message',
132
+ 'bid': BID1
133
+ }
118
134
  ]
119
135
  };
120
136
 
@@ -169,6 +185,7 @@ const ANALYTICS_MESSAGE = {
169
185
  width: 980,
170
186
  height: 240,
171
187
  cpm: 1.1,
188
+ orgCpm: 120,
172
189
  ttr: 200,
173
190
  IsBid: true,
174
191
  mediaType: 1,
@@ -183,6 +200,7 @@ const ANALYTICS_MESSAGE = {
183
200
  width: 300,
184
201
  height: 250,
185
202
  cpm: 2.2,
203
+ orgCpm: 230,
186
204
  ttr: 300,
187
205
  IsBid: true,
188
206
  mediaType: 1,
@@ -210,6 +228,7 @@ const ANALYTICS_MESSAGE = {
210
228
  width: 980,
211
229
  height: 240,
212
230
  cpm: 1.1,
231
+ orgCpm: 120,
213
232
  mediaType: 1,
214
233
  gdpr: 0,
215
234
  auctionId: 0
@@ -222,10 +241,22 @@ const ANALYTICS_MESSAGE = {
222
241
  width: 300,
223
242
  height: 250,
224
243
  cpm: 2.2,
244
+ orgCpm: 230,
225
245
  mediaType: 1,
226
246
  gdpr: 0,
227
247
  auctionId: 0
228
248
  }
249
+ ],
250
+ rf: [
251
+ {
252
+ timeStamp: 1519149562216,
253
+ adUnit: 'panorama_d_1',
254
+ adUnitId: 'adunitid',
255
+ bidder: 'livewrapped',
256
+ auctionId: 0,
257
+ rsn: CONSTANTS.AD_RENDER_FAILED_REASON.CANNOT_FIND_AD,
258
+ msg: 'message'
259
+ },
229
260
  ]
230
261
  };
231
262
 
@@ -239,6 +270,7 @@ function performStandardAuction() {
239
270
  events.emit(SET_TARGETING, MOCK.SET_TARGETING);
240
271
  events.emit(BID_WON, MOCK.BID_WON[0]);
241
272
  events.emit(BID_WON, MOCK.BID_WON[1]);
273
+ events.emit(AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED[0]);
242
274
  }
243
275
 
244
276
  describe('Livewrapped analytics adapter', function () {
@@ -258,6 +290,14 @@ describe('Livewrapped analytics adapter', function () {
258
290
  sandbox.stub(document, 'getElementById').returns(element);
259
291
 
260
292
  clock = sandbox.useFakeTimers(1519767013781);
293
+ setConfig({
294
+ adServerCurrency: 'USD',
295
+ rates: {
296
+ USD: {
297
+ FOO: 0.1
298
+ }
299
+ }
300
+ });
261
301
  });
262
302
 
263
303
  afterEach(function () {
@@ -300,7 +340,7 @@ describe('Livewrapped analytics adapter', function () {
300
340
  expect(message).to.deep.equal(ANALYTICS_MESSAGE);
301
341
  });
302
342
 
303
- it('should send batched message without BID_WON if necessary and further BID_WON events individually', function () {
343
+ it('should send batched message without BID_WON AND AD_RENDER_FAILED if necessary and further BID_WON and AD_RENDER_FAILED events individually', function () {
304
344
  events.emit(AUCTION_INIT, MOCK.AUCTION_INIT);
305
345
  events.emit(BID_REQUESTED, MOCK.BID_REQUESTED);
306
346
  events.emit(BID_RESPONSE, MOCK.BID_RESPONSE[0]);
@@ -313,8 +353,9 @@ describe('Livewrapped analytics adapter', function () {
313
353
  clock.tick(BID_WON_TIMEOUT + 1000);
314
354
 
315
355
  events.emit(BID_WON, MOCK.BID_WON[1]);
356
+ events.emit(AD_RENDER_FAILED, MOCK.AD_RENDER_FAILED[0]);
316
357
 
317
- expect(server.requests.length).to.equal(2);
358
+ expect(server.requests.length).to.equal(3);
318
359
 
319
360
  let message = JSON.parse(server.requests[0].requestBody);
320
361
  expect(message.wins.length).to.equal(1);
@@ -324,6 +365,10 @@ describe('Livewrapped analytics adapter', function () {
324
365
  message = JSON.parse(server.requests[1].requestBody);
325
366
  expect(message.wins.length).to.equal(1);
326
367
  expect(message.wins[0]).to.deep.equal(ANALYTICS_MESSAGE.wins[1]);
368
+
369
+ message = JSON.parse(server.requests[2].requestBody);
370
+ expect(message.rf.length).to.equal(1);
371
+ expect(message.rf[0]).to.deep.equal(ANALYTICS_MESSAGE.rf[0]);
327
372
  });
328
373
 
329
374
  it('should properly mark bids as timed out', function () {
@@ -416,18 +461,28 @@ describe('Livewrapped analytics adapter', function () {
416
461
  {
417
462
  'bidder': 'livewrapped',
418
463
  'adUnitCode': 'panorama_d_1',
419
- 'bidId': '2ecff0db240757',
420
- 'floorData': {
421
- 'floorValue': 1.1,
422
- 'floorCurrency': 'SEK'
423
- }
464
+ 'bidId': '2ecff0db240757'
424
465
  }
425
466
  ],
426
467
  'start': 1519149562216
427
468
  });
428
469
 
429
- events.emit(BID_RESPONSE, MOCK.BID_RESPONSE[0]);
430
- events.emit(BID_WON, MOCK.BID_WON[0]);
470
+ events.emit(BID_RESPONSE, Object.assign({},
471
+ MOCK.BID_RESPONSE[0],
472
+ {
473
+ 'floorData': {
474
+ 'floorValue': 1.1,
475
+ 'floorCurrency': 'FOO'
476
+ }
477
+ }));
478
+ events.emit(BID_WON, Object.assign({},
479
+ MOCK.BID_WON[0],
480
+ {
481
+ 'floorData': {
482
+ 'floorValue': 1.1,
483
+ 'floorCurrency': 'FOO'
484
+ }
485
+ }));
431
486
  events.emit(AUCTION_END, MOCK.AUCTION_END);
432
487
 
433
488
  clock.tick(BID_WON_TIMEOUT + 1000);
@@ -440,11 +495,11 @@ describe('Livewrapped analytics adapter', function () {
440
495
 
441
496
  expect(message.responses.length).to.equal(1);
442
497
  expect(message.responses[0].floor).to.equal(1.1);
443
- expect(message.responses[0].floorCur).to.equal('SEK');
498
+ expect(message.responses[0].floorCur).to.equal('FOO');
444
499
 
445
500
  expect(message.wins.length).to.equal(1);
446
501
  expect(message.wins[0].floor).to.equal(1.1);
447
- expect(message.wins[0].floorCur).to.equal('SEK');
502
+ expect(message.wins[0].floorCur).to.equal('FOO');
448
503
  });
449
504
 
450
505
  it('should forward Livewrapped floor data', function () {