prebid.js 7.43.0 → 7.45.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 (503) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/acuityAdsBidAdapter.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adgenerationBidAdapter.js +1 -1
  7. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  8. package/dist/admixerIdSystem.js +1 -1
  9. package/dist/adnuntiusBidAdapter.js +1 -1
  10. package/dist/adqueryBidAdapter.js +1 -1
  11. package/dist/adqueryIdSystem.js +1 -1
  12. package/dist/adrelevantisBidAdapter.js +1 -1
  13. package/dist/adrinoBidAdapter.js +1 -1
  14. package/dist/adriverIdSystem.js +1 -1
  15. package/dist/adsinteractiveBidAdapter.js +1 -0
  16. package/dist/adtrgtmeBidAdapter.js +1 -1
  17. package/dist/adxcgBidAdapter.js +1 -1
  18. package/dist/adyoulikeBidAdapter.js +1 -1
  19. package/dist/aidemBidAdapter.js +1 -1
  20. package/dist/airgridRtdProvider.js +1 -1
  21. package/dist/ajaBidAdapter.js +1 -1
  22. package/dist/akamaiDapRtdProvider.js +1 -1
  23. package/dist/amxBidAdapter.js +1 -1
  24. package/dist/amxIdSystem.js +1 -1
  25. package/dist/appierAnalyticsAdapter.js +1 -1
  26. package/dist/appnexusBidAdapter.js +1 -1
  27. package/dist/appushBidAdapter.js +1 -1
  28. package/dist/apstreamBidAdapter.js +1 -1
  29. package/dist/asoBidAdapter.js +1 -1
  30. package/dist/atsAnalyticsAdapter.js +1 -1
  31. package/dist/audiencerunBidAdapter.js +1 -1
  32. package/dist/axonixBidAdapter.js +1 -1
  33. package/dist/bedigitechBidAdapter.js +1 -0
  34. package/dist/beyondmediaBidAdapter.js +1 -1
  35. package/dist/bidglassBidAdapter.js +1 -1
  36. package/dist/big-richmediaBidAdapter.js +1 -1
  37. package/dist/bluebillywigBidAdapter.js +1 -1
  38. package/dist/blueconicRtdProvider.js +1 -1
  39. package/dist/braveBidAdapter.js +1 -1
  40. package/dist/bridgewellBidAdapter.js +1 -1
  41. package/dist/brightMountainMediaBidAdapter.js +1 -1
  42. package/dist/brightcomBidAdapter.js +1 -1
  43. package/dist/brightcomSSPBidAdapter.js +1 -1
  44. package/dist/browsiRtdProvider.js +1 -1
  45. package/dist/byDataAnalyticsAdapter.js +1 -1
  46. package/dist/carodaBidAdapter.js +1 -1
  47. package/dist/chtnwBidAdapter.js +1 -1
  48. package/dist/coinzillaBidAdapter.js +1 -1
  49. package/dist/compassBidAdapter.js +1 -1
  50. package/dist/concertBidAdapter.js +1 -1
  51. package/dist/connectIdSystem.js +1 -1
  52. package/dist/connectadBidAdapter.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/craftBidAdapter.js +1 -1
  58. package/dist/criteoBidAdapter.js +1 -1
  59. package/dist/criteoIdSystem.js +1 -1
  60. package/dist/cwireBidAdapter.js +1 -1
  61. package/dist/czechAdIdSystem.js +1 -1
  62. package/dist/dacIdSystem.js +1 -1
  63. package/dist/deepintentDpesIdSystem.js +1 -1
  64. package/dist/dependencies.json +15 -0
  65. package/dist/discoveryBidAdapter.js +1 -1
  66. package/dist/domainOverrideToRootDomain.js +1 -0
  67. package/dist/dspxBidAdapter.js +1 -1
  68. package/dist/eplanningBidAdapter.js +1 -1
  69. package/dist/feedadBidAdapter.js +1 -1
  70. package/dist/finativeBidAdapter.js +1 -1
  71. package/dist/fintezaAnalyticsAdapter.js +1 -1
  72. package/dist/fledgeForGpt.js +1 -1
  73. package/dist/freewheel-sspBidAdapter.js +1 -1
  74. package/dist/ftrackIdSystem.js +1 -1
  75. package/dist/gdprEnforcement.js +1 -1
  76. package/dist/glimpseBidAdapter.js +1 -1
  77. package/dist/globalsunBidAdapter.js +1 -1
  78. package/dist/gmosspBidAdapter.js +1 -1
  79. package/dist/gnetBidAdapter.js +1 -1
  80. package/dist/goldbachBidAdapter.js +1 -1
  81. package/dist/gravitoIdSystem.js +1 -1
  82. package/dist/greenbidsAnalyticsAdapter.js +1 -0
  83. package/dist/gridBidAdapter.js +1 -1
  84. package/dist/gridNMBidAdapter.js +1 -1
  85. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  86. package/dist/growthCodeIdSystem.js +1 -1
  87. package/dist/gumgumBidAdapter.js +1 -1
  88. package/dist/h12mediaBidAdapter.js +1 -1
  89. package/dist/hadronAnalyticsAdapter.js +1 -1
  90. package/dist/hadronIdSystem.js +1 -1
  91. package/dist/hadronRtdProvider.js +1 -1
  92. package/dist/id5IdSystem.js +1 -1
  93. package/dist/idWardRtdProvider.js +1 -1
  94. package/dist/identityLinkIdSystem.js +1 -1
  95. package/dist/idxIdSystem.js +1 -1
  96. package/dist/imRtdProvider.js +1 -1
  97. package/dist/impactifyBidAdapter.js +1 -1
  98. package/dist/improvedigitalBidAdapter.js +1 -1
  99. package/dist/imuIdSystem.js +1 -1
  100. package/dist/inmarBidAdapter.js +1 -1
  101. package/dist/insticatorBidAdapter.js +1 -1
  102. package/dist/intentIqIdSystem.js +1 -1
  103. package/dist/invibesBidAdapter.js +1 -1
  104. package/dist/iqzoneBidAdapter.js +1 -1
  105. package/dist/ivsBidAdapter.js +1 -0
  106. package/dist/ixBidAdapter.js +1 -1
  107. package/dist/jixieBidAdapter.js +1 -1
  108. package/dist/justpremiumBidAdapter.js +1 -1
  109. package/dist/jwplayerVideoProvider.js +1 -1
  110. package/dist/kargoBidAdapter.js +1 -1
  111. package/dist/koblerBidAdapter.js +1 -1
  112. package/dist/konduitAnalyticsAdapter.js +1 -1
  113. package/dist/kueezBidAdapter.js +1 -1
  114. package/dist/kueezRtbBidAdapter.js +1 -1
  115. package/dist/kulturemediaBidAdapter.js +1 -1
  116. package/dist/lassoBidAdapter.js +1 -1
  117. package/dist/lifestreetBidAdapter.js +1 -1
  118. package/dist/liveIntentIdSystem.js +1 -1
  119. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  120. package/dist/logicadBidAdapter.js +1 -1
  121. package/dist/loglyliftBidAdapter.js +1 -1
  122. package/dist/lotamePanoramaIdSystem.js +1 -1
  123. package/dist/luponmediaBidAdapter.js +1 -1
  124. package/dist/magniteAnalyticsAdapter.js +1 -1
  125. package/dist/malltvAnalyticsAdapter.js +1 -1
  126. package/dist/marsmediaBidAdapter.js +1 -1
  127. package/dist/mathildeadsBidAdapter.js +1 -1
  128. package/dist/mediafuseBidAdapter.js +1 -1
  129. package/dist/mediagoBidAdapter.js +1 -1
  130. package/dist/mediakeysBidAdapter.js +1 -1
  131. package/dist/medianetBidAdapter.js +1 -1
  132. package/dist/mediasquareBidAdapter.js +1 -1
  133. package/dist/merkleIdSystem.js +1 -1
  134. package/dist/mgidBidAdapter.js +1 -1
  135. package/dist/mgidRtdProvider.js +1 -1
  136. package/dist/minutemediaBidAdapter.js +1 -1
  137. package/dist/minutemediaplusBidAdapter.js +1 -1
  138. package/dist/mwOpenLinkIdSystem.js +1 -1
  139. package/dist/naveggIdSystem.js +1 -1
  140. package/dist/nexx360BidAdapter.js +1 -1
  141. package/dist/nobidBidAdapter.js +1 -1
  142. package/dist/not-for-prod/prebid.js +232 -227
  143. package/dist/novatiqIdSystem.js +1 -1
  144. package/dist/oguryBidAdapter.js +1 -1
  145. package/dist/onetagBidAdapter.js +1 -1
  146. package/dist/onomagicBidAdapter.js +1 -1
  147. package/dist/ooloAnalyticsAdapter.js +1 -1
  148. package/dist/openxBidAdapter.js +1 -1
  149. package/dist/openxOrtbBidAdapter.js +1 -1
  150. package/dist/operaadsBidAdapter.js +1 -1
  151. package/dist/optidigitalBidAdapter.js +1 -1
  152. package/dist/ortbConverter.js +1 -1
  153. package/dist/outbrainBidAdapter.js +1 -1
  154. package/dist/parrableIdSystem.js +1 -1
  155. package/dist/permutiveRtdProvider.js +1 -1
  156. package/dist/pixfutureBidAdapter.js +1 -1
  157. package/dist/prebid-core.js +1 -1
  158. package/dist/prebidServerBidAdapter.js +1 -1
  159. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  160. package/dist/pubCommonId.js +1 -1
  161. package/dist/publinkIdSystem.js +1 -1
  162. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  163. package/dist/pubmaticBidAdapter.js +1 -1
  164. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  165. package/dist/pubxBidAdapter.js +1 -1
  166. package/dist/pxyzBidAdapter.js +1 -1
  167. package/dist/quantcastBidAdapter.js +1 -1
  168. package/dist/quantcastIdSystem.js +1 -1
  169. package/dist/readpeakBidAdapter.js +1 -1
  170. package/dist/realvuAnalyticsAdapter.js +1 -1
  171. package/dist/relaidoBidAdapter.js +1 -1
  172. package/dist/rhythmoneBidAdapter.js +1 -1
  173. package/dist/riseBidAdapter.js +1 -1
  174. package/dist/roxotAnalyticsAdapter.js +1 -1
  175. package/dist/rtbhouseBidAdapter.js +1 -1
  176. package/dist/rtdModule.js +1 -1
  177. package/dist/rubiconAnalyticsAdapter.js +1 -1
  178. package/dist/rubiconBidAdapter.js +1 -1
  179. package/dist/seedingAllianceBidAdapter.js +1 -1
  180. package/dist/seedtagBidAdapter.js +1 -1
  181. package/dist/sharedIdSystem.js +1 -1
  182. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  183. package/dist/sharethroughBidAdapter.js +1 -1
  184. package/dist/shinezBidAdapter.js +1 -1
  185. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  186. package/dist/smaatoBidAdapter.js +1 -1
  187. package/dist/smartadserverBidAdapter.js +1 -1
  188. package/dist/smarthubBidAdapter.js +1 -1
  189. package/dist/smartxBidAdapter.js +1 -1
  190. package/dist/smilewantedBidAdapter.js +1 -1
  191. package/dist/sonobiBidAdapter.js +1 -1
  192. package/dist/sovrnAnalyticsAdapter.js +1 -1
  193. package/dist/sovrnBidAdapter.js +1 -1
  194. package/dist/sspBCBidAdapter.js +1 -1
  195. package/dist/staqAnalyticsAdapter.js +1 -1
  196. package/dist/stroeerCoreBidAdapter.js +1 -1
  197. package/dist/stvBidAdapter.js +1 -1
  198. package/dist/sublimeBidAdapter.js +1 -1
  199. package/dist/synacormediaBidAdapter.js +1 -1
  200. package/dist/taboolaBidAdapter.js +1 -1
  201. package/dist/targetVideoBidAdapter.js +1 -1
  202. package/dist/teadsBidAdapter.js +1 -1
  203. package/dist/teadsIdSystem.js +1 -1
  204. package/dist/trionBidAdapter.js +1 -1
  205. package/dist/tripleliftBidAdapter.js +1 -1
  206. package/dist/truereachBidAdapter.js +1 -1
  207. package/dist/trustpidSystem.js +1 -1
  208. package/dist/ttdBidAdapter.js +1 -1
  209. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  210. package/dist/uid2IdSystem.js +1 -1
  211. package/dist/underdogmediaBidAdapter.js +1 -1
  212. package/dist/undertoneBidAdapter.js +1 -1
  213. package/dist/userId.js +1 -1
  214. package/dist/validationFpdModule.js +1 -1
  215. package/dist/vidazooBidAdapter.js +1 -1
  216. package/dist/videobyteBidAdapter.js +1 -1
  217. package/dist/videoheroesBidAdapter.js +1 -1
  218. package/dist/vidoomyBidAdapter.js +1 -1
  219. package/dist/visiblemeasuresBidAdapter.js +1 -1
  220. package/dist/visxBidAdapter.js +1 -1
  221. package/dist/vrtcalBidAdapter.js +1 -1
  222. package/dist/vuukleBidAdapter.js +1 -1
  223. package/dist/weboramaRtdProvider.js +1 -1
  224. package/dist/widespaceBidAdapter.js +1 -1
  225. package/dist/winrBidAdapter.js +1 -1
  226. package/dist/yahoosspBidAdapter.js +1 -1
  227. package/dist/yieldmoBidAdapter.js +1 -1
  228. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  229. package/dist/yieldoneBidAdapter.js +1 -1
  230. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  231. package/dist/zeotapIdPlusIdSystem.js +1 -1
  232. package/dist/zeta_global_sspBidAdapter.js +1 -1
  233. package/libraries/domainOverrideToRootDomain/index.js +39 -0
  234. package/libraries/ortbConverter/converter.js +3 -2
  235. package/modules/33acrossIdSystem.js +5 -2
  236. package/modules/acuityAdsBidAdapter.js +1 -1
  237. package/modules/adagioBidAdapter.js +3 -4
  238. package/modules/adkernelAdnAnalyticsAdapter.js +4 -2
  239. package/modules/admixerIdSystem.js +4 -2
  240. package/modules/adnuntiusBidAdapter.js +1 -1
  241. package/modules/adqueryBidAdapter.js +1 -1
  242. package/modules/adqueryIdSystem.js +2 -1
  243. package/modules/adrinoBidAdapter.js +24 -16
  244. package/modules/adriverIdSystem.js +3 -2
  245. package/modules/adsinteractiveBidAdapter.js +144 -0
  246. package/modules/adsinteractiveBidAdapter.md +31 -0
  247. package/modules/adyoulikeBidAdapter.js +2 -3
  248. package/modules/aidemBidAdapter.js +5 -0
  249. package/modules/airgridRtdProvider.js +4 -2
  250. package/modules/ajaBidAdapter.js +38 -16
  251. package/modules/akamaiDapRtdProvider.js +2 -1
  252. package/modules/amxBidAdapter.js +12 -10
  253. package/modules/amxIdSystem.js +23 -20
  254. package/modules/amxIdSystem.md +7 -7
  255. package/modules/appnexusBidAdapter.js +8 -8
  256. package/modules/appushBidAdapter.js +1 -1
  257. package/modules/apstreamBidAdapter.js +1 -1
  258. package/modules/atsAnalyticsAdapter.js +4 -2
  259. package/modules/audiencerunBidAdapter.js +9 -10
  260. package/modules/bedigitechBidAdapter.js +67 -0
  261. package/modules/bedigitechBidAdapter.md +32 -0
  262. package/modules/beyondmediaBidAdapter.js +1 -1
  263. package/modules/bluebillywigBidAdapter.js +2 -4
  264. package/modules/blueconicRtdProvider.js +2 -1
  265. package/modules/braveBidAdapter.js +1 -1
  266. package/modules/brightcomBidAdapter.js +1 -2
  267. package/modules/brightcomSSPBidAdapter.js +1 -2
  268. package/modules/browsiRtdProvider.js +4 -2
  269. package/modules/byDataAnalyticsAdapter.js +6 -3
  270. package/modules/coinzillaBidAdapter.js +1 -2
  271. package/modules/compassBidAdapter.js +1 -1
  272. package/modules/concertBidAdapter.js +14 -7
  273. package/modules/connectIdSystem.js +96 -21
  274. package/modules/connectIdSystem.md +6 -5
  275. package/modules/connectadBidAdapter.js +2 -4
  276. package/modules/contentexchangeBidAdapter.js +1 -1
  277. package/modules/craftBidAdapter.js +29 -24
  278. package/modules/criteoBidAdapter.js +4 -2
  279. package/modules/criteoIdSystem.js +6 -2
  280. package/modules/czechAdIdSystem.js +3 -2
  281. package/modules/dacIdSystem.js +4 -3
  282. package/modules/deepintentDpesIdSystem.js +3 -2
  283. package/modules/discoveryBidAdapter.js +1 -1
  284. package/modules/dspxBidAdapter.js +223 -15
  285. package/modules/fintezaAnalyticsAdapter.js +5 -3
  286. package/modules/fledgeForGpt.js +54 -6
  287. package/modules/freewheel-sspBidAdapter.js +8 -0
  288. package/modules/ftrackIdSystem.js +6 -6
  289. package/modules/gdprEnforcement.js +56 -68
  290. package/modules/glimpseBidAdapter.js +2 -6
  291. package/modules/globalsunBidAdapter.js +1 -1
  292. package/modules/gnetBidAdapter.js +1 -2
  293. package/modules/gravitoIdSystem.js +5 -3
  294. package/modules/greenbidsAnalyticsAdapter.js +181 -0
  295. package/modules/greenbidsAnalyticsAdapter.md +23 -0
  296. package/modules/gridBidAdapter.js +14 -8
  297. package/modules/gridNMBidAdapter.js +1 -1
  298. package/modules/growthCodeAnalyticsAdapter.js +3 -2
  299. package/modules/growthCodeIdSystem.js +21 -17
  300. package/modules/gumgumBidAdapter.js +8 -18
  301. package/modules/hadronAnalyticsAdapter.js +5 -3
  302. package/modules/hadronIdSystem.js +3 -1
  303. package/modules/hadronRtdProvider.js +4 -2
  304. package/modules/id5IdSystem.js +4 -2
  305. package/modules/idWardRtdProvider.js +2 -1
  306. package/modules/identityLinkIdSystem.js +5 -2
  307. package/modules/idxIdSystem.js +3 -2
  308. package/modules/imRtdProvider.js +3 -1
  309. package/modules/impactifyBidAdapter.js +2 -4
  310. package/modules/imuIdSystem.js +6 -3
  311. package/modules/insticatorBidAdapter.js +1 -1
  312. package/modules/intentIqIdSystem.js +3 -2
  313. package/modules/invibesBidAdapter.js +1 -1
  314. package/modules/iqzoneBidAdapter.js +1 -1
  315. package/modules/ivsBidAdapter.js +85 -0
  316. package/modules/ivsBidAdapter.md +34 -0
  317. package/modules/ixBidAdapter.js +43 -106
  318. package/modules/jixieBidAdapter.js +3 -6
  319. package/modules/jwplayerVideoProvider.js +25 -32
  320. package/modules/kargoBidAdapter.js +1 -1
  321. package/modules/koblerBidAdapter.js +1 -2
  322. package/modules/kueezBidAdapter.js +1 -1
  323. package/modules/kueezRtbBidAdapter.js +1 -1
  324. package/modules/liveIntentIdSystem.js +11 -2
  325. package/modules/lotamePanoramaIdSystem.js +3 -2
  326. package/modules/luponmediaBidAdapter.js +1 -1
  327. package/modules/magniteAnalyticsAdapter.js +101 -9
  328. package/modules/mathildeadsBidAdapter.js +1 -1
  329. package/modules/mediafuseBidAdapter.js +1 -1
  330. package/modules/mediagoBidAdapter.js +1 -1
  331. package/modules/mediakeysBidAdapter.js +2 -3
  332. package/modules/medianetBidAdapter.js +1 -1
  333. package/modules/merkleIdSystem.js +2 -1
  334. package/modules/mgidBidAdapter.js +179 -27
  335. package/modules/mgidRtdProvider.js +3 -1
  336. package/modules/minutemediaBidAdapter.js +1 -1
  337. package/modules/minutemediaplusBidAdapter.js +1 -1
  338. package/modules/mwOpenLinkIdSystem.js +3 -2
  339. package/modules/naveggIdSystem.js +3 -2
  340. package/modules/nexx360BidAdapter.js +0 -1
  341. package/modules/nobidBidAdapter.js +1 -1
  342. package/modules/novatiqIdSystem.js +6 -3
  343. package/modules/oguryBidAdapter.js +3 -2
  344. package/modules/onetagBidAdapter.js +1 -1
  345. package/modules/onomagicBidAdapter.js +1 -2
  346. package/modules/openxBidAdapter.js +192 -563
  347. package/modules/openxBidAdapter.md +22 -20
  348. package/modules/openxOrtbBidAdapter.js +24 -10
  349. package/modules/openxOrtbBidAdapter.md +11 -8
  350. package/modules/operaadsBidAdapter.js +1 -1
  351. package/modules/parrableIdSystem.js +4 -2
  352. package/modules/permutiveRtdProvider.js +2 -1
  353. package/modules/prebidServerBidAdapter/index.js +9 -3
  354. package/modules/prebidServerBidAdapter/ortbConverter.js +12 -2
  355. package/modules/prebidmanagerAnalyticsAdapter.js +3 -2
  356. package/modules/pubCommonId.js +6 -3
  357. package/modules/publinkIdSystem.js +2 -1
  358. package/modules/pubmaticAnalyticsAdapter.js +12 -1
  359. package/modules/pubmaticBidAdapter.js +193 -223
  360. package/modules/pubwiseAnalyticsAdapter.js +5 -3
  361. package/modules/pubxBidAdapter.js +5 -2
  362. package/modules/quantcastBidAdapter.js +1 -1
  363. package/modules/quantcastIdSystem.js +5 -3
  364. package/modules/realvuAnalyticsAdapter.js +6 -3
  365. package/modules/riseBidAdapter.js +1 -1
  366. package/modules/roxotAnalyticsAdapter.js +5 -2
  367. package/modules/rtbhouseBidAdapter.js +5 -3
  368. package/modules/rtdModule/index.js +3 -0
  369. package/modules/rubiconAnalyticsAdapter.js +3 -2
  370. package/modules/rubiconBidAdapter.js +1 -0
  371. package/modules/sharedIdSystem.js +16 -36
  372. package/modules/sharethroughBidAdapter.js +2 -3
  373. package/modules/shinezBidAdapter.js +1 -1
  374. package/modules/sigmoidAnalyticsAdapter.js +4 -2
  375. package/modules/smartadserverBidAdapter.js +2 -3
  376. package/modules/smarthubBidAdapter.js +1 -1
  377. package/modules/sovrnBidAdapter.js +2 -3
  378. package/modules/staqAnalyticsAdapter.js +5 -3
  379. package/modules/stroeerCoreBidAdapter.js +3 -2
  380. package/modules/synacormediaBidAdapter.js +1 -3
  381. package/modules/taboolaBidAdapter.js +4 -2
  382. package/modules/teadsBidAdapter.js +1 -1
  383. package/modules/teadsIdSystem.js +2 -1
  384. package/modules/tripleliftBidAdapter.js +1 -1
  385. package/modules/truereachBidAdapter.js +1 -2
  386. package/modules/trustpidSystem.js +3 -2
  387. package/modules/ttdBidAdapter.js +11 -5
  388. package/modules/uid2IdSystem.js +3 -2
  389. package/modules/undertoneBidAdapter.js +1 -0
  390. package/modules/userId/eids.js +18 -0
  391. package/modules/userId/eids.md +16 -0
  392. package/modules/userId/index.js +5 -2
  393. package/modules/validationFpdModule/index.js +3 -2
  394. package/modules/vidazooBidAdapter.js +14 -5
  395. package/modules/videoheroesBidAdapter.js +1 -1
  396. package/modules/vidoomyBidAdapter.js +51 -2
  397. package/modules/visiblemeasuresBidAdapter.js +1 -1
  398. package/modules/vrtcalBidAdapter.js +1 -1
  399. package/modules/weboramaRtdProvider.js +3 -1
  400. package/modules/yieldmoBidAdapter.js +2 -3
  401. package/modules/yieldoneBidAdapter.js +1 -1
  402. package/modules/yuktamediaAnalyticsAdapter.js +4 -2
  403. package/modules/zeotapIdPlusIdSystem.js +3 -2
  404. package/modules/zeta_global_sspBidAdapter.js +3 -0
  405. package/package.json +1 -1
  406. package/plugins/eslint/validateImports.js +13 -14
  407. package/plugins/pbjsGlobals.js +3 -1
  408. package/src/Renderer.js +2 -1
  409. package/src/activities/modules.js +5 -0
  410. package/src/adapterManager.js +4 -8
  411. package/src/adapters/bidderFactory.js +30 -16
  412. package/src/consentHandler.js +42 -0
  413. package/src/native.js +5 -1
  414. package/src/refererDetection.js +39 -21
  415. package/src/secureCreatives.js +2 -2
  416. package/src/storageManager.js +33 -47
  417. package/src/userSync.js +7 -4
  418. package/test/spec/auctionmanager_spec.js +2 -2
  419. package/test/spec/libraries/domainOverrideToRootDomain/index_spec.js +77 -0
  420. package/test/spec/modules/33acrossIdSystem_spec.js +1 -1
  421. package/test/spec/modules/acuityAdsBidAdapter_spec.js +2 -1
  422. package/test/spec/modules/adagioBidAdapter_spec.js +11 -17
  423. package/test/spec/modules/admixerIdSystem_spec.js +0 -3
  424. package/test/spec/modules/adnuntiusBidAdapter_spec.js +6 -6
  425. package/test/spec/modules/adrinoBidAdapter_spec.js +65 -34
  426. package/test/spec/modules/adsinteractiveBidAdapter_spec.js +207 -0
  427. package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -11
  428. package/test/spec/modules/aidemBidAdapter_spec.js +72 -8
  429. package/test/spec/modules/amxBidAdapter_spec.js +4 -1
  430. package/test/spec/modules/amxIdSystem_spec.js +13 -26
  431. package/test/spec/modules/appushBidAdapter_spec.js +2 -1
  432. package/test/spec/modules/atsAnalyticsAdapter_spec.js +2 -2
  433. package/test/spec/modules/audiencerunBidAdapter_spec.js +8 -11
  434. package/test/spec/modules/bedigitechBidAdapter_spec.js +145 -0
  435. package/test/spec/modules/beyondmediaBidAdapter_spec.js +2 -1
  436. package/test/spec/modules/bluebillywigBidAdapter_spec.js +1 -3
  437. package/test/spec/modules/compassBidAdapter_spec.js +2 -1
  438. package/test/spec/modules/concertBidAdapter_spec.js +3 -8
  439. package/test/spec/modules/connectIdSystem_spec.js +420 -242
  440. package/test/spec/modules/connectadBidAdapter_spec.js +11 -3
  441. package/test/spec/modules/contentexchangeBidAdapter_spec.js +2 -1
  442. package/test/spec/modules/criteoBidAdapter_spec.js +29 -0
  443. package/test/spec/modules/criteoIdSystem_spec.js +38 -0
  444. package/test/spec/modules/datablocksBidAdapter_spec.js +0 -1
  445. package/test/spec/modules/dspxBidAdapter_spec.js +184 -13
  446. package/test/spec/modules/eids_spec.js +30 -0
  447. package/test/spec/modules/fledge_spec.js +173 -2
  448. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +37 -0
  449. package/test/spec/modules/gdprEnforcement_spec.js +134 -164
  450. package/test/spec/modules/globalsunBidAdapter_spec.js +2 -1
  451. package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +418 -0
  452. package/test/spec/modules/gridBidAdapter_spec.js +9 -5
  453. package/test/spec/modules/growthCodeIdSystem_spec.js +2 -1
  454. package/test/spec/modules/id5IdSystem_spec.js +41 -4
  455. package/test/spec/modules/identityLinkIdSystem_spec.js +2 -2
  456. package/test/spec/modules/improvedigitalBidAdapter_spec.js +10 -3
  457. package/test/spec/modules/iqzoneBidAdapter_spec.js +2 -1
  458. package/test/spec/modules/ivsBidAdapter_spec.js +197 -0
  459. package/test/spec/modules/ixBidAdapter_spec.js +84 -71
  460. package/test/spec/modules/jixieBidAdapter_spec.js +42 -60
  461. package/test/spec/modules/koblerBidAdapter_spec.js +0 -20
  462. package/test/spec/modules/liveIntentIdSystem_spec.js +10 -0
  463. package/test/spec/modules/luponmediaBidAdapter_spec.js +1 -1
  464. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +129 -1
  465. package/test/spec/modules/mathildeadsBidAdapter_spec.js +2 -1
  466. package/test/spec/modules/mediakeysBidAdapter_spec.js +12 -16
  467. package/test/spec/modules/mgidBidAdapter_spec.js +184 -36
  468. package/test/spec/modules/oguryBidAdapter_spec.js +19 -4
  469. package/test/spec/modules/openxBidAdapter_spec.js +1157 -1936
  470. package/test/spec/modules/openxOrtbBidAdapter_spec.js +108 -50
  471. package/test/spec/modules/prebidServerBidAdapter_spec.js +68 -2
  472. package/test/spec/modules/publinkIdSystem_spec.js +3 -2
  473. package/test/spec/modules/pubmaticBidAdapter_spec.js +67 -10
  474. package/test/spec/modules/pubxBidAdapter_spec.js +10 -2
  475. package/test/spec/modules/realTimeDataModule_spec.js +22 -0
  476. package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -1
  477. package/test/spec/modules/relaidoBidAdapter_spec.js +5 -5
  478. package/test/spec/modules/rubiconBidAdapter_spec.js +2 -1
  479. package/test/spec/modules/sharedIdSystem_spec.js +0 -46
  480. package/test/spec/modules/sharethroughBidAdapter_spec.js +99 -22
  481. package/test/spec/modules/smartadserverBidAdapter_spec.js +74 -12
  482. package/test/spec/modules/smarthubBidAdapter_spec.js +2 -1
  483. package/test/spec/modules/sovrnBidAdapter_spec.js +25 -6
  484. package/test/spec/modules/stroeerCoreBidAdapter_spec.js +13 -18
  485. package/test/spec/modules/synacormediaBidAdapter_spec.js +0 -26
  486. package/test/spec/modules/taboolaBidAdapter_spec.js +101 -0
  487. package/test/spec/modules/ttdBidAdapter_spec.js +25 -7
  488. package/test/spec/modules/userId_spec.js +68 -0
  489. package/test/spec/modules/vidazooBidAdapter_spec.js +13 -0
  490. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +17 -4
  491. package/test/spec/modules/vidoomyBidAdapter_spec.js +68 -0
  492. package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +2 -1
  493. package/test/spec/modules/vrtcalBidAdapter_spec.js +3 -2
  494. package/test/spec/modules/yieldmoBidAdapter_spec.js +18 -2
  495. package/test/spec/modules/zeotapIdPlusIdSystem_spec.js +3 -2
  496. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +8 -0
  497. package/test/spec/refererDetection_spec.js +56 -1
  498. package/test/spec/renderer_spec.js +1 -2
  499. package/test/spec/unit/core/adapterManager_spec.js +21 -58
  500. package/test/spec/unit/core/bidderFactory_spec.js +28 -10
  501. package/test/spec/unit/core/consentHandler_spec.js +29 -1
  502. package/test/spec/unit/core/storageManager_spec.js +31 -21
  503. package/test/spec/userSync_spec.js +2 -1
@@ -1,51 +1,30 @@
1
1
  import {hook} from './hook.js';
2
- import {hasDeviceAccess, checkCookieSupport, logError, logInfo, isPlainObject} from './utils.js';
2
+ import {checkCookieSupport, hasDeviceAccess, logError, logInfo} from './utils.js';
3
3
  import {bidderSettings as defaultBidderSettings} from './bidderSettings.js';
4
- import {VENDORLESS_GVLID} from './consentHandler.js';
5
-
6
- const moduleTypeWhiteList = ['core', 'prebid-module'];
7
-
8
- export let storageCallbacks = [];
4
+ import {MODULE_TYPE_BIDDER, MODULE_TYPE_CORE} from './activities/modules.js';
9
5
 
10
6
  export const STORAGE_TYPE_LOCALSTORAGE = 'html5';
11
7
  export const STORAGE_TYPE_COOKIES = 'cookie';
12
8
 
13
- /**
14
- * Storage options
15
- * @typedef {Object} storageOptions
16
- * @property {Number=} gvlid - Vendor id
17
- * @property {string} moduleName? - Module name
18
- * @property {string=} bidderCode? - Bidder code
19
- * @property {string=} moduleType - Module type, value can be anyone of core or prebid-module
20
- */
9
+ export let storageCallbacks = [];
21
10
 
22
- /**
23
- * Returns list of storage related functions with gvlid, module name and module type in its scope.
24
- * All three argument are optional here. Below shows the usage of of these
25
- * - GVL Id: Pass GVL id if you are a vendor
26
- * - Bidder code: All bid adapters need to pass bidderCode
27
- * - Module name: All other modules need to pass module name
28
- * - Module type: Some modules may need these functions but are not vendor. e.g prebid core files in src and modules like currency.
29
- * @param {storageOptions} options
11
+ /*
12
+ * Storage manager constructor. Consumers should prefer one of `getStorageManager` or `getCoreStorageManager`.
30
13
  */
31
- export function newStorageManager({gvlid, moduleName, bidderCode, moduleType} = {}, {bidderSettings = defaultBidderSettings} = {}) {
14
+ export function newStorageManager({moduleName, moduleType} = {}, {bidderSettings = defaultBidderSettings} = {}) {
32
15
  function isBidderAllowed(storageType) {
33
- if (bidderCode == null) {
16
+ if (moduleType !== MODULE_TYPE_BIDDER) {
34
17
  return true;
35
18
  }
36
- const storageAllowed = bidderSettings.get(bidderCode, 'storageAllowed');
19
+ const storageAllowed = bidderSettings.get(moduleName, 'storageAllowed');
37
20
  if (!storageAllowed || storageAllowed === true) return !!storageAllowed;
38
21
  if (Array.isArray(storageAllowed)) return storageAllowed.some((e) => e === storageType);
39
22
  return storageAllowed === storageType;
40
23
  }
41
24
 
42
- if (moduleTypeWhiteList.includes(moduleType)) {
43
- gvlid = gvlid || VENDORLESS_GVLID;
44
- }
45
-
46
25
  function isValid(cb, storageType) {
47
26
  if (!isBidderAllowed(storageType)) {
48
- logInfo(`bidderSettings denied access to device storage for bidder '${bidderCode}'`);
27
+ logInfo(`bidderSettings denied access to device storage for bidder '${moduleName}'`);
49
28
  const result = {valid: false};
50
29
  return cb(result);
51
30
  } else {
@@ -53,7 +32,7 @@ export function newStorageManager({gvlid, moduleName, bidderCode, moduleType} =
53
32
  let hookDetails = {
54
33
  hasEnforcementHook: false
55
34
  }
56
- validateStorageEnforcement(gvlid, bidderCode || moduleName, hookDetails, function(result) {
35
+ validateStorageEnforcement(moduleType, moduleName, hookDetails, function(result) {
57
36
  if (result && result.hasEnforcementHook) {
58
37
  value = cb(result);
59
38
  } else {
@@ -252,31 +231,38 @@ export function newStorageManager({gvlid, moduleName, bidderCode, moduleType} =
252
231
  /**
253
232
  * This hook validates the storage enforcement if gdprEnforcement module is included
254
233
  */
255
- export const validateStorageEnforcement = hook('async', function(gvlid, moduleName, hookDetails, callback) {
234
+ export const validateStorageEnforcement = hook('async', function(moduleType, moduleName, hookDetails, callback) {
256
235
  callback(hookDetails);
257
236
  }, 'validateStorageEnforcement');
258
237
 
259
238
  /**
260
- * This function returns storage functions to access cookies and localstorage. This function will bypass the gdpr enforcement requirement. Prebid as a software needs to use storage in some scenarios and is not a vendor so GDPR enforcement rules does not apply on Prebid.
261
- * @param {string} moduleName Module name
239
+ * Get a storage manager for a particular module.
240
+ *
241
+ * Either bidderCode or a combination of moduleType + moduleName must be provided. The former is a shorthand
242
+ * for `{moduleType: 'bidder', moduleName: bidderCode}`.
243
+ *
262
244
  */
263
- export function getCoreStorageManager(moduleName) {
264
- return newStorageManager({moduleName: moduleName, moduleType: 'core'});
245
+ export function getStorageManager({moduleType, moduleName, bidderCode} = {}) {
246
+ function err() {
247
+ throw new Error(`Invalid invocation for getStorageManager: must set either bidderCode, or moduleType + moduleName`)
248
+ }
249
+ if (bidderCode) {
250
+ if ((moduleType && moduleType !== MODULE_TYPE_BIDDER) || moduleName) err()
251
+ moduleType = MODULE_TYPE_BIDDER;
252
+ moduleName = bidderCode;
253
+ } else if (!moduleName || !moduleType) {
254
+ err()
255
+ }
256
+ return newStorageManager({moduleType, moduleName});
265
257
  }
266
258
 
267
259
  /**
268
- * Note: Core modules or Prebid modules like Currency, SizeMapping should use getCoreStorageManager
269
- * This function returns storage functions to access cookies and localstorage. Bidders and User id modules should import this and use it in their module if needed.
270
- * Bid adapters should always provide `bidderCode`. GVL ID and Module name are optional param but gvl id is needed for when gdpr enforcement module is used.
271
- * @param {Number=} gvlid? Vendor id - required for proper GDPR integration
272
- * @param {string=} bidderCode? - required for bid adapters
273
- * @param {string=} moduleName? module name
260
+ * Get a storage manager for "core" (vendorless, or first-party) modules. Shorthand for `getStorageManager({moduleName, moduleType: 'core'})`.
261
+ *
262
+ * @param {string} moduleName Module name
274
263
  */
275
- export function getStorageManager({gvlid, moduleName, bidderCode} = {}) {
276
- if (arguments.length > 1 || (arguments.length > 0 && !isPlainObject(arguments[0]))) {
277
- throw new Error('Invalid invocation for getStorageManager')
278
- }
279
- return newStorageManager({gvlid, moduleName, bidderCode});
264
+ export function getCoreStorageManager(moduleName) {
265
+ return newStorageManager({moduleName: moduleName, moduleType: MODULE_TYPE_CORE});
280
266
  }
281
267
 
282
268
  export function resetData() {
package/src/userSync.js CHANGED
@@ -109,10 +109,7 @@ export function newUserSync(userSyncDependencies) {
109
109
  // Randomize the order of the pixels before firing
110
110
  // This is to avoid giving any bidder who has registered multiple syncs
111
111
  // any preferential treatment and balancing them out
112
- shuffle(queue).forEach((sync) => {
113
- fn(sync);
114
- hasFiredBidder.add(sync[0]);
115
- });
112
+ shuffle(queue).forEach(fn);
116
113
  }
117
114
 
118
115
  /**
@@ -212,6 +209,12 @@ export function newUserSync(userSyncDependencies) {
212
209
  numAdapterBids = incrementAdapterBids(numAdapterBids, bidder);
213
210
  };
214
211
 
212
+ /**
213
+ * Mark a bidder as done with its user syncs - no more will be accepted from them in this session.
214
+ * @param {string} bidderCode
215
+ */
216
+ publicApi.bidderDone = hasFiredBidder.add.bind(hasFiredBidder);
217
+
215
218
  /**
216
219
  * @function shouldBidderBeBlocked
217
220
  * @summary Check filterSettings logic to determine if the bidder should be prevented from registering their userSync tracker
@@ -1403,8 +1403,8 @@ describe('auctionmanager.js', function () {
1403
1403
  assert.equal(addedBid.native.title, 'Sample title')
1404
1404
  assert.equal(addedBid.native.sponsoredBy, 'Sample sponsoredBy')
1405
1405
  assert.equal(addedBid.native.clickUrl, 'http://www.click.com')
1406
- assert.equal(addedBid.native.image, 'https://www.example.com/image.png')
1407
- assert.equal(addedBid.native.icon, 'https://www.example.com/icon.png')
1406
+ assert.equal(addedBid.native.image.url, 'https://www.example.com/image.png')
1407
+ assert.equal(addedBid.native.icon.url, 'https://www.example.com/icon.png')
1408
1408
  assert.equal(addedBid.native.impressionTrackers[0], 'http://www.imptracker.com')
1409
1409
  assert.equal(addedBid.native.javascriptTrackers, '<script async src="http://www.jstracker.com/file.js"></script>')
1410
1410
  });
@@ -0,0 +1,77 @@
1
+ import {domainOverrideToRootDomain} from 'libraries/domainOverrideToRootDomain/index.js';
2
+ import {getStorageManager} from 'src/storageManager.js';
3
+ import {MODULE_TYPE_UID} from '../../../../src/activities/modules';
4
+
5
+ const storage = getStorageManager({ moduleName: 'test', moduleType: MODULE_TYPE_UID });
6
+ const domainOverride = domainOverrideToRootDomain(storage, 'test');
7
+
8
+ describe('domainOverride', () => {
9
+ let sandbox, domain, cookies, rejectCookiesFor;
10
+ let setCookieStub;
11
+
12
+ beforeEach(() => {
13
+ sandbox = sinon.createSandbox();
14
+ sandbox.stub(document, 'domain').get(() => domain);
15
+ cookies = {};
16
+ sandbox.stub(storage, 'getCookie').callsFake((key) => cookies[key]);
17
+ rejectCookiesFor = null;
18
+ setCookieStub = sandbox.stub(storage, 'setCookie').callsFake((key, value, expires, sameSite, domain) => {
19
+ if (domain !== rejectCookiesFor) {
20
+ if (expires != null) {
21
+ expires = new Date(expires);
22
+ }
23
+ if (expires == null || expires > Date.now()) {
24
+ cookies[key] = value;
25
+ } else {
26
+ delete cookies[key];
27
+ }
28
+ }
29
+ });
30
+ });
31
+
32
+ afterEach(() => sandbox.restore())
33
+
34
+ it('test cookies include the module name', () => {
35
+ domain = 'greatpublisher.com'
36
+ rejectCookiesFor = 'greatpublisher.com'
37
+
38
+ // stub Date.now() to return a constant value
39
+ sandbox.stub(Date, 'now').returns(1234567890)
40
+
41
+ const randomName = `adapterV${(Math.random() * 1e8).toString(16)}`
42
+ const localDomainOverride = domainOverrideToRootDomain(storage, randomName)
43
+
44
+ const time = Date.now();
45
+ localDomainOverride();
46
+
47
+ sandbox.assert.callCount(setCookieStub, 2)
48
+ sandbox.assert.calledWith(setCookieStub, `_gd${time}_${randomName}`, '1', undefined, undefined, 'greatpublisher.com')
49
+ });
50
+
51
+ it('will return the root domain when given a subdomain', () => {
52
+ const test_domains = [
53
+ 'deeply.nested.subdomain.for.greatpublisher.com',
54
+ 'greatpublisher.com',
55
+ 'subdomain.greatpublisher.com',
56
+ 'a-subdomain.greatpublisher.com',
57
+ ];
58
+
59
+ test_domains.forEach((testDomain) => {
60
+ domain = testDomain
61
+ rejectCookiesFor = 'com'
62
+ expect(domainOverride()).to.equal('greatpublisher.com');
63
+ });
64
+ });
65
+
66
+ it(`If we can't set cookies on the root domain, we'll return the subdomain`, () => {
67
+ domain = 'subdomain.greatpublisher.com'
68
+ rejectCookiesFor = 'greatpublisher.com'
69
+ expect(domainOverride()).to.equal('subdomain.greatpublisher.com');
70
+ });
71
+
72
+ it('Will return undefined if we can\'t set cookies on the root domain or the subdomain', () => {
73
+ domain = 'subdomain.greatpublisher.com'
74
+ rejectCookiesFor = 'subdomain.greatpublisher.com'
75
+ expect(domainOverride()).to.equal(undefined);
76
+ });
77
+ });
@@ -282,7 +282,7 @@ describe('33acrossIdSystem', () => {
282
282
  error: 'foo'
283
283
  }));
284
284
 
285
- expect(logErrorSpy.calledOnceWithExactly(`${thirthyThreeAcrossIdSubmodule.name}: Unsuccessful response`)).to.be.true;
285
+ expect(logErrorSpy.calledOnceWithExactly(`${thirthyThreeAcrossIdSubmodule.name}: Unsuccessful response foo`)).to.be.true;
286
286
 
287
287
  logErrorSpy.restore();
288
288
  });
@@ -76,7 +76,8 @@ describe('AcuityAdsBidAdapter', function () {
76
76
  gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
77
77
  refererInfo: {
78
78
  referer: 'https://test.com'
79
- }
79
+ },
80
+ timeout: 500
80
81
  };
81
82
 
82
83
  describe('isBidRequestValid', function () {
@@ -684,32 +684,26 @@ describe('Adagio bid adapter', () => {
684
684
  });
685
685
 
686
686
  describe('with userID modules', function() {
687
- const userId = {
688
- pubcid: '01EAJWWNEPN3CYMM5N8M5VXY22',
689
- unsuported: '666'
690
- };
687
+ const userIdAsEids = [{
688
+ 'source': 'pubcid.org',
689
+ 'uids': [
690
+ {
691
+ 'atype': 1,
692
+ 'id': '01EAJWWNEPN3CYMM5N8M5VXY22'
693
+ }
694
+ ]
695
+ }];
691
696
 
692
697
  it('should send "user.eids" in the request for Prebid.js supported modules only', function() {
693
698
  const bid01 = new BidRequestBuilder({
694
- userId
699
+ userIdAsEids
695
700
  }).withParams().build();
696
701
 
697
702
  const bidderRequest = new BidderRequestBuilder().build();
698
703
 
699
704
  const requests = spec.buildRequests([bid01], bidderRequest);
700
705
 
701
- const expected = [{
702
- source: 'pubcid.org',
703
- uids: [
704
- {
705
- atype: 1,
706
- id: '01EAJWWNEPN3CYMM5N8M5VXY22'
707
- }
708
- ]
709
- }];
710
-
711
- expect(requests[0].data.user.eids).to.have.lengthOf(1);
712
- expect(requests[0].data.user.eids).to.deep.equal(expected);
706
+ expect(requests[0].data.user.eids).to.deep.equal(userIdAsEids);
713
707
  });
714
708
 
715
709
  it('should send an empty "user.eids" array in the request if userId module is unsupported', function() {
@@ -1,9 +1,6 @@
1
1
  import {admixerIdSubmodule} from 'modules/admixerIdSystem.js';
2
2
  import * as utils from 'src/utils.js';
3
3
  import {server} from 'test/mocks/xhr.js';
4
- import {getStorageManager} from '../../../src/storageManager.js';
5
-
6
- export const storage = getStorageManager();
7
4
 
8
5
  const pid = '4D393FAC-B6BB-4E19-8396-0A4813607316';
9
6
  const getIdParams = {params: {pid: pid}};
@@ -13,21 +13,21 @@ describe('adnuntiusBidAdapter', function () {
13
13
  const meta = [{ key: 'usi', value: usi }]
14
14
 
15
15
  before(() => {
16
- const storage = getStorageManager({ gvlid: GVLID, moduleName: 'adnuntius' })
17
- storage.setDataInLocalStorage('adn.metaData', JSON.stringify(meta))
18
- });
19
-
20
- beforeEach(function () {
21
16
  $$PREBID_GLOBAL$$.bidderSettings = {
22
17
  adnuntius: {
23
18
  storageAllowed: true
24
19
  }
25
20
  };
21
+ const storage = getStorageManager({ bidderCode: 'adnuntius' })
22
+ storage.setDataInLocalStorage('adn.metaData', JSON.stringify(meta))
23
+ });
24
+
25
+ after(() => {
26
+ $$PREBID_GLOBAL$$.bidderSettings = {};
26
27
  });
27
28
 
28
29
  afterEach(function () {
29
30
  config.resetConfig();
30
- $$PREBID_GLOBAL$$.bidderSettings = {};
31
31
  });
32
32
 
33
33
  const tzo = new Date().getTimezoneOffset();
@@ -86,16 +86,16 @@ describe('adrinoBidAdapter', function () {
86
86
  );
87
87
  expect(result.length).to.equal(1);
88
88
  expect(result[0].method).to.equal('POST');
89
- expect(result[0].url).to.equal('https://stg-prebid-bidder.adrino.io/bidder/bid/');
90
- expect(result[0].data.bidId).to.equal('12345678901234');
91
- expect(result[0].data.placementHash).to.equal('abcdef123456');
92
- expect(result[0].data.referer).to.equal('http://example.com/');
93
- expect(result[0].data.userAgent).to.equal(navigator.userAgent);
94
- expect(result[0].data).to.have.property('nativeParams');
95
- expect(result[0].data).not.to.have.property('gdprConsent');
96
- expect(result[0].data).to.have.property('userId');
97
- expect(result[0].data.userId.criteoId).to.equal('2xqi3F94aHdwWnM3');
98
- expect(result[0].data.userId.pubcid).to.equal('3ec0b202-7697');
89
+ expect(result[0].url).to.equal('https://stg-prebid-bidder.adrino.io/bidder/bids/');
90
+ expect(result[0].data[0].bidId).to.equal('12345678901234');
91
+ expect(result[0].data[0].placementHash).to.equal('abcdef123456');
92
+ expect(result[0].data[0].referer).to.equal('http://example.com/');
93
+ expect(result[0].data[0].userAgent).to.equal(navigator.userAgent);
94
+ expect(result[0].data[0]).to.have.property('nativeParams');
95
+ expect(result[0].data[0]).not.to.have.property('gdprConsent');
96
+ expect(result[0].data[0]).to.have.property('userId');
97
+ expect(result[0].data[0].userId.criteoId).to.equal('2xqi3F94aHdwWnM3');
98
+ expect(result[0].data[0].userId.pubcid).to.equal('3ec0b202-7697');
99
99
  });
100
100
 
101
101
  it('should build the request correctly with gdpr', function () {
@@ -105,16 +105,16 @@ describe('adrinoBidAdapter', function () {
105
105
  );
106
106
  expect(result.length).to.equal(1);
107
107
  expect(result[0].method).to.equal('POST');
108
- expect(result[0].url).to.equal('https://prd-prebid-bidder.adrino.io/bidder/bid/');
109
- expect(result[0].data.bidId).to.equal('12345678901234');
110
- expect(result[0].data.placementHash).to.equal('abcdef123456');
111
- expect(result[0].data.referer).to.equal('http://example.com/');
112
- expect(result[0].data.userAgent).to.equal(navigator.userAgent);
113
- expect(result[0].data).to.have.property('nativeParams');
114
- expect(result[0].data).to.have.property('gdprConsent');
115
- expect(result[0].data).to.have.property('userId');
116
- expect(result[0].data.userId.criteoId).to.equal('2xqi3F94aHdwWnM3');
117
- expect(result[0].data.userId.pubcid).to.equal('3ec0b202-7697');
108
+ expect(result[0].url).to.equal('https://prd-prebid-bidder.adrino.io/bidder/bids/');
109
+ expect(result[0].data[0].bidId).to.equal('12345678901234');
110
+ expect(result[0].data[0].placementHash).to.equal('abcdef123456');
111
+ expect(result[0].data[0].referer).to.equal('http://example.com/');
112
+ expect(result[0].data[0].userAgent).to.equal(navigator.userAgent);
113
+ expect(result[0].data[0]).to.have.property('nativeParams');
114
+ expect(result[0].data[0]).to.have.property('gdprConsent');
115
+ expect(result[0].data[0]).to.have.property('userId');
116
+ expect(result[0].data[0].userId.criteoId).to.equal('2xqi3F94aHdwWnM3');
117
+ expect(result[0].data[0].userId.pubcid).to.equal('3ec0b202-7697');
118
118
  });
119
119
 
120
120
  it('should build the request correctly without gdpr', function () {
@@ -124,22 +124,22 @@ describe('adrinoBidAdapter', function () {
124
124
  );
125
125
  expect(result.length).to.equal(1);
126
126
  expect(result[0].method).to.equal('POST');
127
- expect(result[0].url).to.equal('https://prd-prebid-bidder.adrino.io/bidder/bid/');
128
- expect(result[0].data.bidId).to.equal('12345678901234');
129
- expect(result[0].data.placementHash).to.equal('abcdef123456');
130
- expect(result[0].data.referer).to.equal('http://example.com/');
131
- expect(result[0].data.userAgent).to.equal(navigator.userAgent);
132
- expect(result[0].data).to.have.property('nativeParams');
133
- expect(result[0].data).not.to.have.property('gdprConsent');
134
- expect(result[0].data).to.have.property('userId');
135
- expect(result[0].data.userId.criteoId).to.equal('2xqi3F94aHdwWnM3');
136
- expect(result[0].data.userId.pubcid).to.equal('3ec0b202-7697');
127
+ expect(result[0].url).to.equal('https://prd-prebid-bidder.adrino.io/bidder/bids/');
128
+ expect(result[0].data[0].bidId).to.equal('12345678901234');
129
+ expect(result[0].data[0].placementHash).to.equal('abcdef123456');
130
+ expect(result[0].data[0].referer).to.equal('http://example.com/');
131
+ expect(result[0].data[0].userAgent).to.equal(navigator.userAgent);
132
+ expect(result[0].data[0]).to.have.property('nativeParams');
133
+ expect(result[0].data[0]).not.to.have.property('gdprConsent');
134
+ expect(result[0].data[0]).to.have.property('userId');
135
+ expect(result[0].data[0].userId.criteoId).to.equal('2xqi3F94aHdwWnM3');
136
+ expect(result[0].data[0].userId.pubcid).to.equal('3ec0b202-7697');
137
137
  });
138
138
  });
139
139
 
140
140
  describe('interpretResponse', function () {
141
141
  it('should interpret the response correctly', function () {
142
- const response = {
142
+ const response1 = {
143
143
  requestId: '31662c69728811',
144
144
  mediaType: 'native',
145
145
  cpm: 0.53,
@@ -167,13 +167,44 @@ describe('adrinoBidAdapter', function () {
167
167
  }
168
168
  };
169
169
 
170
+ const response2 = {
171
+ requestId: '31662c69728812',
172
+ mediaType: 'native',
173
+ cpm: 0.77,
174
+ currency: 'PLN',
175
+ creativeId: '859120',
176
+ netRevenue: true,
177
+ ttl: 600,
178
+ width: 1,
179
+ height: 1,
180
+ noAd: false,
181
+ testAd: false,
182
+ native: {
183
+ title: 'Ad Title',
184
+ body: 'Ad Body',
185
+ image: {
186
+ url: 'http://emisja.contentstream.pl/_/getImageII/?vid=17180728299&typ=cs_300_150&element=IMAGE&scale=1&prefix=adart&nc=1643878278955',
187
+ height: 150,
188
+ width: 300
189
+ },
190
+ clickUrl: 'http://emisja.contentstream.pl/_/ctr2/?u=https%3A%2F%2Fonline.efortuna.pl%2Fpage%3Fkey%3Dej0xMzUzMTM1NiZsPTE1Mjc1MzY1JnA9NTMyOTA%253D&e=znU3tABN8K4N391dmUxYfte5G9tBaDXELJVo1_-kvaTJH2XwWRw77fmfL2YjcEmrbqRQ3M0GcJ0vPWcLtZlsrf8dWrAEHNoZKAC6JMnZF_65IYhTPbQIJ-zn3ac9TU7gEZftFKksH1al7rMuieleVv9r6_DtrOk_oZcYAe4rMRQM-TiWvivJRPBchAAblE0cqyG7rCunJFpal43sxlYm4GvcBJaYHzErn5PXjEzNbd3xHjkdiap-xU9y6BbfkUZ1xIMS8QZLvwNrTXMFCSfSRN2tgVfEj7KyGdLCITHSaFtuIKT2iW2pxC7f2RtPHnzsEPXH0SgAfhA3OxZ5jkQjOZy0PsO7MiCv3sJai5ezUAOjFgayU91ZhI0Y9r2YpB1tTGIjnO23wot8PvRENlThHQ%3D%3D&ref=https%3A%2F%2Fbox.adrino.cloud%2Ftmielcarz%2Fadrino_prebid%2Ftest_page3.html%3Fpbjs_debug%3Dtrue',
191
+ privacyLink: 'https://adrino.pl/wp-content/uploads/2021/01/POLITYKA-PRYWATNOS%CC%81CI-Adrino-Mobile.pdf',
192
+ impressionTrackers: [
193
+ 'https://prd-impression-tracker-producer.adrino.io/impression/eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ7XCJpbXByZXNzaW9uSWRcIjpcIjMxNjYyYzY5NzI4ODExXCIsXCJkYXRlXCI6WzIwMjIsMiwzXSxcInBsYWNlbWVudEhhc2hcIjpcIjk0NTVjMDQxYzlkMTI1ZmIwNDE4MWVhMGVlZTJmMmFlXCIsXCJjYW1wYWlnbklkXCI6MTc5MjUsXCJhZHZlcnRpc2VtZW50SWRcIjo5MjA3OSxcInZpc3VhbGlzYXRpb25JZFwiOjg1OTExNSxcImNwbVwiOjUzLjB9IiwiZXhwIjoxNjQzOTE2MjUxLCJpYXQiOjE2NDM5MTU2NTF9.0Y_HvInGl6Xo5xP6rDLC8lzQRGvy-wKe0blk1o8ebWyVRFiUY1JGLUeE0k3sCsPNxgdHAv-o6EcbogpUuqlMJA'
194
+ ]
195
+ }
196
+ };
197
+
170
198
  const serverResponse = {
171
- body: response
199
+ body: { bidResponses: [response1, response2] }
172
200
  };
173
201
 
174
202
  const result = spec.interpretResponse(serverResponse, {});
175
- expect(result.length).to.equal(1);
176
- expect(result[0]).to.equal(response);
203
+ expect(result.length).to.equal(2);
204
+ expect(result[0]).to.equal(response1);
205
+ expect(result[0].requestId).to.equal('31662c69728811');
206
+ expect(result[1]).to.equal(response2);
207
+ expect(result[1].requestId).to.equal('31662c69728812');
177
208
  });
178
209
 
179
210
  it('should return empty array of responses', function () {