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,10 +1,10 @@
1
- import { getBidRequest, logWarn, _each, isBoolean, isStr, isArray, inIframe, mergeDeep, deepAccess, isNumber, deepSetValue, logInfo, logError, deepClone, convertTypes, uniques } from '../src/utils.js';
1
+ import { getBidRequest, logWarn, isBoolean, isStr, isArray, inIframe, mergeDeep, deepAccess, isNumber, deepSetValue, logInfo, logError, deepClone, convertTypes, uniques, isPlainObject, isInteger } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { BANNER, VIDEO, NATIVE, ADPOD } from '../src/mediaTypes.js';
4
4
  import { config } from '../src/config.js';
5
5
  import { Renderer } from '../src/Renderer.js';
6
6
  import { bidderSettings } from '../src/bidderSettings.js';
7
- import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
7
+ import CONSTANTS from '../src/constants.json';
8
8
 
9
9
  const BIDDER_CODE = 'pubmatic';
10
10
  const LOG_WARN_PREFIX = 'PubMatic: ';
@@ -20,6 +20,7 @@ const PREBID_NATIVE_HELP_LINK = 'http://prebid.org/dev-docs/show-native-ads.html
20
20
  const PUBLICATION = 'pubmatic'; // Your publication on Blue Billywig, potentially with environment (e.g. publication.bbvms.com or publication.test.bbvms.com)
21
21
  const RENDERER_URL = 'https://pubmatic.bbvms.com/r/'.concat('$RENDERER', '.js'); // URL of the renderer application
22
22
  const MSG_VIDEO_PLACEMENT_MISSING = 'Video.Placement param missing';
23
+
23
24
  const CUSTOM_PARAMS = {
24
25
  'kadpageurl': '', // Custom page url
25
26
  'gender': '', // User gender
@@ -55,56 +56,11 @@ const VIDEO_CUSTOM_PARAMS = {
55
56
  'skip': DATA_TYPES.NUMBER
56
57
  }
57
58
 
58
- const NATIVE_ASSETS = {
59
- 'TITLE': { ID: 1, KEY: 'title', TYPE: 0 },
60
- 'IMAGE': { ID: 2, KEY: 'image', TYPE: 0 },
61
- 'ICON': { ID: 3, KEY: 'icon', TYPE: 0 },
62
- 'SPONSOREDBY': { ID: 4, KEY: 'sponsoredBy', TYPE: 1 }, // please note that type of SPONSORED is also 1
63
- 'BODY': { ID: 5, KEY: 'body', TYPE: 2 }, // please note that type of DESC is also set to 2
64
- 'CLICKURL': { ID: 6, KEY: 'clickUrl', TYPE: 0 },
65
- 'VIDEO': { ID: 7, KEY: 'video', TYPE: 0 },
66
- 'EXT': { ID: 8, KEY: 'ext', TYPE: 0 },
67
- 'DATA': { ID: 9, KEY: 'data', TYPE: 0 },
68
- 'LOGO': { ID: 10, KEY: 'logo', TYPE: 0 },
69
- 'SPONSORED': { ID: 11, KEY: 'sponsored', TYPE: 1 }, // please note that type of SPONSOREDBY is also set to 1
70
- 'DESC': { ID: 12, KEY: 'data', TYPE: 2 }, // please note that type of BODY is also set to 2
71
- 'RATING': { ID: 13, KEY: 'rating', TYPE: 3 },
72
- 'LIKES': { ID: 14, KEY: 'likes', TYPE: 4 },
73
- 'DOWNLOADS': { ID: 15, KEY: 'downloads', TYPE: 5 },
74
- 'PRICE': { ID: 16, KEY: 'price', TYPE: 6 },
75
- 'SALEPRICE': { ID: 17, KEY: 'saleprice', TYPE: 7 },
76
- 'PHONE': { ID: 18, KEY: 'phone', TYPE: 8 },
77
- 'ADDRESS': { ID: 19, KEY: 'address', TYPE: 9 },
78
- 'DESC2': { ID: 20, KEY: 'desc2', TYPE: 10 },
79
- 'DISPLAYURL': { ID: 21, KEY: 'displayurl', TYPE: 11 },
80
- 'CTA': { ID: 22, KEY: 'cta', TYPE: 12 }
81
- };
82
-
83
59
  const NATIVE_ASSET_IMAGE_TYPE = {
84
60
  'ICON': 1,
85
- 'LOGO': 2,
86
61
  'IMAGE': 3
87
62
  }
88
63
 
89
- // check if title, image can be added with mandatory field default values
90
- const NATIVE_MINIMUM_REQUIRED_IMAGE_ASSETS = [
91
- {
92
- id: NATIVE_ASSETS.SPONSOREDBY.ID,
93
- required: true,
94
- data: {
95
- type: 1
96
- }
97
- },
98
- {
99
- id: NATIVE_ASSETS.TITLE.ID,
100
- required: true,
101
- },
102
- {
103
- id: NATIVE_ASSETS.IMAGE.ID,
104
- required: true,
105
- }
106
- ]
107
-
108
64
  const NET_REVENUE = true;
109
65
  const dealChannelValues = {
110
66
  1: 'PMP',
@@ -175,16 +131,9 @@ const MEDIATYPE = [
175
131
 
176
132
  let publisherId = 0;
177
133
  let isInvalidNativeRequest = false;
178
- let NATIVE_ASSET_ID_TO_KEY_MAP = {};
179
- let NATIVE_ASSET_KEY_TO_ASSET_MAP = {};
180
134
  let biddersList = ['pubmatic'];
181
135
  const allBiddersList = ['all'];
182
136
 
183
- // loading NATIVE_ASSET_ID_TO_KEY_MAP
184
- _each(NATIVE_ASSETS, anAsset => { NATIVE_ASSET_ID_TO_KEY_MAP[anAsset.ID] = anAsset.KEY });
185
- // loading NATIVE_ASSET_KEY_TO_ASSET_MAP
186
- _each(NATIVE_ASSETS, anAsset => { NATIVE_ASSET_KEY_TO_ASSET_MAP[anAsset.KEY] = anAsset });
187
-
188
137
  export function _getDomainFromURL(url) {
189
138
  let anchor = document.createElement('a');
190
139
  anchor.href = url;
@@ -355,133 +304,189 @@ function _checkParamDataType(key, value, datatype) {
355
304
  return UNDEFINED;
356
305
  }
357
306
 
358
- function _commonNativeRequestObject(nativeAsset, params) {
359
- var key = nativeAsset.KEY;
360
- return {
361
- id: nativeAsset.ID,
362
- required: params[key].required ? 1 : 0,
363
- data: {
364
- type: nativeAsset.TYPE,
365
- len: params[key].len,
366
- ext: params[key].ext
367
- }
368
- };
369
- }
307
+ // TODO delete this code when removing native 1.1 support
308
+ const PREBID_NATIVE_DATA_KEYS_TO_ORTB = {
309
+ 'desc': 'desc',
310
+ 'desc2': 'desc2',
311
+ 'body': 'desc',
312
+ 'body2': 'desc2',
313
+ 'sponsoredBy': 'sponsored',
314
+ 'cta': 'ctatext',
315
+ 'rating': 'rating',
316
+ 'address': 'address',
317
+ 'downloads': 'downloads',
318
+ 'likes': 'likes',
319
+ 'phone': 'phone',
320
+ 'price': 'price',
321
+ 'salePrice': 'saleprice',
322
+ 'displayUrl': 'displayurl',
323
+ 'saleprice': 'saleprice',
324
+ 'displayurl': 'displayurl'
325
+ };
370
326
 
371
- function _createNativeRequest(params) {
372
- var nativeRequestObject = {
327
+ const { NATIVE_IMAGE_TYPES, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS, NATIVE_ASSET_TYPES } = CONSTANTS;
328
+ const PREBID_NATIVE_DATA_KEY_VALUES = Object.values(PREBID_NATIVE_DATA_KEYS_TO_ORTB);
329
+
330
+ // TODO remove this function when the support for 1.1 is removed
331
+ /**
332
+ * Copy of the function toOrtbNativeRequest from core native.js to handle the title len/length
333
+ * and ext and mimes parameters from legacy assets.
334
+ * @param {object} legacyNativeAssets
335
+ * @returns an OpenRTB format of the same bid request
336
+ */
337
+ export function toOrtbNativeRequest(legacyNativeAssets) {
338
+ if (!legacyNativeAssets && !isPlainObject(legacyNativeAssets)) {
339
+ logWarn(`${LOG_WARN_PREFIX}: Native assets object is empty or not an object: ${legacyNativeAssets}`);
340
+ isInvalidNativeRequest = true;
341
+ return;
342
+ }
343
+ const ortb = {
344
+ ver: '1.2',
373
345
  assets: []
374
346
  };
375
- for (var key in params) {
376
- if (params.hasOwnProperty(key)) {
377
- var assetObj = {};
378
- if (!(nativeRequestObject.assets && nativeRequestObject.assets.length > 0 && nativeRequestObject.assets.hasOwnProperty(key))) {
379
- switch (key) {
380
- case NATIVE_ASSETS.TITLE.KEY:
381
- assetObj = {
382
- id: NATIVE_ASSETS.TITLE.ID,
383
- required: params[key].required ? 1 : 0,
384
- title: {
385
- len: params[key].len || params[key].length,
386
- ext: params[key].ext
387
- }
388
- };
389
- break;
390
- case NATIVE_ASSETS.IMAGE.KEY:
391
- assetObj = {
392
- id: NATIVE_ASSETS.IMAGE.ID,
393
- required: params[key].required ? 1 : 0,
394
- img: {
395
- type: NATIVE_ASSET_IMAGE_TYPE.IMAGE,
396
- w: params[key].w || params[key].width || (params[key].sizes ? params[key].sizes[0] : UNDEFINED),
397
- h: params[key].h || params[key].height || (params[key].sizes ? params[key].sizes[1] : UNDEFINED),
398
- wmin: params[key].wmin || params[key].minimumWidth || (params[key].minsizes ? params[key].minsizes[0] : UNDEFINED),
399
- hmin: params[key].hmin || params[key].minimumHeight || (params[key].minsizes ? params[key].minsizes[1] : UNDEFINED),
400
- mimes: params[key].mimes,
401
- ext: params[key].ext,
402
- }
403
- };
404
- break;
405
- case NATIVE_ASSETS.ICON.KEY:
406
- assetObj = {
407
- id: NATIVE_ASSETS.ICON.ID,
408
- required: params[key].required ? 1 : 0,
409
- img: {
410
- type: NATIVE_ASSET_IMAGE_TYPE.ICON,
411
- w: params[key].w || params[key].width || (params[key].sizes ? params[key].sizes[0] : UNDEFINED),
412
- h: params[key].h || params[key].height || (params[key].sizes ? params[key].sizes[1] : UNDEFINED),
413
- }
414
- };
415
- break;
416
- case NATIVE_ASSETS.VIDEO.KEY:
417
- assetObj = {
418
- id: NATIVE_ASSETS.VIDEO.ID,
419
- required: params[key].required ? 1 : 0,
420
- video: {
421
- minduration: params[key].minduration,
422
- maxduration: params[key].maxduration,
423
- protocols: params[key].protocols,
424
- mimes: params[key].mimes,
425
- ext: params[key].ext
426
- }
427
- };
428
- break;
429
- case NATIVE_ASSETS.EXT.KEY:
430
- assetObj = {
431
- id: NATIVE_ASSETS.EXT.ID,
432
- required: params[key].required ? 1 : 0,
433
- };
434
- break;
435
- case NATIVE_ASSETS.LOGO.KEY:
436
- assetObj = {
437
- id: NATIVE_ASSETS.LOGO.ID,
438
- required: params[key].required ? 1 : 0,
439
- img: {
440
- type: NATIVE_ASSET_IMAGE_TYPE.LOGO,
441
- w: params[key].w || params[key].width || (params[key].sizes ? params[key].sizes[0] : UNDEFINED),
442
- h: params[key].h || params[key].height || (params[key].sizes ? params[key].sizes[1] : UNDEFINED)
443
- }
444
- };
445
- break;
446
- case NATIVE_ASSETS.SPONSOREDBY.KEY:
447
- case NATIVE_ASSETS.BODY.KEY:
448
- case NATIVE_ASSETS.RATING.KEY:
449
- case NATIVE_ASSETS.LIKES.KEY:
450
- case NATIVE_ASSETS.DOWNLOADS.KEY:
451
- case NATIVE_ASSETS.PRICE.KEY:
452
- case NATIVE_ASSETS.SALEPRICE.KEY:
453
- case NATIVE_ASSETS.PHONE.KEY:
454
- case NATIVE_ASSETS.ADDRESS.KEY:
455
- case NATIVE_ASSETS.DESC2.KEY:
456
- case NATIVE_ASSETS.DISPLAYURL.KEY:
457
- case NATIVE_ASSETS.CTA.KEY:
458
- assetObj = _commonNativeRequestObject(NATIVE_ASSET_KEY_TO_ASSET_MAP[key], params);
459
- break;
347
+ for (let key in legacyNativeAssets) {
348
+ // skip conversion for non-asset keys
349
+ if (NATIVE_KEYS_THAT_ARE_NOT_ASSETS.includes(key)) continue;
350
+ if (!NATIVE_KEYS.hasOwnProperty(key) && !PREBID_NATIVE_DATA_KEY_VALUES.includes(key)) {
351
+ logWarn(`${LOG_WARN_PREFIX}: Unrecognized native asset code: ${key}. Asset will be ignored.`);
352
+ continue;
353
+ }
354
+
355
+ const asset = legacyNativeAssets[key];
356
+ let required = 0;
357
+ if (asset.required && isBoolean(asset.required)) {
358
+ required = Number(asset.required);
359
+ }
360
+ const ortbAsset = {
361
+ id: ortb.assets.length,
362
+ required
363
+ };
364
+ // data cases
365
+ if (key in PREBID_NATIVE_DATA_KEYS_TO_ORTB) {
366
+ ortbAsset.data = {
367
+ type: NATIVE_ASSET_TYPES[PREBID_NATIVE_DATA_KEYS_TO_ORTB[key]]
368
+ }
369
+ if (asset.len || asset.length) {
370
+ ortbAsset.data.len = asset.len || asset.length;
371
+ }
372
+ if (asset.ext) {
373
+ ortbAsset.data.ext = asset.ext;
374
+ }
375
+ // icon or image case
376
+ } else if (key === 'icon' || key === 'image') {
377
+ ortbAsset.img = {
378
+ type: key === 'icon' ? NATIVE_IMAGE_TYPES.ICON : NATIVE_IMAGE_TYPES.MAIN,
379
+ }
380
+ // if min_width and min_height are defined in aspect_ratio, they are preferred
381
+ if (asset.aspect_ratios) {
382
+ if (!isArray(asset.aspect_ratios)) {
383
+ logWarn(`${LOG_WARN_PREFIX}: image.aspect_ratios was passed, but it's not a an array: ${asset.aspect_ratios}`);
384
+ } else if (!asset.aspect_ratios.length) {
385
+ logWarn(`${LOG_WARN_PREFIX}: image.aspect_ratios was passed, but it's empty: ${asset.aspect_ratios}`);
386
+ } else {
387
+ const { min_width: minWidth, min_height: minHeight } = asset.aspect_ratios[0];
388
+ if (!isInteger(minWidth) || !isInteger(minHeight)) {
389
+ logWarn(`${LOG_WARN_PREFIX}: image.aspect_ratios min_width or min_height are invalid: ${minWidth}, ${minHeight}`);
390
+ } else {
391
+ ortbAsset.img.wmin = minWidth;
392
+ ortbAsset.img.hmin = minHeight;
393
+ }
394
+ const aspectRatios = asset.aspect_ratios
395
+ .filter((ar) => ar.ratio_width && ar.ratio_height)
396
+ .map(ratio => `${ratio.ratio_width}:${ratio.ratio_height}`);
397
+ if (aspectRatios.length > 0) {
398
+ ortbAsset.img.ext = {
399
+ aspectratios: aspectRatios
400
+ }
401
+ }
460
402
  }
461
403
  }
404
+
405
+ ortbAsset.img.w = asset.w || asset.width;
406
+ ortbAsset.img.h = asset.h || asset.height;
407
+ ortbAsset.img.wmin = asset.wmin || asset.minimumWidth || (asset.minsizes ? asset.minsizes[0] : UNDEFINED);
408
+ ortbAsset.img.hmin = asset.hmin || asset.minimumHeight || (asset.minsizes ? asset.minsizes[1] : UNDEFINED);
409
+
410
+ // if asset.sizes exist, by OpenRTB spec we should remove wmin and hmin
411
+ if (asset.sizes) {
412
+ if (asset.sizes.length !== 2 || !isInteger(asset.sizes[0]) || !isInteger(asset.sizes[1])) {
413
+ logWarn(`${LOG_WARN_PREFIX}: image.sizes was passed, but its value is not an array of integers: ${asset.sizes}`);
414
+ } else {
415
+ logInfo(`${LOG_WARN_PREFIX}: if asset.sizes exist, by OpenRTB spec we should remove wmin and hmin`);
416
+ ortbAsset.img.w = asset.sizes[0];
417
+ ortbAsset.img.h = asset.sizes[1];
418
+ delete ortbAsset.img.hmin;
419
+ delete ortbAsset.img.wmin;
420
+ }
421
+ }
422
+ asset.ext && (ortbAsset.img.ext = asset.ext);
423
+ asset.mimes && (ortbAsset.img.mimes = asset.mimes);
424
+ // title case
425
+ } else if (key === 'title') {
426
+ ortbAsset.title = {
427
+ // in openRTB, len is required for titles, while in legacy prebid was not.
428
+ // for this reason, if len is missing in legacy prebid, we're adding a default value of 140.
429
+ len: asset.len || asset.length || 140
430
+ }
431
+ asset.ext && (ortbAsset.title.ext = asset.ext);
432
+ // all extensions to the native bid request are passed as is
433
+ } else if (key === 'ext') {
434
+ ortbAsset.ext = asset;
435
+ // in `ext` case, required field is not needed
436
+ delete ortbAsset.required;
462
437
  }
463
- if (assetObj && assetObj.id) {
464
- nativeRequestObject.assets[nativeRequestObject.assets.length] = assetObj;
438
+ ortb.assets.push(ortbAsset);
439
+ }
440
+
441
+ if (ortb.assets.length < 1) {
442
+ logWarn(`${LOG_WARN_PREFIX}: Could not find any valid asset`);
443
+ isInvalidNativeRequest = true;
444
+ return;
445
+ }
446
+
447
+ return ortb;
448
+ }
449
+ // TODO delete this code when removing native 1.1 support
450
+
451
+ function _createNativeRequest(params) {
452
+ var nativeRequestObject;
453
+
454
+ // TODO delete this code when removing native 1.1 support
455
+ if (!params.ortb) { // legacy assets definition found
456
+ nativeRequestObject = toOrtbNativeRequest(params);
457
+ } else { // ortb assets definition found
458
+ params = params.ortb;
459
+ // TODO delete this code when removing native 1.1 support
460
+ nativeRequestObject = { ver: '1.2', ...params, assets: [] };
461
+ const { assets } = params;
462
+
463
+ const isValidAsset = (asset) => asset.title || asset.img || asset.data || asset.video;
464
+
465
+ if (assets.length < 1 || !assets.some(asset => isValidAsset(asset))) {
466
+ logWarn(`${LOG_WARN_PREFIX}: Native assets object is empty or contains some invalid object`);
467
+ isInvalidNativeRequest = true;
468
+ return nativeRequestObject;
465
469
  }
466
- };
467
470
 
468
- // for native image adtype prebid has to have few required assests i.e. title,sponsoredBy, image
469
- // if any of these are missing from the request then request will not be sent
470
- var requiredAssetCount = NATIVE_MINIMUM_REQUIRED_IMAGE_ASSETS.length;
471
- var presentrequiredAssetCount = 0;
472
- NATIVE_MINIMUM_REQUIRED_IMAGE_ASSETS.forEach(ele => {
473
- var lengthOfExistingAssets = nativeRequestObject.assets.length;
474
- for (var i = 0; i < lengthOfExistingAssets; i++) {
475
- if (ele.id == nativeRequestObject.assets[i].id) {
476
- presentrequiredAssetCount++;
477
- break;
471
+ assets.forEach(asset => {
472
+ var assetObj = asset;
473
+ if (assetObj.img) {
474
+ if (assetObj.img.type == NATIVE_ASSET_IMAGE_TYPE.IMAGE) {
475
+ assetObj.w = assetObj.w || assetObj.width || (assetObj.sizes ? assetObj.sizes[0] : UNDEFINED);
476
+ assetObj.h = assetObj.h || assetObj.height || (assetObj.sizes ? assetObj.sizes[1] : UNDEFINED);
477
+ assetObj.wmin = assetObj.wmin || assetObj.minimumWidth || (assetObj.minsizes ? assetObj.minsizes[0] : UNDEFINED);
478
+ assetObj.hmin = assetObj.hmin || assetObj.minimumHeight || (assetObj.minsizes ? assetObj.minsizes[1] : UNDEFINED);
479
+ } else if (assetObj.img.type == NATIVE_ASSET_IMAGE_TYPE.ICON) {
480
+ assetObj.w = assetObj.w || assetObj.width || (assetObj.sizes ? assetObj.sizes[0] : UNDEFINED);
481
+ assetObj.h = assetObj.h || assetObj.height || (assetObj.sizes ? assetObj.sizes[1] : UNDEFINED);
482
+ }
483
+ }
484
+
485
+ if (assetObj && assetObj.id !== undefined && isValidAsset(assetObj)) {
486
+ nativeRequestObject.assets.push(assetObj);
478
487
  }
479
488
  }
480
- });
481
- if (requiredAssetCount == presentrequiredAssetCount) {
482
- isInvalidNativeRequest = false;
483
- } else {
484
- isInvalidNativeRequest = true;
489
+ );
485
490
  }
486
491
  return nativeRequestObject;
487
492
  }
@@ -624,7 +629,7 @@ function _addJWPlayerSegmentData(imp, bid) {
624
629
  ext && ext.key_val === undefined ? ext.key_val = jwPlayerData : ext.key_val += '|' + jwPlayerData;
625
630
  }
626
631
 
627
- function _createImpressionObject(bid, conf) {
632
+ function _createImpressionObject(bid) {
628
633
  var impObj = {};
629
634
  var bannerObj;
630
635
  var videoObj;
@@ -657,11 +662,15 @@ function _createImpressionObject(bid, conf) {
657
662
  }
658
663
  break;
659
664
  case NATIVE:
665
+ // TODO uncomment below line when removing native 1.1 support
666
+ // nativeObj['request'] = JSON.stringify(_createNativeRequest(bid.nativeOrtbRequest));
667
+ // TODO delete below line when removing native 1.1 support
660
668
  nativeObj['request'] = JSON.stringify(_createNativeRequest(bid.nativeParams));
661
669
  if (!isInvalidNativeRequest) {
662
670
  impObj.native = nativeObj;
663
671
  } else {
664
672
  logWarn(LOG_WARN_PREFIX + 'Error: Error in Native adunit ' + bid.params.adUnit + '. Ignoring the adunit. Refer to ' + PREBID_NATIVE_HELP_LINK + ' for more details.');
673
+ isInvalidNativeRequest = false;
665
674
  }
666
675
  break;
667
676
  case VIDEO:
@@ -817,7 +826,6 @@ function _checkMediaType(bid, newBid) {
817
826
  }
818
827
 
819
828
  function _parseNativeResponse(bid, newBid) {
820
- newBid.native = {};
821
829
  if (bid.hasOwnProperty('adm')) {
822
830
  var adm = '';
823
831
  try {
@@ -826,53 +834,15 @@ function _parseNativeResponse(bid, newBid) {
826
834
  logWarn(LOG_WARN_PREFIX + 'Error: Cannot parse native reponse for ad response: ' + newBid.adm);
827
835
  return;
828
836
  }
829
- if (adm && adm.native && adm.native.assets && adm.native.assets.length > 0) {
830
- newBid.mediaType = NATIVE;
831
- for (let i = 0, len = adm.native.assets.length; i < len; i++) {
832
- switch (adm.native.assets[i].id) {
833
- case NATIVE_ASSETS.TITLE.ID:
834
- newBid.native.title = adm.native.assets[i].title && adm.native.assets[i].title.text;
835
- break;
836
- case NATIVE_ASSETS.IMAGE.ID:
837
- newBid.native.image = {
838
- url: adm.native.assets[i].img && adm.native.assets[i].img.url,
839
- height: adm.native.assets[i].img && adm.native.assets[i].img.h,
840
- width: adm.native.assets[i].img && adm.native.assets[i].img.w,
841
- };
842
- break;
843
- case NATIVE_ASSETS.ICON.ID:
844
- newBid.native.icon = {
845
- url: adm.native.assets[i].img && adm.native.assets[i].img.url,
846
- height: adm.native.assets[i].img && adm.native.assets[i].img.h,
847
- width: adm.native.assets[i].img && adm.native.assets[i].img.w,
848
- };
849
- break;
850
- case NATIVE_ASSETS.SPONSOREDBY.ID:
851
- case NATIVE_ASSETS.BODY.ID:
852
- case NATIVE_ASSETS.LIKES.ID:
853
- case NATIVE_ASSETS.DOWNLOADS.ID:
854
- case NATIVE_ASSETS.PRICE:
855
- case NATIVE_ASSETS.SALEPRICE.ID:
856
- case NATIVE_ASSETS.PHONE.ID:
857
- case NATIVE_ASSETS.ADDRESS.ID:
858
- case NATIVE_ASSETS.DESC2.ID:
859
- case NATIVE_ASSETS.CTA.ID:
860
- case NATIVE_ASSETS.RATING.ID:
861
- case NATIVE_ASSETS.DISPLAYURL.ID:
862
- newBid.native[NATIVE_ASSET_ID_TO_KEY_MAP[adm.native.assets[i].id]] = adm.native.assets[i].data && adm.native.assets[i].data.value;
863
- break;
864
- }
865
- }
866
- newBid.native.clickUrl = adm.native.link && adm.native.link.url;
867
- newBid.native.clickTrackers = (adm.native.link && adm.native.link.clicktrackers) || [];
868
- newBid.native.impressionTrackers = adm.native.imptrackers || [];
869
- newBid.native.jstracker = adm.native.jstracker || [];
870
- if (!newBid.width) {
871
- newBid.width = DEFAULT_WIDTH;
872
- }
873
- if (!newBid.height) {
874
- newBid.height = DEFAULT_HEIGHT;
875
- }
837
+ newBid.native = {
838
+ ortb: { ...adm.native }
839
+ };
840
+ newBid.mediaType = NATIVE;
841
+ if (!newBid.width) {
842
+ newBid.width = DEFAULT_WIDTH;
843
+ }
844
+ if (!newBid.height) {
845
+ newBid.height = DEFAULT_HEIGHT;
876
846
  }
877
847
  }
878
848
  }
@@ -1075,7 +1045,7 @@ export const spec = {
1075
1045
  */
1076
1046
  buildRequests: (validBidRequests, bidderRequest) => {
1077
1047
  // convert Native ORTB definition to old-style prebid native definition
1078
- validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
1048
+ // validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
1079
1049
  var refererInfo;
1080
1050
  if (bidderRequest && bidderRequest.refererInfo) {
1081
1051
  refererInfo = bidderRequest.refererInfo;
@@ -1121,7 +1091,7 @@ export const spec = {
1121
1091
  if (bid.params.hasOwnProperty('acat') && isArray(bid.params.acat)) {
1122
1092
  allowedIabCategories = allowedIabCategories.concat(bid.params.acat);
1123
1093
  }
1124
- var impObj = _createImpressionObject(bid, conf);
1094
+ var impObj = _createImpressionObject(bid);
1125
1095
  if (impObj) {
1126
1096
  payload.imp.push(impObj);
1127
1097
  }
@@ -1241,7 +1211,7 @@ export const spec = {
1241
1211
  // bidderRequest has timeout property if publisher sets during calling requestBids function from page
1242
1212
  // if not bidderRequest contains global value set by Prebid
1243
1213
  if (bidderRequest?.timeout) {
1244
- payload.tmax = bidderRequest.timeout || config.getConfig('bidderTimeout');
1214
+ payload.tmax = bidderRequest.timeout;
1245
1215
  } else {
1246
1216
  payload.tmax = window?.PWT?.versionDetails?.timeout;
1247
1217
  }
@@ -3,8 +3,10 @@ import {ajax} from '../src/ajax.js';
3
3
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
4
  import adapterManager from '../src/adapterManager.js';
5
5
  import CONSTANTS from '../src/constants.json';
6
- import { getStorageManager } from '../src/storageManager.js';
7
- const storage = getStorageManager();
6
+ import {getStorageManager} from '../src/storageManager.js';
7
+ import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
8
+ const MODULE_CODE = 'pubwise';
9
+ const storage = getStorageManager({moduleType: MODULE_TYPE_ANALYTICS, moduleName: MODULE_CODE});
8
10
 
9
11
  /****
10
12
  * PubWise.io Analytics
@@ -334,7 +336,7 @@ pubwiseAnalytics.enableAnalytics = function (config) {
334
336
 
335
337
  adapterManager.registerAnalyticsAdapter({
336
338
  adapter: pubwiseAnalytics,
337
- code: 'pubwise',
339
+ code: MODULE_CODE,
338
340
  gvlid: 842
339
341
  });
340
342
 
@@ -1,4 +1,4 @@
1
- import { deepSetValue } from '../src/utils.js';
1
+ import { deepSetValue, deepAccess } from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
 
4
4
  const BIDDER_CODE = 'pubx';
@@ -16,8 +16,11 @@ export const spec = {
16
16
  const bidId = bidRequest.bidId;
17
17
  const params = bidRequest.params;
18
18
  const sid = params.sid;
19
+ const pageUrl = deepAccess(bidRequest, 'ortb2.site.page').replace(/\?.*$/, '');
20
+ const pageEnc = encodeURIComponent(pageUrl);
19
21
  const payload = {
20
- sid: sid
22
+ sid: sid,
23
+ pu: pageEnc,
21
24
  };
22
25
  return {
23
26
  id: bidId,
@@ -22,7 +22,7 @@ export const QUANTCAST_PROTOCOL = 'https';
22
22
  export const QUANTCAST_PORT = '8443';
23
23
  export const QUANTCAST_FPA = '__qca';
24
24
 
25
- export const storage = getStorageManager({gvlid: QUANTCAST_VENDOR_ID, bidderCode: BIDDER_CODE});
25
+ export const storage = getStorageManager({bidderCode: BIDDER_CODE});
26
26
 
27
27
  function makeVideoImp(bid) {
28
28
  const videoInMediaType = deepAccess(bid, 'mediaTypes.video') || {};
@@ -6,9 +6,10 @@
6
6
  */
7
7
 
8
8
  import {submodule} from '../src/hook.js'
9
- import { getStorageManager } from '../src/storageManager.js';
9
+ import {getStorageManager} from '../src/storageManager.js';
10
10
  import { triggerPixel, logInfo } from '../src/utils.js';
11
11
  import { uspDataHandler, coppaDataHandler, gdprDataHandler } from '../src/adapterManager.js';
12
+ import {MODULE_TYPE_UID} from '../src/activities/modules.js';
12
13
 
13
14
  const QUANTCAST_FPA = '__qca';
14
15
  const DEFAULT_COOKIE_EXP_DAYS = 392; // (13 months - 2 days)
@@ -23,8 +24,9 @@ const QC_TCF_CONSENT_FIRST_PURPOSES = [PURPOSE_DATA_COLLECT];
23
24
  const QC_TCF_CONSENT_ONLY_PUPROSES = [PURPOSE_DATA_COLLECT];
24
25
  const GDPR_PRIVACY_STRING = gdprDataHandler.getConsentData();
25
26
  const US_PRIVACY_STRING = uspDataHandler.getConsentData();
27
+ const MODULE_NAME = 'quantcastId';
26
28
 
27
- export const storage = getStorageManager();
29
+ export const storage = getStorageManager({moduleType: MODULE_TYPE_UID, moduleName: MODULE_NAME});
28
30
 
29
31
  export function firePixel(clientId, cookieExpDays = DEFAULT_COOKIE_EXP_DAYS) {
30
32
  // check for presence of Quantcast Measure tag _qevent obj and publisher provided clientID
@@ -160,7 +162,7 @@ export const quantcastIdSubmodule = {
160
162
  * used to link submodule with config
161
163
  * @type {string}
162
164
  */
163
- name: 'quantcastId',
165
+ name: MODULE_NAME,
164
166
 
165
167
  /**
166
168
  * Vendor id of Quantcast
@@ -2,9 +2,12 @@
2
2
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
3
  import adapterManager from '../src/adapterManager.js';
4
4
  import CONSTANTS from '../src/constants.json';
5
- import { getStorageManager } from '../src/storageManager.js';
5
+ import {getStorageManager} from '../src/storageManager.js';
6
6
  import { logMessage, logError } from '../src/utils.js';
7
- const storage = getStorageManager();
7
+ import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
8
+ const MODULE_CODE = 'realvuAnalytics';
9
+
10
+ const storage = getStorageManager({moduleType: MODULE_TYPE_ANALYTICS, moduleName: MODULE_CODE});
8
11
 
9
12
  let realvuAnalyticsAdapter = adapter({
10
13
  global: 'realvuAnalytics',
@@ -967,7 +970,7 @@ realvuAnalyticsAdapter.disableAnalytics = function () {
967
970
 
968
971
  adapterManager.registerAnalyticsAdapter({
969
972
  adapter: realvuAnalyticsAdapter,
970
- code: 'realvuAnalytics'
973
+ code: MODULE_CODE,
971
974
  });
972
975
 
973
976
  export default realvuAnalyticsAdapter;
@@ -384,7 +384,7 @@ function generateGeneralParams(generalObject, bidderRequest) {
384
384
  const {syncEnabled, filterSettings} = config.getConfig('userSync') || {};
385
385
  const {bidderCode} = bidderRequest;
386
386
  const generalBidParams = generalObject.params;
387
- const timeout = config.getConfig('bidderTimeout');
387
+ const timeout = bidderRequest.timeout;
388
388
 
389
389
  // these params are snake_case instead of camelCase to allow backwards compatability on the server.
390
390
  // in the future, these will be converted to camelCase to match our convention.