prebid.js 7.44.0 → 7.46.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 (309) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/acuityAdsBidAdapter.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adgenerationBidAdapter.js +1 -1
  7. package/dist/admaticBidAdapter.js +1 -1
  8. package/dist/adnuntiusBidAdapter.js +1 -1
  9. package/dist/adrelevantisBidAdapter.js +1 -1
  10. package/dist/adtrgtmeBidAdapter.js +1 -1
  11. package/dist/adxcgBidAdapter.js +1 -1
  12. package/dist/adyoulikeBidAdapter.js +1 -1
  13. package/dist/ajaBidAdapter.js +1 -1
  14. package/dist/amxBidAdapter.js +1 -1
  15. package/dist/amxIdSystem.js +1 -1
  16. package/dist/appierAnalyticsAdapter.js +1 -1
  17. package/dist/appnexusBidAdapter.js +1 -1
  18. package/dist/appushBidAdapter.js +1 -1
  19. package/dist/asoBidAdapter.js +1 -1
  20. package/dist/axonixBidAdapter.js +1 -1
  21. package/dist/beyondmediaBidAdapter.js +1 -1
  22. package/dist/bidglassBidAdapter.js +1 -1
  23. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  24. package/dist/big-richmediaBidAdapter.js +1 -1
  25. package/dist/braveBidAdapter.js +1 -1
  26. package/dist/bridgewellBidAdapter.js +1 -1
  27. package/dist/brightMountainMediaBidAdapter.js +1 -1
  28. package/dist/brightcomBidAdapter.js +1 -1
  29. package/dist/brightcomSSPBidAdapter.js +1 -1
  30. package/dist/carodaBidAdapter.js +1 -1
  31. package/dist/chtnwBidAdapter.js +1 -1
  32. package/dist/coinzillaBidAdapter.js +1 -1
  33. package/dist/compassBidAdapter.js +1 -1
  34. package/dist/concertBidAdapter.js +1 -1
  35. package/dist/connectIdSystem.js +1 -1
  36. package/dist/connectadBidAdapter.js +1 -1
  37. package/dist/consumableBidAdapter.js +1 -1
  38. package/dist/contentexchangeBidAdapter.js +1 -1
  39. package/dist/conversantAnalyticsAdapter.js +1 -1
  40. package/dist/conversantBidAdapter.js +1 -1
  41. package/dist/craftBidAdapter.js +1 -1
  42. package/dist/criteoBidAdapter.js +1 -1
  43. package/dist/cwireBidAdapter.js +1 -1
  44. package/dist/debugging-standalone.js +1 -1
  45. package/dist/dependencies.json +15 -0
  46. package/dist/domainOverrideToRootDomain.js +1 -0
  47. package/dist/dspxBidAdapter.js +1 -1
  48. package/dist/eplanningBidAdapter.js +1 -1
  49. package/dist/eskimiBidAdapter.js +1 -0
  50. package/dist/feedadBidAdapter.js +1 -1
  51. package/dist/finativeBidAdapter.js +1 -1
  52. package/dist/freewheel-sspBidAdapter.js +1 -1
  53. package/dist/glimpseBidAdapter.js +1 -1
  54. package/dist/globalsunBidAdapter.js +1 -1
  55. package/dist/gmosspBidAdapter.js +1 -1
  56. package/dist/goldbachBidAdapter.js +1 -1
  57. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  58. package/dist/gridBidAdapter.js +1 -1
  59. package/dist/growthCodeIdSystem.js +1 -1
  60. package/dist/gumgumBidAdapter.js +1 -1
  61. package/dist/h12mediaBidAdapter.js +1 -1
  62. package/dist/id5IdSystem.js +1 -1
  63. package/dist/improvedigitalBidAdapter.js +1 -1
  64. package/dist/inmarBidAdapter.js +1 -1
  65. package/dist/insticatorBidAdapter.js +1 -1
  66. package/dist/iqzoneBidAdapter.js +1 -1
  67. package/dist/ivsBidAdapter.js +1 -0
  68. package/dist/ixBidAdapter.js +1 -1
  69. package/dist/justpremiumBidAdapter.js +1 -1
  70. package/dist/jwplayerVideoProvider.js +1 -1
  71. package/dist/kargoBidAdapter.js +1 -1
  72. package/dist/koblerBidAdapter.js +1 -1
  73. package/dist/konduitAnalyticsAdapter.js +1 -1
  74. package/dist/kueezBidAdapter.js +1 -1
  75. package/dist/kueezRtbBidAdapter.js +1 -1
  76. package/dist/kulturemediaBidAdapter.js +1 -1
  77. package/dist/lassoBidAdapter.js +1 -1
  78. package/dist/lifestreetBidAdapter.js +1 -1
  79. package/dist/liveIntentIdSystem.js +1 -1
  80. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  81. package/dist/logicadBidAdapter.js +1 -1
  82. package/dist/loglyliftBidAdapter.js +1 -1
  83. package/dist/luponmediaBidAdapter.js +1 -1
  84. package/dist/magniteAnalyticsAdapter.js +1 -1
  85. package/dist/malltvAnalyticsAdapter.js +1 -1
  86. package/dist/marsmediaBidAdapter.js +1 -1
  87. package/dist/mathildeadsBidAdapter.js +1 -1
  88. package/dist/mediafuseBidAdapter.js +1 -1
  89. package/dist/medianetBidAdapter.js +1 -1
  90. package/dist/mediasquareBidAdapter.js +1 -1
  91. package/dist/mgidBidAdapter.js +1 -1
  92. package/dist/minutemediaBidAdapter.js +1 -1
  93. package/dist/minutemediaplusBidAdapter.js +1 -1
  94. package/dist/nativoBidAdapter.js +1 -1
  95. package/dist/neuwoRtdProvider.js +1 -1
  96. package/dist/nexx360BidAdapter.js +1 -1
  97. package/dist/not-for-prod/prebid.js +165 -162
  98. package/dist/oguryBidAdapter.js +1 -1
  99. package/dist/onetagBidAdapter.js +1 -1
  100. package/dist/onomagicBidAdapter.js +1 -1
  101. package/dist/ooloAnalyticsAdapter.js +1 -1
  102. package/dist/openxBidAdapter.js +1 -1
  103. package/dist/openxOrtbBidAdapter.js +1 -1
  104. package/dist/operaadsBidAdapter.js +1 -1
  105. package/dist/optidigitalBidAdapter.js +1 -1
  106. package/dist/ortbConverter.js +1 -1
  107. package/dist/outbrainBidAdapter.js +1 -1
  108. package/dist/pairIdSystem.js +1 -0
  109. package/dist/parrableIdSystem.js +1 -1
  110. package/dist/pixfutureBidAdapter.js +1 -1
  111. package/dist/prebid-core.js +1 -1
  112. package/dist/publinkIdSystem.js +1 -1
  113. package/dist/pubmaticBidAdapter.js +1 -1
  114. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  115. package/dist/pubxBidAdapter.js +1 -1
  116. package/dist/pxyzBidAdapter.js +1 -1
  117. package/dist/quantcastBidAdapter.js +1 -1
  118. package/dist/readpeakBidAdapter.js +1 -1
  119. package/dist/relaidoBidAdapter.js +1 -1
  120. package/dist/rhythmoneBidAdapter.js +1 -1
  121. package/dist/riseBidAdapter.js +1 -1
  122. package/dist/rubiconAnalyticsAdapter.js +1 -1
  123. package/dist/rubiconBidAdapter.js +1 -1
  124. package/dist/seedingAllianceBidAdapter.js +1 -1
  125. package/dist/seedtagBidAdapter.js +1 -1
  126. package/dist/sharedIdSystem.js +1 -1
  127. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  128. package/dist/sharethroughBidAdapter.js +1 -1
  129. package/dist/shinezBidAdapter.js +1 -1
  130. package/dist/smaatoBidAdapter.js +1 -1
  131. package/dist/smartadserverBidAdapter.js +1 -1
  132. package/dist/smarthubBidAdapter.js +1 -1
  133. package/dist/smartxBidAdapter.js +1 -1
  134. package/dist/smilewantedBidAdapter.js +1 -1
  135. package/dist/sonobiBidAdapter.js +1 -1
  136. package/dist/sovrnAnalyticsAdapter.js +1 -1
  137. package/dist/sovrnBidAdapter.js +1 -1
  138. package/dist/sspBCBidAdapter.js +1 -1
  139. package/dist/stvBidAdapter.js +1 -1
  140. package/dist/sublimeBidAdapter.js +1 -1
  141. package/dist/synacormediaBidAdapter.js +1 -1
  142. package/dist/targetVideoBidAdapter.js +1 -1
  143. package/dist/teadsBidAdapter.js +1 -1
  144. package/dist/trionBidAdapter.js +1 -1
  145. package/dist/tripleliftBidAdapter.js +1 -1
  146. package/dist/truereachBidAdapter.js +1 -1
  147. package/dist/ttdBidAdapter.js +1 -1
  148. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  149. package/dist/uid2IdSystem.js +1 -1
  150. package/dist/underdogmediaBidAdapter.js +1 -1
  151. package/dist/undertoneBidAdapter.js +1 -1
  152. package/dist/userId.js +1 -1
  153. package/dist/vidazooBidAdapter.js +1 -1
  154. package/dist/videobyteBidAdapter.js +1 -1
  155. package/dist/videoheroesBidAdapter.js +1 -1
  156. package/dist/vidoomyBidAdapter.js +1 -1
  157. package/dist/visiblemeasuresBidAdapter.js +1 -1
  158. package/dist/visxBidAdapter.js +1 -1
  159. package/dist/vrtcalBidAdapter.js +1 -1
  160. package/dist/vuukleBidAdapter.js +1 -1
  161. package/dist/widespaceBidAdapter.js +1 -1
  162. package/dist/winrBidAdapter.js +1 -1
  163. package/dist/yahoosspBidAdapter.js +1 -1
  164. package/dist/yieldmoBidAdapter.js +1 -1
  165. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  166. package/dist/yieldoneBidAdapter.js +1 -1
  167. package/integrationExamples/gpt/fledge_example.html +103 -0
  168. package/integrationExamples/gpt/prebidServer_fledge_example.html +111 -0
  169. package/libraries/domainOverrideToRootDomain/index.js +39 -0
  170. package/libraries/ortbConverter/processors/video.js +1 -0
  171. package/modules/acuityAdsBidAdapter.js +1 -1
  172. package/modules/admaticBidAdapter.js +7 -2
  173. package/modules/adnuntiusBidAdapter.js +3 -1
  174. package/modules/amxBidAdapter.js +1 -1
  175. package/modules/amxIdSystem.js +23 -20
  176. package/modules/amxIdSystem.md +7 -7
  177. package/modules/appnexusBidAdapter.js +108 -102
  178. package/modules/appushBidAdapter.js +1 -1
  179. package/modules/beyondmediaBidAdapter.js +1 -1
  180. package/modules/bidwatchAnalyticsAdapter.js +2 -0
  181. package/modules/braveBidAdapter.js +1 -1
  182. package/modules/brightcomBidAdapter.js +1 -1
  183. package/modules/brightcomSSPBidAdapter.js +1 -1
  184. package/modules/coinzillaBidAdapter.js +1 -2
  185. package/modules/compassBidAdapter.js +1 -1
  186. package/modules/connectIdSystem.js +96 -21
  187. package/modules/connectIdSystem.md +6 -5
  188. package/modules/contentexchangeBidAdapter.js +1 -1
  189. package/modules/conversantBidAdapter.js +3 -0
  190. package/modules/criteoBidAdapter.js +5 -1
  191. package/modules/eskimiBidAdapter.js +72 -0
  192. package/modules/eskimiBidAdapter.md +34 -0
  193. package/modules/freewheel-sspBidAdapter.js +8 -0
  194. package/modules/glimpseBidAdapter.js +1 -2
  195. package/modules/globalsunBidAdapter.js +1 -1
  196. package/modules/gridBidAdapter.js +43 -20
  197. package/modules/growthCodeIdSystem.js +18 -15
  198. package/modules/gumgumBidAdapter.js +1 -1
  199. package/modules/iqzoneBidAdapter.js +1 -1
  200. package/modules/ivsBidAdapter.js +85 -0
  201. package/modules/ivsBidAdapter.md +34 -0
  202. package/modules/ixBidAdapter.js +72 -105
  203. package/modules/jwplayerVideoProvider.js +25 -32
  204. package/modules/kargoBidAdapter.js +473 -246
  205. package/modules/koblerBidAdapter.js +1 -2
  206. package/modules/kueezBidAdapter.js +1 -1
  207. package/modules/kueezRtbBidAdapter.js +16 -4
  208. package/modules/liveIntentIdSystem.js +8 -0
  209. package/modules/luponmediaBidAdapter.js +1 -1
  210. package/modules/magniteAnalyticsAdapter.js +76 -3
  211. package/modules/mathildeadsBidAdapter.js +1 -1
  212. package/modules/medianetBidAdapter.js +1 -1
  213. package/modules/mediasquareBidAdapter.js +2 -1
  214. package/modules/mgidBidAdapter.js +178 -26
  215. package/modules/minutemediaBidAdapter.js +1 -1
  216. package/modules/minutemediaplusBidAdapter.js +16 -4
  217. package/modules/nativoBidAdapter.js +110 -21
  218. package/modules/neuwoRtdProvider.js +0 -2
  219. package/modules/oguryBidAdapter.js +3 -2
  220. package/modules/onomagicBidAdapter.js +1 -2
  221. package/modules/openxBidAdapter.js +192 -563
  222. package/modules/openxBidAdapter.md +22 -20
  223. package/modules/openxOrtbBidAdapter.js +13 -11
  224. package/modules/openxOrtbBidAdapter.md +5 -3
  225. package/modules/operaadsBidAdapter.js +1 -1
  226. package/modules/pairIdSystem.js +79 -0
  227. package/modules/pubmaticBidAdapter.js +13 -10
  228. package/modules/pubxBidAdapter.js +5 -2
  229. package/modules/riseBidAdapter.js +1 -1
  230. package/modules/sharedIdSystem.js +4 -27
  231. package/modules/sharethroughBidAdapter.js +1 -1
  232. package/modules/shinezBidAdapter.js +1 -1
  233. package/modules/smarthubBidAdapter.js +1 -1
  234. package/modules/synacormediaBidAdapter.js +1 -3
  235. package/modules/truereachBidAdapter.js +1 -2
  236. package/modules/userId/eids.js +24 -0
  237. package/modules/userId/eids.md +16 -0
  238. package/modules/videoheroesBidAdapter.js +1 -1
  239. package/modules/vidoomyBidAdapter.js +33 -4
  240. package/modules/visiblemeasuresBidAdapter.js +1 -1
  241. package/modules/vrtcalBidAdapter.js +1 -1
  242. package/modules/yieldmoBidAdapter.js +15 -5
  243. package/modules/yieldoneBidAdapter.js +1 -1
  244. package/package.json +1 -1
  245. package/src/Renderer.js +2 -1
  246. package/src/config.js +78 -127
  247. package/src/native.js +5 -1
  248. package/test/spec/auctionmanager_spec.js +2 -2
  249. package/test/spec/libraries/domainOverrideToRootDomain/index_spec.js +77 -0
  250. package/test/spec/modules/1plusXRtdProvider_spec.js +8 -7
  251. package/test/spec/modules/acuityAdsBidAdapter_spec.js +2 -1
  252. package/test/spec/modules/adagioBidAdapter_spec.js +0 -25
  253. package/test/spec/modules/admaticBidAdapter_spec.js +1 -1
  254. package/test/spec/modules/adnuntiusBidAdapter_spec.js +2 -1
  255. package/test/spec/modules/amxIdSystem_spec.js +13 -26
  256. package/test/spec/modules/appnexusBidAdapter_spec.js +464 -448
  257. package/test/spec/modules/appushBidAdapter_spec.js +2 -1
  258. package/test/spec/modules/axonixBidAdapter_spec.js +0 -27
  259. package/test/spec/modules/beyondmediaBidAdapter_spec.js +2 -1
  260. package/test/spec/modules/big-richmediaBidAdapter_spec.js +68 -64
  261. package/test/spec/modules/compassBidAdapter_spec.js +2 -1
  262. package/test/spec/modules/connectIdSystem_spec.js +420 -242
  263. package/test/spec/modules/contentexchangeBidAdapter_spec.js +2 -1
  264. package/test/spec/modules/conversantBidAdapter_spec.js +1 -0
  265. package/test/spec/modules/criteoBidAdapter_spec.js +33 -1
  266. package/test/spec/modules/eids_spec.js +30 -0
  267. package/test/spec/modules/eskimiBidAdapter_spec.js +155 -0
  268. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +37 -0
  269. package/test/spec/modules/globalsunBidAdapter_spec.js +2 -1
  270. package/test/spec/modules/gridBidAdapter_spec.js +8 -0
  271. package/test/spec/modules/iqzoneBidAdapter_spec.js +2 -1
  272. package/test/spec/modules/ivsBidAdapter_spec.js +197 -0
  273. package/test/spec/modules/ixBidAdapter_spec.js +141 -71
  274. package/test/spec/modules/kargoBidAdapter_spec.js +297 -140
  275. package/test/spec/modules/koblerBidAdapter_spec.js +0 -20
  276. package/test/spec/modules/kueezRtbBidAdapter_spec.js +22 -2
  277. package/test/spec/modules/liveIntentIdSystem_spec.js +10 -0
  278. package/test/spec/modules/luponmediaBidAdapter_spec.js +1 -1
  279. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +129 -1
  280. package/test/spec/modules/mathildeadsBidAdapter_spec.js +2 -1
  281. package/test/spec/modules/mgidBidAdapter_spec.js +184 -36
  282. package/test/spec/modules/minutemediaplusBidAdapter_spec.js +22 -2
  283. package/test/spec/modules/nativoBidAdapter_spec.js +101 -0
  284. package/test/spec/modules/neuwoRtdProvider_spec.js +0 -1
  285. package/test/spec/modules/oguryBidAdapter_spec.js +19 -4
  286. package/test/spec/modules/ooloAnalyticsAdapter_spec.js +1 -1
  287. package/test/spec/modules/openxBidAdapter_spec.js +1157 -1936
  288. package/test/spec/modules/openxOrtbBidAdapter_spec.js +12 -39
  289. package/test/spec/modules/pairIdSystem_spec.js +68 -0
  290. package/test/spec/modules/pubCommonId_spec.js +0 -17
  291. package/test/spec/modules/pubmaticBidAdapter_spec.js +868 -867
  292. package/test/spec/modules/pubxBidAdapter_spec.js +10 -2
  293. package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -5
  294. package/test/spec/modules/sharedIdSystem_spec.js +0 -46
  295. package/test/spec/modules/sharethroughBidAdapter_spec.js +2 -1
  296. package/test/spec/modules/smarthubBidAdapter_spec.js +2 -1
  297. package/test/spec/modules/synacormediaBidAdapter_spec.js +0 -26
  298. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +17 -4
  299. package/test/spec/modules/vidoomyBidAdapter_spec.js +58 -0
  300. package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +2 -1
  301. package/test/spec/modules/vrtcalBidAdapter_spec.js +3 -2
  302. package/test/spec/modules/yieldmoBidAdapter_spec.js +19 -1
  303. package/test/spec/renderer_spec.js +1 -2
  304. package/test/spec/unit/pbjs_api_spec.js +19 -3
  305. package/test/test_index.js +13 -3
  306. package/dist/gridNMBidAdapter.js +0 -1
  307. package/modules/gridNMBidAdapter.js +0 -422
  308. package/modules/gridNMBidAdapter.md +0 -39
  309. package/test/spec/modules/gridNMBidAdapter_spec.js +0 -636
@@ -39,14 +39,22 @@ describe('pubxAdapter', function () {
39
39
  id: '26c1ee0038ac11',
40
40
  params: {
41
41
  sid: '12345abc'
42
+ },
43
+ ortb2: {
44
+ site: {
45
+ page: `${location.href}?test=1`
46
+ }
42
47
  }
43
48
  }
44
49
  ];
45
50
 
46
51
  const data = {
47
52
  banner: {
48
- sid: '12345abc'
49
- }
53
+ sid: '12345abc',
54
+ pu: encodeURIComponent(
55
+ utils.deepAccess(bidRequests[0], 'ortb2.site.page').replace(/\?.*$/, '')
56
+ ),
57
+ },
50
58
  };
51
59
 
52
60
  it('sends bid request to ENDPOINT via GET', function () {
@@ -81,11 +81,6 @@ describe('RealVu', function() {
81
81
  result = realvuAnalyticsAdapter.checkIn(bid, ''); // test invalid partnerId ''
82
82
  });
83
83
 
84
- it.skip('isInView returns "yes"', () => {
85
- let inview = realvuAnalyticsAdapter.isInView('ad1');
86
- expect(inview).to.equal('yes');
87
- });
88
-
89
84
  it('isInView return "NA"', function () {
90
85
  const adUnitCode = '1234';
91
86
  let result = realvuAnalyticsAdapter.isInView(adUnitCode);
@@ -91,50 +91,4 @@ describe('SharedId System', function () {
91
91
  expect(result).to.be.undefined;
92
92
  });
93
93
  });
94
-
95
- describe('SharedID System domainOverride', () => {
96
- let sandbox, domain, cookies, rejectCookiesFor;
97
-
98
- beforeEach(() => {
99
- sandbox = sinon.createSandbox();
100
- sandbox.stub(document, 'domain').get(() => domain);
101
- cookies = {};
102
- sandbox.stub(storage, 'getCookie').callsFake((key) => cookies[key]);
103
- rejectCookiesFor = null;
104
- sandbox.stub(storage, 'setCookie').callsFake((key, value, expires, sameSite, domain) => {
105
- if (domain !== rejectCookiesFor) {
106
- if (expires != null) {
107
- expires = new Date(expires);
108
- }
109
- if (expires == null || expires > Date.now()) {
110
- cookies[key] = value;
111
- } else {
112
- delete cookies[key];
113
- }
114
- }
115
- });
116
- });
117
-
118
- afterEach(() => {
119
- sandbox.restore();
120
- });
121
-
122
- it('should return TLD if cookies can be set there', () => {
123
- domain = 'sub.domain.com';
124
- rejectCookiesFor = 'com';
125
- expect(sharedIdSystemSubmodule.domainOverride()).to.equal('domain.com');
126
- });
127
-
128
- it('should return undefined when cookies cannot be set', () => {
129
- domain = 'sub.domain.com';
130
- rejectCookiesFor = 'sub.domain.com';
131
- expect(sharedIdSystemSubmodule.domainOverride()).to.be.undefined;
132
- });
133
-
134
- it('should return half-way domain if parent domain rejects cookies', () => {
135
- domain = 'inner.outer.domain.com';
136
- rejectCookiesFor = 'domain.com';
137
- expect(sharedIdSystemSubmodule.domainOverride()).to.equal('outer.domain.com');
138
- });
139
- });
140
94
  });
@@ -248,7 +248,8 @@ describe('sharethrough adapter spec', function () {
248
248
  refererInfo: {
249
249
  ref: 'https://referer.com',
250
250
  },
251
- auctionId: 'auction-id'
251
+ auctionId: 'auction-id',
252
+ timeout: 242
252
253
  };
253
254
  });
254
255
 
@@ -91,7 +91,8 @@ describe('SmartHubBidAdapter', function () {
91
91
  gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
92
92
  refererInfo: {
93
93
  page: 'https://test.com'
94
- }
94
+ },
95
+ timeout: 500
95
96
  };
96
97
 
97
98
  describe('isBidRequestValid', function () {
@@ -313,32 +313,6 @@ describe('synacormediaBidAdapter ', function () {
313
313
  expect(req.data.tmax).to.eql(bidderRequestWithTimeout.timeout);
314
314
  });
315
315
 
316
- it('should return tmax equal to smaller global timeout', function () {
317
- let sandbox = sinon.sandbox.create();
318
- sandbox.stub(config, 'getConfig').callsFake(key => {
319
- const config = {
320
- 'bidderTimeout': bidderRequestWithTimeout.timeout - 100
321
- };
322
- return config[key];
323
- });
324
- let req = spec.buildRequests([validBidRequest], bidderRequestWithTimeout);
325
- sandbox.restore();
326
- expect(req.data.tmax).to.eql(bidderRequestWithTimeout.timeout - 100);
327
- });
328
-
329
- it('should return tmax equal to smaller callback timeout', function () {
330
- let sandbox = sinon.sandbox.create();
331
- sandbox.stub(config, 'getConfig').callsFake(key => {
332
- const config = {
333
- 'bidderTimeout': bidderRequestWithTimeout.timeout + 100
334
- };
335
- return config[key];
336
- });
337
- let req = spec.buildRequests([validBidRequest], bidderRequestWithTimeout);
338
- sandbox.restore();
339
- expect(req.data.tmax).to.eql(bidderRequestWithTimeout.timeout);
340
- });
341
-
342
316
  it('should return multiple bids when multiple valid requests with the same seatId are used', function () {
343
317
  let secondBidRequest = {
344
318
  bidId: 'foobar',
@@ -19,7 +19,7 @@ import { PLAYBACK_MODE } from 'libraries/video/constants/constants.js';
19
19
  function getPlayerMock() {
20
20
  return makePlayerFactoryMock({
21
21
  getState: function () {},
22
- setup: function () {},
22
+ setup: function () { return this; },
23
23
  getViewable: function () {},
24
24
  getPercentViewable: function () {},
25
25
  getMute: function () {},
@@ -30,8 +30,8 @@ function getPlayerMock() {
30
30
  getFullscreen: function () {},
31
31
  getPlaylistItem: function () {},
32
32
  playAd: function () {},
33
- on: function () {},
34
- off: function () {},
33
+ on: function () { return this; },
34
+ off: function () { return this; },
35
35
  remove: function () {},
36
36
  getAudioTracks: function () {},
37
37
  getCurrentAudioTrack: function () {},
@@ -142,7 +142,7 @@ describe('JWPlayerProvider', function () {
142
142
  it('should instantiate the player when uninstantiated', function () {
143
143
  const player = getPlayerMock();
144
144
  config.playerConfig = {};
145
- const setupSpy = player.setup = sinon.spy();
145
+ const setupSpy = player.setup = sinon.spy(player.setup);
146
146
  const provider = JWPlayerProvider(config, makePlayerFactoryMock(player), adState, timeState, callbackStorage, utilsMock, sharedUtils);
147
147
  provider.init();
148
148
  expect(setupSpy.calledOnce).to.be.true;
@@ -158,6 +158,19 @@ describe('JWPlayerProvider', function () {
158
158
  expect(setupComplete.calledOnce).to.be.true;
159
159
  });
160
160
 
161
+ it('should support multiple setup complete event handlers', function () {
162
+ const player = getPlayerMock();
163
+ player.getState = () => 'idle';
164
+ const provider = JWPlayerProvider(config, makePlayerFactoryMock(player), adState, timeState, callbackStorage, utilsMock, sharedUtils);
165
+ const setupComplete = sinon.spy();
166
+ const setupComplete2 = sinon.spy();
167
+ provider.onEvent(SETUP_COMPLETE, setupComplete, {});
168
+ provider.onEvent(SETUP_COMPLETE, setupComplete2, {});
169
+ provider.init();
170
+ expect(setupComplete.calledOnce).to.be.true;
171
+ expect(setupComplete2.calledOnce).to.be.true;
172
+ });
173
+
161
174
  it('should not reinstantiate player', function () {
162
175
  const player = getPlayerMock();
163
176
  player.getState = () => 'idle';
@@ -161,6 +161,64 @@ describe('vidoomyBidAdapter', function() {
161
161
  expect(request[0].data).to.include.any.keys('schain');
162
162
  expect(request[0].data.schain).to.eq(serializedForm);
163
163
  });
164
+
165
+ it('should return standard json formated eids', function () {
166
+ const eids = [{
167
+ source: 'pubcid.org',
168
+ uids: [
169
+ {
170
+ id: 'some-random-id-value-1',
171
+ atype: 1
172
+ }
173
+ ]
174
+ },
175
+ {
176
+ source: 'adserver.org',
177
+ uids: [{
178
+ id: 'some-random-id-value-2',
179
+ atype: 1
180
+ }]
181
+ }]
182
+ bidRequests[0].userIdAsEids = eids
183
+ const bidRequest = spec.buildRequests(bidRequests, bidderRequest);
184
+ expect(bidRequest[0].data).to.include.any.keys('eids');
185
+ expect(JSON.parse(bidRequest[0].data.eids)).to.eql(eids);
186
+ });
187
+
188
+ it('should set the bidfloor if getFloor module is undefined but static bidfloor is present', function () {
189
+ const request = { ...bidRequests[0], params: { bidfloor: 2.5 } }
190
+ const req = spec.buildRequests([request], bidderRequest)[0];
191
+ expect(req.data).to.include.any.keys('bidfloor');
192
+ expect(req.data.bidfloor).to.equal(2.5);
193
+ });
194
+
195
+ describe('floorModule', function () {
196
+ const getFloordata = {
197
+ 'currency': 'USD',
198
+ 'floor': 1.60
199
+ };
200
+ bidRequests[0].getFloor = _ => {
201
+ return getFloordata;
202
+ };
203
+ it('should return getFloor.floor if present', function () {
204
+ const request = spec.buildRequests(bidRequests, bidderRequest)[0];
205
+ expect(request.data.bidfloor).to.equal(getFloordata.floor);
206
+ });
207
+ it('should return the getFloor.floor if it is greater than static bidfloor', function () {
208
+ const bidfloor = 1.40;
209
+ const request = { ...bidRequests[0] };
210
+ request.params.bidfloor = bidfloor;
211
+ const bidRequest = spec.buildRequests([request], bidderRequest)[0];
212
+ expect(bidRequest.data.bidfloor).to.equal(getFloordata.floor);
213
+ });
214
+ it('should return the static bidfloor if it is greater than getFloor.floor', function () {
215
+ const bidfloor = 1.90;
216
+ const request = { ...bidRequests[0] };
217
+ request.params.bidfloor = bidfloor;
218
+ const bidRequest = spec.buildRequests([request], bidderRequest)[0];
219
+ expect(bidRequest.data.bidfloor).to.equal(bidfloor);
220
+ });
221
+ });
164
222
  });
165
223
 
166
224
  describe('interpretResponse', function () {
@@ -78,7 +78,8 @@ describe('VisibleMeasuresBidAdapter', function () {
78
78
  gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
79
79
  refererInfo: {
80
80
  referer: 'https://test.com'
81
- }
81
+ },
82
+ timeout: 500
82
83
  };
83
84
 
84
85
  describe('isBidRequestValid', function () {
@@ -28,7 +28,8 @@ describe('vrtcalBidAdapter', function () {
28
28
  'bidId': 'bidID0001',
29
29
  'bidderRequestId': 'br0001',
30
30
  'auctionId': 'auction0001',
31
- 'userIdAsEids': {}
31
+ 'userIdAsEids': {},
32
+ timeout: 435
32
33
  }
33
34
  ];
34
35
 
@@ -95,7 +96,7 @@ describe('vrtcalBidAdapter', function () {
95
96
  w: 300,
96
97
  h: 250,
97
98
  crid: 'v2_1064_vrt_vrtcaltestdisplay2_300_250',
98
- adomain: ['vrtcal.com']
99
+ adomain: ['vrtcal.com'],
99
100
  }],
100
101
  seat: '16'
101
102
  }],
@@ -212,7 +212,7 @@ describe('YieldmoAdapter', function () {
212
212
  expect(data.hasOwnProperty('h')).to.be.true;
213
213
  expect(data.hasOwnProperty('w')).to.be.true;
214
214
  expect(data.hasOwnProperty('pubcid')).to.be.true;
215
- expect(data.userConsent).to.equal('{"gdprApplies":"","cmp":""}');
215
+ expect(data.userConsent).to.equal('{"gdprApplies":"","cmp":"","gpp":"","gpp_sid":""}');
216
216
  expect(data.us_privacy).to.equal('');
217
217
  });
218
218
 
@@ -262,6 +262,24 @@ describe('YieldmoAdapter', function () {
262
262
  JSON.stringify({
263
263
  gdprApplies: true,
264
264
  cmp: 'BOJ/P2HOJ/P2HABABMAAAAAZ+A==',
265
+ gpp: '',
266
+ gpp_sid: '',
267
+ })
268
+ );
269
+ });
270
+
271
+ it('should add gpp information to request if available', () => {
272
+ const gppConsent = {
273
+ 'gppString': 'BOJ/P2HOJ/P2HABABMAAAAAZ+A==',
274
+ 'applicableSections': [8]
275
+ };
276
+ const data = buildAndGetData([mockBannerBid()], 0, mockBidderRequest({gppConsent}));
277
+ expect(data.userConsent).equal(
278
+ JSON.stringify({
279
+ gdprApplies: '',
280
+ cmp: '',
281
+ gpp: 'BOJ/P2HOJ/P2HABABMAAAAAZ+A==',
282
+ gpp_sid: [8],
265
283
  })
266
284
  );
267
285
  });
@@ -52,7 +52,7 @@ describe('Renderer', function () {
52
52
  expect(testRenderer2.getConfig()).to.deep.equal({ test: 'config2' });
53
53
  });
54
54
 
55
- it('sets a render function with setRender method', function () {
55
+ it('sets a render function with the setRender method', function () {
56
56
  testRenderer1.setRender(spyRenderFn);
57
57
  expect(typeof testRenderer1.render).to.equal('function');
58
58
  testRenderer1.render();
@@ -110,7 +110,6 @@ describe('Renderer', function () {
110
110
 
111
111
  it('renders immediately when requested', function () {
112
112
  const testRenderer3 = Renderer.install({
113
- url: 'https://httpbin.org/post',
114
113
  config: { test: 'config2' },
115
114
  id: 2,
116
115
  renderNow: true
@@ -888,16 +888,32 @@ describe('Unit: Prebid Module', function () {
888
888
 
889
889
  it('should only apply price granularity if bid media type matches', function () {
890
890
  initTestConfig({
891
- adUnits: [ createAdUnit('div-gpt-ad-1460505748561-0', 'video') ],
891
+ adUnits: [createAdUnit('div-gpt-ad-1460505748561-0')],
892
892
  adUnitCodes: ['div-gpt-ad-1460505748561-0']
893
893
  });
894
894
 
895
- response = videoResponse;
895
+ response = bannerResponse;
896
896
  response.tags[0].ads[0].cpm = 3.4288;
897
897
 
898
898
  auction.callBids(cbTimeout);
899
899
  let bidTargeting = targeting.getAllTargeting();
900
- expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.00');
900
+ expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.25');
901
+
902
+ if (FEATURES.VIDEO) {
903
+ ajaxStub.restore();
904
+
905
+ initTestConfig({
906
+ adUnits: [createAdUnit('div-gpt-ad-1460505748561-0', 'video')],
907
+ adUnitCodes: ['div-gpt-ad-1460505748561-0']
908
+ });
909
+
910
+ response = videoResponse;
911
+ response.tags[0].ads[0].cpm = 3.4288;
912
+
913
+ auction.callBids(cbTimeout);
914
+ let bidTargeting = targeting.getAllTargeting();
915
+ expect(bidTargeting['div-gpt-ad-1460505748561-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]).to.equal('3.00');
916
+ }
901
917
  });
902
918
  });
903
919
 
@@ -1,4 +1,3 @@
1
-
2
1
  [it, describe].forEach((ob) => {
3
2
  ob.only = function () {
4
3
  [
@@ -7,8 +6,19 @@
7
6
  // eslint-disable-next-line no-console
8
7
  ].forEach(l => console.error(l))
9
8
  throw new Error('do not use .only()')
10
- }
11
- })
9
+ };
10
+ });
11
+
12
+ [it, describe].forEach((ob) => {
13
+ ob.skip = function () {
14
+ [
15
+ 'describe.skip and it.skip are disabled,',
16
+ 'because they pollute the pipeline test output',
17
+ // eslint-disable-next-line no-console
18
+ ].forEach(l => console.error(l))
19
+ throw new Error('do not use .skip()')
20
+ };
21
+ });
12
22
 
13
23
  require('./test_deps.js');
14
24
 
@@ -1 +0,0 @@
1
- (self.pbjsChunk=self.pbjsChunk||[]).push([[11651],{62873:function(e,r,t){var i=t(44925),n=t(71002),a=t(93324),s=t(89062),o=t(78640),d=t(64358),p=t(20265),c=t(14699),u=t(35706),l=t(24679),g=t(3193),m=["mind","maxd","size"],f="https://x.bidswitch.net/sync?ssp=themediagrid",b=!1,v="Bid from response has no adm parameter - ",y="Bid from response has no price parameter - ",h="Bid from response has wrong content_type parameter - ",S="Array of bid objects is empty",x="Seatbid array from response has empty item",I="Response is empty",R="Response has empty seatbid array",j="Seatbid from response has no array of bid objects - ",w={code:"gridNM",supportedMediaTypes:[l.pX],isBidRequestValid:function(e){var r=!(e.params.source&&(0,d.isStr)(e.params.source)&&e.params.secid&&(0,d.isStr)(e.params.secid)&&e.params.pubid&&(0,d.isStr)(e.params.pubid)),t=(0,p.Z)(e,"mediaTypes.video")||{},i=(0,p.Z)(e,"params.video")||{},n=i.protocols,a=void 0===n?t.protocols:n,s=i.mimes,o=void 0===s?t.mimes:s;return r||(r=!a||!o),r||(r=!(0,d.isArray)(o)||!o.length||o.filter((function(e){return!(e&&(0,d.isStr)(e))})).length)||(r=!(0,d.isArray)(a)||!a.length||a.filter((function(e){return!((0,d.isNumber)(e)&&e>0&&!(e%1))})).length),!r},buildRequests:function(e,r){var t=e||[],i=[],o=r||{},c=o.bidderRequestId,u=o.auctionId,l=o.gdprConsent,m=o.uspConsent,f=o.timeout,b=o.refererInfo,v=b?encodeURIComponent(b.page):"";return t.forEach((function(e){var t,o,b=e.schain,y=e.userIdAsEids;c||(c=e.bidderRequestId),u||(u=e.auctionId);var h=e.params,S=h.floorcpm,x=h.source,I=h.secid,R=h.pubid,j=h.content,w=h.video,O=e.mediaTypes,A=e.bidId,T=e.adUnitCode,N=e.rtd,Z=e.ortb2Imp,_=e.sizes,C=function(e,r,t){var i=e.video?"video":"banner";if("function"==typeof r.getFloor){var s=r.getFloor({currency:"USD",mediaType:i,size:r.sizes.map((function(e){var r=(0,a.Z)(e,2);return{w:r[0],h:r[1]}}))});"object"!==(0,n.Z)(s)||"USD"!==s.currency||isNaN(parseFloat(s.floor))||(t=Math.max(t,parseFloat(s.floor)))}return t}(O||{},e,(0,d.isNumber)(S)&&S),E=N&&N.jwplayer&&N.jwplayer.targeting,U=j||E&&E.content,D={id:A.toString(),tagid:I.toString(),video:z((0,d.mergeDeep)({},w,O&&O.video),_),ext:{divid:T.toString()}};Z&&Z.ext&&Z.ext.data&&(D.ext.data=Z.ext.data,D.ext.data.adserver&&D.ext.data.adserver.adslot?D.ext.gpid=D.ext.data.adserver.adslot.toString():D.ext.gpid=Z.ext.data.pbadslot&&Z.ext.data.pbadslot.toString()),C&&(D.bidfloor=C);var q=[D],P={tid:u&&u.toString(),ext:{wrapper:"Prebid_js",wrapper_version:"7.44.0"}};b&&(P.ext.schain=b);var B=g.vc.getConfig("bidderTimeout")||f,M=f?Math.min(B,f):B,X={id:c&&c.toString(),site:{page:v,publisher:{id:R}},source:P,tmax:M,imp:q};U&&(X.site.content=U),l&&l.consentString&&(o={consent:l.consentString}),y&&y.length&&((o=o||{}).eids=(0,s.Z)(y)),o&&Object.keys(o).length&&((t=t||{}).ext=o);var k=(0,p.Z)(r,"ortb2.user.data");k&&k.length&&(t||(t={data:[]}),t=(0,d.mergeDeep)(t,{data:(0,s.Z)(k)})),t&&(X.user=t);var F=(0,p.Z)(r,"ortb2.site");if(F){var J=(0,p.Z)(F,"content.data");if(J&&J.length){var V=X.site.content||{};X.site.content=(0,d.mergeDeep)(V,{data:J})}}l&&l.gdprApplies&&(X.regs={ext:{gdpr:l.gdprApplies?1:0}}),m&&(X.regs||(X.regs={ext:{}}),X.regs.ext.us_privacy=m),!0===g.vc.getConfig("coppa")&&(X.regs||(X.regs={}),X.regs.coppa=1),i.push({method:"POST",url:"https://grid.bidswitch.net/hbjson?no_mapping=1&sp="+x,bid:e,data:X})})),i},interpretResponse:function(e,r){var t,i=[];if((e=e&&e.body)?e.seatbid&&!e.seatbid.length&&(t=R):t=I,!t&&e.seatbid){var n=function(e){e?e.bid?e.bid[0]||(0,d.logError)(S):(0,d.logError)(j+JSON.stringify(e)):(0,d.logError)(x);return e&&e.bid&&e.bid[0]}(e.seatbid[0]);if(n&&(n.adm||n.nurl?n.price?"video"!==n.content_type&&(t=h+n.content_type):t=y+JSON.stringify(n):t=v+JSON.stringify(n),!t)){var a=r.bid,s={requestId:a.bidId,cpm:n.price,width:n.w,height:n.h,creativeId:n.auid||a.bidderRequestId,currency:"USD",netRevenue:!0,ttl:360,dealId:n.dealid,mediaType:l.pX,meta:{advertiserDomains:n.adomain?n.adomain:[]}};n.adm?(s.vastXml=n.adm,s.adResponse={content:s.vastXml}):n.nurl&&(s.vastUrl=n.nurl),a.renderer||a.mediaTypes&&a.mediaTypes.video&&"outstream"!==a.mediaTypes.video.context||(s.renderer=function(e,r){var t=u.Th.install({id:r.id,url:r.url,loaded:!1});try{t.setRender(O)}catch(e){(0,d.logWarn)("Prebid Error calling setRender on renderer",e)}return t}(0,{id:a.bidId,url:"https://acdn.adnxs.com/video/outstream/ANOutstreamVideo.js"})),i.push(s)}}return t&&(0,d.logError)(t),i},getUserSyncs:function(e,r,t,i){if(!b&&e.pixelEnabled){var n="";return t&&"string"==typeof t.consentString&&("boolean"==typeof t.gdprApplies?n+="&gdpr=".concat(Number(t.gdprApplies),"&gdpr_consent=").concat(t.consentString):n+="&gdpr_consent=".concat(t.consentString)),i&&(n+="&us_privacy=".concat(i)),b=!0,{type:"image",url:f+n}}}};function O(e){e.renderer.push((function(){window.ANOutstreamVideo.renderAd({targetId:e.adUnitCode,adResponse:e.adResponse})}))}function z(e,r){var t=e.mind,n=e.maxd,a=e.size,s=(0,i.Z)(e,m);if(a&&(0,d.isStr)(a)){var o=a.split("x");2===o.length&&parseInt(o[0])&&parseInt(o[1])&&(s.w=parseInt(o[0]),s.h=parseInt(o[1]))}if(!s.w||!s.h){var p=s.playerSize&&2===s.playerSize.length?s.playerSize:r;if(p){var c=p[0];c&&Object.assign(s,(0,d.parseGPTSingleSizeArrayToRtbSize)(c))}}s.playerSize&&delete s.playerSize;var u=s.durationRangeSec||[],l=t||u[0]||s.minduration,g=n||u[1]||s.maxduration;return l&&(s.minduration=l),g&&(s.maxduration=g),s}(0,c.dX)(w),(0,o.z)("gridNMBidAdapter")},44925:function(e,r,t){function i(e,r){if(null==e)return{};var t,i,n=function(e,r){if(null==e)return{};var t,i,n={},a=Object.keys(e);for(i=0;i<a.length;i++)t=a[i],r.indexOf(t)>=0||(n[t]=e[t]);return n}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)t=a[i],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(n[t]=e[t])}return n}t.d(r,{Z:function(){return i}})}},function(e){var r;r=62873,e(e.s=r)}]);