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,14 +1,33 @@
1
- import { generateUUID, mergeDeep, deepAccess, parseUrl, logError, pick, isEmpty, logWarn, debugTurnedOn, parseQS, getWindowLocation, isAdUnitCodeMatchingSlot, isNumber, deepSetValue, deepClone, logInfo, isGptPubadsDefined } from '../src/utils.js';
1
+ import {
2
+ debugTurnedOn,
3
+ deepAccess,
4
+ deepClone,
5
+ deepSetValue,
6
+ generateUUID,
7
+ getWindowLocation,
8
+ isAdUnitCodeMatchingSlot,
9
+ isEmpty,
10
+ isGptPubadsDefined,
11
+ isNumber,
12
+ logError,
13
+ logInfo,
14
+ logWarn,
15
+ mergeDeep,
16
+ parseQS,
17
+ parseUrl,
18
+ pick
19
+ } from '../src/utils.js';
2
20
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
21
  import adapterManager from '../src/adapterManager.js';
4
22
  import CONSTANTS from '../src/constants.json';
5
- import { ajax } from '../src/ajax.js';
6
- import { config } from '../src/config.js';
7
- import { getGlobal } from '../src/prebidGlobal.js';
8
- import { getStorageManager } from '../src/storageManager.js';
23
+ import {ajax} from '../src/ajax.js';
24
+ import {config} from '../src/config.js';
25
+ import {getGlobal} from '../src/prebidGlobal.js';
26
+ import {getStorageManager} from '../src/storageManager.js';
27
+ import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
9
28
 
10
29
  const RUBICON_GVL_ID = 52;
11
- export const storage = getStorageManager({ gvlid: RUBICON_GVL_ID, moduleName: 'magnite' });
30
+ export const storage = getStorageManager({ moduleType: MODULE_TYPE_ANALYTICS, moduleName: 'magnite' });
12
31
  const COOKIE_NAME = 'mgniSession';
13
32
  const LAST_SEEN_EXPIRE_TIME = 1800000; // 30 mins
14
33
  const END_EXPIRE_TIME = 21600000; // 6 hours
@@ -37,7 +56,8 @@ const {
37
56
  BIDDER_DONE,
38
57
  BID_TIMEOUT,
39
58
  BID_WON,
40
- BILLABLE_EVENT
59
+ BILLABLE_EVENT,
60
+ SEAT_NON_BID
41
61
  },
42
62
  STATUS: {
43
63
  GOOD,
@@ -464,7 +484,7 @@ const findMatchingAdUnitFromAuctions = (matchesFunction, returnFirstMatch) => {
464
484
  }
465
485
  }
466
486
  return matches;
467
- }
487
+ };
468
488
 
469
489
  const getRenderingIds = bidWonData => {
470
490
  // if bid caching off -> return the bidWon auction id
@@ -821,7 +841,16 @@ magniteAdapter.track = ({ eventType, args }) => {
821
841
  auctionEntry.floors.dealsEnforced = args.floorData.enforcements.floorDeals;
822
842
  }
823
843
 
824
- // Log error if no matching bid!
844
+ // no-bid from server. report it!
845
+ if (!bid && args.seatBidId) {
846
+ bid = adUnit.bids[args.seatBidId] = {
847
+ bidder: args.bidderCode,
848
+ source: 'server',
849
+ bidId: args.seatBidId,
850
+ unknownBid: true
851
+ };
852
+ }
853
+
825
854
  if (!bid) {
826
855
  logError(`${MODULE_NAME}: Could not find associated bid request for bid response with requestId: `, args.requestId);
827
856
  break;
@@ -852,6 +881,9 @@ magniteAdapter.track = ({ eventType, args }) => {
852
881
  bid.pbsBidId = pbsBidId;
853
882
  }
854
883
  break;
884
+ case SEAT_NON_BID:
885
+ handleNonBidEvent(args);
886
+ break;
855
887
  case BIDDER_DONE:
856
888
  const serverError = deepAccess(args, 'serverErrors.0');
857
889
  const serverResponseTimeMs = args.serverResponseTimeMs;
@@ -939,6 +971,66 @@ magniteAdapter.track = ({ eventType, args }) => {
939
971
  }
940
972
  };
941
973
 
974
+ const handleNonBidEvent = function(args) {
975
+ const {seatnonbid, auctionId} = args;
976
+ const auction = deepAccess(cache, `auctions.${auctionId}.auction`);
977
+ // if no auction just bail
978
+ if (!auction) {
979
+ logWarn(`Unable to match nonbid to auction`);
980
+ return;
981
+ }
982
+ const adUnits = auction.adUnits;
983
+ seatnonbid.forEach(seatnonbid => {
984
+ let {seat} = seatnonbid;
985
+ seatnonbid.nonbid.forEach(nonbid => {
986
+ try {
987
+ const {status, impid} = nonbid;
988
+ const matchingTid = Object.keys(adUnits).find(tid => adUnits[tid].adUnitCode === impid);
989
+ const adUnit = adUnits[matchingTid];
990
+ const statusInfo = statusMap[status] || { status: 'no-bid' };
991
+ adUnit.bids[generateUUID()] = {
992
+ bidder: seat,
993
+ source: 'server',
994
+ isSeatNonBid: true,
995
+ clientLatencyMillis: Date.now() - auction.auctionStart,
996
+ ...statusInfo
997
+ };
998
+ } catch (error) {
999
+ logWarn(`Unable to match nonbid to adUnit`);
1000
+ }
1001
+ });
1002
+ });
1003
+ };
1004
+
1005
+ const statusMap = {
1006
+ 0: {
1007
+ status: 'no-bid'
1008
+ },
1009
+ 100: {
1010
+ status: 'error',
1011
+ error: {
1012
+ code: 'request-error',
1013
+ description: 'general error'
1014
+ }
1015
+ },
1016
+ 101: {
1017
+ status: 'error',
1018
+ error: {
1019
+ code: 'timeout-error',
1020
+ description: 'prebid server timeout'
1021
+ }
1022
+ },
1023
+ 200: {
1024
+ status: 'rejected'
1025
+ },
1026
+ 202: {
1027
+ status: 'rejected'
1028
+ },
1029
+ 301: {
1030
+ status: 'rejected-ipf'
1031
+ }
1032
+ };
1033
+
942
1034
  adapterManager.registerAnalyticsAdapter({
943
1035
  adapter: magniteAdapter,
944
1036
  code: 'magnite',
@@ -155,7 +155,7 @@ export const spec = {
155
155
  coppa: config.getConfig('coppa') === true ? 1 : 0,
156
156
  ccpa: bidderRequest.uspConsent || undefined,
157
157
  gdpr: bidderRequest.gdprConsent || undefined,
158
- tmax: config.getConfig('bidderTimeout')
158
+ tmax: bidderRequest.timeout
159
159
  };
160
160
 
161
161
  const len = validBidRequests.length;
@@ -62,7 +62,7 @@ const SCRIPT_TAG_START = '<script';
62
62
  const VIEWABILITY_URL_START = /\/\/cdn\.adnxs\.com\/v|\/\/cdn\.adnxs\-simple\.com\/v/;
63
63
  const VIEWABILITY_FILE_NAME = 'trk.js';
64
64
  const GVLID = 32;
65
- const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
65
+ const storage = getStorageManager({bidderCode: BIDDER_CODE});
66
66
 
67
67
  export const spec = {
68
68
  code: BIDDER_CODE,
@@ -15,7 +15,7 @@ const ENDPOINT_URL =
15
15
  'https://rtb-us.mediago.io/api/bid?tn=';
16
16
  const TIME_TO_LIVE = 500;
17
17
  // const ENDPOINT_URL = '/api/bid?tn=';
18
- const storage = getStorageManager();
18
+ const storage = getStorageManager({bidderCode: BIDDER_CODE});
19
19
  let globals = {};
20
20
  let itemMaps = {};
21
21
 
@@ -20,7 +20,6 @@ import {
20
20
  import {registerBidder} from '../src/adapters/bidderFactory.js';
21
21
  import {config} from '../src/config.js';
22
22
  import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
23
- import {createEidsArray} from './userId/eids.js';
24
23
  import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
25
24
 
26
25
  const AUCTION_TYPE = 1;
@@ -638,8 +637,8 @@ export const spec = {
638
637
  deepSetValue(payload, 'regs.coppa', 1);
639
638
  }
640
639
 
641
- if (deepAccess(validBidRequests[0], 'userId')) {
642
- deepSetValue(payload, 'user.ext.eids', createEidsArray(validBidRequests[0].userId));
640
+ if (deepAccess(validBidRequests[0], 'userIdAsEids')) {
641
+ deepSetValue(payload, 'user.ext.eids', validBidRequests[0].userIdAsEids);
643
642
  }
644
643
 
645
644
  // Assign payload.site from refererinfo
@@ -334,7 +334,7 @@ function generatePayload(bidRequests, bidderRequests) {
334
334
  id: bidRequests[0].auctionId,
335
335
  imp: bidRequests.map(request => slotParams(request)),
336
336
  ortb2: bidderRequests.ortb2,
337
- tmax: bidderRequests.timeout || config.getConfig('bidderTimeout')
337
+ tmax: bidderRequests.timeout
338
338
  }
339
339
  }
340
340
 
@@ -9,13 +9,14 @@ import { logInfo, logError, logWarn } from '../src/utils.js';
9
9
  import * as ajaxLib from '../src/ajax.js';
10
10
  import {submodule} from '../src/hook.js'
11
11
  import {getStorageManager} from '../src/storageManager.js';
12
+ import {MODULE_TYPE_UID} from '../src/activities/modules.js';
12
13
 
13
14
  const MODULE_NAME = 'merkleId';
14
15
  const ID_URL = 'https://prebid.sv.rkdms.com/identity/';
15
16
  const DEFAULT_REFRESH = 7 * 3600;
16
17
  const SESSION_COOKIE_NAME = '_svsid';
17
18
 
18
- export const storage = getStorageManager();
19
+ export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
19
20
 
20
21
  function getSession(configParams) {
21
22
  let session = null;
@@ -1,14 +1,31 @@
1
- import { _each, deepAccess, isPlainObject, isArray, isStr, logInfo, parseUrl, isEmpty, triggerPixel, logWarn, getBidIdParameter, isFn, isNumber } from '../src/utils.js';
1
+ import {
2
+ _each,
3
+ deepAccess,
4
+ isPlainObject,
5
+ isArray,
6
+ isStr,
7
+ logInfo,
8
+ parseUrl,
9
+ isEmpty,
10
+ triggerPixel,
11
+ logWarn,
12
+ getBidIdParameter,
13
+ isFn,
14
+ isNumber,
15
+ isBoolean,
16
+ isInteger, deepSetValue,
17
+ } from '../src/utils.js';
2
18
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
19
  import {BANNER, NATIVE} from '../src/mediaTypes.js';
4
20
  import {config} from '../src/config.js';
5
21
  import { getStorageManager } from '../src/storageManager.js';
6
22
  import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
23
+ import {USERSYNC_DEFAULT_CONFIG} from '../src/userSync.js';
7
24
 
8
25
  const GVLID = 358;
9
26
  const DEFAULT_CUR = 'USD';
10
27
  const BIDDER_CODE = 'mgid';
11
- export const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
28
+ export const storage = getStorageManager({bidderCode: BIDDER_CODE});
12
29
  const ENDPOINT_URL = 'https://prebid.mgid.com/prebid/';
13
30
  const LOG_WARN_PREFIX = '[MGID warn]: ';
14
31
  const LOG_INFO_PREFIX = '[MGID info]: ';
@@ -64,7 +81,7 @@ _each(NATIVE_ASSETS, anAsset => { _NATIVE_ASSET_ID_TO_KEY_MAP[anAsset.ID] = anAs
64
81
  _each(NATIVE_ASSETS, anAsset => { _NATIVE_ASSET_KEY_TO_ASSET_MAP[anAsset.KEY] = anAsset });
65
82
 
66
83
  export const spec = {
67
- VERSION: '1.5',
84
+ VERSION: '1.6',
68
85
  code: BIDDER_CODE,
69
86
  gvlid: GVLID,
70
87
  supportedMediaTypes: [BANNER, NATIVE],
@@ -115,22 +132,19 @@ export const spec = {
115
132
  /**
116
133
  * Make a server request from the list of BidRequests.
117
134
  *
118
- * @param {validBidRequests[]} - an array of bids
135
+ * @param {BidRequest[]} validBidRequests A non-empty list of bid requests which should be sent to the Server.
136
+ * @param bidderRequest
119
137
  * @return ServerRequest Info describing the request to the server.
120
138
  */
121
139
  buildRequests: (validBidRequests, bidderRequest) => {
122
140
  // convert Native ORTB definition to old-style prebid native definition
123
141
  validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
124
-
142
+ const [bidRequest] = validBidRequests;
125
143
  logInfo(LOG_INFO_PREFIX + `buildRequests`);
126
144
  if (validBidRequests.length === 0) {
127
145
  return;
128
146
  }
129
147
  const info = pageInfo();
130
- // TODO: the fallback seems to never be used here, and probably in the wrong order
131
- const page = info.location || deepAccess(bidderRequest, 'refererInfo.page')
132
- const hostname = parseUrl(page).hostname;
133
- let domain = extractDomainFromHost(hostname) || hostname;
134
148
  const accountId = setOnAny(validBidRequests, 'params.accountId');
135
149
  const muid = getLocalStorageSafely('mgMuidn');
136
150
  let url = (setOnAny(validBidRequests, 'params.bidUrl') || ENDPOINT_URL) + accountId;
@@ -182,31 +196,108 @@ export const spec = {
182
196
 
183
197
  let request = {
184
198
  id: deepAccess(bidderRequest, 'bidderRequestId'),
185
- site: {domain, page},
199
+ site: ortb2Data?.site || {},
186
200
  cur: [cur],
187
201
  geo: {utcoffset: info.timeOffset},
188
- device: {
189
- ua: navigator.userAgent,
190
- js: 1,
191
- dnt: (navigator.doNotTrack === 'yes' || navigator.doNotTrack === '1' || navigator.msDoNotTrack === '1') ? 1 : 0,
192
- h: screen.height,
193
- w: screen.width,
194
- language: getLanguage()
195
- },
202
+ device: ortb2Data?.device || {},
196
203
  ext: {
197
204
  mgid_ver: spec.VERSION,
198
205
  prebid_ver: '$prebid.version$',
199
- ...ortb2Data
200
206
  },
201
- imp
207
+ imp,
208
+ tmax: bidderRequest?.timeout || config.getConfig('bidderTimeout') || 500,
202
209
  };
203
- if (bidderRequest && bidderRequest.gdprConsent) {
204
- request.user = {ext: {consent: bidderRequest.gdprConsent.consentString}};
205
- request.regs = {ext: {gdpr: (bidderRequest.gdprConsent.gdprApplies ? 1 : 0)}}
210
+ // request level
211
+ const bcat = ortb2Data?.bcat || bidRequest?.params?.bcat || [];
212
+ const badv = ortb2Data?.badv || bidRequest?.params?.badv || [];
213
+ const wlang = ortb2Data?.wlang || bidRequest?.params?.wlang || [];
214
+ if (bcat.length > 0) {
215
+ request.bcat = bcat;
216
+ }
217
+ if (badv.length > 0) {
218
+ request.badv = badv;
219
+ }
220
+ if (wlang.length > 0) {
221
+ request.wlang = wlang;
222
+ }
223
+ // site level
224
+ const page = deepAccess(bidderRequest, 'refererInfo.page') || info.location
225
+ if (!isStr(deepAccess(request.site, 'domain'))) {
226
+ const hostname = parseUrl(page).hostname;
227
+ request.site.domain = extractDomainFromHost(hostname) || hostname
228
+ }
229
+ if (!isStr(deepAccess(request.site, 'page'))) {
230
+ request.site.page = page
231
+ }
232
+ if (!isStr(deepAccess(request.site, 'ref'))) {
233
+ const ref = deepAccess(bidderRequest, 'refererInfo.ref') || info.referrer;
234
+ if (ref) {
235
+ request.site.ref = ref
236
+ }
237
+ }
238
+ // device level
239
+ if (!isStr(deepAccess(request.device, 'ua'))) {
240
+ request.device.ua = navigator.userAgent;
241
+ }
242
+ request.device.js = 1;
243
+ if (!isInteger(deepAccess(request.device, 'dnt'))) {
244
+ request.device.dnt = (navigator?.doNotTrack === 'yes' || navigator?.doNotTrack === '1' || navigator?.msDoNotTrack === '1') ? 1 : 0;
245
+ }
246
+ if (!isInteger(deepAccess(request.device, 'h'))) {
247
+ request.device.h = screen.height;
206
248
  }
207
- if (info.referrer) {
208
- request.site.ref = info.referrer
249
+ if (!isInteger(deepAccess(request.device, 'w'))) {
250
+ request.device.w = screen.width;
251
+ }
252
+ if (!isStr(deepAccess(request.device, 'language'))) {
253
+ request.device.language = getLanguage();
254
+ }
255
+ // user & regs & privacy
256
+ if (isPlainObject(ortb2Data?.user)) {
257
+ request.user = ortb2Data.user;
258
+ }
259
+ if (isPlainObject(ortb2Data?.regs)) {
260
+ request.regs = ortb2Data.regs;
261
+ }
262
+ if (bidderRequest && isPlainObject(bidderRequest.gdprConsent)) {
263
+ if (!isStr(deepAccess(request.user, 'ext.consent'))) {
264
+ deepSetValue(request, 'user.ext.consent', bidderRequest.gdprConsent?.consentString);
265
+ }
266
+ if (!isBoolean(deepAccess(request.regs, 'ext.gdpr'))) {
267
+ deepSetValue(request, 'regs.ext.gdpr', bidderRequest.gdprConsent?.gdprApplies ? 1 : 0);
268
+ }
269
+ }
270
+ const userId = deepAccess(bidderRequest, 'userId')
271
+ if (isStr(userId)) {
272
+ deepSetValue(request, 'user.id', userId);
273
+ }
274
+ const eids = setOnAny(validBidRequests, 'userIdAsEids')
275
+ if (eids && eids.length > 0) {
276
+ deepSetValue(request, 'user.ext.eids', eids);
277
+ }
278
+ if (bidderRequest && isStr(bidderRequest.uspConsent)) {
279
+ if (!isBoolean(deepAccess(request.regs, 'ext.us_privacy'))) {
280
+ deepSetValue(request, 'regs.ext.us_privacy', bidderRequest.uspConsent);
281
+ }
209
282
  }
283
+ if (bidderRequest && isPlainObject(bidderRequest.gppConsent)) {
284
+ if (!isStr(deepAccess(request.regs, 'gpp'))) {
285
+ deepSetValue(request, 'regs.gpp', bidderRequest.gppConsent?.gppString);
286
+ }
287
+ if (!isArray(deepAccess(request.regs, 'gpp_sid'))) {
288
+ deepSetValue(request, 'regs.gpp_sid', bidderRequest.gppConsent?.applicableSections);
289
+ }
290
+ }
291
+ if (config.getConfig('coppa')) {
292
+ if (!isInteger(deepAccess(request.regs, 'coppa'))) {
293
+ deepSetValue(request, 'regs.coppa', 1);
294
+ }
295
+ }
296
+ const schain = setOnAny(validBidRequests, 'schain');
297
+ if (schain) {
298
+ deepSetValue(request, 'source.ext.schain', schain);
299
+ }
300
+
210
301
  logInfo(LOG_INFO_PREFIX + `buildRequest:`, request);
211
302
  return {
212
303
  method: 'POST',
@@ -218,6 +309,7 @@ export const spec = {
218
309
  * Unpack the response from the server into a list of bids.
219
310
  *
220
311
  * @param {ServerResponse} serverResponse A successful response from the server.
312
+ * @param bidRequests
221
313
  * @return {Bid[]} An array of bids which were nested inside the server.
222
314
  */
223
315
  interpretResponse: (serverResponse, bidRequests) => {
@@ -268,8 +360,66 @@ export const spec = {
268
360
  }
269
361
  logInfo(LOG_INFO_PREFIX + `onBidWon`);
270
362
  },
271
- getUserSyncs: (syncOptions, serverResponses) => {
363
+ getUserSyncs: (syncOptions, serverResponses, gdprConsent, uspConsent, gppConsent) => {
272
364
  logInfo(LOG_INFO_PREFIX + `getUserSyncs`);
365
+ const spb = isPlainObject(config.getConfig('userSync')) &&
366
+ isNumber(config.getConfig('userSync').syncsPerBidder)
367
+ ? config.getConfig('userSync').syncsPerBidder : USERSYNC_DEFAULT_CONFIG.syncsPerBidder;
368
+
369
+ if (spb > 0 && isPlainObject(syncOptions) && (syncOptions.iframeEnabled || syncOptions.pixelEnabled)) {
370
+ let pixels = [];
371
+ if (serverResponses &&
372
+ isArray(serverResponses) &&
373
+ serverResponses.length > 0 &&
374
+ isPlainObject(serverResponses[0].body) &&
375
+ isPlainObject(serverResponses[0].body.ext) &&
376
+ isArray(serverResponses[0].body.ext.cm) &&
377
+ serverResponses[0].body.ext.cm.length > 0) {
378
+ pixels = serverResponses[0].body.ext.cm;
379
+ }
380
+
381
+ const syncs = [];
382
+ const query = [];
383
+ query.push('cbuster=' + Math.round(new Date().getTime()));
384
+ query.push('consentData=' + encodeURIComponent(isPlainObject(gdprConsent) && isStr(gdprConsent?.consentString) ? gdprConsent.consentString : ''));
385
+ if (isPlainObject(gdprConsent) && typeof gdprConsent?.gdprApplies === 'boolean' && gdprConsent.gdprApplies) {
386
+ query.push('gdprApplies=1');
387
+ } else {
388
+ query.push('gdprApplies=0');
389
+ }
390
+ if (isPlainObject(uspConsent) && uspConsent?.consentString) {
391
+ query.push(`uspString=${encodeURIComponent(uspConsent?.consentString)}`);
392
+ }
393
+ if (isPlainObject(gppConsent) && gppConsent?.gppString) {
394
+ query.push(`gppString=${encodeURIComponent(gppConsent?.gppString)}`);
395
+ }
396
+ if (config.getConfig('coppa')) {
397
+ query.push('coppa=1')
398
+ }
399
+ if (syncOptions.iframeEnabled) {
400
+ syncs.push({
401
+ type: 'iframe',
402
+ url: 'https://cm.mgid.com/i.html?' + query.join('&')
403
+ });
404
+ } else if (syncOptions.pixelEnabled) {
405
+ if (pixels.length === 0) {
406
+ for (let i = 0; i < spb; i++) {
407
+ syncs.push({
408
+ type: 'image',
409
+ url: 'https://cm.mgid.com/i.gif?' + query.join('&') // randomly selects partner if sync required
410
+ });
411
+ }
412
+ } else {
413
+ for (let i = 0; i < spb && i < pixels.length; i++) {
414
+ syncs.push({
415
+ type: 'image',
416
+ url: pixels[i] + (pixels[i].indexOf('?') > 0 ? '&' : '?') + query.join('&')
417
+ });
418
+ }
419
+ }
420
+ }
421
+ return syncs;
422
+ }
273
423
  }
274
424
  };
275
425
 
@@ -287,6 +437,7 @@ function setOnAny(collection, key) {
287
437
  /**
288
438
  * Unpack the Server's Bid into a Prebid-compatible one.
289
439
  * @param serverBid
440
+ * @param cur
290
441
  * @return Bid
291
442
  */
292
443
  function prebidBid(serverBid, cur) {
@@ -330,7 +481,7 @@ function setMediaType(bid, newBid) {
330
481
  }
331
482
 
332
483
  function extractDomainFromHost(pageHost) {
333
- if (pageHost == 'localhost') {
484
+ if (pageHost === 'localhost') {
334
485
  return 'localhost'
335
486
  }
336
487
  let domain = null;
@@ -600,6 +751,7 @@ function pageInfo() {
600
751
  * Get the floor price from bid.params for backward compatibility.
601
752
  * If not found, then check floor module.
602
753
  * @param bid A valid bid object
754
+ * @param cur
603
755
  * @returns {*|number} floor price
604
756
  */
605
757
  function getBidFloor(bid, cur) {
@@ -3,6 +3,7 @@ import {ajax} from '../src/ajax.js';
3
3
  import {deepAccess, logError, logInfo, mergeDeep} from '../src/utils.js';
4
4
  import {getStorageManager} from '../src/storageManager.js';
5
5
  import {getRefererInfo} from '../src/refererDetection.js';
6
+ import {MODULE_TYPE_RTD} from '../src/activities/modules.js';
6
7
 
7
8
  const MODULE_NAME = 'realTimeData';
8
9
  const SUBMODULE_NAME = 'mgid';
@@ -13,7 +14,7 @@ const ORTB2_NAME = 'www.mgid.com'
13
14
  const GVLID = 358;
14
15
  /** @type {?Object} */
15
16
  export const storage = getStorageManager({
16
- gvlid: GVLID,
17
+ moduleType: MODULE_TYPE_RTD,
17
18
  moduleName: SUBMODULE_NAME
18
19
  });
19
20
 
@@ -185,6 +186,7 @@ export const mgidSubmodule = {
185
186
  name: SUBMODULE_NAME,
186
187
  init: init,
187
188
  getBidRequestData: getBidRequestData,
189
+ gvlid: GVLID
188
190
  };
189
191
 
190
192
  submodule(MODULE_NAME, mgidSubmodule);
@@ -366,7 +366,7 @@ function generateGeneralParams(generalObject, bidderRequest) {
366
366
  const {syncEnabled, filterSettings} = config.getConfig('userSync') || {};
367
367
  const {bidderCode} = bidderRequest;
368
368
  const generalBidParams = generalObject.params;
369
- const timeout = config.getConfig('bidderTimeout');
369
+ const timeout = bidderRequest.timeout;
370
370
 
371
371
  // these params are snake_case instead of camelCase to allow backwards compatability on the server.
372
372
  // in the future, these will be converted to camelCase to match our convention.
@@ -23,7 +23,7 @@ export const SUPPORTED_ID_SYSTEMS = {
23
23
  'tdid': 1,
24
24
  'pubProvidedId': 1
25
25
  };
26
- const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
26
+ const storage = getStorageManager({bidderCode: BIDDER_CODE});
27
27
 
28
28
  function getTopWindowQueryParams() {
29
29
  try {
@@ -8,14 +8,15 @@
8
8
  import { timestamp, logError, deepClone, generateUUID, isPlainObject } from '../src/utils.js';
9
9
  import { ajax } from '../src/ajax.js';
10
10
  import { submodule } from '../src/hook.js';
11
- import { getStorageManager } from '../src/storageManager.js';
11
+ import {getStorageManager} from '../src/storageManager.js';
12
+ import {MODULE_TYPE_UID} from '../src/activities/modules.js';
12
13
 
13
14
  const openLinkID = {
14
15
  name: 'mwol',
15
16
  cookie_expiration: (86400 * 1000 * 365 * 1) // 1 year
16
17
  }
17
18
 
18
- const storage = getStorageManager();
19
+ const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: openLinkID.name});
19
20
 
20
21
  function getExpirationDate() {
21
22
  return (new Date(timestamp() + openLinkID.cookie_expiration)).toGMTString();
@@ -7,7 +7,8 @@
7
7
  import { isStr, isPlainObject, logError } from '../src/utils.js';
8
8
  import { submodule } from '../src/hook.js';
9
9
  import { ajax } from '../src/ajax.js';
10
- import { getStorageManager } from '../src/storageManager.js';
10
+ import {getStorageManager} from '../src/storageManager.js';
11
+ import {MODULE_TYPE_UID} from '../src/activities/modules.js';
11
12
 
12
13
  const MODULE_NAME = 'naveggId';
13
14
  const OLD_NAVEGG_ID = 'nid';
@@ -16,7 +17,7 @@ const BASE_URL = 'https://id.navegg.com/uid/';
16
17
  const DEFAULT_EXPIRE = 8 * 24 * 3600 * 1000;
17
18
  const INVALID_EXPIRE = 3600 * 1000;
18
19
 
19
- export const storage = getStorageManager();
20
+ export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
20
21
 
21
22
  function getNaveggIdFromApi() {
22
23
  const callbacks = {
@@ -25,7 +25,6 @@ const ALIASES = [
25
25
  ];
26
26
 
27
27
  export const storage = getStorageManager({
28
- gvlid: GVLID,
29
28
  bidderCode: BIDDER_CODE,
30
29
  });
31
30
 
@@ -7,7 +7,7 @@ import {hasPurpose1Consent} from '../src/utils/gpdr.js';
7
7
 
8
8
  const GVLID = 816;
9
9
  const BIDDER_CODE = 'nobid';
10
- const storage = getStorageManager({gvlid: GVLID, bidderCode: BIDDER_CODE});
10
+ const storage = getStorageManager({bidderCode: BIDDER_CODE});
11
11
  window.nobidVersion = '1.3.3';
12
12
  window.nobid = window.nobid || {};
13
13
  window.nobid.bidResponses = window.nobid.bidResponses || {};
@@ -8,7 +8,10 @@
8
8
  import { logInfo, getWindowLocation } from '../src/utils.js';
9
9
  import { ajax } from '../src/ajax.js';
10
10
  import { submodule } from '../src/hook.js';
11
- import { getStorageManager } from '../src/storageManager.js';
11
+ import {getStorageManager} from '../src/storageManager.js';
12
+ import {MODULE_TYPE_UID} from '../src/activities/modules.js';
13
+
14
+ const MODULE_NAME = 'novatiq';
12
15
 
13
16
  /** @type {Submodule} */
14
17
  export const novatiqIdSubmodule = {
@@ -17,7 +20,7 @@ export const novatiqIdSubmodule = {
17
20
  * used to link submodule with config
18
21
  * @type {string}
19
22
  */
20
- name: 'novatiq',
23
+ name: MODULE_NAME,
21
24
  /**
22
25
  * used to specify vendor id
23
26
  * @type {number}
@@ -217,7 +220,7 @@ export const novatiqIdSubmodule = {
217
220
  let sharedId = null;
218
221
  if (this.useSharedId(configParams)) {
219
222
  let cookieOrStorageID = this.getCookieOrStorageID(configParams);
220
- const storage = getStorageManager({gvlid: this.gvlid, moduleName: 'pubCommonId'});
223
+ const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
221
224
 
222
225
  // first check local storage
223
226
  if (storage.hasLocalStorage()) {
@@ -11,7 +11,7 @@ const DEFAULT_TIMEOUT = 1000;
11
11
  const BID_HOST = 'https://mweb-hb.presage.io/api/header-bidding-request';
12
12
  const TIMEOUT_MONITORING_HOST = 'https://ms-ads-monitoring-events.presage.io';
13
13
  const MS_COOKIE_SYNC_DOMAIN = 'https://ms-cookie-sync.presage.io';
14
- const ADAPTER_VERSION = '1.4.0';
14
+ const ADAPTER_VERSION = '1.4.1';
15
15
 
16
16
  function getClientWidth() {
17
17
  const documentElementClientWidth = window.top.document.documentElement.clientWidth
@@ -90,7 +90,8 @@ function buildRequests(validBidRequests, bidderRequest) {
90
90
  },
91
91
  device: {
92
92
  w: getClientWidth(),
93
- h: getClientHeight()
93
+ h: getClientHeight(),
94
+ pxratio: window.devicePixelRatio
94
95
  }
95
96
  };
96
97