prebid.js 8.4.0 → 8.6.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 (332) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/a1MediaRtdProvider.js +1 -0
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adfBidAdapter.js +1 -1
  7. package/dist/adgenerationBidAdapter.js +1 -1
  8. package/dist/adkernelAdnBidAdapter.js +1 -1
  9. package/dist/adkernelBidAdapter.js +1 -1
  10. package/dist/admixerIdSystem.js +1 -1
  11. package/dist/adnuntiusBidAdapter.js +1 -1
  12. package/dist/adqueryBidAdapter.js +1 -1
  13. package/dist/adqueryIdSystem.js +1 -1
  14. package/dist/adrelevantisBidAdapter.js +1 -1
  15. package/dist/adsinteractiveBidAdapter.js +1 -1
  16. package/dist/adtelligentIdSystem.js +1 -1
  17. package/dist/adtrgtmeBidAdapter.js +1 -1
  18. package/dist/adxcgBidAdapter.js +1 -1
  19. package/dist/adyoulikeBidAdapter.js +1 -1
  20. package/dist/ajaBidAdapter.js +1 -1
  21. package/dist/amxBidAdapter.js +1 -1
  22. package/dist/amxIdSystem.js +1 -1
  23. package/dist/appierAnalyticsAdapter.js +1 -1
  24. package/dist/appnexusBidAdapter.js +1 -1
  25. package/dist/asoBidAdapter.js +1 -1
  26. package/dist/axonixBidAdapter.js +1 -1
  27. package/dist/beachfrontBidAdapter.js +1 -1
  28. package/dist/bidglassBidAdapter.js +1 -1
  29. package/dist/big-richmediaBidAdapter.js +1 -1
  30. package/dist/bridBidAdapter.js +1 -1
  31. package/dist/bridgewellBidAdapter.js +1 -1
  32. package/dist/brightMountainMediaBidAdapter.js +1 -1
  33. package/dist/britepoolIdSystem.js +1 -1
  34. package/dist/carodaBidAdapter.js +1 -1
  35. package/dist/chtnwBidAdapter.js +1 -1
  36. package/dist/concertBidAdapter.js +1 -1
  37. package/dist/connectIdSystem.js +1 -1
  38. package/dist/connectadBidAdapter.js +1 -1
  39. package/dist/consentManagementGpp.js +1 -1
  40. package/dist/consumableBidAdapter.js +1 -1
  41. package/dist/conversantAnalyticsAdapter.js +1 -1
  42. package/dist/conversantBidAdapter.js +1 -1
  43. package/dist/craftBidAdapter.js +1 -1
  44. package/dist/criteoBidAdapter.js +1 -1
  45. package/dist/criteoIdSystem.js +1 -1
  46. package/dist/cwireBidAdapter.js +1 -1
  47. package/dist/czechAdIdSystem.js +1 -1
  48. package/dist/dacIdSystem.js +1 -1
  49. package/dist/deepintentDpesIdSystem.js +1 -1
  50. package/dist/dependencies.json +6 -0
  51. package/dist/dmdIdSystem.js +1 -1
  52. package/dist/dspxBidAdapter.js +1 -1
  53. package/dist/eplanningBidAdapter.js +1 -1
  54. package/dist/euidIdSystem.js +1 -1
  55. package/dist/fabrickIdSystem.js +1 -1
  56. package/dist/feedadBidAdapter.js +1 -1
  57. package/dist/finativeBidAdapter.js +1 -1
  58. package/dist/freewheel-sspBidAdapter.js +1 -1
  59. package/dist/ftrackIdSystem.js +1 -1
  60. package/dist/geolocationRtdProvider.js +1 -0
  61. package/dist/gmosspBidAdapter.js +1 -1
  62. package/dist/goldbachBidAdapter.js +1 -1
  63. package/dist/gravitoIdSystem.js +1 -1
  64. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  65. package/dist/greenbidsRtdProvider.js +1 -1
  66. package/dist/gridBidAdapter.js +1 -1
  67. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  68. package/dist/growthCodeIdSystem.js +1 -1
  69. package/dist/gumgumBidAdapter.js +1 -1
  70. package/dist/h12mediaBidAdapter.js +1 -1
  71. package/dist/hadronIdSystem.js +1 -1
  72. package/dist/hypelabBidAdapter.js +1 -1
  73. package/dist/id5IdSystem.js +1 -1
  74. package/dist/identityLinkIdSystem.js +1 -1
  75. package/dist/idxIdSystem.js +1 -1
  76. package/dist/imdsBidAdapter.js +1 -1
  77. package/dist/improvedigitalBidAdapter.js +1 -1
  78. package/dist/imuIdSystem.js +1 -1
  79. package/dist/insticatorBidAdapter.js +1 -1
  80. package/dist/intentIqIdSystem.js +1 -1
  81. package/dist/invibesBidAdapter.js +1 -1
  82. package/dist/ixBidAdapter.js +1 -1
  83. package/dist/justIdSystem.js +1 -1
  84. package/dist/justpremiumBidAdapter.js +1 -1
  85. package/dist/kargoBidAdapter.js +1 -1
  86. package/dist/kinessoIdSystem.js +1 -1
  87. package/dist/konduitAnalyticsAdapter.js +1 -1
  88. package/dist/kueezBidAdapter.js +1 -1
  89. package/dist/kueezRtbBidAdapter.js +1 -1
  90. package/dist/kulturemediaBidAdapter.js +1 -1
  91. package/dist/lassoBidAdapter.js +1 -1
  92. package/dist/lifestreetBidAdapter.js +1 -1
  93. package/dist/liveIntentIdSystem.js +1 -1
  94. package/dist/logicadBidAdapter.js +1 -1
  95. package/dist/loglyliftBidAdapter.js +1 -1
  96. package/dist/lotamePanoramaIdSystem.js +1 -1
  97. package/dist/magniteAnalyticsAdapter.js +1 -1
  98. package/dist/malltvAnalyticsAdapter.js +1 -1
  99. package/dist/marsmediaBidAdapter.js +1 -1
  100. package/dist/mediafuseBidAdapter.js +1 -1
  101. package/dist/mediasquareBidAdapter.js +1 -1
  102. package/dist/merkleIdSystem.js +1 -1
  103. package/dist/mgidBidAdapter.js +1 -1
  104. package/dist/minutemediaBidAdapter.js +1 -1
  105. package/dist/minutemediaplusBidAdapter.js +1 -1
  106. package/dist/mspa.js +1 -1
  107. package/dist/mwOpenLinkIdSystem.js +1 -1
  108. package/dist/naveggIdSystem.js +1 -1
  109. package/dist/netIdSystem.js +1 -1
  110. package/dist/newspassidBidAdapter.js +1 -1
  111. package/dist/nexx360BidAdapter.js +1 -1
  112. package/dist/not-for-prod/prebid.js +186 -181
  113. package/dist/novatiqIdSystem.js +1 -1
  114. package/dist/oguryBidAdapter.js +1 -1
  115. package/dist/oneKeyIdSystem.js +1 -1
  116. package/dist/onetagBidAdapter.js +1 -1
  117. package/dist/ooloAnalyticsAdapter.js +1 -1
  118. package/dist/optidigitalBidAdapter.js +1 -1
  119. package/dist/outbrainBidAdapter.js +1 -1
  120. package/dist/ozoneBidAdapter.js +1 -1
  121. package/dist/pairIdSystem.js +1 -1
  122. package/dist/parrableIdSystem.js +1 -1
  123. package/dist/pixfutureBidAdapter.js +1 -1
  124. package/dist/prebid-core.js +1 -1
  125. package/dist/pubCircleBidAdapter.js +1 -0
  126. package/dist/publinkIdSystem.js +1 -1
  127. package/dist/pubmaticBidAdapter.js +1 -1
  128. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  129. package/dist/pxyzBidAdapter.js +1 -1
  130. package/dist/quantcastBidAdapter.js +1 -1
  131. package/dist/quantcastIdSystem.js +1 -1
  132. package/dist/readpeakBidAdapter.js +1 -1
  133. package/dist/relaidoBidAdapter.js +1 -1
  134. package/dist/relevadRtdProvider.js +1 -1
  135. package/dist/retailspotBidAdapter.js +1 -1
  136. package/dist/rhythmoneBidAdapter.js +1 -1
  137. package/dist/riseBidAdapter.js +1 -1
  138. package/dist/rubiconBidAdapter.js +1 -1
  139. package/dist/seedingAllianceBidAdapter.js +1 -1
  140. package/dist/seedtagBidAdapter.js +1 -1
  141. package/dist/sharedIdSystem.js +1 -1
  142. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  143. package/dist/sharethroughBidAdapter.js +1 -1
  144. package/dist/shinezBidAdapter.js +1 -1
  145. package/dist/silverpushBidAdapter.js +1 -1
  146. package/dist/smaatoBidAdapter.js +1 -1
  147. package/dist/smartadserverBidAdapter.js +1 -1
  148. package/dist/smartxBidAdapter.js +1 -1
  149. package/dist/smilewantedBidAdapter.js +1 -1
  150. package/dist/sonobiBidAdapter.js +1 -1
  151. package/dist/sovrnAnalyticsAdapter.js +1 -1
  152. package/dist/sovrnBidAdapter.js +1 -1
  153. package/dist/ssmasBidAdapter.js +1 -0
  154. package/dist/sspBCBidAdapter.js +1 -1
  155. package/dist/stvBidAdapter.js +1 -1
  156. package/dist/sublimeBidAdapter.js +1 -1
  157. package/dist/tapadIdSystem.js +1 -1
  158. package/dist/tappxBidAdapter.js +1 -1
  159. package/dist/targetVideoBidAdapter.js +1 -1
  160. package/dist/teadsBidAdapter.js +1 -1
  161. package/dist/tncIdSystem.js +1 -1
  162. package/dist/topicsFpdModule.js +1 -1
  163. package/dist/trionBidAdapter.js +1 -1
  164. package/dist/tripleliftBidAdapter.js +1 -1
  165. package/dist/ttdBidAdapter.js +1 -1
  166. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  167. package/dist/uid2IdSystem.js +1 -1
  168. package/dist/underdogmediaBidAdapter.js +1 -1
  169. package/dist/undertoneBidAdapter.js +1 -1
  170. package/dist/unifiedIdSystem.js +1 -1
  171. package/dist/userId.js +1 -1
  172. package/dist/utiqSystem.js +1 -1
  173. package/dist/verizonMediaIdSystem.js +1 -1
  174. package/dist/viantOrtbBidAdapter.js +1 -0
  175. package/dist/vidazooBidAdapter.js +1 -1
  176. package/dist/videobyteBidAdapter.js +1 -1
  177. package/dist/videojsVideoProvider.js +1 -1
  178. package/dist/visxBidAdapter.js +1 -1
  179. package/dist/vrtcalBidAdapter.js +1 -1
  180. package/dist/vuukleBidAdapter.js +1 -1
  181. package/dist/widespaceBidAdapter.js +1 -1
  182. package/dist/winrBidAdapter.js +1 -1
  183. package/dist/yahoosspBidAdapter.js +1 -1
  184. package/dist/yieldmoBidAdapter.js +1 -1
  185. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  186. package/dist/zeotapIdPlusIdSystem.js +1 -1
  187. package/integrationExamples/gpt/adUnitFloors.html +0 -1
  188. package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +1 -1
  189. package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +1 -1
  190. package/integrationExamples/videoModule/jwplayer/bidsBackHandlerOverride.html +137 -0
  191. package/integrationExamples/videoModule/jwplayer/eventListeners.html +1 -1
  192. package/integrationExamples/videoModule/jwplayer/eventsUI.html +1 -1
  193. package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +1 -1
  194. package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +1 -1
  195. package/integrationExamples/videoModule/jwplayer/playlist.html +1 -1
  196. package/integrationExamples/videoModule/videojs/bidsBackHandlerOverride.html +164 -0
  197. package/libraries/mspa/activityControls.js +51 -32
  198. package/modules/.submodules.json +1 -0
  199. package/modules/33acrossIdSystem.js +9 -0
  200. package/modules/a1MediaRtdProvider.js +92 -0
  201. package/modules/a1MediaRtdProvider.md +46 -0
  202. package/modules/adfBidAdapter.js +4 -1
  203. package/modules/adgenerationBidAdapter.js +3 -3
  204. package/modules/adkernelAdnBidAdapter.js +1 -1
  205. package/modules/adkernelBidAdapter.js +10 -3
  206. package/modules/admixerIdSystem.js +6 -0
  207. package/modules/adnuntiusBidAdapter.js +5 -13
  208. package/modules/adqueryIdSystem.js +6 -0
  209. package/modules/adsinteractiveBidAdapter.js +2 -2
  210. package/modules/adtelligentIdSystem.js +6 -0
  211. package/modules/adyoulikeBidAdapter.js +6 -3
  212. package/modules/amxIdSystem.js +6 -0
  213. package/modules/appnexusBidAdapter.js +1 -1
  214. package/modules/beachfrontBidAdapter.js +32 -6
  215. package/modules/britepoolIdSystem.js +6 -0
  216. package/modules/connectIdSystem.js +6 -0
  217. package/modules/consentManagementGpp.js +10 -1
  218. package/modules/consumableBidAdapter.js +9 -1
  219. package/modules/criteoBidAdapter.js +18 -0
  220. package/modules/criteoIdSystem.js +6 -0
  221. package/modules/cwireBidAdapter.js +19 -0
  222. package/modules/czechAdIdSystem.js +6 -0
  223. package/modules/dacIdSystem.js +6 -0
  224. package/modules/deepintentDpesIdSystem.js +7 -2
  225. package/modules/dmdIdSystem.js +6 -0
  226. package/modules/euidIdSystem.js +9 -0
  227. package/modules/fabrickIdSystem.js +6 -0
  228. package/modules/ftrackIdSystem.js +16 -0
  229. package/modules/geolocationRtdProvider.js +65 -0
  230. package/modules/gravitoIdSystem.js +6 -0
  231. package/modules/greenbidsRtdProvider.js +1 -1
  232. package/modules/growthCodeAnalyticsAdapter.js +7 -2
  233. package/modules/growthCodeIdSystem.js +20 -1
  234. package/modules/hadronIdSystem.js +6 -0
  235. package/modules/id5IdSystem.js +34 -8
  236. package/modules/identityLinkIdSystem.js +6 -0
  237. package/modules/idxIdSystem.js +6 -0
  238. package/modules/imdsBidAdapter.js +38 -14
  239. package/modules/imuIdSystem.js +10 -0
  240. package/modules/intentIqIdSystem.js +6 -0
  241. package/modules/invibesBidAdapter.js +5 -5
  242. package/modules/ixBidAdapter.js +16 -0
  243. package/modules/justIdSystem.js +6 -0
  244. package/modules/kinessoIdSystem.js +7 -2
  245. package/modules/liveIntentIdSystem.js +53 -0
  246. package/modules/lotamePanoramaIdSystem.js +6 -0
  247. package/modules/merkleIdSystem.js +24 -0
  248. package/modules/mwOpenLinkIdSystem.js +6 -0
  249. package/modules/naveggIdSystem.js +6 -0
  250. package/modules/netIdSystem.js +6 -0
  251. package/modules/newspassid.md +76 -0
  252. package/modules/newspassidBidAdapter.js +44 -18
  253. package/modules/novatiqIdSystem.js +12 -0
  254. package/modules/oneKeyIdSystem.js +26 -0
  255. package/modules/ozoneBidAdapter.js +65 -18
  256. package/modules/ozoneBidAdapter.md +3 -1
  257. package/modules/pairIdSystem.js +6 -0
  258. package/modules/parrableIdSystem.js +38 -2
  259. package/modules/pubCircleBidAdapter.js +231 -0
  260. package/modules/pubCircleBidAdapter.md +79 -0
  261. package/modules/publinkIdSystem.js +7 -1
  262. package/modules/quantcastIdSystem.js +6 -0
  263. package/modules/relevadRtdProvider.js +6 -7
  264. package/modules/rubiconBidAdapter.js +9 -0
  265. package/modules/sharedIdSystem.js +6 -0
  266. package/modules/silverpushBidAdapter.js +2 -2
  267. package/modules/ssmasBidAdapter.js +126 -0
  268. package/modules/ssmasBidAdapter.md +35 -0
  269. package/modules/sspBCBidAdapter.js +36 -13
  270. package/modules/tapadIdSystem.js +6 -0
  271. package/modules/tappxBidAdapter.js +10 -1
  272. package/modules/tappxBidAdapter.md +17 -0
  273. package/modules/tncIdSystem.js +6 -0
  274. package/modules/topicsFpdModule.js +21 -48
  275. package/modules/tripleliftBidAdapter.js +5 -0
  276. package/modules/uid2IdSystem.js +14 -0
  277. package/modules/unifiedIdSystem.js +11 -0
  278. package/modules/userId/eids.js +6 -445
  279. package/modules/userId/index.js +36 -24
  280. package/modules/utiqSystem.js +9 -0
  281. package/modules/verizonMediaIdSystem.js +6 -0
  282. package/modules/viantOrtbBidAdapter.js +113 -0
  283. package/modules/viantOrtbBidAdapter.md +54 -0
  284. package/modules/vidazooBidAdapter.js +9 -2
  285. package/modules/videojsVideoProvider.js +9 -2
  286. package/modules/vrtcalBidAdapter.js +10 -6
  287. package/modules/zeotapIdPlusIdSystem.js +6 -0
  288. package/package.json +1 -1
  289. package/src/adapters/bidderFactory.js +15 -6
  290. package/src/adloader.js +2 -1
  291. package/test/spec/libraries/mspa/activityControls_spec.js +145 -212
  292. package/test/spec/modules/a1MediaRtdProvider_spec.js +105 -0
  293. package/test/spec/modules/adfBidAdapter_spec.js +47 -0
  294. package/test/spec/modules/adgenerationBidAdapter_spec.js +6 -6
  295. package/test/spec/modules/adkernelAdnBidAdapter_spec.js +1 -2
  296. package/test/spec/modules/adkernelBidAdapter_spec.js +7 -2
  297. package/test/spec/modules/adnuntiusBidAdapter_spec.js +116 -64
  298. package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -24
  299. package/test/spec/modules/appnexusBidAdapter_spec.js +12 -1
  300. package/test/spec/modules/beachfrontBidAdapter_spec.js +35 -2
  301. package/test/spec/modules/consentManagementGpp_spec.js +16 -0
  302. package/test/spec/modules/consumableBidAdapter_spec.js +15 -0
  303. package/test/spec/modules/criteoBidAdapter_spec.js +31 -3
  304. package/test/spec/modules/cwireBidAdapter_spec.js +47 -0
  305. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +5 -5
  306. package/test/spec/modules/geolocationRtdProvider_spec.js +119 -0
  307. package/test/spec/modules/greenbidsRtdProvider_spec.js +1 -1
  308. package/test/spec/modules/id5IdSystem_spec.js +18 -0
  309. package/test/spec/modules/imdsBidAdapter_spec.js +98 -17
  310. package/test/spec/modules/invibesBidAdapter_spec.js +123 -32
  311. package/test/spec/modules/ixBidAdapter_spec.js +23 -5
  312. package/test/spec/modules/medianetBidAdapter_spec.js +117 -0
  313. package/test/spec/modules/newspassidBidAdapter_spec.js +6 -0
  314. package/test/spec/modules/outbrainBidAdapter_spec.js +3 -5
  315. package/test/spec/modules/ozoneBidAdapter_spec.js +27 -1
  316. package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -20
  317. package/test/spec/modules/priceFloors_spec.js +14 -0
  318. package/test/spec/modules/pubCircleBidAdapter_spec.js +399 -0
  319. package/test/spec/modules/pubmaticBidAdapter_spec.js +6 -373
  320. package/test/spec/modules/rubiconBidAdapter_spec.js +220 -9
  321. package/test/spec/modules/smaatoBidAdapter_spec.js +4 -6
  322. package/test/spec/modules/ssmasBidAdapter_spec.js +244 -0
  323. package/test/spec/modules/sspBCBidAdapter_spec.js +18 -19
  324. package/test/spec/modules/topicsFpdModule_spec.js +343 -365
  325. package/test/spec/modules/tripleliftBidAdapter_spec.js +40 -0
  326. package/test/spec/modules/userId_spec.js +116 -7
  327. package/test/spec/modules/viantOrtbBidAdapter_spec.js +432 -0
  328. package/test/spec/modules/vrtcalBidAdapter_spec.js +12 -4
  329. package/test/spec/modules/xeBidAdapter_spec.js +366 -368
  330. package/test/spec/modules/yahoosspBidAdapter_spec.js +5 -18
  331. package/test/spec/unit/core/bidderFactory_spec.js +61 -14
  332. package/integrationExamples/gpt/pbjs_video_adUnit.html +0 -109
@@ -81,6 +81,13 @@ describe('invibesBidAdapter:', function () {
81
81
  }
82
82
  ];
83
83
 
84
+ let bidderRequestWithPageInfo = {
85
+ refererInfo: {
86
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
87
+ },
88
+ auctionStart: Date.now()
89
+ }
90
+
84
91
  let StubbedPersistence = function (initialValue) {
85
92
  var value = initialValue;
86
93
  return {
@@ -174,17 +181,17 @@ describe('invibesBidAdapter:', function () {
174
181
 
175
182
  describe('buildRequests', function () {
176
183
  it('sends preventPageViewEvent as false on first call', function () {
177
- let request = spec.buildRequests(bidRequests);
184
+ let request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
178
185
  expect(request.data.preventPageViewEvent).to.be.false;
179
186
  });
180
187
 
181
188
  it('sends preventPageViewEvent as true on 2nd call', function () {
182
- let request = spec.buildRequests(bidRequests);
189
+ let request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
183
190
  expect(request.data.preventPageViewEvent).to.be.true;
184
191
  });
185
192
 
186
193
  it('sends bid request to ENDPOINT via GET', function () {
187
- const request = spec.buildRequests(bidRequests);
194
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
188
195
  expect(request.url).to.equal(ENDPOINT);
189
196
  expect(request.method).to.equal('GET');
190
197
  });
@@ -198,7 +205,7 @@ describe('invibesBidAdapter:', function () {
198
205
  customEndpoint: 'sub.domain.com/Bid/VideoAdContent'
199
206
  },
200
207
  adUnitCode: 'test-div1'
201
- }]);
208
+ }], bidderRequestWithPageInfo);
202
209
  expect(request.url).to.equal('sub.domain.com/Bid/VideoAdContent');
203
210
  expect(request.method).to.equal('GET');
204
211
  });
@@ -210,7 +217,7 @@ describe('invibesBidAdapter:', function () {
210
217
  params: {
211
218
  },
212
219
  adUnitCode: 'test-div1'
213
- }]);
220
+ }], bidderRequestWithPageInfo);
214
221
  expect(request.url).to.equal(ENDPOINT);
215
222
  expect(request.method).to.equal('GET');
216
223
  });
@@ -223,7 +230,7 @@ describe('invibesBidAdapter:', function () {
223
230
  placementId: null
224
231
  },
225
232
  adUnitCode: 'test-div1'
226
- }]);
233
+ }], bidderRequestWithPageInfo);
227
234
  expect(request.url).to.equal(ENDPOINT);
228
235
  expect(request.method).to.equal('GET');
229
236
  });
@@ -236,7 +243,7 @@ describe('invibesBidAdapter:', function () {
236
243
  placementId: 'placement'
237
244
  },
238
245
  adUnitCode: 'test-div1'
239
- }]);
246
+ }], bidderRequestWithPageInfo);
240
247
  expect(request.url).to.equal('https://bid.videostep.com/Bid/VideoAdContent');
241
248
  expect(request.method).to.equal('GET');
242
249
  });
@@ -250,7 +257,7 @@ describe('invibesBidAdapter:', function () {
250
257
  domainId: 1001
251
258
  },
252
259
  adUnitCode: 'test-div1'
253
- }]);
260
+ }], bidderRequestWithPageInfo);
254
261
  expect(request.url).to.equal('https://bid.videostep.com/Bid/VideoAdContent');
255
262
  expect(request.method).to.equal('GET');
256
263
  });
@@ -264,7 +271,7 @@ describe('invibesBidAdapter:', function () {
264
271
  domainId: 1002
265
272
  },
266
273
  adUnitCode: 'test-div1'
267
- }]);
274
+ }], bidderRequestWithPageInfo);
268
275
  expect(request.url).to.equal('https://bid2.videostep.com/Bid/VideoAdContent');
269
276
  expect(request.method).to.equal('GET');
270
277
  });
@@ -277,7 +284,7 @@ describe('invibesBidAdapter:', function () {
277
284
  placementId: 'infeed_ivbs1'
278
285
  },
279
286
  adUnitCode: 'test-div1'
280
- }]);
287
+ }], bidderRequestWithPageInfo);
281
288
  expect(request.url).to.equal('https://bid.videostep.com/Bid/VideoAdContent');
282
289
  expect(request.method).to.equal('GET');
283
290
  });
@@ -290,7 +297,7 @@ describe('invibesBidAdapter:', function () {
290
297
  placementId: 'infeed_ivbs2'
291
298
  },
292
299
  adUnitCode: 'test-div1'
293
- }]);
300
+ }], bidderRequestWithPageInfo);
294
301
  expect(request.url).to.equal('https://bid2.videostep.com/Bid/VideoAdContent');
295
302
  expect(request.method).to.equal('GET');
296
303
  });
@@ -303,18 +310,18 @@ describe('invibesBidAdapter:', function () {
303
310
  placementId: 'infeed_ivbs10'
304
311
  },
305
312
  adUnitCode: 'test-div1'
306
- }]);
313
+ }], bidderRequestWithPageInfo);
307
314
  expect(request.url).to.equal('https://bid10.videostep.com/Bid/VideoAdContent');
308
315
  expect(request.method).to.equal('GET');
309
316
  });
310
317
 
311
318
  it('sends cookies with the bid request', function () {
312
- const request = spec.buildRequests(bidRequests);
319
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
313
320
  expect(request.options.withCredentials).to.equal(true);
314
321
  });
315
322
 
316
323
  it('has location, html id, placement and width/height', function () {
317
- const request = spec.buildRequests(bidRequests, {auctionStart: Date.now()});
324
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
318
325
  const parsedData = request.data;
319
326
  expect(parsedData.location).to.exist;
320
327
  expect(parsedData.videoAdHtmlId).to.exist;
@@ -323,13 +330,20 @@ describe('invibesBidAdapter:', function () {
323
330
  expect(parsedData.height).to.exist;
324
331
  });
325
332
 
333
+ it('has location not cut off', function () {
334
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
335
+ const parsedData = request.data;
336
+ expect(parsedData.location).to.contain('?');
337
+ expect(parsedData.location).to.equal('https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue');
338
+ });
339
+
326
340
  it('has capped ids if local storage variable is correctly formatted', function () {
327
341
  top.window.invibes.optIn = 1;
328
342
  top.window.invibes.purposes = [true, false, false, false, false, false, false, false, false, false];
329
343
  localStorage.ivvcap = '{"9731":[1,1768600800000]}';
330
344
  SetBidderAccess();
331
345
 
332
- const request = spec.buildRequests(bidRequests, {auctionStart: Date.now()});
346
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
333
347
 
334
348
  expect(request.data.capCounts).to.equal('9731=1');
335
349
  });
@@ -356,6 +370,9 @@ describe('invibesBidAdapter:', function () {
356
370
  }
357
371
  }
358
372
  }
373
+ },
374
+ refererInfo: {
375
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
359
376
  }
360
377
  };
361
378
 
@@ -366,59 +383,59 @@ describe('invibesBidAdapter:', function () {
366
383
 
367
384
  it('does not have capped ids if local storage variable is incorrectly formatted', function () {
368
385
  localStorage.ivvcap = ':[1,1574334216992]}';
369
- const request = spec.buildRequests(bidRequests, {auctionStart: Date.now()});
386
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
370
387
  expect(request.data.capCounts).to.equal('');
371
388
  });
372
389
 
373
390
  it('does not have capped ids if local storage variable is expired', function () {
374
391
  localStorage.ivvcap = '{"9731":[1,1574330064104]}';
375
- const request = spec.buildRequests(bidRequests, {auctionStart: Date.now()});
392
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
376
393
  expect(request.data.capCounts).to.equal('');
377
394
  });
378
395
 
379
396
  it('sends query string params from localstorage 1', function () {
380
397
  localStorage.ivbs = JSON.stringify({bvci: 1});
381
- const request = spec.buildRequests(bidRequests, {auctionStart: Date.now()});
398
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
382
399
  expect(request.data.bvci).to.equal(1);
383
400
  });
384
401
 
385
402
  it('sends query string params from localstorage 2', function () {
386
403
  localStorage.ivbs = JSON.stringify({invibbvlog: true});
387
- const request = spec.buildRequests(bidRequests, {auctionStart: Date.now()});
404
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
388
405
  expect(request.data.invibbvlog).to.equal(true);
389
406
  });
390
407
 
391
408
  it('does not send query string params from localstorage if unknwon', function () {
392
409
  localStorage.ivbs = JSON.stringify({someparam: true});
393
- const request = spec.buildRequests(bidRequests, {auctionStart: Date.now()});
410
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
394
411
  expect(request.data.someparam).to.be.undefined;
395
412
  });
396
413
 
397
414
  it('sends all Placement Ids', function () {
398
- const request = spec.buildRequests(bidRequests);
415
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
399
416
  expect(JSON.parse(request.data.bidParamsJson).placementIds).to.contain(bidRequests[0].params.placementId);
400
417
  expect(JSON.parse(request.data.bidParamsJson).placementIds).to.contain(bidRequests[1].params.placementId);
401
418
  });
402
419
 
403
420
  it('sends all adUnitCodes', function () {
404
- const request = spec.buildRequests(bidRequests);
421
+ const request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
405
422
  expect(JSON.parse(request.data.bidParamsJson).adUnitCodes).to.contain(bidRequests[0].adUnitCode);
406
423
  expect(JSON.parse(request.data.bidParamsJson).adUnitCodes).to.contain(bidRequests[1].adUnitCode);
407
424
  });
408
425
 
409
426
  it('sends all Placement Ids and userId', function () {
410
- const request = spec.buildRequests(bidRequestsWithUserId);
427
+ const request = spec.buildRequests(bidRequestsWithUserId, bidderRequestWithPageInfo);
411
428
  expect(JSON.parse(request.data.bidParamsJson).userId).to.exist;
412
429
  });
413
430
 
414
431
  it('sends undefined lid when no cookie', function () {
415
- let request = spec.buildRequests(bidRequests);
432
+ let request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
416
433
  expect(request.data.lId).to.be.undefined;
417
434
  });
418
435
 
419
436
  it('sends pushed cids if they exist', function () {
420
437
  top.window.invibes.pushedCids = { 981: [] };
421
- let request = spec.buildRequests(bidRequests);
438
+ let request = spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
422
439
  expect(request.data.pcids).to.contain(981);
423
440
  });
424
441
 
@@ -426,7 +443,18 @@ describe('invibesBidAdapter:', function () {
426
443
  top.window.invibes.optIn = 1;
427
444
  top.window.invibes.purposes = [true, false, false, false, false, false, false, false, false, false];
428
445
  global.document.cookie = 'ivbsdid={"id":"dvdjkams6nkq","cr":' + Date.now() + ',"hc":0}';
429
- let bidderRequest = {gdprConsent: {vendorData: {vendorConsents: {436: true}}}};
446
+ let bidderRequest = {
447
+ gdprConsent: {
448
+ vendorData: {
449
+ vendorConsents: {
450
+ 436: true
451
+ }
452
+ }
453
+ },
454
+ refererInfo: {
455
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
456
+ }
457
+ };
430
458
  SetBidderAccess();
431
459
 
432
460
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -455,6 +483,9 @@ describe('invibesBidAdapter:', function () {
455
483
  }
456
484
  }
457
485
  }
486
+ },
487
+ refererInfo: {
488
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
458
489
  }
459
490
  };
460
491
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -483,6 +514,9 @@ describe('invibesBidAdapter:', function () {
483
514
  }
484
515
  }
485
516
  }
517
+ },
518
+ refererInfo: {
519
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
486
520
  }
487
521
  };
488
522
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -511,6 +545,9 @@ describe('invibesBidAdapter:', function () {
511
545
  }
512
546
  }
513
547
  }
548
+ },
549
+ refererInfo: {
550
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
514
551
  }
515
552
  };
516
553
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -551,6 +588,9 @@ describe('invibesBidAdapter:', function () {
551
588
  }
552
589
  }
553
590
  }
591
+ },
592
+ refererInfo: {
593
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
554
594
  }
555
595
  };
556
596
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -560,6 +600,9 @@ describe('invibesBidAdapter:', function () {
560
600
  let bidderRequest = {
561
601
  gdprConsent: {
562
602
  vendorData: null
603
+ },
604
+ refererInfo: {
605
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
563
606
  }
564
607
  };
565
608
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -588,6 +631,9 @@ describe('invibesBidAdapter:', function () {
588
631
  }
589
632
  }
590
633
  }
634
+ },
635
+ refererInfo: {
636
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
591
637
  }
592
638
  };
593
639
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -615,6 +661,9 @@ describe('invibesBidAdapter:', function () {
615
661
  }
616
662
  }
617
663
  }
664
+ },
665
+ refererInfo: {
666
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
618
667
  }
619
668
  };
620
669
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -642,6 +691,9 @@ describe('invibesBidAdapter:', function () {
642
691
  }
643
692
  }
644
693
  }
694
+ },
695
+ refererInfo: {
696
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
645
697
  }
646
698
  };
647
699
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -669,6 +721,9 @@ describe('invibesBidAdapter:', function () {
669
721
  }
670
722
  }
671
723
  }
724
+ },
725
+ refererInfo: {
726
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
672
727
  }
673
728
  };
674
729
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -683,6 +738,9 @@ describe('invibesBidAdapter:', function () {
683
738
  vendor: {consents: {436: false}},
684
739
  purpose: {}
685
740
  }
741
+ },
742
+ refererInfo: {
743
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
686
744
  }
687
745
  };
688
746
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -711,6 +769,9 @@ describe('invibesBidAdapter:', function () {
711
769
  }
712
770
  }
713
771
  }
772
+ },
773
+ refererInfo: {
774
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
714
775
  }
715
776
  };
716
777
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -734,6 +795,9 @@ describe('invibesBidAdapter:', function () {
734
795
  }
735
796
  }
736
797
  }
798
+ },
799
+ refererInfo: {
800
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
737
801
  }
738
802
  };
739
803
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -762,6 +826,9 @@ describe('invibesBidAdapter:', function () {
762
826
  }
763
827
  }
764
828
  }
829
+ },
830
+ refererInfo: {
831
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
765
832
  }
766
833
  };
767
834
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -790,6 +857,9 @@ describe('invibesBidAdapter:', function () {
790
857
  }
791
858
  }
792
859
  }
860
+ },
861
+ refererInfo: {
862
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
793
863
  }
794
864
  };
795
865
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -811,6 +881,9 @@ describe('invibesBidAdapter:', function () {
811
881
  5: true
812
882
  }
813
883
  }
884
+ },
885
+ refererInfo: {
886
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
814
887
  }
815
888
  };
816
889
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -832,6 +905,9 @@ describe('invibesBidAdapter:', function () {
832
905
  5: true
833
906
  }
834
907
  }
908
+ },
909
+ refererInfo: {
910
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
835
911
  }
836
912
  };
837
913
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -845,6 +921,9 @@ describe('invibesBidAdapter:', function () {
845
921
  gdprApplies: false,
846
922
  hasGlobalConsent: true,
847
923
  }
924
+ },
925
+ refererInfo: {
926
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
848
927
  }
849
928
  };
850
929
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -866,6 +945,9 @@ describe('invibesBidAdapter:', function () {
866
945
  5: true
867
946
  }
868
947
  }
948
+ },
949
+ refererInfo: {
950
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
869
951
  }
870
952
  };
871
953
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -887,6 +969,9 @@ describe('invibesBidAdapter:', function () {
887
969
  5: true
888
970
  }
889
971
  }
972
+ },
973
+ refererInfo: {
974
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
890
975
  }
891
976
  };
892
977
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -906,6 +991,9 @@ describe('invibesBidAdapter:', function () {
906
991
  3: true
907
992
  }
908
993
  }
994
+ },
995
+ refererInfo: {
996
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
909
997
  }
910
998
  };
911
999
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -927,6 +1015,9 @@ describe('invibesBidAdapter:', function () {
927
1015
  5: true
928
1016
  }
929
1017
  }
1018
+ },
1019
+ refererInfo: {
1020
+ page: 'https://randomWeb.com?someFakePara=fakeValue&secondParam=secondValue'
930
1021
  }
931
1022
  };
932
1023
  let request = spec.buildRequests(bidRequests, bidderRequest);
@@ -1214,13 +1305,13 @@ describe('invibesBidAdapter:', function () {
1214
1305
 
1215
1306
  describe('getUserSyncs', function () {
1216
1307
  it('returns undefined if disableUserSyncs not passed as bid request param ', function () {
1217
- spec.buildRequests(bidRequestsWithUserId);
1308
+ spec.buildRequests(bidRequestsWithUserId, bidderRequestWithPageInfo);
1218
1309
  let response = spec.getUserSyncs({iframeEnabled: true});
1219
1310
  expect(response).to.equal(undefined);
1220
1311
  });
1221
1312
 
1222
1313
  it('returns an iframe if enabled', function () {
1223
- spec.buildRequests(bidRequests);
1314
+ spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
1224
1315
 
1225
1316
  let response = spec.getUserSyncs({iframeEnabled: true});
1226
1317
  expect(response.type).to.equal('iframe');
@@ -1229,7 +1320,7 @@ describe('invibesBidAdapter:', function () {
1229
1320
 
1230
1321
  it('returns an iframe with params if enabled', function () {
1231
1322
  top.window.invibes.optIn = 1;
1232
- spec.buildRequests(bidRequests);
1323
+ spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
1233
1324
 
1234
1325
  let response = spec.getUserSyncs({iframeEnabled: true});
1235
1326
  expect(response.type).to.equal('iframe');
@@ -1239,7 +1330,7 @@ describe('invibesBidAdapter:', function () {
1239
1330
 
1240
1331
  it('returns an iframe with params including if enabled', function () {
1241
1332
  top.window.invibes.optIn = 1;
1242
- spec.buildRequests(bidRequests);
1333
+ spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
1243
1334
 
1244
1335
  global.document.cookie = 'ivbsdid={"id":"dvdjkams6nkq","cr":' + Date.now() + ',"hc":0}';
1245
1336
  SetBidderAccess();
@@ -1252,7 +1343,7 @@ describe('invibesBidAdapter:', function () {
1252
1343
  });
1253
1344
 
1254
1345
  it('returns an iframe with params including if enabled read from LocalStorage', function () {
1255
- spec.buildRequests(bidRequests);
1346
+ spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
1256
1347
  top.window.invibes.optIn = 1;
1257
1348
 
1258
1349
  localStorage.ivbsdid = 'dvdjkams6nkq';
@@ -1266,7 +1357,7 @@ describe('invibesBidAdapter:', function () {
1266
1357
  });
1267
1358
 
1268
1359
  it('returns undefined if iframe not enabled ', function () {
1269
- spec.buildRequests(bidRequests);
1360
+ spec.buildRequests(bidRequests, bidderRequestWithPageInfo);
1270
1361
 
1271
1362
  let response = spec.getUserSyncs({iframeEnabled: false});
1272
1363
  expect(response).to.equal(undefined);
@@ -2,8 +2,7 @@ import * as utils from 'src/utils.js';
2
2
  import { config } from 'src/config.js';
3
3
  import { expect } from 'chai';
4
4
  import { newBidder } from 'src/adapters/bidderFactory.js';
5
- import { spec, storage, ERROR_CODES, FEATURE_TOGGLES, LOCAL_STORAGE_FEATURE_TOGGLES_KEY, REQUESTED_FEATURE_TOGGLES, combineImps, bidToVideoImp, bidToNativeImp, deduplicateImpExtFields, removeSiteIDs } from '../../../modules/ixBidAdapter.js';
6
- import { createEidsArray } from 'modules/userId/eids.js';
5
+ import { spec, storage, ERROR_CODES, FEATURE_TOGGLES, LOCAL_STORAGE_FEATURE_TOGGLES_KEY, REQUESTED_FEATURE_TOGGLES, combineImps, bidToVideoImp, bidToNativeImp, deduplicateImpExtFields, removeSiteIDs, addDeviceInfo } from '../../../modules/ixBidAdapter.js';
7
6
  import { deepAccess, deepClone } from '../../../src/utils.js';
8
7
 
9
8
  describe('IndexexchangeAdapter', function () {
@@ -763,8 +762,6 @@ describe('IndexexchangeAdapter', function () {
763
762
  '33acrossId': { envelope: 'v1.5fs.1000.fjdiosmclds' }
764
763
  };
765
764
 
766
- const DEFAULT_USERIDASEIDS_DATA = createEidsArray(DEFAULT_USERID_DATA);
767
-
768
765
  const DEFAULT_USERID_PAYLOAD = [
769
766
  {
770
767
  source: 'liveramp.com',
@@ -824,6 +821,8 @@ describe('IndexexchangeAdapter', function () {
824
821
  }
825
822
  ];
826
823
 
824
+ const DEFAULT_USERIDASEIDS_DATA = DEFAULT_USERID_PAYLOAD;
825
+
827
826
  const DEFAULT_USERID_BID_DATA = {
828
827
  lotamePanoramaId: 'bd738d136bdaa841117fe9b331bb4'
829
828
  };
@@ -2203,7 +2202,8 @@ describe('IndexexchangeAdapter', function () {
2203
2202
 
2204
2203
  const request = spec.buildRequests(DEFAULT_BANNER_VALID_BID, { ortb2 })[0];
2205
2204
  const payload = extractPayload(request);
2206
- expect(payload.device).to.be.undefined
2205
+ expect(payload.device.h).to.exist;
2206
+ expect(payload.device.w).to.exist;
2207
2207
  });
2208
2208
 
2209
2209
  it('should not set first party data if it is not an object', function () {
@@ -4907,4 +4907,22 @@ describe('IndexexchangeAdapter', function () {
4907
4907
  expect(removeSiteIDs(request)).to.deep.equal(expected);
4908
4908
  });
4909
4909
  });
4910
+ describe('addDeviceInfo', () => {
4911
+ it('should add device to request when device already exists', () => {
4912
+ let r = {
4913
+ device: {
4914
+ ip: '127.0.0.1'
4915
+ }
4916
+ }
4917
+ r = addDeviceInfo(r);
4918
+ expect(r.device.w).to.exist;
4919
+ expect(r.device.h).to.exist;
4920
+ });
4921
+ it('should add device to request when device doesnt exist', () => {
4922
+ let r = {}
4923
+ r = addDeviceInfo(r);
4924
+ expect(r.device.w).to.exist;
4925
+ expect(r.device.h).to.exist;
4926
+ });
4927
+ });
4910
4928
  });
@@ -1311,6 +1311,118 @@ let VALID_BID_REQUEST = [{
1311
1311
  }
1312
1312
  }],
1313
1313
  'tmax': 3000,
1314
+ },
1315
+ VALID_BIDDER_REQUEST_WITH_GPP_IN_ORTB2 = {
1316
+ ortb2: {
1317
+ regs: {
1318
+ gpp: 'DBACNYA~CPXxRfAPXxRfAAfKABENB-CgAAAAAAAAAAYgAAAAAAAA~1YNN',
1319
+ gpp_sid: [5, 7]
1320
+ }
1321
+ },
1322
+ 'timeout': 3000,
1323
+ refererInfo: {
1324
+ referer: 'http://media.net/prebidtest',
1325
+ stack: ['http://media.net/prebidtest'],
1326
+ page: 'http://media.net/page',
1327
+ domain: 'media.net',
1328
+ topmostLocation: 'http://media.net/topmost',
1329
+ reachedTop: true
1330
+ }
1331
+ },
1332
+ VALID_PAYLOAD_FOR_GPP_ORTB2 = {
1333
+ 'site': {
1334
+ 'page': 'http://media.net/prebidtest',
1335
+ 'domain': 'media.net',
1336
+ 'ref': 'http://media.net/prebidtest',
1337
+ 'topMostLocation': 'http://media.net/topmost',
1338
+ 'isTop': true
1339
+ },
1340
+ 'ext': {
1341
+ 'customer_id': 'customer_id',
1342
+ 'prebid_version': $$PREBID_GLOBAL$$.version,
1343
+ 'gdpr_applies': false,
1344
+ 'usp_applies': false,
1345
+ 'coppa_applies': false,
1346
+ 'screen': {
1347
+ 'w': 1000,
1348
+ 'h': 1000
1349
+ }
1350
+ },
1351
+ 'id': 'aafabfd0-28c0-4ac0-aa09-99689e88b81d',
1352
+ 'imp': [{
1353
+ 'id': '28f8f8130a583e',
1354
+ 'transactionId': '277b631f-92f5-4844-8b19-ea13c095d3f1',
1355
+ ortb2Imp: VALID_BID_REQUEST[0].ortb2Imp,
1356
+ 'ext': {
1357
+ 'dfp_id': 'div-gpt-ad-1460505748561-0',
1358
+ 'visibility': 1,
1359
+ 'viewability': 1,
1360
+ 'coordinates': {
1361
+ 'top_left': {
1362
+ x: 50,
1363
+ y: 50
1364
+ },
1365
+ 'bottom_right': {
1366
+ x: 100,
1367
+ y: 100
1368
+ }
1369
+ },
1370
+ 'display_count': 1
1371
+ },
1372
+ 'banner': [{
1373
+ 'w': 300,
1374
+ 'h': 250
1375
+ }],
1376
+ 'all': {
1377
+ 'cid': 'customer_id',
1378
+ 'site': {
1379
+ 'page': 'http://media.net/prebidtest',
1380
+ 'domain': 'media.net',
1381
+ 'ref': 'http://media.net/prebidtest',
1382
+ 'isTop': true
1383
+ }
1384
+ }
1385
+ }, {
1386
+ 'id': '3f97ca71b1e5c2',
1387
+ 'transactionId': 'c52a5c62-3c2b-4b90-9ff8-ec1487754822',
1388
+ ortb2Imp: VALID_BID_REQUEST[1].ortb2Imp,
1389
+ 'ext': {
1390
+ 'dfp_id': 'div-gpt-ad-1460505748561-123',
1391
+ 'visibility': 1,
1392
+ 'viewability': 1,
1393
+ 'coordinates': {
1394
+ 'top_left': {
1395
+ x: 50,
1396
+ y: 50
1397
+ },
1398
+ 'bottom_right': {
1399
+ x: 100,
1400
+ y: 100
1401
+ }
1402
+ },
1403
+ 'display_count': 1
1404
+ },
1405
+ 'banner': [{
1406
+ 'w': 300,
1407
+ 'h': 251
1408
+ }],
1409
+ 'all': {
1410
+ 'cid': 'customer_id',
1411
+ 'site': {
1412
+ 'page': 'http://media.net/prebidtest',
1413
+ 'domain': 'media.net',
1414
+ 'ref': 'http://media.net/prebidtest',
1415
+ 'isTop': true
1416
+ }
1417
+ }
1418
+ }],
1419
+ 'ortb2': {
1420
+ 'regs': {
1421
+ 'gpp': 'DBACNYA~CPXxRfAPXxRfAAfKABENB-CgAAAAAAAAAAYgAAAAAAAA~1YNN',
1422
+ 'gpp_sid': [5, 7],
1423
+ }
1424
+ },
1425
+ 'tmax': config.getConfig('bidderTimeout')
1314
1426
  };
1315
1427
  describe('Media.net bid adapter', function () {
1316
1428
  let sandbox;
@@ -1393,6 +1505,11 @@ describe('Media.net bid adapter', function () {
1393
1505
  expect(JSON.parse(bidReq.data)).to.deep.equal(VALID_PAYLOAD_FOR_GDPR);
1394
1506
  });
1395
1507
 
1508
+ it('should have gpp params in ortb2', function () {
1509
+ let bidReq = spec.buildRequests(VALID_BID_REQUEST, VALID_BIDDER_REQUEST_WITH_GPP_IN_ORTB2);
1510
+ expect(JSON.parse(bidReq.data)).to.deep.equal(VALID_PAYLOAD_FOR_GPP_ORTB2);
1511
+ });
1512
+
1396
1513
  it('should parse params for native request', function () {
1397
1514
  let bidReq = spec.buildRequests(VALID_NATIVE_BID_REQUEST, VALID_AUCTIONDATA);
1398
1515
  expect(JSON.parse(bidReq.data)).to.deep.equal(VALID_PAYLOAD_NATIVE);