prebid.js 6.6.0 → 6.10.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 (271) hide show
  1. package/.eslintrc.js +8 -1
  2. package/allowedModules.js +4 -7
  3. package/integrationExamples/gpt/amp/creative.html +11 -33
  4. package/integrationExamples/gpt/{haloRtdProvider_example.html → hadronRtdProvider_example.html} +9 -9
  5. package/integrationExamples/gpt/idImportLibrary_example.html +2 -2
  6. package/integrationExamples/gpt/userId_example.html +2 -2
  7. package/integrationExamples/gpt/weboramaRtdProvider_example.html +154 -115
  8. package/integrationExamples/gpt/x-domain/creative.html +63 -29
  9. package/modules/.submodules.json +3 -0
  10. package/modules/adagioBidAdapter.js +1 -9
  11. package/modules/adagioBidAdapter.md +1 -1
  12. package/modules/adbookpspBidAdapter.js +29 -12
  13. package/modules/adhashBidAdapter.js +4 -4
  14. package/modules/adkernelBidAdapter.js +2 -2
  15. package/modules/adlooxAnalyticsAdapter.js +1 -1
  16. package/modules/adlooxRtdProvider.js +1 -1
  17. package/modules/adnowBidAdapter.js +1 -1
  18. package/modules/adnuntiusRtdProvider.js +96 -0
  19. package/modules/adnuntiusRtdProvider.md +41 -0
  20. package/modules/adomikAnalyticsAdapter.js +2 -2
  21. package/modules/adotBidAdapter.js +1 -1
  22. package/modules/adpod.js +14 -17
  23. package/modules/adrelevantisBidAdapter.js +2 -2
  24. package/modules/adtargetBidAdapter.js +1 -1
  25. package/modules/adtelligentBidAdapter.js +1 -1
  26. package/modules/advangelistsBidAdapter.js +2 -2
  27. package/modules/adxpremiumAnalyticsAdapter.js +1 -1
  28. package/modules/adyoulikeBidAdapter.js +1 -1
  29. package/modules/afpBidAdapter.js +1 -1
  30. package/modules/appnexusBidAdapter.js +16 -4
  31. package/modules/asealBidAdapter.js +58 -0
  32. package/modules/asealBidAdapter.md +52 -0
  33. package/modules/beachfrontBidAdapter.js +2 -2
  34. package/modules/betweenBidAdapter.js +1 -1
  35. package/modules/bidViewability.js +1 -1
  36. package/modules/bluebillywigBidAdapter.js +1 -1
  37. package/modules/brandmetricsRtdProvider.js +168 -0
  38. package/modules/brandmetricsRtdProvider.md +40 -0
  39. package/modules/bridgewellBidAdapter.js +1 -1
  40. package/modules/browsiRtdProvider.js +2 -2
  41. package/modules/cleanmedianetBidAdapter.js +1 -1
  42. package/modules/colossussspBidAdapter.js +12 -8
  43. package/modules/colossussspBidAdapter.md +15 -1
  44. package/modules/compassBidAdapter.js +1 -1
  45. package/modules/connectIdSystem.js +1 -1
  46. package/modules/consentManagement.js +2 -3
  47. package/modules/consumableBidAdapter.md +1 -1
  48. package/modules/conversantBidAdapter.js +7 -0
  49. package/modules/craftBidAdapter.js +2 -2
  50. package/modules/criteoBidAdapter.js +10 -1
  51. package/modules/currency.js +27 -5
  52. package/modules/cwireBidAdapter.js +1 -1
  53. package/modules/dailyhuntBidAdapter.js +1 -1
  54. package/modules/dchain.js +1 -1
  55. package/modules/displayioBidAdapter.js +157 -0
  56. package/modules/displayioBidAdapter.md +148 -0
  57. package/modules/dspxBidAdapter.js +69 -29
  58. package/modules/dspxBidAdapter.md +2 -1
  59. package/modules/e_volutionBidAdapter.js +158 -0
  60. package/modules/emx_digitalBidAdapter.js +2 -2
  61. package/modules/fluctBidAdapter.js +0 -1
  62. package/modules/gamoshiBidAdapter.js +1 -1
  63. package/modules/gdprEnforcement.js +2 -2
  64. package/modules/glomexBidAdapter.js +1 -1
  65. package/modules/gnetBidAdapter.js +3 -3
  66. package/modules/gnetBidAdapter.md +4 -4
  67. package/modules/goldbachBidAdapter.js +2 -2
  68. package/modules/gptPreAuction.js +1 -1
  69. package/modules/gridBidAdapter.js +15 -1
  70. package/modules/gumgumBidAdapter.js +57 -43
  71. package/modules/hadronIdSystem.js +96 -0
  72. package/modules/hadronIdSystem.md +35 -0
  73. package/modules/hadronRtdProvider.js +254 -0
  74. package/modules/hadronRtdProvider.md +126 -0
  75. package/modules/haloIdSystem.md +4 -35
  76. package/modules/haloRtdProvider.md +3 -126
  77. package/modules/hybridBidAdapter.js +1 -1
  78. package/modules/improvedigitalBidAdapter.js +6 -1
  79. package/modules/insticatorBidAdapter.js +1 -1
  80. package/modules/interactiveOffersBidAdapter.js +9 -6
  81. package/modules/intersectionRtdProvider.js +1 -1
  82. package/modules/ixBidAdapter.js +2 -2
  83. package/modules/jwplayerRtdProvider.js +72 -7
  84. package/modules/jwplayerRtdProvider.md +27 -11
  85. package/modules/kargoBidAdapter.js +2 -2
  86. package/modules/livewrappedBidAdapter.js +1 -1
  87. package/modules/lunamediahbBidAdapter.js +32 -4
  88. package/modules/malltvBidAdapter.js +7 -3
  89. package/modules/malltvBidAdapter.md +64 -51
  90. package/modules/mass.js +3 -5
  91. package/modules/mediakeysBidAdapter.js +2 -2
  92. package/modules/medianetAnalyticsAdapter.js +2 -2
  93. package/modules/medianetRtdProvider.js +1 -1
  94. package/modules/mediasquareBidAdapter.js +1 -0
  95. package/modules/nextMillenniumBidAdapter.js +1 -0
  96. package/modules/nextrollBidAdapter.js +1 -1
  97. package/modules/oguryBidAdapter.js +7 -14
  98. package/modules/onetagBidAdapter.js +1 -1
  99. package/modules/openwebBidAdapter.js +1 -1
  100. package/modules/openxAnalyticsAdapter.js +2 -2
  101. package/modules/openxBidAdapter.js +1 -1
  102. package/modules/parrableIdSystem.js +1 -1
  103. package/modules/permutiveRtdProvider.js +1 -1
  104. package/modules/pilotxBidAdapter.js +147 -0
  105. package/modules/pilotxBidAdapter.md +50 -0
  106. package/modules/pixfutureBidAdapter.js +2 -2
  107. package/modules/prebidServerBidAdapter/index.js +63 -41
  108. package/modules/priceFloors.js +15 -14
  109. package/modules/pubmaticBidAdapter.js +1 -1
  110. package/modules/quantcastBidAdapter.js +1 -1
  111. package/modules/reconciliationRtdProvider.js +1 -1
  112. package/modules/richaudienceBidAdapter.js +7 -2
  113. package/modules/riseBidAdapter.js +17 -6
  114. package/modules/roxotAnalyticsAdapter.js +1 -1
  115. package/modules/rtbhouseBidAdapter.js +1 -1
  116. package/modules/rtdModule/index.js +9 -11
  117. package/modules/rubiconAnalyticsAdapter.js +8 -2
  118. package/modules/rubiconBidAdapter.js +1 -1
  119. package/modules/saambaaBidAdapter.js +420 -420
  120. package/modules/seedingAllianceBidAdapter.js +3 -3
  121. package/modules/sharethroughBidAdapter.js +12 -17
  122. package/modules/sigmoidAnalyticsAdapter.js +1 -1
  123. package/modules/sirdataRtdProvider.js +1 -1
  124. package/modules/sizeMappingV2.js +2 -9
  125. package/modules/smarticoBidAdapter.js +1 -1
  126. package/modules/sortableAnalyticsAdapter.js +5 -4
  127. package/modules/sovrnAnalyticsAdapter.js +2 -2
  128. package/modules/sovrnBidAdapter.js +93 -18
  129. package/modules/sovrnBidAdapter.md +80 -2
  130. package/modules/sspBCBidAdapter.js +54 -21
  131. package/modules/synacormediaBidAdapter.js +32 -11
  132. package/modules/targetVideoBidAdapter.js +1 -1
  133. package/modules/telariaBidAdapter.js +22 -29
  134. package/modules/trustpidSystem.js +197 -0
  135. package/modules/trustpidSystem.md +45 -0
  136. package/modules/undertoneBidAdapter.js +17 -1
  137. package/modules/userId/eids.js +16 -1
  138. package/modules/userId/eids.md +10 -2
  139. package/modules/userId/index.js +2 -2
  140. package/modules/userId/userId.md +17 -2
  141. package/modules/ventesBidAdapter.js +1 -1
  142. package/modules/verizonMediaIdSystem.js +1 -1
  143. package/modules/vibrantmediaBidAdapter.js +220 -0
  144. package/modules/vibrantmediaBidAdapter.md +92 -0
  145. package/modules/viewability.js +177 -0
  146. package/modules/viewability.md +87 -0
  147. package/modules/viewdeosDXBidAdapter.js +1 -1
  148. package/modules/voxBidAdapter.js +1 -1
  149. package/modules/waardexBidAdapter.js +1 -1
  150. package/modules/weboramaRtdProvider.js +264 -34
  151. package/modules/weboramaRtdProvider.md +110 -40
  152. package/modules/widespaceBidAdapter.js +2 -2
  153. package/modules/winrBidAdapter.js +7 -7
  154. package/modules/yahoosspBidAdapter.js +3 -1
  155. package/modules/yieldlabBidAdapter.js +1 -1
  156. package/modules/yieldmoBidAdapter.js +2 -2
  157. package/modules/yieldoneBidAdapter.js +6 -0
  158. package/modules/yuktamediaAnalyticsAdapter.js +1 -1
  159. package/package.json +3 -1
  160. package/plugins/poly/arrayFrom.js +3 -0
  161. package/plugins/poly/find.js +3 -0
  162. package/plugins/poly/findIndex.js +3 -0
  163. package/plugins/poly/includes.js +3 -0
  164. package/plugins/poly/package.json +8 -0
  165. package/src/Renderer.js +1 -1
  166. package/src/adRendering.js +38 -0
  167. package/src/adapterManager.js +33 -28
  168. package/src/adapters/bidderFactory.js +13 -11
  169. package/src/adloader.js +3 -2
  170. package/src/auction.js +140 -117
  171. package/src/auctionIndex.js +85 -0
  172. package/src/auctionManager.js +4 -1
  173. package/src/bidderSettings.js +69 -0
  174. package/src/bidfactory.js +18 -6
  175. package/src/config.js +3 -4
  176. package/src/cpmBucketManager.js +1 -1
  177. package/src/native.js +30 -22
  178. package/src/prebid.js +4 -20
  179. package/src/secureCreatives.js +133 -49
  180. package/src/sizeMapping.js +1 -1
  181. package/src/storageManager.js +1 -1
  182. package/src/targeting.js +13 -4
  183. package/src/userSync.js +1 -1
  184. package/src/utils.js +16 -19
  185. package/src/video.js +11 -12
  186. package/src/videoCache.js +10 -9
  187. package/test/fixtures/fixtures.js +2 -1
  188. package/test/helpers/indexStub.js +28 -0
  189. package/test/helpers/syncPromise.js +71 -0
  190. package/test/spec/auctionmanager_spec.js +269 -90
  191. package/test/spec/config_spec.js +24 -1
  192. package/test/spec/e2e/longform/basic_w_bidderSettings.spec.js +1 -1
  193. package/test/spec/e2e/longform/basic_w_custom_adserver_translation.spec.js +1 -1
  194. package/test/spec/e2e/longform/basic_w_priceGran.spec.js +1 -1
  195. package/test/spec/e2e/longform/basic_w_requireExactDuration.spec.js +1 -1
  196. package/test/spec/e2e/longform/basic_wo_brandCategoryExclusion.spec.js +1 -1
  197. package/test/spec/e2e/longform/basic_wo_requireExactDuration.spec.js +1 -1
  198. package/test/spec/modules/adagioBidAdapter_spec.js +0 -10
  199. package/test/spec/modules/adbookpspBidAdapter_spec.js +17 -3
  200. package/test/spec/modules/adhashBidAdapter_spec.js +2 -2
  201. package/test/spec/modules/adnuntiusRtdProvider_spec.js +145 -0
  202. package/test/spec/modules/adpod_spec.js +91 -156
  203. package/test/spec/modules/afpBidAdapter_spec.js +1 -1
  204. package/test/spec/modules/appnexusBidAdapter_spec.js +27 -0
  205. package/test/spec/modules/asealBidAdapter_spec.js +144 -0
  206. package/test/spec/modules/brandmetricsRtdProvider_spec.js +191 -0
  207. package/test/spec/modules/colossussspBidAdapter_spec.js +5 -2
  208. package/test/spec/modules/conversantBidAdapter_spec.js +54 -2
  209. package/test/spec/modules/criteoBidAdapter_spec.js +21 -0
  210. package/test/spec/modules/currency_spec.js +36 -15
  211. package/test/spec/modules/deepintentDpesIdsystem_spec.js +1 -1
  212. package/test/spec/modules/displayioBidAdapter_spec.js +239 -0
  213. package/test/spec/modules/dspxBidAdapter_spec.js +20 -15
  214. package/test/spec/modules/e_volutionBidAdapter_spec.js +242 -0
  215. package/test/spec/modules/eids_spec.js +2 -2
  216. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +1 -1
  217. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +1 -1
  218. package/test/spec/modules/gnetBidAdapter_spec.js +6 -6
  219. package/test/spec/modules/gridBidAdapter_spec.js +18 -0
  220. package/test/spec/modules/gumgumBidAdapter_spec.js +49 -3
  221. package/test/spec/modules/hadronIdSystem_spec.js +57 -0
  222. package/test/spec/modules/hadronRtdProvider_spec.js +762 -0
  223. package/test/spec/modules/idxIdSystem_spec.js +1 -1
  224. package/test/spec/modules/improvedigitalBidAdapter_spec.js +19 -0
  225. package/test/spec/modules/jwplayerRtdProvider_spec.js +195 -2
  226. package/test/spec/modules/kargoBidAdapter_spec.js +1 -1
  227. package/test/spec/modules/lunamediahbBidAdapter_spec.js +27 -1
  228. package/test/spec/modules/mass_spec.js +2 -14
  229. package/test/spec/modules/mediakeysBidAdapter_spec.js +1 -1
  230. package/test/spec/modules/multibid_spec.js +1 -1
  231. package/test/spec/modules/oguryBidAdapter_spec.js +63 -5
  232. package/test/spec/modules/onetagBidAdapter_spec.js +1 -1
  233. package/test/spec/modules/openxAnalyticsAdapter_spec.js +1 -1
  234. package/test/spec/modules/parrableIdSystem_spec.js +1 -1
  235. package/test/spec/modules/pilotxBidAdapter_spec.js +244 -0
  236. package/test/spec/modules/prebidServerBidAdapter_spec.js +43 -6
  237. package/test/spec/modules/priceFloors_spec.js +37 -24
  238. package/test/spec/modules/pubmaticBidAdapter_spec.js +40 -0
  239. package/test/spec/modules/realTimeDataModule_spec.js +51 -2
  240. package/test/spec/modules/riseBidAdapter_spec.js +30 -4
  241. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +61 -1
  242. package/test/spec/modules/rubiconBidAdapter_spec.js +1 -1
  243. package/test/spec/modules/sharethroughBidAdapter_spec.js +91 -6
  244. package/test/spec/modules/sortableAnalyticsAdapter_spec.js +2 -3
  245. package/test/spec/modules/sovrnBidAdapter_spec.js +413 -333
  246. package/test/spec/modules/sspBCBidAdapter_spec.js +7 -7
  247. package/test/spec/modules/stroeerCoreBidAdapter_spec.js +1 -1
  248. package/test/spec/modules/synacormediaBidAdapter_spec.js +70 -0
  249. package/test/spec/modules/telariaBidAdapter_spec.js +1 -3
  250. package/test/spec/modules/trustpidSystem_spec.js +232 -0
  251. package/test/spec/modules/undertoneBidAdapter_spec.js +55 -2
  252. package/test/spec/modules/userId_spec.js +40 -40
  253. package/test/spec/modules/vibrantmediaBidAdapter_spec.js +1237 -0
  254. package/test/spec/modules/viewability_spec.js +280 -0
  255. package/test/spec/modules/weboramaRtdProvider_spec.js +536 -20
  256. package/test/spec/modules/widespaceBidAdapter_spec.js +1 -1
  257. package/test/spec/modules/yahoosspBidAdapter_spec.js +10 -0
  258. package/test/spec/modules/yieldoneBidAdapter_spec.js +33 -0
  259. package/test/spec/modules/zeotapIdPlusIdSystem_spec.js +1 -1
  260. package/test/spec/native_spec.js +62 -40
  261. package/test/spec/sizeMapping_spec.js +1 -1
  262. package/test/spec/unit/core/adapterManager_spec.js +24 -2
  263. package/test/spec/unit/core/auctionIndex_spec.js +129 -0
  264. package/test/spec/unit/core/bidderFactory_spec.js +65 -12
  265. package/test/spec/unit/core/bidderSettings_spec.js +123 -0
  266. package/test/spec/unit/core/targeting_spec.js +93 -0
  267. package/test/spec/unit/pbjs_api_spec.js +81 -43
  268. package/test/spec/unit/secureCreatives_spec.js +143 -24
  269. package/test/spec/videoCache_spec.js +18 -19
  270. package/test/spec/video_spec.js +51 -61
  271. package/webpack.conf.js +1 -1
@@ -16,8 +16,10 @@ let setDefaults;
16
16
  describe('config API', function () {
17
17
  let logErrorSpy;
18
18
  let logWarnSpy;
19
+ let config;
20
+
19
21
  beforeEach(function () {
20
- const config = newConfig();
22
+ config = newConfig();
21
23
  getConfig = config.getConfig;
22
24
  setConfig = config.setConfig;
23
25
  readConfig = config.readConfig;
@@ -624,4 +626,25 @@ describe('config API', function () {
624
626
  expect(ortb2Config.user.data).to.have.lengthOf(2);
625
627
  expect(ortb2Config.site.content.data).to.have.lengthOf(1);
626
628
  });
629
+
630
+ it('should not corrupt global configuration with bidder configuration', () => {
631
+ // https://github.com/prebid/Prebid.js/issues/7956
632
+ config.setConfig({
633
+ outer: {
634
+ inner: ['global']
635
+ }
636
+ });
637
+ config.setBidderConfig({
638
+ bidders: ['bidder'],
639
+ config: {
640
+ outer: {
641
+ inner: ['bidder']
642
+ }
643
+ }
644
+ });
645
+ config.runWithBidder('bidder', () => config.getConfig())
646
+ expect(config.getConfig('outer')).to.eql({
647
+ inner: ['global']
648
+ });
649
+ });
627
650
  });
@@ -1,4 +1,4 @@
1
- const includes = require('core-js-pure/features/array/includes.js');
1
+ const includes = require('prebidjs-polyfill/includes.js');
2
2
  const expect = require('chai').expect;
3
3
  const { host, protocol, waitForElement } = require('../../../helpers/testing-utils');
4
4
 
@@ -1,4 +1,4 @@
1
- const includes = require('core-js-pure/features/array/includes.js');
1
+ const includes = require('prebidjs-polyfill/includes.js');
2
2
  const expect = require('chai').expect;
3
3
  const { host, protocol, waitForElement } = require('../../../helpers/testing-utils');
4
4
 
@@ -1,4 +1,4 @@
1
- const includes = require('core-js-pure/features/array/includes.js');
1
+ const includes = require('prebidjs-polyfill/includes.js');
2
2
  const expect = require('chai').expect;
3
3
  const { host, protocol, waitForElement } = require('../../../helpers/testing-utils');
4
4
 
@@ -1,4 +1,4 @@
1
- const includes = require('core-js-pure/features/array/includes.js');
1
+ const includes = require('prebidjs-polyfill/includes.js');
2
2
  const expect = require('chai').expect;
3
3
  const { host, protocol, waitForElement } = require('../../../helpers/testing-utils');
4
4
 
@@ -1,4 +1,4 @@
1
- const includes = require('core-js-pure/features/array/includes.js');
1
+ const includes = require('prebidjs-polyfill/includes.js');
2
2
  const expect = require('chai').expect;
3
3
  const { host, protocol, waitForElement } = require('../../../helpers/testing-utils');
4
4
 
@@ -1,4 +1,4 @@
1
- const includes = require('core-js-pure/features/array/includes.js');
1
+ const includes = require('prebidjs-polyfill/includes.js');
2
2
  const expect = require('chai').expect;
3
3
  const { host, protocol, waitForElement } = require('../../../helpers/testing-utils');
4
4
 
@@ -244,16 +244,6 @@ describe('Adagio bid adapter', () => {
244
244
  expect(spec.isBidRequestValid(bid03)).to.equal(false);
245
245
  expect(spec.isBidRequestValid(bid04)).to.equal(false);
246
246
  });
247
-
248
- it('should return false when refererInfo.reachedTop is false', function() {
249
- sandbox.spy(utils, 'logWarn');
250
- sandbox.stub(adagio, 'getRefererInfo').returns({ reachedTop: false });
251
- const bid = new BidRequestBuilder().withParams().build();
252
-
253
- expect(spec.isBidRequestValid(bid)).to.equal(false);
254
- sinon.assert.callCount(utils.logWarn, 1);
255
- sinon.assert.calledWith(utils.logWarn, 'Adagio: the main page url is unreachabled.');
256
- });
257
247
  });
258
248
 
259
249
  describe('buildRequests()', function() {
@@ -504,9 +504,11 @@ describe('adbookpsp bid adapter', () => {
504
504
  ad: '<div>ad</div>',
505
505
  adId: '5',
506
506
  adserverTargeting: {
507
+ hb_ad_ord_adbookpsp: '0_0', // the value to the left of the underscore represents the index of the ad id and the number to the right represents the order index
507
508
  hb_adid_c_adbookpsp: '5',
508
509
  hb_deal_adbookpsp: 'werwetwerw',
509
510
  hb_liid_adbookpsp: '2342345',
511
+ hb_ordid_adbookpsp: '567843',
510
512
  },
511
513
  referrer: 'http://prebid-test-page.io:8080/banner.html',
512
514
  lineItemId: '2342345',
@@ -516,9 +518,11 @@ describe('adbookpsp bid adapter', () => {
516
518
  adId: '10',
517
519
  adUnitCode: 'div-gpt-ad-837465923534-0',
518
520
  adserverTargeting: {
521
+ hb_ad_ord_adbookpsp: '0_0',
519
522
  hb_adid_c_adbookpsp: '10',
520
523
  hb_deal_adbookpsp: 'dsfxcxcvxc',
521
524
  hb_liid_adbookpsp: '2121221',
525
+ hb_ordid_adbookpsp: '5678234',
522
526
  },
523
527
  bidId: 'bid4321',
524
528
  bidderRequestId: '999ccceeee11',
@@ -556,14 +560,18 @@ describe('adbookpsp bid adapter', () => {
556
560
 
557
561
  expect(bids).to.have.length(2);
558
562
  expect(bids[0].adserverTargeting).to.deep.equal({
563
+ hb_ad_ord_adbookpsp: '0_0',
564
+ hb_adid_c_adbookpsp: '5',
559
565
  hb_deal_adbookpsp: 'werwetwerw',
560
566
  hb_liid_adbookpsp: '2342345',
561
- hb_adid_c_adbookpsp: '5',
567
+ hb_ordid_adbookpsp: '567843',
562
568
  });
563
569
  expect(bids[1].adserverTargeting).to.deep.equal({
570
+ hb_ad_ord_adbookpsp: '0_0',
571
+ hb_adid_c_adbookpsp: '10',
564
572
  hb_deal_adbookpsp: 'dsfxcxcvxc',
565
573
  hb_liid_adbookpsp: '2121221',
566
- hb_adid_c_adbookpsp: '10',
574
+ hb_ordid_adbookpsp: '5678234',
567
575
  });
568
576
  });
569
577
 
@@ -580,9 +588,11 @@ describe('adbookpsp bid adapter', () => {
580
588
  expect(bids).to.have.length(2);
581
589
  for (const bid of bids) {
582
590
  expect(bid.adserverTargeting).to.deep.equal({
591
+ hb_ad_ord_adbookpsp: '0_0,1_0',
592
+ hb_adid_c_adbookpsp: '5,10',
583
593
  hb_deal_adbookpsp: 'werwetwerw,dsfxcxcvxc',
584
594
  hb_liid_adbookpsp: '2342345,2121221',
585
- hb_adid_c_adbookpsp: '5,10',
595
+ hb_ordid_adbookpsp: '567843,5678234',
586
596
  });
587
597
  }
588
598
  });
@@ -670,9 +680,11 @@ describe('adbookpsp bid adapter', () => {
670
680
  );
671
681
 
672
682
  expect(bids[0].adserverTargeting).to.deep.equal({
683
+ hb_ad_ord_adbookpsp: '0_0',
673
684
  hb_adid_c_adbookpsp: '10',
674
685
  hb_deal_adbookpsp: 'dsfxcxcvxc',
675
686
  hb_liid_adbookpsp: '2121221',
687
+ hb_ordid_adbookpsp: '5678234',
676
688
  });
677
689
  });
678
690
 
@@ -1279,6 +1291,7 @@ const exchangeResponse = {
1279
1291
  nurl: 'http://win.example.url',
1280
1292
  ext: {
1281
1293
  liid: '2342345',
1294
+ ordid: '567843',
1282
1295
  },
1283
1296
  cat: ['IAB2-1', 'IAB2-2', 'IAB2-3'],
1284
1297
  adomain: ['advertiser.com'],
@@ -1301,6 +1314,7 @@ const exchangeResponse = {
1301
1314
  nurl: 'http://win.example.url',
1302
1315
  ext: {
1303
1316
  liid: '2121221',
1317
+ ordid: '5678234',
1304
1318
  },
1305
1319
  cat: ['IAB2-3'],
1306
1320
  adomain: ['advertiser.com', 'campaign.advertiser.com'],
@@ -77,7 +77,7 @@ describe('adhashBidAdapter', function () {
77
77
  );
78
78
  expect(result.length).to.equal(1);
79
79
  expect(result[0].method).to.equal('POST');
80
- expect(result[0].url).to.equal('https://bidder.adhash.org/rtb?version=1.0&prebid=true');
80
+ expect(result[0].url).to.equal('https://bidder.adhash.com/rtb?version=1.0&prebid=true&publisher=0xc3b09b27e9c6ef73957901aa729b9e69e5bbfbfb');
81
81
  expect(result[0].bidRequest).to.equal(bidRequest);
82
82
  expect(result[0].data).to.have.property('timezone');
83
83
  expect(result[0].data).to.have.property('location');
@@ -93,7 +93,7 @@ describe('adhashBidAdapter', function () {
93
93
  const result = spec.buildRequests([ bidRequest ], { gdprConsent: true });
94
94
  expect(result.length).to.equal(1);
95
95
  expect(result[0].method).to.equal('POST');
96
- expect(result[0].url).to.equal('https://bidder.adhash.org/rtb?version=1.0&prebid=true');
96
+ expect(result[0].url).to.equal('https://bidder.adhash.com/rtb?version=1.0&prebid=true&publisher=0xc3b09b27e9c6ef73957901aa729b9e69e5bbfbfb');
97
97
  expect(result[0].bidRequest).to.equal(bidRequest);
98
98
  expect(result[0].data).to.have.property('timezone');
99
99
  expect(result[0].data).to.have.property('location');
@@ -0,0 +1,145 @@
1
+ import { adnuntiusSubmodule } from 'modules/adnuntiusRtdProvider.js';
2
+ import { expect } from 'chai';
3
+ import { server } from 'test/mocks/xhr.js';
4
+ import { config as _config } from 'src/config.js';
5
+
6
+ const responseHeader = { 'Content-Type': 'application/json' };
7
+
8
+ describe('adnuntiusRtdProvider is a RTD provider that', function () {
9
+ describe('has a method `init` that', function () {
10
+ it('exists', function () {
11
+ expect(adnuntiusSubmodule.init).to.be.a('function');
12
+ });
13
+ it('returns false missing config params', function () {
14
+ const config = {
15
+ name: 'adnuntius',
16
+ waitForIt: true,
17
+ };
18
+ const value = adnuntiusSubmodule.init(config);
19
+ expect(value).to.equal(false);
20
+ });
21
+ it('returns false if missing providers param', function () {
22
+ const config = {
23
+ name: 'adnuntius',
24
+ waitForIt: true,
25
+ params: {}
26
+ };
27
+ const value = adnuntiusSubmodule.init(config);
28
+ expect(value).to.equal(false);
29
+ });
30
+ it('returns true if providers param included', function () {
31
+ const config = {
32
+ name: 'adnuntius',
33
+ waitForIt: true,
34
+ params: {
35
+ providers: []
36
+ }
37
+ };
38
+ const value = adnuntiusSubmodule.init(config);
39
+ expect(value).to.equal(true);
40
+ });
41
+ });
42
+
43
+ describe('has a method `getBidRequestData` that', function () {
44
+ it('exists', function () {
45
+ expect(adnuntiusSubmodule.getBidRequestData).to.be.a('function');
46
+ });
47
+ it('verify config params', function () {
48
+ expect(config.name).to.not.be.undefined;
49
+ expect(config.name).to.equal('adnuntius');
50
+ expect(config.params.providers).to.not.be.undefined;
51
+ expect(config.params).to.have.property('providers');
52
+ expect(config.params.providers[0]).to.have.property('siteId')
53
+ expect(config.params.providers[0]).to.have.property('userId')
54
+ });
55
+
56
+ it('send correct request', function () {
57
+ const callback = sinon.spy();
58
+ let request;
59
+ const adUnitsOriginal = adUnits;
60
+ adnuntiusSubmodule.getBidRequestData({ adUnits: adUnits }, callback, config);
61
+ request = server.requests[0];
62
+ request.respond(200, responseHeader, JSON.stringify(data));
63
+ expect(request.url).to.be.include(`&s=site123&browserId=mike`);
64
+ expect(adUnits).to.length(2);
65
+ expect(adUnits[0]).to.be.eq(adUnitsOriginal[0]);
66
+ });
67
+ });
68
+
69
+ describe('has a method `setGlobalConfig` that', function () {
70
+ it('exists', function () {
71
+ expect(adnuntiusSubmodule.setGlobalConfig).to.be.a('function');
72
+ });
73
+
74
+ it('sets global config', function () {
75
+ adnuntiusSubmodule.setGlobalConfig(config, concatSegments);
76
+ const globalConfig = _config.getBidderConfig()
77
+ expect(globalConfig).to.have.property('adnuntius')
78
+ expect(globalConfig.adnuntius).to.have.property('ortb2')
79
+ expect(globalConfig.adnuntius.ortb2).to.have.property('user')
80
+ expect(globalConfig.adnuntius.ortb2.user).to.have.property('data')
81
+ expect(globalConfig.adnuntius.ortb2.user.data).to.be.a('array')
82
+ expect(globalConfig.adnuntius.ortb2.user.data[0]).to.have.property('name')
83
+ expect(globalConfig.adnuntius.ortb2.user.data[0].name).to.equal('adnuntius')
84
+ expect(globalConfig.adnuntius.ortb2.user.data[0]).to.have.property('segment')
85
+ expect(globalConfig.adnuntius.ortb2.user.data[0].segment).to.be.a('array')
86
+ expect(globalConfig.adnuntius.ortb2.user.data[0].segment[0]).to.have.property('id')
87
+ expect(globalConfig.adnuntius.ortb2.user.data[0].segment[0].id).to.equal('segment2')
88
+ });
89
+ });
90
+ });
91
+
92
+ const config = {
93
+ name: 'adnuntius',
94
+ waitForIt: true,
95
+ params: {
96
+ bidders: ['adnuntius'],
97
+ providers: [{
98
+ siteId: 'site123',
99
+ userId: 'mike'
100
+ }]
101
+ }
102
+ };
103
+
104
+ const adUnits = [
105
+ {
106
+ code: 'one-div-id',
107
+ mediaTypes: {
108
+ banner: {
109
+ sizes: [970, 250]
110
+ }
111
+ },
112
+ bids: [
113
+ {
114
+ bidder: 'appnexus',
115
+ params: {
116
+ placementId: 12345370,
117
+ }
118
+ }]
119
+ },
120
+ {
121
+ code: 'two-div-id',
122
+ mediaTypes: {
123
+ banner: { sizes: [300, 250] }
124
+ },
125
+ bids: [
126
+ {
127
+ bidder: 'appnexus',
128
+ params: {
129
+ placementId: 12345370,
130
+ }
131
+ }]
132
+ }];
133
+
134
+ const data = {
135
+ 'expiryEpochMillis': 1640165064285,
136
+ 'segments': [
137
+ 'segment2',
138
+ 'segment1'
139
+ ]
140
+ };
141
+
142
+ const concatSegments = [
143
+ { id: 'segment2' },
144
+ { id: 'segment1' },
145
+ ]