prebid.js 7.53.0 → 8.0.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 (706) hide show
  1. package/.github/workflows/codeql-analysis.yml +2 -2
  2. package/dist/1plusXRtdProvider.js +1 -1
  3. package/dist/33acrossBidAdapter.js +1 -1
  4. package/dist/33acrossIdSystem.js +1 -1
  5. package/dist/adWMGAnalyticsAdapter.js +1 -1
  6. package/dist/adWMGBidAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adbookpspBidAdapter.js +1 -1
  10. package/dist/adfBidAdapter.js +1 -1
  11. package/dist/adgenerationBidAdapter.js +1 -1
  12. package/dist/adhashBidAdapter.js +1 -1
  13. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  14. package/dist/adkernelAdnBidAdapter.js +1 -1
  15. package/dist/adkernelBidAdapter.js +1 -1
  16. package/dist/adlooxAdServerVideo.js +1 -1
  17. package/dist/adlooxAnalyticsAdapter.js +1 -1
  18. package/dist/adlooxRtdProvider.js +1 -1
  19. package/dist/adomikAnalyticsAdapter.js +1 -1
  20. package/dist/adprimeBidAdapter.js +1 -1
  21. package/dist/adqueryBidAdapter.js +1 -1
  22. package/dist/adrelevantisBidAdapter.js +1 -1
  23. package/dist/adtrgtmeBidAdapter.js +1 -1
  24. package/dist/adtrueBidAdapter.js +1 -1
  25. package/dist/aduptechBidAdapter.js +1 -1
  26. package/dist/advangelistsBidAdapter.js +1 -1
  27. package/dist/adxcgAnalyticsAdapter.js +1 -1
  28. package/dist/adxcgBidAdapter.js +1 -1
  29. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  30. package/dist/adyoulikeBidAdapter.js +1 -1
  31. package/dist/afpBidAdapter.js +1 -1
  32. package/dist/aidemBidAdapter.js +1 -1
  33. package/dist/airgridRtdProvider.js +1 -1
  34. package/dist/ajaBidAdapter.js +1 -1
  35. package/dist/amxBidAdapter.js +1 -1
  36. package/dist/amxIdSystem.js +1 -1
  37. package/dist/analyticsAdapter.js +1 -1
  38. package/dist/apacdexBidAdapter.js +1 -1
  39. package/dist/appierAnalyticsAdapter.js +1 -1
  40. package/dist/appnexusBidAdapter.js +1 -1
  41. package/dist/appnexusKeywords.js +1 -0
  42. package/dist/asoBidAdapter.js +1 -1
  43. package/dist/astraoneBidAdapter.js +1 -1
  44. package/dist/atsAnalyticsAdapter.js +1 -1
  45. package/dist/audiencerunBidAdapter.js +1 -1
  46. package/dist/automatadBidAdapter.js +1 -1
  47. package/dist/axonixBidAdapter.js +1 -1
  48. package/dist/beachfrontBidAdapter.js +1 -1
  49. package/dist/beopBidAdapter.js +1 -1
  50. package/dist/betweenBidAdapter.js +1 -1
  51. package/dist/bidViewability.js +1 -1
  52. package/dist/bidglassBidAdapter.js +1 -1
  53. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  54. package/dist/big-richmediaBidAdapter.js +1 -1
  55. package/dist/bizzclickBidAdapter.js +1 -1
  56. package/dist/bluebillywigBidAdapter.js +1 -1
  57. package/dist/braveBidAdapter.js +1 -1
  58. package/dist/bridgewellBidAdapter.js +1 -1
  59. package/dist/brightMountainMediaBidAdapter.js +1 -1
  60. package/dist/browsiBidAdapter.js +1 -1
  61. package/dist/byDataAnalyticsAdapter.js +1 -1
  62. package/dist/cadentApertureMXBidAdapter.js +1 -0
  63. package/dist/carodaBidAdapter.js +1 -1
  64. package/dist/categoryTranslationMapping.js +1 -0
  65. package/dist/ccxBidAdapter.js +1 -1
  66. package/dist/chtnwBidAdapter.js +1 -1
  67. package/dist/cleanmedianetBidAdapter.js +1 -1
  68. package/dist/codefuelBidAdapter.js +1 -1
  69. package/dist/colossussspBidAdapter.js +1 -1
  70. package/dist/concertAnalyticsAdapter.js +1 -1
  71. package/dist/concertBidAdapter.js +1 -1
  72. package/dist/connectIdSystem.js +1 -1
  73. package/dist/connectadBidAdapter.js +1 -1
  74. package/dist/consentManagement.js +1 -1
  75. package/dist/consentManagementGpp.js +1 -1
  76. package/dist/consentManagementUsp.js +1 -1
  77. package/dist/consumableBidAdapter.js +1 -1
  78. package/dist/conversantAnalyticsAdapter.js +1 -1
  79. package/dist/conversantBidAdapter.js +1 -1
  80. package/dist/craftBidAdapter.js +1 -1
  81. package/dist/criteoBidAdapter.js +1 -1
  82. package/dist/criteoIdSystem.js +1 -1
  83. package/dist/currency.js +1 -1
  84. package/dist/cwireBidAdapter.js +1 -1
  85. package/dist/dailyhuntBidAdapter.js +1 -1
  86. package/dist/datablocksAnalyticsAdapter.js +1 -1
  87. package/dist/datablocksBidAdapter.js +1 -1
  88. package/dist/datawrkzBidAdapter.js +1 -1
  89. package/dist/debugging-standalone.js +1 -1
  90. package/dist/debugging.js +1 -1
  91. package/dist/deltaprojectsBidAdapter.js +1 -1
  92. package/dist/dependencies.json +58 -14
  93. package/dist/dfpAdServerVideo.js +1 -1
  94. package/dist/dianomiBidAdapter.js +1 -1
  95. package/dist/displayioBidAdapter.js +1 -1
  96. package/dist/dspxBidAdapter.js +1 -1
  97. package/dist/ebdrBidAdapter.js +1 -1
  98. package/dist/eplanningAnalyticsAdapter.js +1 -1
  99. package/dist/eplanningBidAdapter.js +1 -1
  100. package/dist/etargetBidAdapter.js +1 -1
  101. package/dist/euidIdSystem.js +1 -1
  102. package/dist/feedadBidAdapter.js +1 -1
  103. package/dist/finativeBidAdapter.js +1 -1
  104. package/dist/fintezaAnalyticsAdapter.js +1 -1
  105. package/dist/fluctBidAdapter.js +1 -1
  106. package/dist/freewheel-sspBidAdapter.js +1 -1
  107. package/dist/ftrackIdSystem.js +1 -1
  108. package/dist/gamoshiBidAdapter.js +1 -1
  109. package/dist/gdprEnforcement.js +1 -1
  110. package/dist/genericAnalyticsAdapter.js +1 -1
  111. package/dist/gmosspBidAdapter.js +1 -1
  112. package/dist/gnetBidAdapter.js +1 -1
  113. package/dist/goldbachBidAdapter.js +1 -1
  114. package/dist/gothamadsBidAdapter.js +1 -1
  115. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  116. package/dist/greenbidsRtdProvider.js +1 -1
  117. package/dist/gridBidAdapter.js +1 -1
  118. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  119. package/dist/gumgumBidAdapter.js +1 -1
  120. package/dist/h12mediaBidAdapter.js +1 -1
  121. package/dist/hadronAnalyticsAdapter.js +1 -1
  122. package/dist/holidBidAdapter.js +1 -1
  123. package/dist/hybridBidAdapter.js +1 -1
  124. package/dist/hypelabBidAdapter.js +1 -0
  125. package/dist/id5AnalyticsAdapter.js +1 -1
  126. package/dist/id5IdSystem.js +1 -1
  127. package/dist/imdsBidAdapter.js +1 -0
  128. package/dist/impactifyBidAdapter.js +1 -1
  129. package/dist/improvedigitalBidAdapter.js +1 -1
  130. package/dist/insticatorBidAdapter.js +1 -1
  131. package/dist/interactiveOffersBidAdapter.js +1 -1
  132. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  133. package/dist/ixBidAdapter.js +1 -1
  134. package/dist/justpremiumBidAdapter.js +1 -1
  135. package/dist/kargoAnalyticsAdapter.js +1 -1
  136. package/dist/kargoBidAdapter.js +1 -1
  137. package/dist/keywords.js +1 -0
  138. package/dist/kinessoIdSystem.js +1 -1
  139. package/dist/koblerBidAdapter.js +1 -1
  140. package/dist/konduitAnalyticsAdapter.js +1 -1
  141. package/dist/kueezBidAdapter.js +1 -1
  142. package/dist/kueezRtbBidAdapter.js +1 -1
  143. package/dist/kulturemediaBidAdapter.js +1 -1
  144. package/dist/lassoBidAdapter.js +1 -1
  145. package/dist/lifestreetBidAdapter.js +1 -1
  146. package/dist/limelightDigitalBidAdapter.js +1 -1
  147. package/dist/liveIntentAnalyticsAdapter.js +1 -1
  148. package/dist/liveIntentIdSystem.js +1 -1
  149. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  150. package/dist/livewrappedBidAdapter.js +1 -1
  151. package/dist/logicadBidAdapter.js +1 -1
  152. package/dist/loglyliftBidAdapter.js +1 -1
  153. package/dist/lotamePanoramaIdSystem.js +1 -1
  154. package/dist/luponmediaBidAdapter.js +1 -1
  155. package/dist/magniteAnalyticsAdapter.js +1 -1
  156. package/dist/malltvAnalyticsAdapter.js +1 -1
  157. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  158. package/dist/marsmediaBidAdapter.js +1 -1
  159. package/dist/mediaforceBidAdapter.js +1 -1
  160. package/dist/mediafuseBidAdapter.js +1 -1
  161. package/dist/mediakeysBidAdapter.js +1 -1
  162. package/dist/medianetAnalyticsAdapter.js +1 -1
  163. package/dist/medianetBidAdapter.js +1 -1
  164. package/dist/mediasniperBidAdapter.js +1 -1
  165. package/dist/mediasquareBidAdapter.js +1 -1
  166. package/dist/mgidBidAdapter.js +1 -1
  167. package/dist/microadBidAdapter.js +1 -1
  168. package/dist/minutemediaBidAdapter.js +1 -1
  169. package/dist/minutemediaplusBidAdapter.js +1 -1
  170. package/dist/newspassidBidAdapter.js +1 -1
  171. package/dist/nextMillenniumBidAdapter.js +1 -1
  172. package/dist/nexx360BidAdapter.js +1 -1
  173. package/dist/not-for-prod/prebid.js +293 -323
  174. package/dist/objectGuard.js +1 -1
  175. package/dist/oguryBidAdapter.js +1 -1
  176. package/dist/onetagBidAdapter.js +1 -1
  177. package/dist/ooloAnalyticsAdapter.js +1 -1
  178. package/dist/operaadsBidAdapter.js +1 -1
  179. package/dist/optidigitalBidAdapter.js +1 -1
  180. package/dist/optimonAnalyticsAdapter.js +1 -1
  181. package/dist/orbidderBidAdapter.js +1 -1
  182. package/dist/ortbConverter.js +1 -1
  183. package/dist/otmBidAdapter.js +1 -1
  184. package/dist/outbrainBidAdapter.js +1 -1
  185. package/dist/oxxionAnalyticsAdapter.js +1 -1
  186. package/dist/oxxionRtdProvider.js +1 -1
  187. package/dist/ozoneBidAdapter.js +1 -1
  188. package/dist/padsquadBidAdapter.js +1 -1
  189. package/dist/parrableIdSystem.js +1 -1
  190. package/dist/pbsExtensions.js +1 -1
  191. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  192. package/dist/pixfutureBidAdapter.js +1 -1
  193. package/dist/prebid-core.js +2 -2
  194. package/dist/prebidServerBidAdapter.js +1 -1
  195. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  196. package/dist/priceFloors.js +1 -1
  197. package/dist/prismaBidAdapter.js +1 -1
  198. package/dist/proxistoreBidAdapter.js +1 -1
  199. package/dist/pubgeniusBidAdapter.js +1 -1
  200. package/dist/publinkIdSystem.js +1 -1
  201. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  202. package/dist/pubmaticBidAdapter.js +1 -1
  203. package/dist/pubperfAnalyticsAdapter.js +1 -1
  204. package/dist/pubstackAnalyticsAdapter.js +1 -1
  205. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  206. package/dist/pubwiseBidAdapter.js +1 -1
  207. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  208. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  209. package/dist/pxyzBidAdapter.js +1 -1
  210. package/dist/quantcastBidAdapter.js +1 -1
  211. package/dist/quantcastIdSystem.js +1 -1
  212. package/dist/rasBidAdapter.js +1 -1
  213. package/dist/readpeakBidAdapter.js +1 -1
  214. package/dist/relaidoBidAdapter.js +1 -1
  215. package/dist/relevantAnalyticsAdapter.js +1 -1
  216. package/dist/retailspotBidAdapter.js +1 -1
  217. package/dist/revcontentBidAdapter.js +1 -1
  218. package/dist/rhythmoneBidAdapter.js +1 -1
  219. package/dist/richaudienceBidAdapter.js +1 -1
  220. package/dist/riseBidAdapter.js +1 -1
  221. package/dist/rivrAnalyticsAdapter.js +1 -1
  222. package/dist/roxotAnalyticsAdapter.js +1 -1
  223. package/dist/rtbhouseBidAdapter.js +1 -1
  224. package/dist/rtdModule.js +1 -1
  225. package/dist/rubiconBidAdapter.js +1 -1
  226. package/dist/s2sTesting.js +1 -1
  227. package/dist/saambaaBidAdapter.js +1 -1
  228. package/dist/scaleableAnalyticsAdapter.js +1 -1
  229. package/dist/schain.js +1 -1
  230. package/dist/seedingAllianceBidAdapter.js +1 -1
  231. package/dist/seedtagBidAdapter.js +1 -1
  232. package/dist/sharedIdSystem.js +1 -1
  233. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  234. package/dist/sharethroughBidAdapter.js +1 -1
  235. package/dist/shinezBidAdapter.js +1 -1
  236. package/dist/showheroes-bsBidAdapter.js +1 -1
  237. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  238. package/dist/sizeMapping.js +1 -0
  239. package/dist/slimcutBidAdapter.js +1 -1
  240. package/dist/smaatoBidAdapter.js +1 -1
  241. package/dist/smartadserverBidAdapter.js +1 -1
  242. package/dist/smartxBidAdapter.js +1 -1
  243. package/dist/smartytechBidAdapter.js +1 -1
  244. package/dist/smilewantedBidAdapter.js +1 -1
  245. package/dist/sonobiAnalyticsAdapter.js +1 -1
  246. package/dist/sonobiBidAdapter.js +1 -1
  247. package/dist/sovrnAnalyticsAdapter.js +1 -1
  248. package/dist/sovrnBidAdapter.js +1 -1
  249. package/dist/sspBCBidAdapter.js +1 -1
  250. package/dist/staqAnalyticsAdapter.js +1 -1
  251. package/dist/stvBidAdapter.js +1 -1
  252. package/dist/sublimeBidAdapter.js +1 -1
  253. package/dist/taboolaBidAdapter.js +1 -1
  254. package/dist/tapadIdSystem.js +1 -1
  255. package/dist/tappxBidAdapter.js +1 -1
  256. package/dist/targetVideoBidAdapter.js +1 -1
  257. package/dist/teadsBidAdapter.js +1 -1
  258. package/dist/teadsIdSystem.js +1 -1
  259. package/dist/telariaBidAdapter.js +1 -1
  260. package/dist/terceptAnalyticsAdapter.js +1 -1
  261. package/dist/theAdxBidAdapter.js +1 -1
  262. package/dist/topicsFpdModule.js +1 -1
  263. package/dist/trionBidAdapter.js +1 -1
  264. package/dist/tripleliftBidAdapter.js +1 -1
  265. package/dist/ttdBidAdapter.js +1 -1
  266. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  267. package/dist/uid2IdSystem.js +1 -1
  268. package/dist/underdogmediaBidAdapter.js +1 -1
  269. package/dist/undertoneBidAdapter.js +1 -1
  270. package/dist/unicornBidAdapter.js +1 -1
  271. package/dist/unrulyBidAdapter.js +1 -1
  272. package/dist/userId.js +1 -1
  273. package/dist/utiqSystem.js +1 -0
  274. package/dist/vibrantmediaBidAdapter.js +1 -1
  275. package/dist/vidazooBidAdapter.js +1 -1
  276. package/dist/videobyteBidAdapter.js +1 -1
  277. package/dist/videojsVideoProvider.js +1 -1
  278. package/dist/videoreachBidAdapter.js +1 -1
  279. package/dist/visxBidAdapter.js +1 -1
  280. package/dist/vrtcalBidAdapter.js +1 -1
  281. package/dist/vuukleBidAdapter.js +1 -1
  282. package/dist/weboramaRtdProvider.js +1 -1
  283. package/dist/widespaceBidAdapter.js +1 -1
  284. package/dist/winrBidAdapter.js +1 -1
  285. package/dist/xeBidAdapter.js +1 -1
  286. package/dist/yahoosspBidAdapter.js +1 -1
  287. package/dist/yieldliftBidAdapter.js +1 -1
  288. package/dist/yieldmoBidAdapter.js +1 -1
  289. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  290. package/dist/yieldoneBidAdapter.js +1 -1
  291. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  292. package/dist/zetaBidAdapter.js +1 -1
  293. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  294. package/dist/zeta_global_sspBidAdapter.js +1 -1
  295. package/libraries/analyticsAdapter/AnalyticsAdapter.js +1 -7
  296. package/libraries/appnexusKeywords/anKeywords.js +140 -0
  297. package/libraries/categoryTranslationMapping/index.js +100 -0
  298. package/libraries/keywords/keywords.js +31 -0
  299. package/libraries/objectGuard/objectGuard.js +2 -11
  300. package/libraries/ortbConverter/processors/default.js +3 -4
  301. package/modules/.submodules.json +1 -1
  302. package/modules/1plusXRtdProvider.js +4 -14
  303. package/modules/33acrossBidAdapter.js +11 -11
  304. package/modules/adWMGBidAdapter.js +2 -1
  305. package/modules/adagioBidAdapter.js +18 -30
  306. package/modules/adbookpspBidAdapter.js +1 -1
  307. package/modules/addefendBidAdapter.js +1 -0
  308. package/modules/adfBidAdapter.js +3 -3
  309. package/modules/adgenerationBidAdapter.js +1 -1
  310. package/modules/adhashBidAdapter.js +56 -34
  311. package/modules/adkernelAdnBidAdapter.js +5 -6
  312. package/modules/adkernelBidAdapter.js +5 -5
  313. package/modules/adprimeBidAdapter.js +2 -1
  314. package/modules/adqueryBidAdapter.js +1 -0
  315. package/modules/adrelevantisBidAdapter.js +3 -24
  316. package/modules/adtrueBidAdapter.js +2 -2
  317. package/modules/aduptechBidAdapter.js +2 -1
  318. package/modules/advangelistsBidAdapter.js +0 -1
  319. package/modules/adxcgBidAdapter.js +1 -1
  320. package/modules/adyoulikeBidAdapter.js +1 -1
  321. package/modules/afpBidAdapter.js +2 -2
  322. package/modules/aidemBidAdapter.js +16 -3
  323. package/modules/airgridRtdProvider.js +24 -53
  324. package/modules/ajaBidAdapter.js +1 -1
  325. package/modules/alkimiBidAdapter.js +2 -1
  326. package/modules/amxBidAdapter.js +1 -0
  327. package/modules/apacdexBidAdapter.js +3 -3
  328. package/modules/appnexusBidAdapter.js +16 -114
  329. package/modules/apstreamBidAdapter.js +1 -0
  330. package/modules/asoBidAdapter.js +1 -1
  331. package/modules/astraoneBidAdapter.js +1 -1
  332. package/modules/audiencerunBidAdapter.js +2 -1
  333. package/modules/automatadBidAdapter.js +5 -5
  334. package/modules/beachfrontBidAdapter.js +0 -1
  335. package/modules/beopBidAdapter.js +20 -17
  336. package/modules/betweenBidAdapter.js +2 -1
  337. package/modules/bizzclickBidAdapter.js +9 -6
  338. package/modules/bliinkBidAdapter.js +1 -0
  339. package/modules/bluebillywigBidAdapter.js +2 -2
  340. package/modules/braveBidAdapter.js +9 -7
  341. package/modules/browsiBidAdapter.js +3 -3
  342. package/modules/{emx_digitalBidAdapter.js → cadentApertureMXBidAdapter.js} +61 -56
  343. package/modules/{emx_digitalBidAdapter.md → cadentApertureMXBidAdapter.md} +6 -6
  344. package/modules/carodaBidAdapter.js +1 -0
  345. package/modules/ccxBidAdapter.js +1 -1
  346. package/modules/cleanmedianetBidAdapter.js +3 -3
  347. package/modules/codefuelBidAdapter.js +1 -1
  348. package/modules/colossussspBidAdapter.js +1 -1
  349. package/modules/concertBidAdapter.js +1 -1
  350. package/modules/connectadBidAdapter.js +1 -0
  351. package/modules/conversantAnalyticsAdapter.js +2 -0
  352. package/modules/conversantBidAdapter.js +22 -6
  353. package/modules/craftBidAdapter.js +6 -28
  354. package/modules/criteoBidAdapter.js +12 -9
  355. package/modules/currency.js +3 -3
  356. package/modules/dailyhuntBidAdapter.js +2 -2
  357. package/modules/datablocksBidAdapter.js +10 -8
  358. package/modules/datawrkzBidAdapter.js +0 -6
  359. package/modules/deltaprojectsBidAdapter.js +12 -3
  360. package/modules/dianomiBidAdapter.js +1 -1
  361. package/modules/discoveryBidAdapter.js +1 -0
  362. package/modules/displayioBidAdapter.js +2 -1
  363. package/modules/dspxBidAdapter.js +1 -0
  364. package/modules/ebdrBidAdapter.js +3 -2
  365. package/modules/etargetBidAdapter.js +1 -2
  366. package/modules/feedadBidAdapter.js +1 -1
  367. package/modules/finativeBidAdapter.js +8 -8
  368. package/modules/fluctBidAdapter.js +1 -2
  369. package/modules/gamoshiBidAdapter.js +3 -3
  370. package/modules/gdprEnforcement.js +0 -15
  371. package/modules/genericAnalyticsAdapter.js +0 -5
  372. package/modules/glomexBidAdapter.js +1 -0
  373. package/modules/gmosspBidAdapter.js +1 -1
  374. package/modules/gnetBidAdapter.js +1 -1
  375. package/modules/goldbachBidAdapter.js +7 -45
  376. package/modules/gothamadsBidAdapter.js +4 -3
  377. package/modules/gridBidAdapter.js +20 -421
  378. package/modules/gumgumBidAdapter.js +1 -2
  379. package/modules/h12mediaBidAdapter.js +1 -1
  380. package/modules/holidBidAdapter.js +8 -13
  381. package/modules/hybridBidAdapter.js +2 -2
  382. package/modules/hypelabBidAdapter.js +153 -0
  383. package/modules/hypelabBidAdapter.md +38 -0
  384. package/modules/{synacormediaBidAdapter.js → imdsBidAdapter.js} +11 -8
  385. package/modules/{synacormediaBidAdapter.md → imdsBidAdapter.md} +5 -5
  386. package/modules/impactifyBidAdapter.js +6 -6
  387. package/modules/improvedigitalBidAdapter.js +1 -2
  388. package/modules/innityBidAdapter.js +1 -0
  389. package/modules/insticatorBidAdapter.js +1 -1
  390. package/modules/interactiveOffersBidAdapter.js +5 -4
  391. package/modules/iqmBidAdapter.js +1 -0
  392. package/modules/ixBidAdapter.js +74 -75
  393. package/modules/jixieBidAdapter.js +1 -0
  394. package/modules/kargoBidAdapter.js +1 -1
  395. package/modules/koblerBidAdapter.js +2 -1
  396. package/modules/kueezBidAdapter.js +1 -1
  397. package/modules/kueezRtbBidAdapter.js +1 -0
  398. package/modules/kulturemediaBidAdapter.js +7 -7
  399. package/modules/lassoBidAdapter.js +2 -1
  400. package/modules/limelightDigitalBidAdapter.js +1 -1
  401. package/modules/livewrappedBidAdapter.js +2 -2
  402. package/modules/logicadBidAdapter.js +2 -1
  403. package/modules/loglyliftBidAdapter.js +2 -1
  404. package/modules/luponmediaBidAdapter.js +16 -4
  405. package/modules/magniteAnalyticsAdapter.js +61 -72
  406. package/modules/malltvBidAdapter.js +1 -0
  407. package/modules/mediaforceBidAdapter.js +2 -1
  408. package/modules/mediafuseBidAdapter.js +45 -62
  409. package/modules/mediagoBidAdapter.js +1 -0
  410. package/modules/mediakeysBidAdapter.js +3 -5
  411. package/modules/medianetBidAdapter.js +2 -1
  412. package/modules/mediasniperBidAdapter.js +1 -2
  413. package/modules/mediasquareBidAdapter.js +2 -1
  414. package/modules/microadBidAdapter.js +1 -9
  415. package/modules/minutemediaBidAdapter.js +2 -2
  416. package/modules/minutemediaplusBidAdapter.js +3 -2
  417. package/modules/newspassidBidAdapter.js +6 -4
  418. package/modules/nextMillenniumBidAdapter.js +10 -9
  419. package/modules/oguryBidAdapter.js +5 -5
  420. package/modules/onetagBidAdapter.js +2 -1
  421. package/modules/operaadsBidAdapter.js +2 -2
  422. package/modules/optidigitalBidAdapter.js +2 -2
  423. package/modules/orbidderBidAdapter.js +2 -1
  424. package/modules/otmBidAdapter.js +2 -2
  425. package/modules/outbrainBidAdapter.js +9 -11
  426. package/modules/oxxionRtdProvider.js +7 -29
  427. package/modules/ozoneBidAdapter.js +2 -1
  428. package/modules/padsquadBidAdapter.js +2 -2
  429. package/modules/pixfutureBidAdapter.js +12 -36
  430. package/modules/prebidServerBidAdapter/index.js +1 -3
  431. package/modules/prebidServerBidAdapter/ortbConverter.js +34 -5
  432. package/modules/priceFloors.js +7 -7
  433. package/modules/prismaBidAdapter.js +4 -3
  434. package/modules/proxistoreBidAdapter.js +2 -1
  435. package/modules/pubgeniusBidAdapter.js +5 -5
  436. package/modules/pubmaticAnalyticsAdapter.js +31 -12
  437. package/modules/pubmaticBidAdapter.js +6 -4
  438. package/modules/pubwiseBidAdapter.js +6 -5
  439. package/modules/pxyzBidAdapter.js +4 -4
  440. package/modules/rasBidAdapter.js +4 -2
  441. package/modules/readpeakBidAdapter.js +1 -1
  442. package/modules/relaidoBidAdapter.js +2 -1
  443. package/modules/resetdigitalBidAdapter.js +1 -0
  444. package/modules/revcontentBidAdapter.js +6 -7
  445. package/modules/rhythmoneBidAdapter.js +0 -2
  446. package/modules/richaudienceBidAdapter.js +6 -4
  447. package/modules/riseBidAdapter.js +1 -1
  448. package/modules/rtbhouseBidAdapter.js +5 -5
  449. package/modules/rtbsapeBidAdapter.js +1 -0
  450. package/modules/rubiconBidAdapter.js +8 -11
  451. package/modules/saambaaBidAdapter.js +0 -1
  452. package/modules/seedingAllianceBidAdapter.js +6 -7
  453. package/modules/seedtagBidAdapter.js +1 -1
  454. package/modules/sharethroughBidAdapter.js +1 -1
  455. package/modules/shinezBidAdapter.js +435 -435
  456. package/modules/showheroes-bsBidAdapter.js +1 -1
  457. package/{src → modules}/sizeMapping.js +46 -32
  458. package/modules/slimcutBidAdapter.js +2 -2
  459. package/modules/smaatoBidAdapter.js +16 -3
  460. package/modules/smartadserverBidAdapter.js +1 -1
  461. package/modules/smarticoBidAdapter.js +1 -0
  462. package/modules/smartytechBidAdapter.js +0 -1
  463. package/modules/smilewantedBidAdapter.js +2 -2
  464. package/modules/sonobiBidAdapter.js +2 -1
  465. package/modules/sspBCBidAdapter.js +1 -1
  466. package/modules/stroeerCoreBidAdapter.js +1 -0
  467. package/modules/sublimeBidAdapter.js +1 -0
  468. package/modules/taboolaBidAdapter.js +3 -3
  469. package/modules/talkadsBidAdapter.js +1 -0
  470. package/modules/tappxBidAdapter.js +1 -1
  471. package/modules/teadsBidAdapter.js +1 -2
  472. package/modules/telariaBidAdapter.js +1 -1
  473. package/modules/theAdxBidAdapter.js +1 -1
  474. package/modules/topicsFpdModule.js +4 -1
  475. package/modules/tpmnBidAdapter.js +1 -0
  476. package/modules/truereachBidAdapter.js +1 -0
  477. package/modules/ttdBidAdapter.js +3 -3
  478. package/modules/underdogmediaBidAdapter.js +0 -1
  479. package/modules/unicornBidAdapter.js +1 -1
  480. package/modules/unrulyBidAdapter.js +1 -1
  481. package/modules/userId/eids.js +3 -3
  482. package/modules/userId/eids.md +1 -1
  483. package/modules/userId/index.js +2 -19
  484. package/modules/userId/userId.md +12 -10
  485. package/modules/utiqSystem.js +129 -0
  486. package/modules/{trustpidSystem.md → utiqSystem.md} +7 -7
  487. package/modules/vdoaiBidAdapter.js +1 -0
  488. package/modules/vibrantmediaBidAdapter.js +1 -1
  489. package/modules/vidazooBidAdapter.js +3 -2
  490. package/modules/videobyteBidAdapter.js +0 -1
  491. package/modules/videoheroesBidAdapter.js +2 -0
  492. package/modules/videojsVideoProvider.js +2 -0
  493. package/modules/videoreachBidAdapter.js +2 -1
  494. package/modules/vlybyBidAdapter.js +1 -0
  495. package/modules/voxBidAdapter.js +2 -0
  496. package/modules/vrtcalBidAdapter.js +6 -1
  497. package/modules/winrBidAdapter.js +4 -25
  498. package/modules/xeBidAdapter.js +2 -1
  499. package/modules/yieldliftBidAdapter.js +2 -2
  500. package/modules/yieldmoBidAdapter.js +1 -0
  501. package/modules/yieldoneBidAdapter.js +1 -1
  502. package/modules/zetaBidAdapter.js +4 -9
  503. package/modules/zeta_global_sspBidAdapter.js +1 -1
  504. package/package.json +1 -1
  505. package/src/activities/activities.js +5 -0
  506. package/src/activities/redactor.js +36 -8
  507. package/src/adapterManager.js +31 -20
  508. package/src/adapters/bidderFactory.js +41 -91
  509. package/src/auction.js +5 -21
  510. package/src/constants.json +1 -2
  511. package/src/utils.js +2 -34
  512. package/test/fixtures/fixtures.js +0 -7
  513. package/test/pages/banner.html +1 -0
  514. package/test/pages/bidderSettings.html +1 -0
  515. package/test/pages/consent_mgt_gdpr.html +1 -0
  516. package/test/pages/currency.html +1 -0
  517. package/test/pages/instream.html +1 -0
  518. package/test/pages/multiple_bidders.html +1 -1
  519. package/test/pages/native.html +1 -0
  520. package/test/pages/outstream.html +4 -1
  521. package/test/spec/activities/redactor_spec.js +10 -2
  522. package/test/spec/appnexusKeywords_spec.js +70 -0
  523. package/test/spec/auctionmanager_spec.js +11 -22
  524. package/test/spec/keywords_spec.js +102 -0
  525. package/test/spec/modules/1plusXRtdProvider_spec.js +17 -18
  526. package/test/spec/modules/33acrossBidAdapter_spec.js +49 -73
  527. package/test/spec/modules/adagioBidAdapter_spec.js +15 -24
  528. package/test/spec/modules/adbookpspBidAdapter_spec.js +5 -0
  529. package/test/spec/modules/adfBidAdapter_spec.js +4 -1
  530. package/test/spec/modules/adhashBidAdapter_spec.js +18 -2
  531. package/test/spec/modules/adkernelAdnBidAdapter_spec.js +1 -3
  532. package/test/spec/modules/adrelevantisBidAdapter_spec.js +0 -9
  533. package/test/spec/modules/adriverBidAdapter_spec.js +0 -9
  534. package/test/spec/modules/adtrueBidAdapter_spec.js +11 -7
  535. package/test/spec/modules/aduptechBidAdapter_spec.js +26 -8
  536. package/test/spec/modules/advangelistsBidAdapter_spec.js +0 -1
  537. package/test/spec/modules/adxcgBidAdapter_spec.js +4 -1
  538. package/test/spec/modules/adyoulikeBidAdapter_spec.js +50 -10
  539. package/test/spec/modules/afpBidAdapter_spec.js +5 -1
  540. package/test/spec/modules/aidemBidAdapter_spec.js +10 -2
  541. package/test/spec/modules/airgridRtdProvider_spec.js +9 -59
  542. package/test/spec/modules/apacdexBidAdapter_spec.js +2 -2
  543. package/test/spec/modules/appnexusBidAdapter_spec.js +100 -27
  544. package/test/spec/modules/astraoneBidAdapter_spec.js +5 -1
  545. package/test/spec/modules/beachfrontBidAdapter_spec.js +0 -1
  546. package/test/spec/modules/big-richmediaBidAdapter_spec.js +0 -10
  547. package/test/spec/modules/bluebillywigBidAdapter_spec.js +12 -10
  548. package/test/spec/modules/browsiBidAdapter_spec.js +6 -3
  549. package/test/spec/modules/{emx_digitalBidAdapter_spec.js → cadentApertureMXBidAdapter_spec.js} +16 -16
  550. package/test/spec/modules/ccxBidAdapter_spec.js +1 -1
  551. package/test/spec/modules/cleanmedianetBidAdapter_spec.js +2 -2
  552. package/test/spec/modules/codefuelBidAdapter_spec.js +10 -1
  553. package/test/spec/modules/colossussspBidAdapter_spec.js +1 -1
  554. package/test/spec/modules/concertBidAdapter_spec.js +5 -1
  555. package/test/spec/modules/conversantBidAdapter_spec.js +7 -2
  556. package/test/spec/modules/criteoBidAdapter_spec.js +78 -8
  557. package/test/spec/modules/currency_spec.js +12 -12
  558. package/test/spec/modules/datawrkzBidAdapter_spec.js +0 -4
  559. package/test/spec/modules/dianomiBidAdapter_spec.js +1 -1
  560. package/test/spec/modules/etargetBidAdapter_spec.js +35 -8
  561. package/test/spec/modules/euidIdSystem_spec.js +0 -7
  562. package/test/spec/modules/feedadBidAdapter_spec.js +5 -1
  563. package/test/spec/modules/finativeBidAdapter_spec.js +0 -12
  564. package/test/spec/modules/fluctBidAdapter_spec.js +0 -2
  565. package/test/spec/modules/gamoshiBidAdapter_spec.js +5 -2
  566. package/test/spec/modules/gmosspBidAdapter_spec.js +5 -1
  567. package/test/spec/modules/gnetBidAdapter_spec.js +5 -1
  568. package/test/spec/modules/goldbachBidAdapter_spec.js +0 -10
  569. package/test/spec/modules/gridBidAdapter_spec.js +42 -302
  570. package/test/spec/modules/hybridBidAdapter_spec.js +5 -1
  571. package/test/spec/modules/hypelabBidAdapter_spec.js +281 -0
  572. package/test/spec/modules/{synacormediaBidAdapter_spec.js → imdsBidAdapter_spec.js} +19 -19
  573. package/test/spec/modules/improvedigitalBidAdapter_spec.js +6 -1
  574. package/test/spec/modules/insticatorBidAdapter_spec.js +6 -2
  575. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +1 -1
  576. package/test/spec/modules/ivsBidAdapter_spec.js +0 -2
  577. package/test/spec/modules/ixBidAdapter_spec.js +8 -3
  578. package/test/spec/modules/kargoBidAdapter_spec.js +3 -3
  579. package/test/spec/modules/koblerBidAdapter_spec.js +13 -2
  580. package/test/spec/modules/kulturemediaBidAdapter_spec.js +0 -1
  581. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +21 -5
  582. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +1 -1
  583. package/test/spec/modules/livewrappedBidAdapter_spec.js +5 -6
  584. package/test/spec/modules/loglyliftBidAdapter_spec.js +10 -0
  585. package/test/spec/modules/luponmediaBidAdapter_spec.js +23 -2
  586. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +93 -1
  587. package/test/spec/modules/mediaforceBidAdapter_spec.js +11 -3
  588. package/test/spec/modules/mediafuseBidAdapter_spec.js +2 -6
  589. package/test/spec/modules/mediakeysBidAdapter_spec.js +6 -2
  590. package/test/spec/modules/medianetBidAdapter_spec.js +86 -17
  591. package/test/spec/modules/mediasniperBidAdapter_spec.js +1 -1
  592. package/test/spec/modules/mediasquareBidAdapter_spec.js +5 -5
  593. package/test/spec/modules/microadBidAdapter_spec.js +7 -3
  594. package/test/spec/modules/minutemediaplusBidAdapter_spec.js +7 -3
  595. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +2 -2
  596. package/test/spec/modules/nexx360BidAdapter_spec.js +0 -1
  597. package/test/spec/modules/oguryBidAdapter_spec.js +2 -1
  598. package/test/spec/modules/onetagBidAdapter_spec.js +5 -1
  599. package/test/spec/modules/openxBidAdapter_spec.js +1 -1
  600. package/test/spec/modules/operaadsBidAdapter_spec.js +5 -5
  601. package/test/spec/modules/optidigitalBidAdapter_spec.js +0 -2
  602. package/test/spec/modules/orbidderBidAdapter_spec.js +12 -4
  603. package/test/spec/modules/outbrainBidAdapter_spec.js +5 -0
  604. package/test/spec/modules/oxxionRtdProvider_spec.js +3 -2
  605. package/test/spec/modules/prebidServerBidAdapter_spec.js +114 -32
  606. package/test/spec/modules/priceFloors_spec.js +7 -25
  607. package/test/spec/modules/pubgeniusBidAdapter_spec.js +2 -1
  608. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +7 -0
  609. package/test/spec/modules/pubmaticBidAdapter_spec.js +41 -32
  610. package/test/spec/modules/pubwiseBidAdapter_spec.js +10 -6
  611. package/test/spec/modules/relaidoBidAdapter_spec.js +6 -2
  612. package/test/spec/modules/revcontentBidAdapter_spec.js +0 -10
  613. package/test/spec/modules/richaudienceBidAdapter_spec.js +5 -1
  614. package/test/spec/modules/rubiconBidAdapter_spec.js +26 -7
  615. package/test/spec/modules/scatteredBidAdapter_spec.js +0 -2
  616. package/test/spec/modules/seedingAllianceAdapter_spec.js +0 -13
  617. package/test/spec/modules/seedtagBidAdapter_spec.js +5 -1
  618. package/test/spec/modules/sharethroughBidAdapter_spec.js +6 -2
  619. package/test/spec/modules/sizeMapping_spec.js +342 -0
  620. package/test/spec/modules/slimcutBidAdapter_spec.js +0 -1
  621. package/test/spec/modules/smaatoBidAdapter_spec.js +3 -2
  622. package/test/spec/modules/smartadserverBidAdapter_spec.js +15 -3
  623. package/test/spec/modules/smilewantedBidAdapter_spec.js +25 -6
  624. package/test/spec/modules/sspBCBidAdapter_spec.js +4 -4
  625. package/test/spec/modules/taboolaBidAdapter_spec.js +10 -12
  626. package/test/spec/modules/teadsBidAdapter_spec.js +7 -0
  627. package/test/spec/modules/terceptAnalyticsAdapter_spec.js +0 -1
  628. package/test/spec/modules/ttdBidAdapter_spec.js +13 -5
  629. package/test/spec/modules/uid2IdSystem_spec.js +0 -10
  630. package/test/spec/modules/underdogmediaBidAdapter_spec.js +0 -1
  631. package/test/spec/modules/utiqSystem_spec.js +188 -0
  632. package/test/spec/modules/vidazooBidAdapter_spec.js +6 -2
  633. package/test/spec/modules/videobyteBidAdapter_spec.js +0 -1
  634. package/test/spec/modules/vrtcalBidAdapter_spec.js +9 -2
  635. package/test/spec/modules/winrBidAdapter_spec.js +0 -9
  636. package/test/spec/modules/xeBidAdapter_spec.js +6 -2
  637. package/test/spec/unit/core/adapterManager_spec.js +69 -115
  638. package/test/spec/unit/core/bidderFactory_spec.js +80 -152
  639. package/test/spec/unit/core/targeting_spec.js +0 -6
  640. package/test/spec/utils_spec.js +21 -90
  641. package/dist/aolBidAdapter.js +0 -1
  642. package/dist/captifyRtdProvider.js +0 -1
  643. package/dist/emx_digitalBidAdapter.js +0 -1
  644. package/dist/glimpseBidAdapter.js +0 -1
  645. package/dist/googleAnalyticsAdapter.js +0 -1
  646. package/dist/inmarBidAdapter.js +0 -1
  647. package/dist/inskinBidAdapter.js +0 -1
  648. package/dist/liveyieldAnalyticsAdapter.js +0 -1
  649. package/dist/mass.js +0 -1
  650. package/dist/openxAnalyticsAdapter.js +0 -1
  651. package/dist/openxOrtbBidAdapter.js +0 -1
  652. package/dist/pubCommonId.js +0 -1
  653. package/dist/realvuAnalyticsAdapter.js +0 -1
  654. package/dist/rubiconAnalyticsAdapter.js +0 -1
  655. package/dist/synacormediaBidAdapter.js +0 -1
  656. package/dist/trustpidSystem.js +0 -1
  657. package/dist/viewability.js +0 -1
  658. package/dist/zeusPrimeRtdProvider.js +0 -21
  659. package/integrationExamples/gpt/captifyRtdProvider_example.html +0 -167
  660. package/integrationExamples/mass/index.html +0 -132
  661. package/modules/aolBidAdapter.js +0 -462
  662. package/modules/aolBidAdapter.md +0 -46
  663. package/modules/captifyRtdProvider.js +0 -146
  664. package/modules/captifyRtdProvider.md +0 -68
  665. package/modules/conversantAnalyticsAdapter.md +0 -46
  666. package/modules/conversantBidAdapter.md +0 -46
  667. package/modules/glimpseBidAdapter.js +0 -198
  668. package/modules/glimpseBidAdapter.md +0 -37
  669. package/modules/googleAnalyticsAdapter.js +0 -298
  670. package/modules/googleAnalyticsAdapter.md +0 -38
  671. package/modules/inmarBidAdapter.js +0 -132
  672. package/modules/inmarBidAdapter.md +0 -44
  673. package/modules/inskinBidAdapter.js +0 -391
  674. package/modules/inskinBidAdapter.md +0 -31
  675. package/modules/liveyieldAnalyticsAdapter.js +0 -454
  676. package/modules/liveyieldAnalyticsAdapter.md +0 -45
  677. package/modules/mass.js +0 -184
  678. package/modules/mass.md +0 -137
  679. package/modules/openxAnalyticsAdapter.js +0 -27
  680. package/modules/openxAnalyticsAdapter.md +0 -135
  681. package/modules/openxOrtbBidAdapter.js +0 -238
  682. package/modules/openxOrtbBidAdapter.md +0 -108
  683. package/modules/pubCommonId.js +0 -303
  684. package/modules/pubCommonId.md +0 -37
  685. package/modules/realvuAnalyticsAdapter.js +0 -976
  686. package/modules/realvuAnalyticsAdapter.md +0 -9
  687. package/modules/rubiconAnalyticsAdapter.js +0 -938
  688. package/modules/trustpidSystem.js +0 -143
  689. package/modules/viewability.js +0 -9
  690. package/modules/zeusPrimeRtdProvider.js +0 -37
  691. package/modules/zeusPrimeRtdProvider.md +0 -63
  692. package/test/spec/modules/aolBidAdapter_spec.js +0 -890
  693. package/test/spec/modules/captifyRtdProvider_spec.js +0 -253
  694. package/test/spec/modules/glimpseBidAdapter_spec.js +0 -422
  695. package/test/spec/modules/googleAnalyticsAdapter_spec.js +0 -27
  696. package/test/spec/modules/inmarBidAdapter_spec.js +0 -242
  697. package/test/spec/modules/inskinBidAdapter_spec.js +0 -386
  698. package/test/spec/modules/liveyieldAnalyticsAdapter_spec.js +0 -704
  699. package/test/spec/modules/mass_spec.js +0 -141
  700. package/test/spec/modules/openxAnalyticsAdapter_spec.js +0 -21
  701. package/test/spec/modules/openxOrtbBidAdapter_spec.js +0 -1615
  702. package/test/spec/modules/pubCommonId_spec.js +0 -353
  703. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +0 -2540
  704. package/test/spec/modules/rubiconAnalyticsSchema.json +0 -494
  705. package/test/spec/modules/trustpidSystem_spec.js +0 -237
  706. package/test/spec/sizeMapping_spec.js +0 -341
@@ -0,0 +1,140 @@
1
+ import {_each, deepAccess, getValueString, isArray, isStr, mergeDeep, isNumber} from '../../src/utils.js';
2
+ import {getAllOrtbKeywords} from '../keywords/keywords.js';
3
+ import {CLIENT_SECTIONS} from '../../src/fpd/oneClient.js';
4
+
5
+ const ORTB_SEGTAX_KEY_MAP = {
6
+ 526: '1plusX',
7
+ 527: '1plusX',
8
+ 541: 'captify_segments',
9
+ 540: 'perid'
10
+ };
11
+ const ORTB_SEG_PATHS = ['user.data'].concat(
12
+ CLIENT_SECTIONS.map((prefix) => `${prefix}.content.data`)
13
+ );
14
+
15
+ /**
16
+ * Converts an object of arrays (either strings or numbers) into an array of objects containing key and value properties
17
+ * normally read from bidder params
18
+ * eg { foo: ['bar', 'baz'], fizz: ['buzz'] }
19
+ * becomes [{ key: 'foo', value: ['bar', 'baz']}, {key: 'fizz', value: ['buzz']}]
20
+ * @param {Object} keywords object of arrays representing keyvalue pairs
21
+ * @param {string} paramName name of parent object (eg 'keywords') containing keyword data, used in error handling
22
+ * @returns {Array<{key, value}>}
23
+ */
24
+ export function transformBidderParamKeywords(keywords, paramName = 'keywords') {
25
+ const arrs = [];
26
+
27
+ _each(keywords, (v, k) => {
28
+ if (isArray(v)) {
29
+ let values = [];
30
+ _each(v, (val) => {
31
+ val = getValueString(paramName + '.' + k, val);
32
+ if (val || val === '') {
33
+ values.push(val);
34
+ }
35
+ });
36
+ v = values;
37
+ } else {
38
+ v = getValueString(paramName + '.' + k, v);
39
+ if (isStr(v)) {
40
+ v = [v];
41
+ } else {
42
+ return;
43
+ } // unsuported types - don't send a key
44
+ }
45
+ v = v.filter(kw => kw !== '')
46
+ const entry = {key: k}
47
+ if (v.length > 0) {
48
+ entry.value = v;
49
+ }
50
+ arrs.push(entry);
51
+ });
52
+
53
+ return arrs;
54
+ }
55
+
56
+ // converts a comma separated list of keywords into the standard keyword object format used in appnexus bid params
57
+ // 'genre=rock,genre=pop,pets=dog,music' goes to { 'genre': ['rock', 'pop'], 'pets': ['dog'], 'music': [''] }
58
+ export function convertKeywordStringToANMap(keyStr) {
59
+ if (isStr(keyStr) && keyStr !== '') {
60
+ // will split based on commas and will eat white space before/after the comma
61
+ return convertKeywordsToANMap(keyStr.split(/\s*(?:,)\s*/));
62
+ } else {
63
+ return {}
64
+ }
65
+ }
66
+
67
+ /**
68
+ * @param {Array<String>} kwarray: keywords as an array of strings
69
+ * @return {{}} appnexus-style keyword map
70
+ */
71
+ function convertKeywordsToANMap(kwarray) {
72
+ const result = {};
73
+ kwarray.forEach(kw => {
74
+ // if = exists, then split
75
+ if (kw.indexOf('=') !== -1) {
76
+ let kwPair = kw.split('=');
77
+ let key = kwPair[0];
78
+ let val = kwPair[1];
79
+
80
+ // then check for existing key in result > if so add value to the array > if not, add new key and create value array
81
+ if (result.hasOwnProperty(key)) {
82
+ result[key].push(val);
83
+ } else {
84
+ result[key] = [val];
85
+ }
86
+ } else {
87
+ if (!result.hasOwnProperty(kw)) {
88
+ result[kw] = [];
89
+ }
90
+ }
91
+ })
92
+ return result;
93
+ }
94
+
95
+ /**
96
+ * @param ortb2
97
+ * @return {{}} appnexus-style keyword map using all keywords contained in ortb2
98
+ */
99
+ export function getANMapFromOrtbKeywords(ortb2) {
100
+ return convertKeywordsToANMap(getAllOrtbKeywords(ortb2));
101
+ }
102
+
103
+ export function getANKewyordParamFromMaps(...anKeywordMaps) {
104
+ return transformBidderParamKeywords(
105
+ mergeDeep(...anKeywordMaps.map(kwMap => Object.fromEntries(
106
+ Object.entries(kwMap || {})
107
+ .map(([k, v]) => [k, (isNumber(v) || isStr(v)) ? [v] : v])
108
+ )))
109
+ )
110
+ }
111
+
112
+ export function getANKeywordParam(ortb2, ...anKeywordsMaps) {
113
+ return getANKewyordParamFromMaps(
114
+ getANMapFromOrtbKeywords(ortb2),
115
+ getANMapFromOrtbSegments(ortb2),
116
+ ...anKeywordsMaps
117
+ )
118
+ }
119
+
120
+ export function getANMapFromOrtbSegments(ortb2) {
121
+ let ortbSegData = {};
122
+ ORTB_SEG_PATHS.forEach(path => {
123
+ let ortbSegsArrObj = deepAccess(ortb2, path) || [];
124
+ ortbSegsArrObj.forEach(segObj => {
125
+ // only read segment data from known sources
126
+ const segtax = ORTB_SEGTAX_KEY_MAP[deepAccess(segObj, 'ext.segtax')];
127
+ if (segtax) {
128
+ segObj.segment.forEach(seg => {
129
+ // if source was in multiple locations of ortb or had multiple segments in same area, stack them together into an array
130
+ if (ortbSegData[segtax]) {
131
+ ortbSegData[segtax].push(seg.id);
132
+ } else {
133
+ ortbSegData[segtax] = [seg.id]
134
+ }
135
+ });
136
+ }
137
+ });
138
+ });
139
+ return ortbSegData;
140
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Provides mapping objects used by bidders for categoryTranslation type logic for Adpod feature
3
+ */
4
+ export const APPNEXUS_CATEGORY_MAPPING = {
5
+ '1': 'IAB20-3',
6
+ '2': 'IAB18-5',
7
+ '3': 'IAB10-1',
8
+ '4': 'IAB2-3',
9
+ '5': 'IAB19-8',
10
+ '6': 'IAB22-1',
11
+ '7': 'IAB18-1',
12
+ '8': 'IAB12-3',
13
+ '9': 'IAB5-1',
14
+ '10': 'IAB4-5',
15
+ '11': 'IAB13-4',
16
+ '12': 'IAB8-7',
17
+ '13': 'IAB9-7',
18
+ '14': 'IAB7-1',
19
+ '15': 'IAB20-18',
20
+ '16': 'IAB10-7',
21
+ '17': 'IAB19-18',
22
+ '18': 'IAB13-6',
23
+ '19': 'IAB18-4',
24
+ '20': 'IAB1-5',
25
+ '21': 'IAB1-6',
26
+ '22': 'IAB3-4',
27
+ '23': 'IAB19-13',
28
+ '24': 'IAB22-2',
29
+ '25': 'IAB3-9',
30
+ '26': 'IAB17-18',
31
+ '27': 'IAB19-6',
32
+ '28': 'IAB1-7',
33
+ '29': 'IAB9-30',
34
+ '30': 'IAB20-7',
35
+ '31': 'IAB20-17',
36
+ '32': 'IAB7-32',
37
+ '33': 'IAB16-5',
38
+ '34': 'IAB19-34',
39
+ '35': 'IAB11-5',
40
+ '36': 'IAB12-3',
41
+ '37': 'IAB11-4',
42
+ '38': 'IAB12-3',
43
+ '39': 'IAB9-30',
44
+ '41': 'IAB7-44',
45
+ '42': 'IAB7-1',
46
+ '43': 'IAB7-30',
47
+ '50': 'IAB19-30',
48
+ '51': 'IAB17-12',
49
+ '52': 'IAB19-30',
50
+ '53': 'IAB3-1',
51
+ '55': 'IAB13-2',
52
+ '56': 'IAB19-30',
53
+ '57': 'IAB19-30',
54
+ '58': 'IAB7-39',
55
+ '59': 'IAB22-1',
56
+ '60': 'IAB7-39',
57
+ '61': 'IAB21-3',
58
+ '62': 'IAB5-1',
59
+ '63': 'IAB12-3',
60
+ '64': 'IAB20-18',
61
+ '65': 'IAB11-2',
62
+ '66': 'IAB17-18',
63
+ '67': 'IAB9-9',
64
+ '68': 'IAB9-5',
65
+ '69': 'IAB7-44',
66
+ '71': 'IAB22-3',
67
+ '73': 'IAB19-30',
68
+ '74': 'IAB8-5',
69
+ '78': 'IAB22-1',
70
+ '85': 'IAB12-2',
71
+ '86': 'IAB22-3',
72
+ '87': 'IAB11-3',
73
+ '112': 'IAB7-32',
74
+ '113': 'IAB7-32',
75
+ '114': 'IAB7-32',
76
+ '115': 'IAB7-32',
77
+ '118': 'IAB9-5',
78
+ '119': 'IAB9-5',
79
+ '120': 'IAB9-5',
80
+ '121': 'IAB9-5',
81
+ '122': 'IAB9-5',
82
+ '123': 'IAB9-5',
83
+ '124': 'IAB9-5',
84
+ '125': 'IAB9-5',
85
+ '126': 'IAB9-5',
86
+ '127': 'IAB22-1',
87
+ '132': 'IAB1-2',
88
+ '133': 'IAB19-30',
89
+ '137': 'IAB3-9',
90
+ '138': 'IAB19-3',
91
+ '140': 'IAB2-3',
92
+ '141': 'IAB2-1',
93
+ '142': 'IAB2-3',
94
+ '143': 'IAB17-13',
95
+ '166': 'IAB11-4',
96
+ '175': 'IAB3-1',
97
+ '176': 'IAB13-4',
98
+ '182': 'IAB8-9',
99
+ '183': 'IAB3-5'
100
+ };
@@ -0,0 +1,31 @@
1
+ import {CLIENT_SECTIONS} from '../../src/fpd/oneClient.js';
2
+ import {deepAccess} from '../../src/utils.js';
3
+
4
+ const ORTB_KEYWORDS_PATHS = ['user.keywords'].concat(
5
+ CLIENT_SECTIONS.flatMap((prefix) => ['keywords', 'content.keywords'].map(suffix => `${prefix}.${suffix}`))
6
+ );
7
+
8
+ /**
9
+ * @param commaSeparatedKeywords: any number of either keyword arrays, or comma-separated keyword strings
10
+ * @returns an array with all unique keywords contained across all inputs
11
+ */
12
+ export function mergeKeywords(...commaSeparatedKeywords) {
13
+ const keywords = new Set();
14
+ commaSeparatedKeywords
15
+ .filter(kwds => kwds)
16
+ .flatMap(kwds => Array.isArray(kwds) ? kwds : kwds.split(','))
17
+ .map(kw => kw.replace(/^\s*/, '').replace(/\s*$/, ''))
18
+ .filter(kw => kw)
19
+ .forEach(kw => keywords.add(kw));
20
+ return Array.from(keywords.keys());
21
+ }
22
+
23
+ /**
24
+ * Get an array with all keywords contained in an ortb2 object.
25
+ */
26
+ export function getAllOrtbKeywords(ortb2, ...extraCommaSeparatedKeywords) {
27
+ return mergeKeywords(
28
+ ...ORTB_KEYWORDS_PATHS.map(path => deepAccess(ortb2, path)),
29
+ ...extraCommaSeparatedKeywords
30
+ )
31
+ }
@@ -1,4 +1,4 @@
1
- import {isData, objectTransformer} from '../../src/activities/redactor.js';
1
+ import {isData, objectTransformer, sessionedApplies} from '../../src/activities/redactor.js';
2
2
  import {deepAccess, deepClone, deepEqual, deepSetValue} from '../../src/utils.js';
3
3
 
4
4
  /**
@@ -41,15 +41,6 @@ export function objectGuard(rules) {
41
41
 
42
42
  const wpTransformer = objectTransformer(writeRules);
43
43
 
44
- function mkApplies(session, args) {
45
- return function applies(rule) {
46
- if (!session.hasOwnProperty(rule.name)) {
47
- session[rule.name] = rule.applies(...args);
48
- }
49
- return session[rule.name];
50
- }
51
- }
52
-
53
44
  function mkGuard(obj, tree, applies) {
54
45
  return new Proxy(obj, {
55
46
  get(target, prop, receiver) {
@@ -76,7 +67,7 @@ export function objectGuard(rules) {
76
67
  return function guard(obj, ...args) {
77
68
  const session = {};
78
69
  return {
79
- obj: mkGuard(obj, root.children || {}, mkApplies(session, args)),
70
+ obj: mkGuard(obj, root.children || {}, sessionedApplies(session, ...args)),
80
71
  verify: mkVerify(wpTransformer(session, obj, ...args))
81
72
  }
82
73
  };
@@ -1,4 +1,4 @@
1
- import {deepSetValue, mergeDeep} from '../../../src/utils.js';
1
+ import {generateUUID, mergeDeep} from '../../../src/utils.js';
2
2
  import {bannerResponseProcessor, fillBannerImp} from './banner.js';
3
3
  import {fillVideoImp, fillVideoResponse} from './video.js';
4
4
  import {setResponseMediaType} from './mediaType.js';
@@ -21,17 +21,16 @@ export const DEFAULT_PROCESSORS = {
21
21
  fn: clientSectionChecker('ORTB request')
22
22
  },
23
23
  props: {
24
- // sets request properties id, tmax, test, source.tid
24
+ // sets request properties id, tmax, test
25
25
  fn(ortbRequest, bidderRequest) {
26
26
  Object.assign(ortbRequest, {
27
- id: ortbRequest.id || bidderRequest.auctionId,
27
+ id: ortbRequest.id || generateUUID(),
28
28
  test: ortbRequest.test || 0
29
29
  });
30
30
  const timeout = parseInt(bidderRequest.timeout, 10);
31
31
  if (!isNaN(timeout)) {
32
32
  ortbRequest.tmax = timeout;
33
33
  }
34
- deepSetValue(ortbRequest, 'source.tid', ortbRequest.source?.tid || bidderRequest.auctionId);
35
34
  }
36
35
  }
37
36
  },
@@ -38,7 +38,7 @@
38
38
  "tapadIdSystem",
39
39
  "teadsIdSystem",
40
40
  "tncIdSystem",
41
- "trustpidSystem",
41
+ "utiqSystem",
42
42
  "uid2IdSystem",
43
43
  "euidIdSystem",
44
44
  "unifiedIdSystem",
@@ -152,19 +152,15 @@ const getTargetingDataFromPapi = (papiUrl) => {
152
152
  export const buildOrtb2Updates = ({ segments = [], topics = [] }) => {
153
153
  const userData = {
154
154
  name: ORTB2_NAME,
155
- segment: segments.map((segmentId) => ({ id: segmentId }))
155
+ segment: segments.map((segmentId) => ({ id: segmentId })),
156
+ ext: { segtax: segtaxes.AUDIENCE }
156
157
  };
157
158
  const siteContentData = {
158
159
  name: ORTB2_NAME,
159
160
  segment: topics.map((topicId) => ({ id: topicId })),
160
161
  ext: { segtax: segtaxes.CONTENT }
161
162
  }
162
- // Currently appnexus bidAdapter doesn't support topics in `site.content.data.segment`
163
- // Therefore, writing them in `site.keywords` until it's supported
164
- // Other bidAdapters do fine with `site.content.data.segment`
165
- const siteKeywords = topics.map(topic => `1plusX=${topic}`).join(',');
166
-
167
- return { userData, siteContentData, siteKeywords };
163
+ return { userData, siteContentData };
168
164
  }
169
165
 
170
166
  /**
@@ -174,16 +170,10 @@ export const buildOrtb2Updates = ({ segments = [], topics = [] }) => {
174
170
  * @param {Object} biddersOrtb2 All current bidder configs
175
171
  */
176
172
  export const updateBidderConfig = (bidder, ortb2Updates, biddersOrtb2) => {
177
- const { siteKeywords, siteContentData, userData } = ortb2Updates;
173
+ const { siteContentData, userData } = ortb2Updates;
178
174
  mergeDeep(biddersOrtb2, { [bidder]: {} });
179
175
  const bidderConfig = deepAccess(biddersOrtb2, bidder);
180
176
 
181
- {
182
- // Legacy : cf. comment on buildOrtb2Updates
183
- const siteKeywordsPath = 'site.keywords';
184
- deepSetValue(bidderConfig, siteKeywordsPath, siteKeywords);
185
- }
186
-
187
177
  {
188
178
  const siteDataPath = 'site.content.data';
189
179
  const currentSiteContentData = deepAccess(bidderConfig, siteDataPath) || [];
@@ -1,19 +1,19 @@
1
- import { registerBidder } from '../src/adapters/bidderFactory.js';
2
- import { config } from '../src/config.js';
1
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
2
+ import {config} from '../src/config.js';
3
3
  import {
4
4
  deepAccess,
5
- uniques,
6
- isArray,
5
+ getWindowSelf,
7
6
  getWindowTop,
7
+ isArray,
8
8
  isGptPubadsDefined,
9
9
  isSlotMatchingAdUnitCode,
10
10
  logInfo,
11
11
  logWarn,
12
- getWindowSelf,
13
12
  mergeDeep,
14
- pick
13
+ pick,
14
+ uniques
15
15
  } from '../src/utils.js';
16
- import { BANNER, VIDEO } from '../src/mediaTypes.js';
16
+ import {BANNER, VIDEO} from '../src/mediaTypes.js';
17
17
 
18
18
  // **************************** UTILS *************************** //
19
19
  const BIDDER_CODE = '33across';
@@ -183,7 +183,8 @@ function buildRequests(bidRequests, bidderRequest) {
183
183
  uspConsent,
184
184
  pageUrl,
185
185
  referer,
186
- ttxSettings
186
+ ttxSettings,
187
+ bidderRequest,
187
188
  })
188
189
  )
189
190
  }
@@ -246,7 +247,7 @@ function _getMRAKey(bidRequest) {
246
247
  }
247
248
 
248
249
  // Infer the necessary data from valid bid for a minimal ttxRequest and create HTTP request
249
- function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageUrl, referer, ttxSettings }) {
250
+ function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageUrl, referer, ttxSettings, bidderRequest }) {
250
251
  const ttxRequest = {};
251
252
  const firstBidRequest = bidRequests[0];
252
253
  const { siteId, test } = firstBidRequest.params;
@@ -271,7 +272,7 @@ function _createServerRequest({ bidRequests, gdprConsent = {}, uspConsent, pageU
271
272
  ttxRequest.site.ref = referer;
272
273
  }
273
274
 
274
- ttxRequest.id = firstBidRequest.auctionId;
275
+ ttxRequest.id = bidderRequest?.bidderRequestId;
275
276
 
276
277
  if (gdprConsent.consentString) {
277
278
  ttxRequest.user = setExtensions(ttxRequest.user, {
@@ -681,7 +682,6 @@ function _createBidResponse(bid, cur) {
681
682
  bid.adomain && bid.adomain.length;
682
683
  const bidResponse = {
683
684
  requestId: bid.impid,
684
- bidderCode: BIDDER_CODE,
685
685
  cpm: bid.price,
686
686
  width: bid.w,
687
687
  height: bid.h,
@@ -59,11 +59,12 @@ export const spec = {
59
59
  }
60
60
 
61
61
  const request = {
62
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
62
63
  auctionId: bidRequest.auctionId,
63
64
  requestId: bidRequest.bidId,
64
65
  bidRequestsCount: bidRequest.bidRequestsCount,
65
66
  bidderRequestId: bidRequest.bidderRequestId,
66
- transactionId: bidRequest.transactionId,
67
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
67
68
  referrer: referrer,
68
69
  timeout: timeout,
69
70
  adUnit: adUnit,
@@ -860,7 +860,7 @@ function storeRequestInAdagioNS(bidRequest) {
860
860
  bidder: bidRequest.bidder,
861
861
  params: bidRequest.params // use the updated bid.params object with auto-detected params
862
862
  }],
863
- auctionId: bidRequest.auctionId,
863
+ auctionId: bidRequest.auctionId, // this auctionId has been generated by adagioBidAdapter
864
864
  pageviewId: internal.getPageviewId(),
865
865
  printNumber,
866
866
  localPbjs: '$$PREBID_GLOBAL$$',
@@ -869,7 +869,7 @@ function storeRequestInAdagioNS(bidRequest) {
869
869
 
870
870
  // (legacy) Store internal adUnit information
871
871
  w.ADAGIO.adUnits[bidRequest.adUnitCode] = {
872
- auctionId: bidRequest.auctionId,
872
+ auctionId: bidRequest.auctionId, // this auctionId has been generated by adagioBidAdapter
873
873
  pageviewId: internal.getPageviewId(),
874
874
  printNumber,
875
875
  };
@@ -981,7 +981,14 @@ export const spec = {
981
981
  const syncEnabled = deepAccess(config.getConfig('userSync'), 'syncEnabled')
982
982
  const usIfr = syncEnabled && userSync.canBidderRegisterSync('iframe', 'adagio')
983
983
 
984
- const adUnits = _map(validBidRequests, (bidRequest) => {
984
+ const aucId = generateUUID()
985
+
986
+ const adUnits = _map(validBidRequests, (rawBidRequest) => {
987
+ const bidRequest = {...rawBidRequest}
988
+
989
+ // Fix https://github.com/prebid/Prebid.js/issues/9781
990
+ bidRequest.auctionId = aucId
991
+
985
992
  const globalFeatures = GlobalExchange.getOrSetGlobalFeatures();
986
993
  const features = {
987
994
  ...globalFeatures,
@@ -1094,6 +1101,12 @@ export const spec = {
1094
1101
 
1095
1102
  storeRequestInAdagioNS(bidRequest);
1096
1103
 
1104
+ // Remove these fields at the very end, so we can still use them before.
1105
+ delete bidRequest.transactionId;
1106
+ delete bidRequest.ortb2Imp;
1107
+ delete bidRequest.ortb2;
1108
+ delete bidRequest.sizes;
1109
+
1097
1110
  return bidRequest;
1098
1111
  });
1099
1112
 
@@ -1232,33 +1245,8 @@ export const spec = {
1232
1245
  * @returns {object} updated params
1233
1246
  */
1234
1247
  transformBidParams(params, isOrtb, adUnit, bidRequests) {
1235
- const adagioBidderRequest = find(bidRequests, bidRequest => bidRequest.bidderCode === 'adagio');
1236
- const adagioBid = find(adagioBidderRequest.bids, bid => bid.adUnitCode === adUnit.code);
1237
-
1238
- if (isOrtb) {
1239
- autoFillParams(adagioBid);
1240
-
1241
- adagioBid.params.auctionId = deepAccess(adagioBidderRequest, 'auctionId');
1242
-
1243
- const globalFeatures = GlobalExchange.getOrSetGlobalFeatures();
1244
- adagioBid.params.features = {
1245
- ...globalFeatures,
1246
- print_number: getPrintNumber(adagioBid.adUnitCode, adagioBidderRequest).toString(),
1247
- adunit_position: getSlotPosition(adagioBid.params.adUnitElementId) // adUnitElementId à déplacer ???
1248
- };
1249
-
1250
- adagioBid.params.pageviewId = internal.getPageviewId();
1251
- adagioBid.params.prebidVersion = '$prebid.version$';
1252
- adagioBid.params.data = GlobalExchange.getExchangeData();
1253
-
1254
- if (deepAccess(adagioBid, 'mediaTypes.video.context') === OUTSTREAM) {
1255
- adagioBid.params.playerName = setPlayerName(adagioBid);
1256
- }
1257
-
1258
- storeRequestInAdagioNS(adagioBid);
1259
- }
1260
-
1261
- return adagioBid.params;
1248
+ // We do not have a prebid server adapter. So let's return unchanged params.
1249
+ return params;
1262
1250
  }
1263
1251
  };
1264
1252
 
@@ -203,7 +203,7 @@ function buildRegs(bidderRequest) {
203
203
  function buildSource(bidRequests, bidderRequest) {
204
204
  const source = {
205
205
  fd: 1,
206
- tid: bidderRequest.auctionId,
206
+ tid: bidderRequest.ortb2.source.tid,
207
207
  };
208
208
  const schain = deepAccess(bidRequests, '0.schain');
209
209
 
@@ -30,6 +30,7 @@ export const spec = {
30
30
  for (var i = 0; i < validBidRequests.length; i++) {
31
31
  let vb = validBidRequests[i];
32
32
  let o = vb.params;
33
+ // TODO: fix auctionId/transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
33
34
  bid.auctionId = vb.auctionId;
34
35
  o.bidId = vb.bidId;
35
36
  o.transactionId = vb.transactionId;
@@ -3,7 +3,7 @@
3
3
 
4
4
  import {registerBidder} from '../src/adapters/bidderFactory.js';
5
5
  import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
6
- import {deepAccess, deepSetValue, mergeDeep, parseSizesInput, deepClone} from '../src/utils.js';
6
+ import {deepAccess, deepClone, deepSetValue, mergeDeep, parseSizesInput} from '../src/utils.js';
7
7
  import {config} from '../src/config.js';
8
8
  import {Renderer} from '../src/Renderer.js';
9
9
 
@@ -58,7 +58,7 @@ export const spec = {
58
58
  const adxDomain = setOnAny(validBidRequests, 'params.adxDomain') || 'adx.adform.net';
59
59
 
60
60
  const pt = setOnAny(validBidRequests, 'params.pt') || setOnAny(validBidRequests, 'params.priceType') || 'net';
61
- const tid = bidderRequest.auctionId;
61
+ const tid = bidderRequest.ortb2?.source?.tid;
62
62
  const test = setOnAny(validBidRequests, 'params.test');
63
63
  const currency = getConfig('currency.adServerCurrency');
64
64
  const cur = currency && [ currency ];
@@ -139,7 +139,7 @@ export const spec = {
139
139
  });
140
140
 
141
141
  const request = {
142
- id: bidderRequest.auctionId,
142
+ id: bidderRequest.bidderRequestId,
143
143
  site,
144
144
  app,
145
145
  user,
@@ -48,7 +48,7 @@ export const spec = {
48
48
  data = tryAppendQueryString(data, 'sdktype', '0');
49
49
  data = tryAppendQueryString(data, 'hb', 'true');
50
50
  data = tryAppendQueryString(data, 't', 'json3');
51
- data = tryAppendQueryString(data, 'transactionid', validReq.transactionId);
51
+ data = tryAppendQueryString(data, 'transactionid', validReq.ortb2Imp?.ext?.tid);
52
52
  data = tryAppendQueryString(data, 'sizes', getSizes(validReq));
53
53
  data = tryAppendQueryString(data, 'currency', getCurrencyType());
54
54
  data = tryAppendQueryString(data, 'pbver', '$prebid.version$');