prebid.js 9.1.0 → 9.3.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 (362) hide show
  1. package/browsers.json +3 -3
  2. package/dist/33acrossAnalyticsAdapter.js +1 -1
  3. package/dist/33acrossBidAdapter.js +1 -1
  4. package/dist/33acrossIdSystem.js +1 -1
  5. package/dist/BTBidAdapter.js +1 -1
  6. package/dist/acuityadsBidAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adagioRtdProvider.js +1 -1
  10. package/dist/adagioUtils.js +1 -0
  11. package/dist/addefendBidAdapter.js +1 -1
  12. package/dist/adgenerationBidAdapter.js +1 -1
  13. package/dist/adlooxRtdProvider.js +1 -1
  14. package/dist/admanBidAdapter.js +1 -1
  15. package/dist/adnuntiusBidAdapter.js +1 -1
  16. package/dist/adpod.js +1 -1
  17. package/dist/adprimeBidAdapter.js +1 -1
  18. package/dist/adqueryBidAdapter.js +1 -1
  19. package/dist/adrelevantisBidAdapter.js +1 -1
  20. package/dist/adstirBidAdapter.js +1 -1
  21. package/dist/adtrgtmeBidAdapter.js +1 -1
  22. package/dist/adxcgAnalyticsAdapter.js +1 -1
  23. package/dist/adxcgBidAdapter.js +1 -1
  24. package/dist/adyoulikeBidAdapter.js +1 -1
  25. package/dist/agmaAnalyticsAdapter.js +1 -1
  26. package/dist/ajaBidAdapter.js +1 -1
  27. package/dist/amxBidAdapter.js +1 -1
  28. package/dist/amxIdSystem.js +1 -1
  29. package/dist/appierAnalyticsAdapter.js +1 -1
  30. package/dist/appnexusBidAdapter.js +1 -1
  31. package/dist/appnexusUtils.js +1 -1
  32. package/dist/asoBidAdapter.js +1 -1
  33. package/dist/autoplayDetection.js +1 -1
  34. package/dist/axisBidAdapter.js +1 -1
  35. package/dist/axonixBidAdapter.js +1 -1
  36. package/dist/beyondmediaBidAdapter.js +1 -1
  37. package/dist/bidglassBidAdapter.js +1 -1
  38. package/dist/big-richmediaBidAdapter.js +1 -1
  39. package/dist/bliinkBidAdapter.js +1 -1
  40. package/dist/boldwinBidAdapter.js +1 -1
  41. package/dist/bridBidAdapter.js +1 -1
  42. package/dist/bridgewellBidAdapter.js +1 -1
  43. package/dist/brightMountainMediaBidAdapter.js +1 -1
  44. package/dist/carodaBidAdapter.js +1 -1
  45. package/dist/chtnwBidAdapter.js +1 -1
  46. package/dist/chunk-core.js +1 -1
  47. package/dist/compassBidAdapter.js +1 -1
  48. package/dist/concertBidAdapter.js +1 -1
  49. package/dist/connectadBidAdapter.js +1 -1
  50. package/dist/consentManagement.js +1 -0
  51. package/dist/consentManagementGpp.js +1 -1
  52. package/dist/consentManagementTcf.js +1 -1
  53. package/dist/consumableBidAdapter.js +1 -1
  54. package/dist/contentexchangeBidAdapter.js +1 -1
  55. package/dist/conversantAnalyticsAdapter.js +1 -1
  56. package/dist/conversantBidAdapter.js +1 -1
  57. package/dist/copper6sspBidAdapter.js +1 -0
  58. package/dist/craftBidAdapter.js +1 -1
  59. package/dist/criteoBidAdapter.js +1 -1
  60. package/dist/cwireBidAdapter.js +1 -1
  61. package/dist/dailymotionBidAdapter.js +1 -1
  62. package/dist/dependencies.json +96 -6
  63. package/dist/dspxBidAdapter.js +1 -1
  64. package/dist/dxkultureBidAdapter.js +1 -1
  65. package/dist/e_volutionBidAdapter.js +1 -1
  66. package/dist/emtvBidAdapter.js +1 -1
  67. package/dist/eplanningBidAdapter.js +1 -1
  68. package/dist/euidIdSystem.js +1 -1
  69. package/dist/exadsBidAdapter.js +1 -1
  70. package/dist/feedadBidAdapter.js +1 -1
  71. package/dist/finativeBidAdapter.js +1 -1
  72. package/dist/freewheel-sspBidAdapter.js +1 -1
  73. package/dist/globalsunBidAdapter.js +1 -1
  74. package/dist/gmosspBidAdapter.js +1 -1
  75. package/dist/goldbachBidAdapter.js +1 -1
  76. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  77. package/dist/greenbidsRtdProvider.js +1 -1
  78. package/dist/gridBidAdapter.js +1 -1
  79. package/dist/gumgumBidAdapter.js +1 -1
  80. package/dist/h12mediaBidAdapter.js +1 -1
  81. package/dist/hypelabBidAdapter.js +1 -1
  82. package/dist/id5AnalyticsAdapter.js +1 -1
  83. package/dist/id5IdSystem.js +1 -1
  84. package/dist/illuminBidAdapter.js +1 -1
  85. package/dist/imdsBidAdapter.js +1 -1
  86. package/dist/improvedigitalBidAdapter.js +1 -1
  87. package/dist/insticatorBidAdapter.js +1 -1
  88. package/dist/intentIqIdSystem.js +1 -1
  89. package/dist/iqzoneBidAdapter.js +1 -1
  90. package/dist/ixBidAdapter.js +1 -1
  91. package/dist/jixieBidAdapter.js +1 -1
  92. package/dist/justpremiumBidAdapter.js +1 -1
  93. package/dist/kargoBidAdapter.js +1 -1
  94. package/dist/kimberliteBidAdapter.js +1 -1
  95. package/dist/kiviadsBidAdapter.js +1 -1
  96. package/dist/konduitAnalyticsAdapter.js +1 -1
  97. package/dist/krushmediaBidAdapter.js +1 -1
  98. package/dist/kueezBidAdapter.js +1 -1
  99. package/dist/kueezRtbBidAdapter.js +1 -1
  100. package/dist/lassoBidAdapter.js +1 -1
  101. package/dist/lifestreetBidAdapter.js +1 -1
  102. package/dist/liveIntentIdSystem.js +1 -1
  103. package/dist/logicadBidAdapter.js +1 -1
  104. package/dist/loglyliftBidAdapter.js +1 -1
  105. package/dist/loyalBidAdapter.js +1 -1
  106. package/dist/luceadBidAdapter.js +1 -1
  107. package/dist/lunamediahbBidAdapter.js +1 -1
  108. package/dist/mabidderBidAdapter.js +1 -1
  109. package/dist/magniteAnalyticsAdapter.js +1 -1
  110. package/dist/malltvAnalyticsAdapter.js +1 -1
  111. package/dist/marsmediaBidAdapter.js +1 -1
  112. package/dist/mathildeadsBidAdapter.js +1 -1
  113. package/dist/mediafuseBidAdapter.js +1 -1
  114. package/dist/medianetAnalyticsAdapter.js +1 -1
  115. package/dist/medianetBidAdapter.js +1 -1
  116. package/dist/mediasquareBidAdapter.js +1 -1
  117. package/dist/mgidBidAdapter.js +1 -1
  118. package/dist/mgidXBidAdapter.js +1 -1
  119. package/dist/minutemediaBidAdapter.js +1 -1
  120. package/dist/missenaBidAdapter.js +1 -1
  121. package/dist/mobfoxpbBidAdapter.js +1 -1
  122. package/dist/mobianRtdProvider.js +1 -1
  123. package/dist/nexx360BidAdapter.js +1 -1
  124. package/dist/nobidAnalyticsAdapter.js +1 -1
  125. package/dist/nobidBidAdapter.js +1 -1
  126. package/dist/not-for-prod/prebid.js +211 -204
  127. package/dist/oguryBidAdapter.js +1 -1
  128. package/dist/onetagBidAdapter.js +1 -1
  129. package/dist/ooloAnalyticsAdapter.js +1 -1
  130. package/dist/openwebBidAdapter.js +1 -1
  131. package/dist/openxBidAdapter.js +1 -1
  132. package/dist/optidigitalBidAdapter.js +1 -1
  133. package/dist/orakiBidAdapter.js +1 -0
  134. package/dist/orbidderBidAdapter.js +1 -1
  135. package/dist/ortbConverter.js +1 -1
  136. package/dist/outbrainBidAdapter.js +1 -1
  137. package/dist/ozoneBidAdapter.js +1 -1
  138. package/dist/paapi.js +1 -1
  139. package/dist/pairIdSystem.js +1 -1
  140. package/dist/pgamsspBidAdapter.js +1 -1
  141. package/dist/pixfutureBidAdapter.js +1 -1
  142. package/dist/playdigoBidAdapter.js +1 -1
  143. package/dist/prebidServerBidAdapter.js +1 -1
  144. package/dist/pubCircleBidAdapter.js +1 -1
  145. package/dist/publinkIdSystem.js +1 -1
  146. package/dist/publirBidAdapter.js +1 -1
  147. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  148. package/dist/pubmaticBidAdapter.js +1 -1
  149. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  150. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  151. package/dist/pxyzBidAdapter.js +1 -1
  152. package/dist/qtBidAdapter.js +1 -1
  153. package/dist/quantcastBidAdapter.js +1 -1
  154. package/dist/raynRtdProvider.js +1 -1
  155. package/dist/readpeakBidAdapter.js +1 -1
  156. package/dist/relaidoBidAdapter.js +1 -1
  157. package/dist/retailspotBidAdapter.js +1 -1
  158. package/dist/rhythmoneBidAdapter.js +1 -1
  159. package/dist/riseBidAdapter.js +1 -1
  160. package/dist/rubiconBidAdapter.js +1 -1
  161. package/dist/seedingAllianceBidAdapter.js +1 -1
  162. package/dist/seedtagBidAdapter.js +1 -1
  163. package/dist/setupadBidAdapter.js +1 -1
  164. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  165. package/dist/sharethroughBidAdapter.js +1 -1
  166. package/dist/shinezBidAdapter.js +1 -1
  167. package/dist/shinezRtbBidAdapter.js +1 -1
  168. package/dist/smaatoBidAdapter.js +1 -1
  169. package/dist/smartadserverBidAdapter.js +1 -1
  170. package/dist/smartxBidAdapter.js +1 -1
  171. package/dist/smartyadsBidAdapter.js +1 -1
  172. package/dist/smartyadsUtils.js +1 -0
  173. package/dist/smartytechBidAdapter.js +1 -1
  174. package/dist/smilewantedBidAdapter.js +1 -1
  175. package/dist/snigelBidAdapter.js +1 -1
  176. package/dist/sonobiBidAdapter.js +1 -1
  177. package/dist/sovrnBidAdapter.js +1 -1
  178. package/dist/sspBCBidAdapter.js +1 -1
  179. package/dist/stnBidAdapter.js +1 -1
  180. package/dist/stvBidAdapter.js +1 -1
  181. package/dist/sublimeBidAdapter.js +1 -1
  182. package/dist/taboolaBidAdapter.js +1 -1
  183. package/dist/tagorasBidAdapter.js +1 -1
  184. package/dist/tappxBidAdapter.js +1 -1
  185. package/dist/targetVideoBidAdapter.js +1 -1
  186. package/dist/teadsBidAdapter.js +1 -1
  187. package/dist/teqblazeUtils.js +1 -0
  188. package/dist/terceptAnalyticsAdapter.js +1 -1
  189. package/dist/themoneytizerBidAdapter.js +1 -1
  190. package/dist/topicsFpdModule.js +1 -1
  191. package/dist/trionBidAdapter.js +1 -1
  192. package/dist/tripleliftBidAdapter.js +1 -1
  193. package/dist/ttdBidAdapter.js +1 -1
  194. package/dist/twistDigitalBidAdapter.js +1 -1
  195. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  196. package/dist/uid2IdSystem.js +1 -1
  197. package/dist/underdogmediaBidAdapter.js +1 -1
  198. package/dist/undertoneBidAdapter.js +1 -1
  199. package/dist/unrulyBidAdapter.js +1 -1
  200. package/dist/userId.js +1 -1
  201. package/dist/vidazooBidAdapter.js +1 -1
  202. package/dist/vidazooUtils.js +1 -0
  203. package/dist/videobyteBidAdapter.js +1 -1
  204. package/dist/visiblemeasuresBidAdapter.js +1 -1
  205. package/dist/visxBidAdapter.js +1 -1
  206. package/dist/vuukleBidAdapter.js +1 -1
  207. package/dist/widespaceBidAdapter.js +1 -1
  208. package/dist/winrBidAdapter.js +1 -1
  209. package/dist/yahooAdsBidAdapter.js +1 -1
  210. package/dist/yieldmoBidAdapter.js +1 -1
  211. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  212. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  213. package/integrationExamples/gpt/raynRtdProvider_example.html +1 -0
  214. package/libraries/adagioUtils/adagioUtils.js +35 -0
  215. package/libraries/appnexusUtils/anUtils.js +1 -0
  216. package/libraries/autoplayDetection/autoplay.js +8 -1
  217. package/libraries/consentManagement/cmUtils.js +38 -0
  218. package/libraries/ortbConverter/converter.js +1 -1
  219. package/libraries/smartyadsUtils/getAdUrlByRegion.js +32 -0
  220. package/libraries/teqblazeUtils/bidderUtils.js +253 -0
  221. package/libraries/vidazooUtils/bidderUtils.js +481 -0
  222. package/libraries/vidazooUtils/constants.js +7 -0
  223. package/modules/.submodules.json +1 -0
  224. package/modules/acuityadsBidAdapter.js +5 -203
  225. package/modules/adagioBidAdapter.js +1 -17
  226. package/modules/adagioRtdProvider.js +41 -51
  227. package/modules/adagioRtdProvider.md +1 -0
  228. package/modules/addefendBidAdapter.js +1 -2
  229. package/modules/adlooxRtdProvider.js +1 -1
  230. package/modules/admanBidAdapter.js +31 -188
  231. package/modules/adnuntiusBidAdapter.js +1 -0
  232. package/modules/adprimeBidAdapter.js +28 -165
  233. package/modules/adxcgAnalyticsAdapter.js +1 -2
  234. package/modules/axisBidAdapter.js +33 -165
  235. package/modules/beyondmediaBidAdapter.js +5 -189
  236. package/modules/bliinkBidAdapter.js +3 -31
  237. package/modules/boldwinBidAdapter.js +21 -159
  238. package/modules/ceeIdSystem.js +1 -1
  239. package/modules/compassBidAdapter.js +5 -198
  240. package/modules/consentManagementGpp.js +2 -38
  241. package/modules/consentManagementTcf.js +7 -38
  242. package/modules/contentexchangeBidAdapter.js +5 -200
  243. package/modules/conversantAnalyticsAdapter.js +1 -2
  244. package/modules/conversantBidAdapter.js +1 -0
  245. package/modules/copper6sspBidAdapter.js +19 -0
  246. package/modules/copper6sspBidAdapter.md +79 -0
  247. package/modules/criteoBidAdapter.js +10 -3
  248. package/modules/e_volutionBidAdapter.js +4 -186
  249. package/modules/emtvBidAdapter.js +5 -198
  250. package/modules/globalsunBidAdapter.js +5 -199
  251. package/modules/id5AnalyticsAdapter.js +1 -2
  252. package/modules/id5IdSystem.js +31 -2
  253. package/modules/id5IdSystem.md +67 -2
  254. package/modules/intentIqIdSystem.js +408 -50
  255. package/modules/intentIqIdSystem.md +92 -0
  256. package/modules/iqzoneBidAdapter.js +5 -224
  257. package/modules/kiviadsBidAdapter.js +5 -199
  258. package/modules/krushmediaBidAdapter.js +25 -143
  259. package/modules/liveIntentIdSystem.js +2 -2
  260. package/modules/loyalBidAdapter.js +4 -178
  261. package/modules/lunamediahbBidAdapter.js +5 -118
  262. package/modules/mabidderBidAdapter.js +1 -2
  263. package/modules/mathildeadsBidAdapter.js +5 -198
  264. package/modules/medianetAnalyticsAdapter.js +1 -2
  265. package/modules/medianetBidAdapter.js +1 -1
  266. package/modules/mgidXBidAdapter.js +14 -207
  267. package/modules/mobfoxpbBidAdapter.js +4 -135
  268. package/modules/mobianRtdProvider.js +2 -2
  269. package/modules/nobidAnalyticsAdapter.js +2 -3
  270. package/modules/orakiBidAdapter.js +19 -0
  271. package/modules/orakiBidAdapter.md +79 -0
  272. package/modules/orbidderBidAdapter.js +4 -2
  273. package/modules/ozoneBidAdapter.js +117 -58
  274. package/modules/paapi.js +2 -1
  275. package/modules/pairIdSystem.js +27 -10
  276. package/modules/pgamsspBidAdapter.js +5 -240
  277. package/modules/pixfutureBidAdapter.js +1 -2
  278. package/modules/playdigoBidAdapter.js +4 -186
  279. package/modules/prebidServerBidAdapter/index.js +10 -3
  280. package/modules/pubCircleBidAdapter.js +5 -218
  281. package/modules/pubmaticAnalyticsAdapter.js +21 -8
  282. package/modules/pubxaiAnalyticsAdapter.js +1 -5
  283. package/modules/qtBidAdapter.js +5 -224
  284. package/modules/raynRtdProvider.js +36 -3
  285. package/modules/seedtagBidAdapter.js +5 -0
  286. package/modules/setupadBidAdapter.js +58 -140
  287. package/modules/smartadserverBidAdapter.js +3 -0
  288. package/modules/smartyadsBidAdapter.js +6 -110
  289. package/modules/smartytechBidAdapter.js +7 -2
  290. package/modules/snigelBidAdapter.js +1 -2
  291. package/modules/tappxBidAdapter.js +1 -2
  292. package/modules/terceptAnalyticsAdapter.js +1 -2
  293. package/modules/topicsFpdModule.js +1 -1
  294. package/modules/twistDigitalBidAdapter.js +1 -12
  295. package/modules/uid2IdSystem.js +0 -1
  296. package/modules/uid2IdSystem_shared.js +0 -1
  297. package/modules/userId/index.js +31 -21
  298. package/modules/vidazooBidAdapter.js +26 -468
  299. package/modules/visiblemeasuresBidAdapter.js +5 -199
  300. package/modules/yahooAdsBidAdapter.js +4 -1
  301. package/modules/yuktamediaAnalyticsAdapter.js +1 -2
  302. package/package.json +1 -1
  303. package/src/auction.js +5 -63
  304. package/src/utils/focusTimeout.js +41 -0
  305. package/src/utils/ttlCollection.js +2 -1
  306. package/src/utils.js +42 -0
  307. package/src/videoCache.js +72 -0
  308. package/test/mocks/videoCacheStub.js +1 -1
  309. package/test/spec/auctionmanager_spec.js +16 -1
  310. package/test/spec/fpd/gdpr_spec.js +24 -2
  311. package/test/spec/libraries/teqblazeUtils/bidderUtils_spec.js +519 -0
  312. package/test/spec/modules/acuityadsBidAdapter_spec.js +79 -43
  313. package/test/spec/modules/adagioRtdProvider_spec.js +62 -1
  314. package/test/spec/modules/admanBidAdapter_spec.js +370 -247
  315. package/test/spec/modules/adnuntiusBidAdapter_spec.js +6 -3
  316. package/test/spec/modules/adprimeBidAdapter_spec.js +225 -78
  317. package/test/spec/modules/axisBidAdapter_spec.js +78 -14
  318. package/test/spec/modules/beyondmediaBidAdapter_spec.js +80 -18
  319. package/test/spec/modules/bliinkBidAdapter_spec.js +8 -2
  320. package/test/spec/modules/boldwinBidAdapter_spec.js +221 -75
  321. package/test/spec/modules/compassBidAdapter_spec.js +130 -16
  322. package/test/spec/modules/contentexchangeBidAdapter_spec.js +134 -21
  323. package/test/spec/modules/conversantAnalyticsAdapter_spec.js +1 -1
  324. package/test/spec/modules/conversantBidAdapter_spec.js +7 -0
  325. package/test/spec/modules/copper6sspBidAdapter_spec.js +514 -0
  326. package/test/spec/modules/e_volutionBidAdapter_spec.js +65 -3
  327. package/test/spec/modules/emtvBidAdapter_spec.js +131 -16
  328. package/test/spec/modules/globalsunBidAdapter_spec.js +130 -16
  329. package/test/spec/modules/id5IdSystem_spec.js +79 -3
  330. package/test/spec/modules/intentIqIdSystem_spec.js +264 -36
  331. package/test/spec/modules/iqzoneBidAdapter_spec.js +66 -12
  332. package/test/spec/modules/kiviadsBidAdapter_spec.js +131 -20
  333. package/test/spec/modules/krushmediaBidAdapter_spec.js +272 -90
  334. package/test/spec/modules/loyalBidAdapter_spec.js +114 -14
  335. package/test/spec/modules/lunamediahbBidAdapter_spec.js +221 -87
  336. package/test/spec/modules/mathildeadsBidAdapter_spec.js +87 -18
  337. package/test/spec/modules/mgidXBidAdapter_spec.js +11 -3
  338. package/test/spec/modules/mobfoxpbBidAdapter_spec.js +229 -91
  339. package/test/spec/modules/orakiBidAdapter_spec.js +510 -0
  340. package/test/spec/modules/ozoneBidAdapter_spec.js +192 -22
  341. package/test/spec/modules/paapi_spec.js +5 -5
  342. package/test/spec/modules/pgamsspBidAdapter_spec.js +83 -16
  343. package/test/spec/modules/playdigoBidAdapter_spec.js +38 -9
  344. package/test/spec/modules/prebidServerBidAdapter_spec.js +14 -0
  345. package/test/spec/modules/pubCircleBidAdapter_spec.js +82 -17
  346. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +52 -5
  347. package/test/spec/modules/qtBidAdapter_spec.js +15 -3
  348. package/test/spec/modules/raynRtdProvider_spec.js +25 -0
  349. package/test/spec/modules/seedtagBidAdapter_spec.js +29 -0
  350. package/test/spec/modules/setupadBidAdapter_spec.js +124 -97
  351. package/test/spec/modules/smartadserverBidAdapter_spec.js +7 -0
  352. package/test/spec/modules/smartyadsBidAdapter_spec.js +6 -83
  353. package/test/spec/modules/smartytechBidAdapter_spec.js +5 -1
  354. package/test/spec/modules/topicsFpdModule_spec.js +43 -59
  355. package/test/spec/modules/twistDigitalBidAdapter_spec.js +5 -3
  356. package/test/spec/modules/userId_spec.js +86 -47
  357. package/test/spec/modules/vidazooBidAdapter_spec.js +21 -23
  358. package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +130 -16
  359. package/test/spec/modules/yahooAdsBidAdapter_spec.js +1 -1
  360. package/test/spec/ortbConverter/converter_spec.js +7 -3
  361. package/test/spec/unit/utils/focusTimeout_spec.js +60 -0
  362. 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');
@@ -37,6 +37,7 @@ function getSlotConfigs(mediaTypes, params) {
37
37
  ortb2Imp: {
38
38
  ext: {
39
39
  tid: 'd704d006-0d6e-4a09-ad6c-179e7e758096',
40
+ gpid: 'some-gpid'
40
41
  }
41
42
  },
42
43
  adUnitCode: adUnitCode,
@@ -299,6 +300,7 @@ describe('Seedtag Adapter', function () {
299
300
  expect(data.ttfb).to.be.greaterThanOrEqual(0);
300
301
 
301
302
  expect(data.bidRequests[0].adUnitCode).to.equal(adUnitCode);
303
+ expect(data.bidRequests[0].gpid).to.equal('some-gpid');
302
304
  });
303
305
 
304
306
  describe('GDPR params', function () {
@@ -626,6 +628,33 @@ describe('Seedtag Adapter', function () {
626
628
  expect(data.badv).to.be.undefined;
627
629
  });
628
630
  });
631
+
632
+ describe('device.sua param', function () {
633
+ it('should add device.sua param to payload when bidderRequest has ortb2 device.sua info', function () {
634
+ const sua = 1
635
+ var ortb2 = {
636
+ device: {
637
+ sua: sua
638
+ }
639
+ }
640
+ bidderRequest['ortb2'] = ortb2
641
+
642
+ const request = spec.buildRequests(validBidRequests, bidderRequest);
643
+ const data = JSON.parse(request.data);
644
+ expect(data.sua).to.equal(sua);
645
+ });
646
+
647
+ it('should not add device.sua param to payload when bidderRequest does not have ortb2 device.sua info', function () {
648
+ var ortb2 = {
649
+ device: {}
650
+ }
651
+ bidderRequest['ortb2'] = ortb2
652
+
653
+ const request = spec.buildRequests(validBidRequests, bidderRequest);
654
+ const data = JSON.parse(request.data);
655
+ expect(data.sua).to.be.undefined;
656
+ });
657
+ });
629
658
  })
630
659
  describe('interpret response method', function () {
631
660
  it('should return a void array, when the server response are not correct.', function () {