prebid.js 7.20.0 → 7.22.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 (189) hide show
  1. package/dist/1plusXRtdProvider.js +1 -1
  2. package/dist/33acrossBidAdapter.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/audiencerunBidAdapter.js +1 -1
  17. package/dist/axonixBidAdapter.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/brightcomBidAdapter.js +1 -1
  24. package/dist/carodaBidAdapter.js +1 -1
  25. package/dist/concertBidAdapter.js +1 -1
  26. package/dist/connectadBidAdapter.js +1 -1
  27. package/dist/consumableBidAdapter.js +1 -1
  28. package/dist/conversantBidAdapter.js +1 -1
  29. package/dist/craftBidAdapter.js +1 -1
  30. package/dist/criteoBidAdapter.js +1 -1
  31. package/dist/dacIdSystem.js +1 -1
  32. package/dist/dspxBidAdapter.js +1 -1
  33. package/dist/eplanningBidAdapter.js +1 -1
  34. package/dist/finativeBidAdapter.js +1 -1
  35. package/dist/freewheel-sspBidAdapter.js +1 -1
  36. package/dist/ftrackIdSystem.js +1 -1
  37. package/dist/glimpseBidAdapter.js +1 -1
  38. package/dist/gmosspBidAdapter.js +1 -1
  39. package/dist/goldbachBidAdapter.js +1 -1
  40. package/dist/gridBidAdapter.js +1 -1
  41. package/dist/gridNMBidAdapter.js +1 -1
  42. package/dist/gumgumBidAdapter.js +1 -1
  43. package/dist/h12mediaBidAdapter.js +1 -1
  44. package/dist/iasRtdProvider.js +1 -1
  45. package/dist/id5IdSystem.js +1 -1
  46. package/dist/impactifyBidAdapter.js +1 -1
  47. package/dist/improvedigitalBidAdapter.js +1 -1
  48. package/dist/inmarBidAdapter.js +1 -1
  49. package/dist/insticatorBidAdapter.js +1 -1
  50. package/dist/ixBidAdapter.js +1 -1
  51. package/dist/jixieBidAdapter.js +1 -1
  52. package/dist/justpremiumBidAdapter.js +1 -1
  53. package/dist/konduitAnalyticsAdapter.js +1 -1
  54. package/dist/kueezBidAdapter.js +1 -1
  55. package/dist/lassoBidAdapter.js +1 -1
  56. package/dist/lifestreetBidAdapter.js +1 -1
  57. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  58. package/dist/logicadBidAdapter.js +1 -1
  59. package/dist/loglyliftBidAdapter.js +1 -1
  60. package/dist/magniteAnalyticsAdapter.js +1 -1
  61. package/dist/malltvAnalyticsAdapter.js +1 -1
  62. package/dist/marsmediaBidAdapter.js +1 -1
  63. package/dist/mediafuseBidAdapter.js +1 -1
  64. package/dist/mediakeysBidAdapter.js +1 -1
  65. package/dist/medianetAnalyticsAdapter.js +1 -1
  66. package/dist/medianetBidAdapter.js +1 -1
  67. package/dist/mediasquareBidAdapter.js +1 -1
  68. package/dist/mgidBidAdapter.js +1 -1
  69. package/dist/minutemediaBidAdapter.js +1 -1
  70. package/dist/not-for-prod/prebid.js +127 -127
  71. package/dist/oguryBidAdapter.js +1 -1
  72. package/dist/onetagBidAdapter.js +1 -1
  73. package/dist/ooloAnalyticsAdapter.js +1 -1
  74. package/dist/outbrainBidAdapter.js +1 -1
  75. package/dist/parrableIdSystem.js +1 -1
  76. package/dist/pixfutureBidAdapter.js +1 -1
  77. package/dist/prebid-core.js +1 -1
  78. package/dist/prebidServerBidAdapter.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/pubwiseBidAdapter.js +1 -1
  83. package/dist/pulsepointBidAdapter.js +1 -1
  84. package/dist/pxyzBidAdapter.js +1 -1
  85. package/dist/quantcastBidAdapter.js +1 -1
  86. package/dist/readpeakBidAdapter.js +1 -1
  87. package/dist/relaidoBidAdapter.js +1 -1
  88. package/dist/rhythmoneBidAdapter.js +1 -1
  89. package/dist/riseBidAdapter.js +1 -1
  90. package/dist/rubiconAnalyticsAdapter.js +1 -1
  91. package/dist/rubiconBidAdapter.js +1 -1
  92. package/dist/seedingAllianceBidAdapter.js +1 -1
  93. package/dist/seedtagBidAdapter.js +1 -1
  94. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  95. package/dist/sharethroughBidAdapter.js +1 -1
  96. package/dist/shinezBidAdapter.js +1 -1
  97. package/dist/smaatoBidAdapter.js +1 -1
  98. package/dist/smartadserverBidAdapter.js +1 -1
  99. package/dist/smartxBidAdapter.js +1 -1
  100. package/dist/smilewantedBidAdapter.js +1 -1
  101. package/dist/sonobiBidAdapter.js +1 -1
  102. package/dist/sovrnAnalyticsAdapter.js +1 -1
  103. package/dist/sovrnBidAdapter.js +1 -1
  104. package/dist/sspBCBidAdapter.js +1 -1
  105. package/dist/sublimeBidAdapter.js +1 -1
  106. package/dist/synacormediaBidAdapter.js +1 -1
  107. package/dist/targetVideoBidAdapter.js +1 -1
  108. package/dist/teadsBidAdapter.js +1 -1
  109. package/dist/trionBidAdapter.js +1 -1
  110. package/dist/tripleliftBidAdapter.js +1 -1
  111. package/dist/ttdBidAdapter.js +1 -1
  112. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  113. package/dist/underdogmediaBidAdapter.js +1 -1
  114. package/dist/undertoneBidAdapter.js +1 -1
  115. package/dist/userId.js +1 -1
  116. package/dist/vidazooBidAdapter.js +1 -1
  117. package/dist/videobyteBidAdapter.js +1 -1
  118. package/dist/visxBidAdapter.js +1 -1
  119. package/dist/vuukleBidAdapter.js +1 -1
  120. package/dist/weboramaRtdProvider.js +1 -1
  121. package/dist/widespaceBidAdapter.js +1 -1
  122. package/dist/winrBidAdapter.js +1 -1
  123. package/dist/yahoosspBidAdapter.js +1 -1
  124. package/dist/yieldmoBidAdapter.js +1 -1
  125. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  126. package/dist/yieldoneBidAdapter.js +1 -1
  127. package/integrationExamples/gpt/weboramaRtdProvider_example.html +10 -51
  128. package/modules/1plusXRtdProvider.js +32 -5
  129. package/modules/33acrossBidAdapter.js +18 -11
  130. package/modules/adyoulikeBidAdapter.js +12 -6
  131. package/modules/asoBidAdapter.js +11 -6
  132. package/modules/asoBidAdapter.md +5 -6
  133. package/modules/brightcomBidAdapter.js +30 -10
  134. package/modules/dacIdSystem.js +145 -27
  135. package/modules/dacIdSystem.md +7 -2
  136. package/modules/fledgeForGpt.md +101 -23
  137. package/modules/freewheel-sspBidAdapter.js +48 -7
  138. package/modules/freewheel-sspBidAdapter.md +1 -1
  139. package/modules/ftrackIdSystem.js +28 -9
  140. package/modules/gridBidAdapter.js +1 -0
  141. package/modules/iasRtdProvider.js +21 -6
  142. package/modules/iasRtdProvider.md +1 -1
  143. package/modules/ixBidAdapter.js +9 -4
  144. package/modules/medianetAnalyticsAdapter.js +26 -22
  145. package/modules/medianetBidAdapter.js +5 -1
  146. package/modules/mediasquareBidAdapter.js +42 -3
  147. package/modules/mgidBidAdapter.js +8 -1
  148. package/modules/oguryBidAdapter.js +6 -2
  149. package/modules/prebidServerBidAdapter/index.js +1 -1
  150. package/modules/pubmaticBidAdapter.js +27 -3
  151. package/modules/pubwiseBidAdapter.js +14 -12
  152. package/modules/pulsepointBidAdapter.js +11 -6
  153. package/modules/smaatoBidAdapter.js +54 -5
  154. package/modules/smaatoBidAdapter.md +78 -0
  155. package/modules/teadsBidAdapter.js +26 -8
  156. package/modules/ttdBidAdapter.js +8 -0
  157. package/modules/userId/eids.js +7 -11
  158. package/modules/weboramaRtdProvider.js +800 -643
  159. package/modules/weboramaRtdProvider.md +32 -0
  160. package/modules/yieldoneBidAdapter.js +7 -4
  161. package/package.json +3 -3
  162. package/src/adapters/bidderFactory.js +11 -9
  163. package/src/auction.js +3 -3
  164. package/test/spec/auctionmanager_spec.js +29 -20
  165. package/test/spec/modules/1plusXRtdProvider_spec.js +30 -14
  166. package/test/spec/modules/33acrossBidAdapter_spec.js +44 -1
  167. package/test/spec/modules/adyoulikeBidAdapter_spec.js +1 -1
  168. package/test/spec/modules/asoBidAdapter_spec.js +2 -2
  169. package/test/spec/modules/brightcomBidAdapter_spec.js +94 -1
  170. package/test/spec/modules/dacIdSystem_spec.js +93 -11
  171. package/test/spec/modules/eids_spec.js +11 -7
  172. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +25 -4
  173. package/test/spec/modules/ftrackIdSystem_spec.js +200 -90
  174. package/test/spec/modules/iasRtdProvider_spec.js +57 -1
  175. package/test/spec/modules/ixBidAdapter_spec.js +12 -0
  176. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +50 -8
  177. package/test/spec/modules/medianetBidAdapter_spec.js +76 -0
  178. package/test/spec/modules/mediasquareBidAdapter_spec.js +4 -2
  179. package/test/spec/modules/mgidBidAdapter_spec.js +50 -0
  180. package/test/spec/modules/oguryBidAdapter_spec.js +33 -17
  181. package/test/spec/modules/prebidServerBidAdapter_spec.js +24 -0
  182. package/test/spec/modules/pubmaticBidAdapter_spec.js +60 -5
  183. package/test/spec/modules/pubwiseBidAdapter_spec.js +6 -4
  184. package/test/spec/modules/pulsepointBidAdapter_spec.js +123 -0
  185. package/test/spec/modules/smaatoBidAdapter_spec.js +307 -36
  186. package/test/spec/modules/teadsBidAdapter_spec.js +119 -6
  187. package/test/spec/modules/weboramaRtdProvider_spec.js +382 -0
  188. package/test/spec/modules/yieldoneBidAdapter_spec.js +2 -3
  189. package/test/spec/unit/core/bidderFactory_spec.js +0 -4
@@ -444,11 +444,15 @@ describe('eids array generation for known sub-modules', function() {
444
444
 
445
445
  describe('ftrackId', () => {
446
446
  it('should return the correct EID schema', () => {
447
+ // This is the schema returned from the ftrack decode() method
447
448
  expect(createEidsArray({
448
449
  ftrackId: {
449
- DeviceID: ['aaa', 'bbb'],
450
- SingleDeviceID: ['ccc', 'ddd'],
451
- HHID: ['eee', 'fff']
450
+ uid: 'test-device-id',
451
+ ext: {
452
+ DeviceID: 'test-device-id',
453
+ SingleDeviceID: 'test-single-device-id',
454
+ HHID: 'test-household-id'
455
+ }
452
456
  },
453
457
  foo: {
454
458
  bar: 'baz'
@@ -458,11 +462,11 @@ describe('eids array generation for known sub-modules', function() {
458
462
  }
459
463
  })).to.deep.equal([{
460
464
  atype: 1,
461
- id: 'aaa|bbb',
465
+ id: 'test-device-id',
462
466
  ext: {
463
- DeviceID: 'aaa|bbb',
464
- SingleDeviceID: 'ccc|ddd',
465
- HHID: 'eee|fff'
467
+ DeviceID: 'test-device-id',
468
+ SingleDeviceID: 'test-single-device-id',
469
+ HHID: 'test-household-id'
466
470
  }
467
471
  }]);
468
472
  });
@@ -483,6 +483,23 @@ describe('freewheelSSP BidAdapter Test', () => {
483
483
  'bidId': '2',
484
484
  'bidderRequestId': '3',
485
485
  'auctionId': '4',
486
+ },
487
+ {
488
+ 'bidder': 'freewheelssp',
489
+ 'params': {
490
+ 'zoneId': '277225',
491
+ 'format': 'test'
492
+ },
493
+ 'adUnitCode': 'adunit-code',
494
+ 'mediaTypes': {
495
+ 'video': {
496
+ 'playerSize': [300, 600],
497
+ }
498
+ },
499
+ 'sizes': [[300, 400]],
500
+ 'bidId': '2',
501
+ 'bidderRequestId': '3',
502
+ 'auctionId': '4',
486
503
  }
487
504
  ];
488
505
 
@@ -510,7 +527,8 @@ describe('freewheelSSP BidAdapter Test', () => {
510
527
  ' </Creatives>' +
511
528
  ' <Extensions>' +
512
529
  ' <Extension type=\'StickyPricing\'><Price currency="EUR">0.2000</Price></Extension>' +
513
- ' </Extensions>' +
530
+ ' <Extension type=\'StickyBrand\'><Domain><![CDATA[minotaur.com]]></Domain><Sector><![CDATA[BEAUTY & HYGIENE]]></Sector><Advertiser><![CDATA[James Bond Trademarks]]></Advertiser><Brand><![CDATA[007 Seven]]></Brand></Extension>' +
531
+ ' </Extensions>' +
514
532
  ' </InLine>' +
515
533
  ' </Ad>' +
516
534
  '</VAST>';
@@ -536,12 +554,15 @@ describe('freewheelSSP BidAdapter Test', () => {
536
554
  bannerId: '12345',
537
555
  vastXml: response,
538
556
  mediaType: 'video',
539
- ad: ad
557
+ ad: ad,
558
+ meta: {
559
+ advertiserDomains: 'minotaur.com'
560
+ }
540
561
  }
541
562
  ];
542
563
 
543
564
  let result = spec.interpretResponse(response, request[0]);
544
- expect(result[0].meta.advertiserDomains).to.deep.equal([]);
565
+ expect(result[0].meta.advertiserDomains).to.deep.equal(['minotaur.com']);
545
566
  expect(result[0].dealId).to.equal('NRJ-PRO-00008');
546
567
  expect(result[0].campaignId).to.equal('SMF-WOW-55555');
547
568
  expect(result[0].bannerId).to.equal('12345');
@@ -570,7 +591,7 @@ describe('freewheelSSP BidAdapter Test', () => {
570
591
  ];
571
592
 
572
593
  let result = spec.interpretResponse(response, request[0]);
573
- expect(result[0].meta.advertiserDomains).to.deep.equal([]);
594
+ expect(result[0].meta.advertiserDomains).to.deep.equal(['minotaur.com']);
574
595
  expect(result[0].dealId).to.equal('NRJ-PRO-00008');
575
596
  expect(result[0].campaignId).to.equal('SMF-WOW-55555');
576
597
  expect(result[0].bannerId).to.equal('12345');
@@ -275,10 +275,55 @@ describe('FTRACK ID System', () => {
275
275
 
276
276
  describe(`decode() method`, () => {
277
277
  it(`should respond with an object with the key 'ftrackId'`, () => {
278
- expect(ftrackIdSubmodule.decode('value', configMock)).to.deep.equal({
278
+ const MOCK_VALUE_STRINGS = {
279
+ HHID: 'household_test_id',
280
+ DeviceID: 'device_test_id',
281
+ SingleDeviceID: 'single_device_test_id'
282
+ },
283
+ MOCK_VALUE_ARRAYS = {
284
+ HHID: ['household_test_id', 'a', 'b'],
285
+ DeviceID: ['device_test_id', 'c', 'd'],
286
+ SingleDeviceID: ['single_device_test_id', 'e', 'f']
287
+ },
288
+ MOCK_VALUE_BOTH = {
289
+ foo: ['foo', 'a', 'b'],
290
+ bar: 'bar',
291
+ baz: ['baz', 'baz', 'baz']
292
+ };
293
+
294
+ // strings are just passed through
295
+ expect(ftrackIdSubmodule.decode(MOCK_VALUE_STRINGS, configMock)).to.deep.equal({
296
+ ftrackId: {
297
+ ext: {
298
+ HHID: 'household_test_id',
299
+ DeviceID: 'device_test_id',
300
+ SingleDeviceID: 'single_device_test_id'
301
+ },
302
+ uid: 'device_test_id',
303
+ },
304
+ });
305
+
306
+ // arrays are converted to strings
307
+ expect(ftrackIdSubmodule.decode(MOCK_VALUE_ARRAYS, configMock)).to.deep.equal({
279
308
  ftrackId: {
280
- ext: { 0: 'v', 1: 'a', 2: 'l', 3: 'u', 4: 'e' },
281
- uid: undefined,
309
+ ext: {
310
+ HHID: 'household_test_id|a|b',
311
+ DeviceID: 'device_test_id|c|d',
312
+ SingleDeviceID: 'single_device_test_id|e|f'
313
+ },
314
+ uid: 'device_test_id|c|d',
315
+ },
316
+ });
317
+
318
+ // mix of both but uid should be empty string because DeviceId is not defined
319
+ expect(ftrackIdSubmodule.decode(MOCK_VALUE_BOTH, configMock)).to.deep.equal({
320
+ ftrackId: {
321
+ ext: {
322
+ foo: 'foo|a|b',
323
+ bar: 'bar',
324
+ baz: 'baz|baz|baz'
325
+ },
326
+ uid: '',
282
327
  },
283
328
  });
284
329
  });
@@ -309,56 +354,40 @@ describe('FTRACK ID System', () => {
309
354
  });
310
355
 
311
356
  describe('pbjs "get id" methods', () => {
312
- // The full set of ftrack IDs to test against
313
- let expectedIds = {
314
- HHID: ['household_test_id'],
315
- DeviceID: ['device_test_id'],
316
- SingleDeviceID: ['single_device_test_id']
317
- };
318
- // The full config mock
319
- let userSyncConfigMock = {
320
- userSync: {
321
- auctionDelay: 10,
322
- userIds: [{
323
- name: 'ftrack',
324
- value: {
325
- ftrackId: expectedIds
326
- }
327
- }]
328
- }
329
- };
330
- // The full eids response
331
- let expectedEids = [{
332
- id: 'device_test_id',
333
- atype: 1,
334
- ext: {
335
- HHID: expectedIds.HHID.join('|'),
336
- DeviceID: expectedIds.DeviceID.join('|'),
337
- SingleDeviceID: expectedIds.SingleDeviceID.join('|')
338
- }
339
- }];
340
-
341
357
  beforeEach(() => {
342
358
  init(config);
343
359
  setSubmoduleRegistry([ftrackIdSubmodule]);
344
360
  });
345
361
 
346
- afterEach(() => {
347
- // Reset expectedIds to the default values because some tests overwrite them
348
- expectedIds = {
349
- HHID: ['household_test_id'],
350
- DeviceID: ['device_test_id'],
351
- SingleDeviceID: ['single_device_test_id']
352
- };
353
- });
354
-
355
362
  describe('pbjs.getUserIdsAsync()', () => {
356
- it('should return the IDs in the correct schema', () => {
357
- config.setConfig(userSyncConfigMock);
363
+ it('should return the IDs in the correct schema - flat schema', () => {
364
+ config.setConfig({
365
+ userSync: {
366
+ auctionDelay: 10,
367
+ userIds: [{
368
+ name: 'ftrack',
369
+ value: {
370
+ ftrackId: {
371
+ uid: 'device_test_id',
372
+ ext: {
373
+ HHID: 'household_test_id',
374
+ DeviceID: 'device_test_id',
375
+ SingleDeviceID: 'single_device_test_id'
376
+ }
377
+ }
378
+ }
379
+ }]
380
+ }
381
+ });
358
382
 
359
383
  getGlobal().getUserIdsAsync().then(ids => {
360
384
  expect(ids).to.deep.equal({
361
- ftrackId: expectedIds
385
+ uid: 'device_test_id',
386
+ ftrackId: {
387
+ HHID: 'household_test_id',
388
+ DeviceID: 'device_test_id',
389
+ SingleDeviceID: 'single_device_test_id'
390
+ }
362
391
  });
363
392
  });
364
393
  });
@@ -366,73 +395,154 @@ describe('FTRACK ID System', () => {
366
395
 
367
396
  describe('pbjs.getUserIds()', () => {
368
397
  it('should return the IDs in the correct schema', () => {
369
- config.setConfig(userSyncConfigMock);
398
+ config.setConfig({
399
+ userSync: {
400
+ auctionDelay: 10,
401
+ userIds: [{
402
+ name: 'ftrack',
403
+ value: {
404
+ ftrackId: {
405
+ uid: 'device_test_id',
406
+ ext: {
407
+ HHID: 'household_test_id',
408
+ DeviceID: 'device_test_id',
409
+ SingleDeviceID: 'single_device_test_id'
410
+ }
411
+ }
412
+ }
413
+ }]
414
+ }
415
+ });
370
416
 
371
417
  expect(getGlobal().getUserIds()).to.deep.equal({
372
- 'ftrackId': expectedIds
418
+ ftrackId: {
419
+ uid: 'device_test_id',
420
+ ext: {
421
+ HHID: 'household_test_id',
422
+ DeviceID: 'device_test_id',
423
+ SingleDeviceID: 'single_device_test_id'
424
+ }
425
+ }
373
426
  });
374
427
  });
375
428
  });
376
429
 
377
430
  describe('pbjs.getUserIdsAsEids()', () => {
378
- it('should return the correct EIDs schema', () => {
379
- let userSyncConfig = Object.assign({}, userSyncConfigMock);
380
-
381
- config.setConfig(userSyncConfig);
431
+ it('should return the correct EIDs schema ', () => {
432
+ // Pass all three IDs
433
+ config.setConfig({
434
+ userSync: {
435
+ auctionDelay: 10,
436
+ userIds: [{
437
+ name: 'ftrack',
438
+ value: {
439
+ ftrackId: {
440
+ uid: 'device_test_id',
441
+ ext: {
442
+ HHID: 'household_test_id',
443
+ DeviceID: 'device_test_id',
444
+ SingleDeviceID: 'single_device_test_id'
445
+ }
446
+ }
447
+ }
448
+ }]
449
+ }
450
+ });
382
451
 
383
- expect(getGlobal().getUserIdsAsEids()).to.deep.equal(expectedEids);
452
+ expect(getGlobal().getUserIdsAsEids()).to.deep.equal([{
453
+ id: 'device_test_id',
454
+ atype: 1,
455
+ ext: {
456
+ HHID: 'household_test_id',
457
+ DeviceID: 'device_test_id',
458
+ SingleDeviceID: 'single_device_test_id'
459
+ }
460
+ }]);
384
461
  });
385
462
 
386
463
  describe('by ID type:', () => {
387
464
  it('- DeviceID', () => {
388
- let userSyncConfig = Object.assign({}, userSyncConfigMock);
389
-
390
- userSyncConfig.userSync.userIds[0].value.ftrackId = {
391
- DeviceID: ['device_test_id']
392
- };
393
-
394
- let expectedEidsClone = expectedEids.slice();
395
- expectedEidsClone[0].ext = {
396
- DeviceID: expectedIds.DeviceID.join('|')
397
- };
398
-
399
- config.setConfig(userSyncConfig);
465
+ // Pass DeviceID only
466
+ config.setConfig({
467
+ userSync: {
468
+ auctionDelay: 10,
469
+ userIds: [{
470
+ name: 'ftrack',
471
+ value: {
472
+ ftrackId: {
473
+ uid: 'device_test_id',
474
+ ext: {
475
+ DeviceID: 'device_test_id',
476
+ }
477
+ }
478
+ }
479
+ }]
480
+ }
481
+ });
400
482
 
401
- expect(getGlobal().getUserIdsAsEids()).to.deep.equal(expectedEidsClone);
483
+ expect(getGlobal().getUserIdsAsEids()).to.deep.equal([{
484
+ id: 'device_test_id',
485
+ atype: 1,
486
+ ext: {
487
+ DeviceID: 'device_test_id'
488
+ }
489
+ }]);
402
490
  });
403
491
 
404
492
  it('- HHID', () => {
405
- let userSyncConfig = Object.assign({}, userSyncConfigMock);
406
- userSyncConfig.userSync.userIds[0].value.ftrackId = {
407
- HHID: ['household_test_id']
408
- };
409
-
410
- let expectedEidsClone = expectedEids.slice();
411
- expectedEidsClone[0].id = '';
412
- expectedEidsClone[0].ext = {
413
- HHID: expectedIds.HHID.join('|')
414
- };
415
-
416
- config.setConfig(userSyncConfig);
493
+ // Pass HHID only
494
+ config.setConfig({
495
+ userSync: {
496
+ auctionDelay: 10,
497
+ userIds: [{
498
+ name: 'ftrack',
499
+ value: {
500
+ ftrackId: {
501
+ uid: '',
502
+ ext: {
503
+ HHID: 'household_test_id'
504
+ }
505
+ }
506
+ }
507
+ }]
508
+ }
509
+ });
417
510
 
418
- expect(getGlobal().getUserIdsAsEids()).to.deep.equal(expectedEidsClone);
511
+ expect(getGlobal().getUserIdsAsEids()).to.deep.equal([{
512
+ id: '',
513
+ atype: 1,
514
+ ext: {
515
+ HHID: 'household_test_id'
516
+ }
517
+ }]);
419
518
  });
420
519
 
421
520
  it('- SingleDeviceID', () => {
422
- let userSyncConfig = Object.assign({}, userSyncConfigMock);
423
- userSyncConfig.userSync.userIds[0].value.ftrackId = {
424
- SingleDeviceID: ['single_device_test_id']
425
- };
426
-
427
- let expectedEidsClone = expectedEids.slice();
428
- expectedEidsClone[0].id = '';
429
- expectedEidsClone[0].ext = {
430
- SingleDeviceID: expectedIds.SingleDeviceID.join('|')
431
- };
432
-
433
- config.setConfig(userSyncConfig);
521
+ // Pass SingleDeviceID only
522
+ config.setConfig({
523
+ userSync: {
524
+ auctionDelay: 10,
525
+ userIds: [{
526
+ name: 'ftrack',
527
+ value: {
528
+ ftrackId: {
529
+ uid: '',
530
+ ext: {
531
+ SingleDeviceID: 'single_device_test_id'
532
+ }
533
+ }
534
+ }
535
+ }]
536
+ }
537
+ });
434
538
 
435
- expect(getGlobal().getUserIdsAsEids()).to.deep.equal(expectedEidsClone);
539
+ expect(getGlobal().getUserIdsAsEids()).to.deep.equal([{
540
+ id: '',
541
+ atype: 1,
542
+ ext: {
543
+ SingleDeviceID: 'single_device_test_id'
544
+ }
545
+ }]);
436
546
  });
437
547
  });
438
548
  });
@@ -54,6 +54,59 @@ describe('iasRtdProvider is a RTD provider that', function () {
54
54
  const value = iasSubModule.init(config);
55
55
  expect(value).to.equal(true);
56
56
  });
57
+ it('returns true with the pubId, keyMappings and adUnitPath params', function () {
58
+ const config = {
59
+ name: 'ias',
60
+ waitForIt: true,
61
+ params: {
62
+ pubId: '123456',
63
+ keyMappings: {
64
+ 'id': 'ias_id'
65
+ },
66
+ adUnitPath: {'one-div-id': '/012345/ad/unit/path'}
67
+ }
68
+ };
69
+ const value = iasSubModule.init(config);
70
+ expect(value).to.equal(true);
71
+ });
72
+ it('returns true with the pubId and adUnitPath params with multiple keys', function () {
73
+ const config = {
74
+ name: 'ias',
75
+ waitForIt: true,
76
+ params: {
77
+ pubId: '123456',
78
+ keyMappings: {
79
+ 'id': 'ias_id'
80
+ },
81
+ adUnitPath: {
82
+ 'one-div-id': '/012345/ad/unit/path',
83
+ 'another-div-id': '/012345/ad/unit/path',
84
+ 'third-div-id': '/012345/another/ad/unit/path'
85
+ }
86
+ }
87
+ };
88
+ const value = iasSubModule.init(config);
89
+ expect(value).to.equal(true);
90
+ });
91
+ it('returns true with the pubId and adUnitPath params with empty values', function () {
92
+ const config = {
93
+ name: 'ias',
94
+ waitForIt: true,
95
+ params: {
96
+ pubId: '123456',
97
+ keyMappings: {
98
+ 'id': 'ias_id'
99
+ },
100
+ adUnitPath: {
101
+ 'one-div-id': '/012345/ad/unit/path',
102
+ 'another-div-id': '',
103
+ 'third-div-id': ''
104
+ }
105
+ }
106
+ };
107
+ const value = iasSubModule.init(config);
108
+ expect(value).to.equal(true);
109
+ });
57
110
  });
58
111
  describe('has a method `getBidRequestData` that', function () {
59
112
  it('exists', function () {
@@ -138,7 +191,10 @@ const config = {
138
191
  keyMappings: {
139
192
  'id': 'ias_id'
140
193
  },
141
- pageUrl: 'https://integralads.com/test'
194
+ pageUrl: 'https://integralads.com/test',
195
+ adUnitPath: {
196
+ 'one-div-id': '/012345/ad/unit/path'
197
+ }
142
198
  }
143
199
  };
144
200
 
@@ -1870,6 +1870,18 @@ describe('IndexexchangeAdapter', function () {
1870
1870
  expect(impression.banner.format[0].ext.fl).to.equal('x');
1871
1871
  });
1872
1872
 
1873
+ it('banner multi size impression should have bidFloor both in imp and format ext obejcts', function () {
1874
+ const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
1875
+ bid.params.bidFloor = 50;
1876
+ bid.params.bidFloorCur = 'USD';
1877
+ const requestBidFloor = spec.buildRequests([bid], {})[0];
1878
+ const impression = JSON.parse(requestBidFloor.data.r).imp[0];
1879
+
1880
+ expect(impression.bidfloor).to.equal(bid.params.bidFloor);
1881
+ expect(impression.bidfloorcur).to.equal(bid.params.bidFloorCur);
1882
+ expect(impression.banner.format[0].ext.bidfloor).to.equal(50);
1883
+ });
1884
+
1873
1885
  it('missing sizes impressions should contain floors from priceFloors module ', function () {
1874
1886
  const bid = utils.deepClone(ONE_BANNER[0]);
1875
1887
  bid.mediaTypes.banner.sizes.push([500, 400])