prebid.js 9.0.0 → 9.2.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 (307) hide show
  1. package/.nvmrc +1 -1
  2. package/browsers.json +3 -3
  3. package/dist/33acrossAnalyticsAdapter.js +1 -1
  4. package/dist/33acrossBidAdapter.js +1 -1
  5. package/dist/33acrossIdSystem.js +1 -1
  6. package/dist/BTBidAdapter.js +1 -1
  7. package/dist/acuityadsBidAdapter.js +1 -1
  8. package/dist/adagioAnalyticsAdapter.js +1 -1
  9. package/dist/adagioBidAdapter.js +1 -1
  10. package/dist/adagioRtdProvider.js +1 -1
  11. package/dist/adagioUtils.js +1 -0
  12. package/dist/adgenerationBidAdapter.js +1 -1
  13. package/dist/admanBidAdapter.js +1 -1
  14. package/dist/adpod.js +1 -1
  15. package/dist/adprimeBidAdapter.js +1 -1
  16. package/dist/adqueryBidAdapter.js +1 -1
  17. package/dist/adrelevantisBidAdapter.js +1 -1
  18. package/dist/adstirBidAdapter.js +1 -1
  19. package/dist/adtrgtmeBidAdapter.js +1 -1
  20. package/dist/adxcgBidAdapter.js +1 -1
  21. package/dist/adyoulikeBidAdapter.js +1 -1
  22. package/dist/agmaAnalyticsAdapter.js +1 -1
  23. package/dist/ajaBidAdapter.js +1 -1
  24. package/dist/amxBidAdapter.js +1 -1
  25. package/dist/amxIdSystem.js +1 -1
  26. package/dist/appierAnalyticsAdapter.js +1 -1
  27. package/dist/appnexusBidAdapter.js +1 -1
  28. package/dist/appnexusUtils.js +1 -1
  29. package/dist/asoBidAdapter.js +1 -1
  30. package/dist/autoplayDetection.js +1 -1
  31. package/dist/axisBidAdapter.js +1 -1
  32. package/dist/axonixBidAdapter.js +1 -1
  33. package/dist/beyondmediaBidAdapter.js +1 -1
  34. package/dist/bidglassBidAdapter.js +1 -1
  35. package/dist/big-richmediaBidAdapter.js +1 -1
  36. package/dist/bliinkBidAdapter.js +1 -1
  37. package/dist/boldwinBidAdapter.js +1 -1
  38. package/dist/bridBidAdapter.js +1 -1
  39. package/dist/bridgewellBidAdapter.js +1 -1
  40. package/dist/brightMountainMediaBidAdapter.js +1 -1
  41. package/dist/carodaBidAdapter.js +1 -1
  42. package/dist/chtnwBidAdapter.js +1 -1
  43. package/dist/chunk-core.js +1 -1
  44. package/dist/compassBidAdapter.js +1 -1
  45. package/dist/concertBidAdapter.js +1 -1
  46. package/dist/connectadBidAdapter.js +1 -1
  47. package/dist/consumableBidAdapter.js +1 -1
  48. package/dist/contentexchangeBidAdapter.js +1 -1
  49. package/dist/conversantAnalyticsAdapter.js +1 -1
  50. package/dist/conversantBidAdapter.js +1 -1
  51. package/dist/craftBidAdapter.js +1 -1
  52. package/dist/criteoBidAdapter.js +1 -1
  53. package/dist/cwireBidAdapter.js +1 -1
  54. package/dist/dailymotionBidAdapter.js +1 -1
  55. package/dist/dependencies.json +83 -4
  56. package/dist/dspxBidAdapter.js +1 -1
  57. package/dist/dxkultureBidAdapter.js +1 -1
  58. package/dist/e_volutionBidAdapter.js +1 -1
  59. package/dist/emtvBidAdapter.js +1 -1
  60. package/dist/eplanningBidAdapter.js +1 -1
  61. package/dist/euidIdSystem.js +1 -1
  62. package/dist/exadsBidAdapter.js +1 -1
  63. package/dist/feedadBidAdapter.js +1 -1
  64. package/dist/finativeBidAdapter.js +1 -1
  65. package/dist/freewheel-sspBidAdapter.js +1 -1
  66. package/dist/globalsunBidAdapter.js +1 -1
  67. package/dist/gmosspBidAdapter.js +1 -1
  68. package/dist/goldbachBidAdapter.js +1 -1
  69. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  70. package/dist/greenbidsRtdProvider.js +1 -1
  71. package/dist/gridBidAdapter.js +1 -1
  72. package/dist/gumgumBidAdapter.js +1 -1
  73. package/dist/h12mediaBidAdapter.js +1 -1
  74. package/dist/hypelabBidAdapter.js +1 -1
  75. package/dist/id5IdSystem.js +1 -1
  76. package/dist/illuminBidAdapter.js +1 -1
  77. package/dist/imdsBidAdapter.js +1 -1
  78. package/dist/improvedigitalBidAdapter.js +1 -1
  79. package/dist/insticatorBidAdapter.js +1 -1
  80. package/dist/iqzoneBidAdapter.js +1 -1
  81. package/dist/ixBidAdapter.js +1 -1
  82. package/dist/jixieBidAdapter.js +1 -1
  83. package/dist/justpremiumBidAdapter.js +1 -1
  84. package/dist/kargoBidAdapter.js +1 -1
  85. package/dist/kimberliteBidAdapter.js +1 -1
  86. package/dist/kiviadsBidAdapter.js +1 -1
  87. package/dist/konduitAnalyticsAdapter.js +1 -1
  88. package/dist/krushmediaBidAdapter.js +1 -1
  89. package/dist/kueezBidAdapter.js +1 -1
  90. package/dist/kueezRtbBidAdapter.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/loyalBidAdapter.js +1 -1
  97. package/dist/luceadBidAdapter.js +1 -1
  98. package/dist/lunamediahbBidAdapter.js +1 -1
  99. package/dist/magniteAnalyticsAdapter.js +1 -1
  100. package/dist/malltvAnalyticsAdapter.js +1 -1
  101. package/dist/marsmediaBidAdapter.js +1 -1
  102. package/dist/mathildeadsBidAdapter.js +1 -1
  103. package/dist/mediafuseBidAdapter.js +1 -1
  104. package/dist/mediasquareBidAdapter.js +1 -1
  105. package/dist/mgidBidAdapter.js +1 -1
  106. package/dist/mgidXBidAdapter.js +1 -1
  107. package/dist/minutemediaBidAdapter.js +1 -1
  108. package/dist/missenaBidAdapter.js +1 -1
  109. package/dist/mobfoxpbBidAdapter.js +1 -1
  110. package/dist/mobianRtdProvider.js +1 -0
  111. package/dist/nexx360BidAdapter.js +1 -1
  112. package/dist/nobidAnalyticsAdapter.js +1 -1
  113. package/dist/nobidBidAdapter.js +1 -1
  114. package/dist/not-for-prod/prebid.js +190 -186
  115. package/dist/oguryBidAdapter.js +1 -1
  116. package/dist/onetagBidAdapter.js +1 -1
  117. package/dist/ooloAnalyticsAdapter.js +1 -1
  118. package/dist/openwebBidAdapter.js +1 -1
  119. package/dist/openxBidAdapter.js +1 -1
  120. package/dist/optidigitalBidAdapter.js +1 -1
  121. package/dist/ortbConverter.js +1 -1
  122. package/dist/outbrainBidAdapter.js +1 -1
  123. package/dist/ozoneBidAdapter.js +1 -1
  124. package/dist/paapi.js +1 -1
  125. package/dist/pgamsspBidAdapter.js +1 -1
  126. package/dist/pixfutureBidAdapter.js +1 -1
  127. package/dist/playdigoBidAdapter.js +1 -1
  128. package/dist/prebidServerBidAdapter.js +1 -1
  129. package/dist/pubCircleBidAdapter.js +1 -1
  130. package/dist/publinkIdSystem.js +1 -1
  131. package/dist/publirBidAdapter.js +1 -1
  132. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  133. package/dist/pubmaticBidAdapter.js +1 -1
  134. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  135. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  136. package/dist/pxyzBidAdapter.js +1 -1
  137. package/dist/qtBidAdapter.js +1 -1
  138. package/dist/quantcastBidAdapter.js +1 -1
  139. package/dist/raynRtdProvider.js +1 -1
  140. package/dist/readpeakBidAdapter.js +1 -1
  141. package/dist/relaidoBidAdapter.js +1 -1
  142. package/dist/retailspotBidAdapter.js +1 -1
  143. package/dist/rhythmoneBidAdapter.js +1 -1
  144. package/dist/richaudienceBidAdapter.js +1 -0
  145. package/dist/ringieraxelspringerBidAdapter.js +1 -1
  146. package/dist/riseBidAdapter.js +1 -1
  147. package/dist/rubiconBidAdapter.js +1 -1
  148. package/dist/seedingAllianceBidAdapter.js +1 -1
  149. package/dist/seedtagBidAdapter.js +1 -1
  150. package/dist/setupadBidAdapter.js +1 -1
  151. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  152. package/dist/sharethroughBidAdapter.js +1 -1
  153. package/dist/shinezBidAdapter.js +1 -1
  154. package/dist/shinezRtbBidAdapter.js +1 -1
  155. package/dist/smaatoBidAdapter.js +1 -1
  156. package/dist/smartadserverBidAdapter.js +1 -1
  157. package/dist/smartxBidAdapter.js +1 -1
  158. package/dist/smartytechBidAdapter.js +1 -1
  159. package/dist/smilewantedBidAdapter.js +1 -1
  160. package/dist/sonobiBidAdapter.js +1 -1
  161. package/dist/sovrnBidAdapter.js +1 -1
  162. package/dist/sspBCBidAdapter.js +1 -1
  163. package/dist/stnBidAdapter.js +1 -1
  164. package/dist/stvBidAdapter.js +1 -1
  165. package/dist/sublimeBidAdapter.js +1 -1
  166. package/dist/taboolaBidAdapter.js +1 -1
  167. package/dist/tagorasBidAdapter.js +1 -1
  168. package/dist/targetVideoBidAdapter.js +1 -1
  169. package/dist/teadsBidAdapter.js +1 -1
  170. package/dist/teqblazeUtils.js +1 -0
  171. package/dist/themoneytizerBidAdapter.js +1 -1
  172. package/dist/topicsFpdModule.js +1 -1
  173. package/dist/trionBidAdapter.js +1 -1
  174. package/dist/tripleliftBidAdapter.js +1 -1
  175. package/dist/ttdBidAdapter.js +1 -1
  176. package/dist/twistDigitalBidAdapter.js +1 -1
  177. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  178. package/dist/uid2IdSystem.js +1 -1
  179. package/dist/underdogmediaBidAdapter.js +1 -1
  180. package/dist/undertoneBidAdapter.js +1 -1
  181. package/dist/unrulyBidAdapter.js +1 -1
  182. package/dist/vidazooBidAdapter.js +1 -1
  183. package/dist/videobyteBidAdapter.js +1 -1
  184. package/dist/visiblemeasuresBidAdapter.js +1 -1
  185. package/dist/visxBidAdapter.js +1 -1
  186. package/dist/vuukleBidAdapter.js +1 -1
  187. package/dist/widespaceBidAdapter.js +1 -1
  188. package/dist/winrBidAdapter.js +1 -1
  189. package/dist/yahooAdsBidAdapter.js +1 -1
  190. package/dist/yieldmoBidAdapter.js +1 -1
  191. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  192. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  193. package/integrationExamples/gpt/raynRtdProvider_example.html +1 -0
  194. package/libraries/adagioUtils/adagioUtils.js +35 -0
  195. package/libraries/appnexusUtils/anUtils.js +1 -0
  196. package/libraries/autoplayDetection/autoplay.js +8 -1
  197. package/libraries/ortbConverter/converter.js +1 -1
  198. package/libraries/teqblazeUtils/bidderUtils.js +253 -0
  199. package/modules/.submodules.json +1 -0
  200. package/modules/acuityadsBidAdapter.js +5 -203
  201. package/modules/adagioBidAdapter.js +1 -17
  202. package/modules/adagioRtdProvider.js +41 -51
  203. package/modules/adagioRtdProvider.md +1 -0
  204. package/modules/admanBidAdapter.js +31 -188
  205. package/modules/adprimeBidAdapter.js +28 -165
  206. package/modules/axisBidAdapter.js +33 -165
  207. package/modules/beyondmediaBidAdapter.js +5 -189
  208. package/modules/bliinkBidAdapter.js +3 -31
  209. package/modules/boldwinBidAdapter.js +21 -159
  210. package/modules/ceeIdSystem.js +1 -1
  211. package/modules/compassBidAdapter.js +5 -198
  212. package/modules/contentexchangeBidAdapter.js +5 -200
  213. package/modules/conversantBidAdapter.js +1 -0
  214. package/modules/dailymotionBidAdapter.js +1 -1
  215. package/modules/e_volutionBidAdapter.js +4 -186
  216. package/modules/emtvBidAdapter.js +5 -198
  217. package/modules/globalsunBidAdapter.js +5 -199
  218. package/modules/id5IdSystem.js +31 -2
  219. package/modules/id5IdSystem.md +67 -2
  220. package/modules/iqzoneBidAdapter.js +5 -224
  221. package/modules/kiviadsBidAdapter.js +5 -199
  222. package/modules/krushmediaBidAdapter.js +25 -143
  223. package/modules/loyalBidAdapter.js +4 -178
  224. package/modules/lunamediahbBidAdapter.js +5 -118
  225. package/modules/mathildeadsBidAdapter.js +5 -198
  226. package/modules/mgidXBidAdapter.js +14 -209
  227. package/modules/mobfoxpbBidAdapter.js +4 -135
  228. package/modules/mobianRtdProvider.js +52 -0
  229. package/modules/mobianRtdProvider.md +11 -0
  230. package/modules/nobidAnalyticsAdapter.js +2 -3
  231. package/modules/novatiqIdSystem.md +2 -3
  232. package/modules/ozoneBidAdapter.js +117 -58
  233. package/modules/paapi.js +2 -1
  234. package/modules/pgamsspBidAdapter.js +5 -240
  235. package/modules/playdigoBidAdapter.js +4 -186
  236. package/modules/prebidServerBidAdapter/index.js +9 -2
  237. package/modules/pubCircleBidAdapter.js +5 -218
  238. package/modules/pubmaticAnalyticsAdapter.js +21 -8
  239. package/modules/pubxaiAnalyticsAdapter.js +1 -5
  240. package/modules/qtBidAdapter.js +5 -224
  241. package/modules/raynRtdProvider.js +36 -3
  242. package/modules/richaudienceBidAdapter.js +375 -0
  243. package/modules/richaudienceBidAdapter.md +1 -1
  244. package/modules/seedtagBidAdapter.js +1 -0
  245. package/modules/setupadBidAdapter.js +76 -153
  246. package/modules/setupadBidAdapter.md +1 -1
  247. package/modules/smaatoBidAdapter.js +17 -6
  248. package/modules/smartytechBidAdapter.js +7 -2
  249. package/modules/topicsFpdModule.js +1 -1
  250. package/modules/uid2IdSystem.js +0 -1
  251. package/modules/uid2IdSystem_shared.js +0 -1
  252. package/modules/visiblemeasuresBidAdapter.js +5 -199
  253. package/modules/zeta_global_sspAnalyticsAdapter.js +8 -4
  254. package/package.json +1 -1
  255. package/src/auction.js +5 -63
  256. package/src/utils/focusTimeout.js +41 -0
  257. package/src/utils/ttlCollection.js +2 -1
  258. package/src/utils.js +42 -0
  259. package/src/videoCache.js +72 -0
  260. package/test/mocks/videoCacheStub.js +1 -1
  261. package/test/spec/auctionmanager_spec.js +16 -1
  262. package/test/spec/libraries/teqblazeUtils/bidderUtils_spec.js +519 -0
  263. package/test/spec/modules/acuityadsBidAdapter_spec.js +79 -43
  264. package/test/spec/modules/adagioRtdProvider_spec.js +62 -1
  265. package/test/spec/modules/admanBidAdapter_spec.js +370 -247
  266. package/test/spec/modules/adprimeBidAdapter_spec.js +225 -78
  267. package/test/spec/modules/axisBidAdapter_spec.js +78 -14
  268. package/test/spec/modules/beyondmediaBidAdapter_spec.js +80 -18
  269. package/test/spec/modules/bliinkBidAdapter_spec.js +8 -2
  270. package/test/spec/modules/boldwinBidAdapter_spec.js +221 -75
  271. package/test/spec/modules/compassBidAdapter_spec.js +130 -16
  272. package/test/spec/modules/contentexchangeBidAdapter_spec.js +134 -21
  273. package/test/spec/modules/conversantBidAdapter_spec.js +7 -0
  274. package/test/spec/modules/dailymotionBidAdapter_spec.js +3 -3
  275. package/test/spec/modules/e_volutionBidAdapter_spec.js +65 -3
  276. package/test/spec/modules/emtvBidAdapter_spec.js +131 -16
  277. package/test/spec/modules/globalsunBidAdapter_spec.js +130 -16
  278. package/test/spec/modules/id5IdSystem_spec.js +79 -3
  279. package/test/spec/modules/iqzoneBidAdapter_spec.js +66 -12
  280. package/test/spec/modules/kiviadsBidAdapter_spec.js +131 -20
  281. package/test/spec/modules/krushmediaBidAdapter_spec.js +272 -90
  282. package/test/spec/modules/loyalBidAdapter_spec.js +114 -14
  283. package/test/spec/modules/lunamediahbBidAdapter_spec.js +221 -87
  284. package/test/spec/modules/mathildeadsBidAdapter_spec.js +87 -18
  285. package/test/spec/modules/mgidXBidAdapter_spec.js +11 -3
  286. package/test/spec/modules/mobfoxpbBidAdapter_spec.js +229 -91
  287. package/test/spec/modules/mobianRtdProvider_spec.js +107 -0
  288. package/test/spec/modules/ozoneBidAdapter_spec.js +192 -22
  289. package/test/spec/modules/paapi_spec.js +5 -5
  290. package/test/spec/modules/pgamsspBidAdapter_spec.js +83 -16
  291. package/test/spec/modules/playdigoBidAdapter_spec.js +38 -9
  292. package/test/spec/modules/prebidServerBidAdapter_spec.js +14 -0
  293. package/test/spec/modules/pubCircleBidAdapter_spec.js +82 -17
  294. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +52 -5
  295. package/test/spec/modules/qtBidAdapter_spec.js +15 -3
  296. package/test/spec/modules/raynRtdProvider_spec.js +25 -0
  297. package/test/spec/modules/richaudienceBidAdapter_spec.js +1304 -0
  298. package/test/spec/modules/seedtagBidAdapter_spec.js +2 -0
  299. package/test/spec/modules/setupadBidAdapter_spec.js +139 -97
  300. package/test/spec/modules/smaatoBidAdapter_spec.js +27 -0
  301. package/test/spec/modules/smartytechBidAdapter_spec.js +5 -1
  302. package/test/spec/modules/topicsFpdModule_spec.js +43 -59
  303. package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +130 -16
  304. package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +4 -0
  305. package/test/spec/ortbConverter/converter_spec.js +7 -3
  306. package/test/spec/unit/utils/focusTimeout_spec.js +60 -0
  307. package/test/spec/videoCache_spec.js +56 -53
@@ -1,11 +1,21 @@
1
1
  import { expect } from 'chai';
2
- import { spec } from '../../../modules/pubCircleBidAdapter';
2
+ import { spec } from '../../../modules/pubCircleBidAdapter.js';
3
3
  import { BANNER, VIDEO, NATIVE } from '../../../src/mediaTypes.js';
4
4
  import { getUniqueIdentifierStr } from '../../../src/utils.js';
5
5
 
6
- const bidder = 'pubcircle'
6
+ const bidder = 'pubcircle';
7
7
 
8
8
  describe('PubCircleBidAdapter', function () {
9
+ const userIdAsEids = [{
10
+ source: 'test.org',
11
+ uids: [{
12
+ id: '01**********',
13
+ atype: 1,
14
+ ext: {
15
+ third: '01***********'
16
+ }
17
+ }]
18
+ }];
9
19
  const bids = [
10
20
  {
11
21
  bidId: getUniqueIdentifierStr(),
@@ -16,8 +26,9 @@ describe('PubCircleBidAdapter', function () {
16
26
  }
17
27
  },
18
28
  params: {
19
- placementId: 'testBanner',
20
- }
29
+ placementId: 'testBanner'
30
+ },
31
+ userIdAsEids
21
32
  },
22
33
  {
23
34
  bidId: getUniqueIdentifierStr(),
@@ -30,8 +41,9 @@ describe('PubCircleBidAdapter', function () {
30
41
  }
31
42
  },
32
43
  params: {
33
- placementId: 'testVideo',
34
- }
44
+ placementId: 'testVideo'
45
+ },
46
+ userIdAsEids
35
47
  },
36
48
  {
37
49
  bidId: getUniqueIdentifierStr(),
@@ -53,8 +65,9 @@ describe('PubCircleBidAdapter', function () {
53
65
  }
54
66
  },
55
67
  params: {
56
- placementId: 'testNative',
57
- }
68
+ placementId: 'testNative'
69
+ },
70
+ userIdAsEids
58
71
  }
59
72
  ];
60
73
 
@@ -73,9 +86,20 @@ describe('PubCircleBidAdapter', function () {
73
86
 
74
87
  const bidderRequest = {
75
88
  uspConsent: '1---',
76
- gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
89
+ gdprConsent: {
90
+ consentString: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
91
+ vendorData: {}
92
+ },
77
93
  refererInfo: {
78
- referer: 'https://test.com'
94
+ referer: 'https://test.com',
95
+ page: 'https://test.com'
96
+ },
97
+ ortb2: {
98
+ device: {
99
+ w: 1512,
100
+ h: 982,
101
+ language: 'en-UK'
102
+ }
79
103
  },
80
104
  timeout: 500
81
105
  };
@@ -129,7 +153,7 @@ describe('PubCircleBidAdapter', function () {
129
153
  expect(data.host).to.be.a('string');
130
154
  expect(data.page).to.be.a('string');
131
155
  expect(data.coppa).to.be.a('number');
132
- expect(data.gdpr).to.be.a('string');
156
+ expect(data.gdpr).to.be.a('object');
133
157
  expect(data.ccpa).to.be.a('string');
134
158
  expect(data.tmax).to.be.a('number');
135
159
  expect(data.placements).to.have.lengthOf(3);
@@ -145,6 +169,7 @@ describe('PubCircleBidAdapter', function () {
145
169
  expect(placement.schain).to.be.an('object');
146
170
  expect(placement.bidfloor).to.exist.and.to.equal(0);
147
171
  expect(placement.type).to.exist.and.to.equal('publisher');
172
+ expect(placement.eids).to.exist.and.to.be.deep.equal(userIdAsEids);
148
173
 
149
174
  if (placement.adFormat === BANNER) {
150
175
  expect(placement.sizes).to.be.an('array');
@@ -170,8 +195,10 @@ describe('PubCircleBidAdapter', function () {
170
195
  serverRequest = spec.buildRequests(bids, bidderRequest);
171
196
  let data = serverRequest.data;
172
197
  expect(data.gdpr).to.exist;
173
- expect(data.gdpr).to.be.a('string');
174
- expect(data.gdpr).to.equal(bidderRequest.gdprConsent);
198
+ expect(data.gdpr).to.be.a('object');
199
+ expect(data.gdpr).to.have.property('consentString');
200
+ expect(data.gdpr).to.not.have.property('vendorData');
201
+ expect(data.gdpr.consentString).to.equal(bidderRequest.gdprConsent.consentString);
175
202
  expect(data.ccpa).to.not.exist;
176
203
  delete bidderRequest.gdprConsent;
177
204
  });
@@ -186,12 +213,38 @@ describe('PubCircleBidAdapter', function () {
186
213
  expect(data.ccpa).to.equal(bidderRequest.uspConsent);
187
214
  expect(data.gdpr).to.not.exist;
188
215
  });
216
+ });
189
217
 
190
- it('Returns empty data if no valid requests are passed', function () {
191
- serverRequest = spec.buildRequests([], bidderRequest);
218
+ describe('gpp consent', function () {
219
+ it('bidderRequest.gppConsent', () => {
220
+ bidderRequest.gppConsent = {
221
+ gppString: 'abc123',
222
+ applicableSections: [8]
223
+ };
224
+
225
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
192
226
  let data = serverRequest.data;
193
- expect(data.placements).to.be.an('array').that.is.empty;
194
- });
227
+ expect(data).to.be.an('object');
228
+ expect(data).to.have.property('gpp');
229
+ expect(data).to.have.property('gpp_sid');
230
+
231
+ delete bidderRequest.gppConsent;
232
+ })
233
+
234
+ it('bidderRequest.ortb2.regs.gpp', () => {
235
+ bidderRequest.ortb2 = bidderRequest.ortb2 || {};
236
+ bidderRequest.ortb2.regs = bidderRequest.ortb2.regs || {};
237
+ bidderRequest.ortb2.regs.gpp = 'abc123';
238
+ bidderRequest.ortb2.regs.gpp_sid = [8];
239
+
240
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
241
+ let data = serverRequest.data;
242
+ expect(data).to.be.an('object');
243
+ expect(data).to.have.property('gpp');
244
+ expect(data).to.have.property('gpp_sid');
245
+
246
+ bidderRequest.ortb2;
247
+ })
195
248
  });
196
249
 
197
250
  describe('interpretResponse', function () {
@@ -395,5 +448,17 @@ describe('PubCircleBidAdapter', function () {
395
448
  expect(syncData[0].url).to.be.a('string')
396
449
  expect(syncData[0].url).to.equal('https://cs.pubcircle.ai/image?pbjs=1&ccpa_consent=1---&coppa=0')
397
450
  });
451
+ it('Should return array of objects with proper sync config , include GPP', function() {
452
+ const syncData = spec.getUserSyncs({}, {}, {}, {}, {
453
+ gppString: 'abc123',
454
+ applicableSections: [8]
455
+ });
456
+ expect(syncData).to.be.an('array').which.is.not.empty;
457
+ expect(syncData[0]).to.be.an('object')
458
+ expect(syncData[0].type).to.be.a('string')
459
+ expect(syncData[0].type).to.equal('image')
460
+ expect(syncData[0].url).to.be.a('string')
461
+ expect(syncData[0].url).to.equal('https://cs.pubcircle.ai/image?pbjs=1&gpp=abc123&gpp_sid=8&coppa=0')
462
+ });
398
463
  });
399
464
  });
@@ -568,7 +568,7 @@ describe('pubmatic analytics adapter', function () {
568
568
  expect(data.tgid).to.equal(15);
569
569
  expect(data.fmv).to.equal('floorModelTest');
570
570
  expect(data.ft).to.equal(1);
571
- expect(data.pbv).to.equal(getGlobal()?.version || '-1');
571
+ expect(data.pbv).to.equal('$prebid.version$' || '-1');
572
572
  expect(data.s).to.be.an('array');
573
573
  expect(data.s.length).to.equal(2);
574
574
  // slot 1
@@ -786,7 +786,7 @@ describe('pubmatic analytics adapter', function () {
786
786
  expect(data.pid).to.equal('1111');
787
787
  expect(data.fmv).to.equal('floorModelTest');
788
788
  expect(data.ft).to.equal(1);
789
- expect(data.pbv).to.equal(getGlobal()?.version || '-1');
789
+ expect(data.pbv).to.equal('$prebid.version$' || '-1');
790
790
  expect(data.s).to.be.an('array');
791
791
  expect(data.s.length).to.equal(2);
792
792
  expect(data.tgid).to.equal(0);
@@ -866,7 +866,7 @@ describe('pubmatic analytics adapter', function () {
866
866
  expect(data.tgid).to.equal(0);// test group id should be between 0-15 else set to 0
867
867
  expect(data.fmv).to.equal('floorModelTest');
868
868
  expect(data.ft).to.equal(1);
869
- expect(data.pbv).to.equal(getGlobal()?.version || '-1');
869
+ expect(data.pbv).to.equal('$prebid.version$' || '-1');
870
870
  expect(data.s).to.be.an('array');
871
871
  expect(data.s.length).to.equal(2);
872
872
  // slot 1
@@ -1434,7 +1434,7 @@ describe('pubmatic analytics adapter', function () {
1434
1434
  expect(data.tst).to.equal(1519767016);
1435
1435
  expect(data.tgid).to.equal(15);
1436
1436
  expect(data.fmv).to.equal('floorModelTest');
1437
- expect(data.pbv).to.equal(getGlobal()?.version || '-1');
1437
+ expect(data.pbv).to.equal('$prebid.version$' || '-1');
1438
1438
  expect(data.ft).to.equal(1);
1439
1439
  expect(data.s).to.be.an('array');
1440
1440
  expect(data.s.length).to.equal(2);
@@ -1566,7 +1566,7 @@ describe('pubmatic analytics adapter', function () {
1566
1566
  expect(data.tst).to.equal(1519767016);
1567
1567
  expect(data.tgid).to.equal(15);
1568
1568
  expect(data.fmv).to.equal('floorModelTest');
1569
- expect(data.pbv).to.equal(getGlobal()?.version || '-1');
1569
+ expect(data.pbv).to.equal('$prebid.version$' || '-1');
1570
1570
  expect(data.ft).to.equal(1);
1571
1571
  expect(data.s).to.be.an('array');
1572
1572
  expect(data.s.length).to.equal(2);
@@ -1657,8 +1657,55 @@ describe('pubmatic analytics adapter', function () {
1657
1657
  expect(data.origbidid).to.equal('partnerImpressionID-1');
1658
1658
  });
1659
1659
 
1660
+ it('Logger: should use originalRequestId to find the bid', function() {
1661
+ MOCK.BID_RESPONSE[1]['originalRequestId'] = '3bd4ebb1c900e2';
1662
+ MOCK.BID_RESPONSE[1]['requestId'] = '54d4ebb1c9003e';
1663
+ sandbox.stub($$PREBID_GLOBAL$$, 'getHighestCpmBids').callsFake((key) => {
1664
+ return [MOCK.BID_RESPONSE[0], MOCK.BID_RESPONSE[1]]
1665
+ });
1666
+
1667
+ config.setConfig({
1668
+ testGroupId: 15
1669
+ });
1670
+
1671
+ events.emit(AUCTION_INIT, MOCK.AUCTION_INIT);
1672
+ events.emit(BID_REQUESTED, MOCK.BID_REQUESTED);
1673
+ events.emit(BID_RESPONSE, MOCK.BID_RESPONSE[0]);
1674
+ events.emit(BID_RESPONSE, MOCK.BID_RESPONSE[1]);
1675
+ events.emit(BIDDER_DONE, MOCK.BIDDER_DONE);
1676
+ events.emit(AUCTION_END, MOCK.AUCTION_END);
1677
+ events.emit(SET_TARGETING, MOCK.SET_TARGETING);
1678
+ events.emit(BID_WON, MOCK.BID_WON[0]);
1679
+ events.emit(BID_WON, MOCK.BID_WON[1]);
1680
+
1681
+ clock.tick(2000 + 1000);
1682
+ expect(requests.length).to.equal(3); // 1 logger and 2 win-tracker
1683
+ let request = requests[2]; // logger is executed late, trackers execute first
1684
+ expect(request.url).to.equal('https://t.pubmatic.com/wl?pubid=9999');
1685
+ let data = getLoggerJsonFromRequest(request.requestBody);
1686
+ expect(data.s).to.be.an('array');
1687
+ expect(data.s.length).to.equal(2);
1688
+
1689
+ // slot 1
1690
+ expect(data.s[0].ps[0].bidid).to.equal('2ecff0db240757');
1691
+ expect(data.s[0].ps[0].origbidid).to.equal('partnerImpressionID-1');
1692
+
1693
+ // slot 2
1694
+ expect(data.s[1].ps[0].bidid).to.equal('54d4ebb1c9003e');
1695
+ expect(data.s[1].ps[0].origbidid).to.equal('partnerImpressionID-2');
1696
+
1697
+ // tracker slot1
1698
+ let firstTracker = requests[0].url;
1699
+ expect(firstTracker.split('?')[0]).to.equal('https://t.pubmatic.com/wt');
1700
+ data = {};
1701
+ firstTracker.split('?')[1].split('&').map(e => e.split('=')).forEach(e => data[e[0]] = e[1]);
1702
+ expect(data.bidid).to.equal('2ecff0db240757');
1703
+ expect(data.origbidid).to.equal('partnerImpressionID-1');
1704
+ });
1705
+
1660
1706
  it('Logger: best case + win tracker. Log bidId when partnerimpressionid is missing', function() {
1661
1707
  delete MOCK.BID_RESPONSE[1]['partnerImpId'];
1708
+ MOCK.BID_RESPONSE[1]['requestId'] = '3bd4ebb1c900e2';
1662
1709
  MOCK.BID_RESPONSE[1]['prebidBidId'] = 'Prebid-bid-id-1';
1663
1710
  sandbox.stub($$PREBID_GLOBAL$$, 'getHighestCpmBids').callsFake((key) => {
1664
1711
  return [MOCK.BID_RESPONSE[0], MOCK.BID_RESPONSE[1]]
@@ -26,7 +26,7 @@ describe('QTBidAdapter', function () {
26
26
  }
27
27
  },
28
28
  params: {
29
- placementId: 'testBanner',
29
+ placementId: 'testBanner'
30
30
  },
31
31
  userIdAsEids
32
32
  },
@@ -41,7 +41,7 @@ describe('QTBidAdapter', function () {
41
41
  }
42
42
  },
43
43
  params: {
44
- placementId: 'testVideo',
44
+ placementId: 'testVideo'
45
45
  },
46
46
  userIdAsEids
47
47
  },
@@ -91,7 +91,15 @@ describe('QTBidAdapter', function () {
91
91
  vendorData: {}
92
92
  },
93
93
  refererInfo: {
94
- referer: 'https://test.com'
94
+ referer: 'https://test.com',
95
+ page: 'https://test.com'
96
+ },
97
+ ortb2: {
98
+ device: {
99
+ w: 1512,
100
+ h: 982,
101
+ language: 'en-UK'
102
+ }
95
103
  },
96
104
  timeout: 500
97
105
  };
@@ -119,6 +127,10 @@ describe('QTBidAdapter', function () {
119
127
  expect(serverRequest.method).to.equal('POST');
120
128
  });
121
129
 
130
+ it('Returns valid URL', function () {
131
+ expect(serverRequest.url).to.equal('https://endpoint1.qt.io/pbjs');
132
+ });
133
+
122
134
  it('Returns general data valid', function () {
123
135
  let data = serverRequest.data;
124
136
  expect(data).to.be.an('object');
@@ -152,6 +152,7 @@ describe('rayn RTD Submodule', function () {
152
152
  2: ['71', '313'],
153
153
  4: ['33', '145', '712']
154
154
  };
155
+ TEST_SEGMENTS['103015'] = ['agdv23', 'avscg3'];
155
156
 
156
157
  const bidderOrtb2 = {};
157
158
  const bidders = RTD_CONFIG.dataProviders[0].params.bidders;
@@ -174,6 +175,9 @@ describe('rayn RTD Submodule', function () {
174
175
  TEST_SEGMENTS['4']['3'].forEach((id) => {
175
176
  expect(ortb2.user.data[0].segment.find(segment => segment.id === id)).to.exist;
176
177
  });
178
+ TEST_SEGMENTS['103015'].forEach((id) => {
179
+ expect(ortb2.user.data[1].segment.find(segment => segment.id === id)).to.exist;
180
+ });
177
181
  });
178
182
  });
179
183
  });
@@ -229,6 +233,27 @@ describe('rayn RTD Submodule', function () {
229
233
  logMessageSpy.restore();
230
234
  });
231
235
 
236
+ it('should update reqBidsConfigObj and execute callback using persona segment from localStorage', function () {
237
+ const callbackSpy = sinon.spy();
238
+ const logMessageSpy = sinon.spy(utils, 'logMessage');
239
+ const testSegments = {
240
+ 103015: ['agdv23', 'avscg3']
241
+ };
242
+
243
+ getDataFromLocalStorageStub
244
+ .withArgs(raynRTD.RAYN_LOCAL_STORAGE_KEY)
245
+ .returns(JSON.stringify(testSegments));
246
+
247
+ const reqBidsConfigObj = { ortb2Fragments: { bidder: {} } };
248
+
249
+ raynRTD.raynSubmodule.getBidRequestData(reqBidsConfigObj, callbackSpy, RTD_CONFIG.dataProviders[0]);
250
+
251
+ expect(callbackSpy.calledOnce).to.be.true;
252
+ expect(logMessageSpy.lastCall.lastArg).to.equal(`Segtax data from localStorage: ${JSON.stringify(testSegments)}`);
253
+
254
+ logMessageSpy.restore();
255
+ });
256
+
232
257
  it('should update reqBidsConfigObj and execute callback using segments from raynJS', function () {
233
258
  const callbackSpy = sinon.spy();
234
259
  const logMessageSpy = sinon.spy(utils, 'logMessage');