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
@@ -46,6 +46,7 @@ export const spec = {
46
46
  referrer: (bidderRequest.refererInfo && bidderRequest.refererInfo.page) ? bidderRequest.refererInfo.page : '',
47
47
  hb_version: '$prebid.version$',
48
48
  deviceWidth: document.documentElement.clientWidth,
49
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
49
50
  auctionId: deepAccess(validBidRequests[0], 'auctionId'),
50
51
  bidderRequestId: deepAccess(validBidRequests[0], 'bidderRequestId'),
51
52
  publisherId: deepAccess(validBidRequests[0], 'params.publisherId'),
@@ -107,7 +108,6 @@ export const spec = {
107
108
  serverResponse.bids.forEach((bid) => {
108
109
  const bidResponse = {
109
110
  placementId: bid.placementId,
110
- transactionId: bid.transactionId,
111
111
  requestId: bid.bidId,
112
112
  ttl: bid.ttl,
113
113
  creativeId: bid.creativeId,
@@ -161,7 +161,7 @@ function buildImp(bidRequest, ortb2) {
161
161
  sizes: parseSizesInput(deepAccess(bidRequest, 'mediaTypes.banner.sizes')),
162
162
  bidId: deepAccess(bidRequest, 'bidId'),
163
163
  adUnitCode: deepAccess(bidRequest, 'adUnitCode'),
164
- transactionId: deepAccess(bidRequest, 'transactionId'),
164
+ transactionId: deepAccess(bidRequest, 'ortb2Imp.ext.tid'),
165
165
  placementId: deepAccess(bidRequest, 'params.placementId')
166
166
  };
167
167
 
@@ -101,7 +101,8 @@ export const spec = {
101
101
  pageUrl: referer,
102
102
  bidId: bidRequest.bidId,
103
103
  auctionId: bidRequest.auctionId,
104
- transactionId: bidRequest.transactionId,
104
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
105
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
105
106
  adUnitCode: bidRequest.adUnitCode,
106
107
  bidRequestCount: bidRequest.bidRequestCount,
107
108
  params: bidRequest.params,
@@ -53,7 +53,8 @@ export const spec = {
53
53
  const domain = isStr(bid.params.domain) ? bid.params.domain : topOrigin
54
54
  const cur = getValue(bid.params, 'currency') || DEFAULT_CURRENCY
55
55
  const bidid = getBidIdParameter('bidId', bid)
56
- const transactionid = getBidIdParameter('transactionId', bid)
56
+ const transactionid = bid.ortb2Imp?.ext?.tid || '';
57
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
57
58
  const auctionid = getBidIdParameter('auctionId', bid)
58
59
  const bidfloor = _getBidFloor(bid)
59
60
 
@@ -112,7 +113,6 @@ export const spec = {
112
113
  netRevenue: true,
113
114
  ad: bid.ad,
114
115
  ttl: bid.ttl,
115
- transactionId: bid.transactionid,
116
116
  meta: {
117
117
  advertiserDomains: bid.adDomain ? [bid.adDomain] : []
118
118
  }
@@ -1,16 +1,14 @@
1
1
  // jshint esversion: 6, es3: false, node: true
2
2
  'use strict';
3
3
 
4
- import {
5
- registerBidder
6
- } from '../src/adapters/bidderFactory.js';
7
- import { NATIVE, BANNER, VIDEO } from '../src/mediaTypes.js';
8
- import { OUTSTREAM } from '../src/video.js';
9
- import { deepAccess, deepSetValue, replaceAuctionPrice, _map, isArray, logWarn } from '../src/utils.js';
10
- import { ajax } from '../src/ajax.js';
11
- import { config } from '../src/config.js';
12
- import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
13
- import { Renderer } from '../src/Renderer.js';
4
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
5
+ import {BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
6
+ import {OUTSTREAM} from '../src/video.js';
7
+ import {_map, deepAccess, deepSetValue, isArray, logWarn, replaceAuctionPrice} from '../src/utils.js';
8
+ import {ajax} from '../src/ajax.js';
9
+ import {config} from '../src/config.js';
10
+ import {convertOrtbRequestToProprietaryNative} from '../src/native.js';
11
+ import {Renderer} from '../src/Renderer.js';
14
12
 
15
13
  const BIDDER_CODE = 'outbrain';
16
14
  const GVLID = 164;
@@ -107,7 +105,7 @@ export const spec = {
107
105
  });
108
106
 
109
107
  const request = {
110
- id: bidderRequest.auctionId,
108
+ id: bidderRequest.bidderRequestId,
111
109
  site: { page, publisher },
112
110
  device: { ua },
113
111
  source: { fd: 1 },
@@ -10,8 +10,8 @@ const allAdUnits = [];
10
10
  export const oxxionSubmodule = {
11
11
  name: 'oxxionRtd',
12
12
  init: init,
13
- onAuctionEndEvent: onAuctionEnd,
14
13
  getBidRequestData: getAdUnits,
14
+ onBidResponseEvent: insertVideoTracking,
15
15
  };
16
16
 
17
17
  function init(config, userConsent) {
@@ -32,8 +32,10 @@ function getAdUnits(reqBidsConfigObj, callback, config, userConsent) {
32
32
  }
33
33
  }
34
34
 
35
- function insertVideoTracking(bidResponse, config, maxCpm) {
35
+ function insertVideoTracking(bidResponse, config, userConsent) {
36
+ // this should only be do for video bids
36
37
  if (bidResponse.mediaType === 'video') {
38
+ let maxCpm = 0;
37
39
  const trackingUrl = getImpUrl(config, bidResponse, maxCpm);
38
40
  if (!trackingUrl) {
39
41
  return;
@@ -42,7 +44,8 @@ function insertVideoTracking(bidResponse, config, maxCpm) {
42
44
  if (bidResponse.vastUrl) {
43
45
  bidResponse.vastImpUrl = bidResponse.vastImpUrl
44
46
  ? trackingUrl + '&url=' + encodeURI(bidResponse.vastImpUrl)
45
- : trackingUrl
47
+ : trackingUrl;
48
+ logInfo(LOG_PREFIX + 'insert into vastImpUrl for adId ' + bidResponse.adId);
46
49
  }
47
50
  // Vast XML document
48
51
  if (bidResponse.vastXml !== undefined) {
@@ -87,33 +90,8 @@ function getImpUrl(config, data, maxCpm) {
87
90
  }
88
91
  return acc;
89
92
  }, '');
90
- const cpmIncrement = Math.round(100000 * (data.cpm - maxCpm)) / 100000;
93
+ const cpmIncrement = 0.0;
91
94
  return trackingImpUrl + 'cpmIncrement=' + cpmIncrement + '&context=' + context;
92
95
  }
93
96
 
94
- function onAuctionEnd(auctionDetails, config, userConsent) {
95
- const transactionsToCheck = {}
96
- auctionDetails.adUnits.forEach(adunit => {
97
- if (config.params.contexts.includes(deepAccess(adunit, 'mediaTypes.video.context'))) {
98
- transactionsToCheck[adunit.transactionId] = {'bids': {}, 'maxCpm': 0.0, 'secondMaxCpm': 0.0};
99
- }
100
- });
101
- for (const key in auctionDetails.bidsReceived) {
102
- if (auctionDetails.bidsReceived[key].transactionId in transactionsToCheck) {
103
- transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['bids'][auctionDetails.bidsReceived[key].adId] = {'key': key, 'cpm': auctionDetails.bidsReceived[key].cpm};
104
- if (auctionDetails.bidsReceived[key].cpm > transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm']) {
105
- transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm'] = transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm'];
106
- transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['maxCpm'] = auctionDetails.bidsReceived[key].cpm;
107
- } else if (auctionDetails.bidsReceived[key].cpm > transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm']) {
108
- transactionsToCheck[auctionDetails.bidsReceived[key].transactionId]['secondMaxCpm'] = auctionDetails.bidsReceived[key].cpm;
109
- }
110
- }
111
- };
112
- Object.keys(transactionsToCheck).forEach(transaction => {
113
- Object.keys(transactionsToCheck[transaction]['bids']).forEach(bid => {
114
- insertVideoTracking(auctionDetails.bidsReceived[transactionsToCheck[transaction]['bids'][bid].key], config, transactionsToCheck[transaction].secondMaxCpm);
115
- });
116
- });
117
- }
118
-
119
97
  submodule('realTimeData', oxxionSubmodule);
@@ -262,6 +262,7 @@ export const spec = {
262
262
  obj.placementId = placementId;
263
263
  deepSetValue(obj, 'ext.prebid', {'storedrequest': {'id': placementId}});
264
264
  obj.ext[whitelabelBidder] = {};
265
+ // TODO: fix auctionId/transactionID leak: https://github.com/prebid/Prebid.js/issues/9781
265
266
  obj.ext[whitelabelBidder].adUnitCode = ozoneBidRequest.adUnitCode; // eg. 'mpu'
266
267
  obj.ext[whitelabelBidder].transactionId = ozoneBidRequest.transactionId; // this is the transactionId PER adUnit, common across bidders for this unit
267
268
  if (ozoneBidRequest.params.hasOwnProperty('customData')) {
@@ -381,7 +382,7 @@ export const spec = {
381
382
  ozoneRequestSingle.auctionId = imp.ext[whitelabelBidder].transactionId; // not sure if this should be here?
382
383
  ozoneRequestSingle.imp = [imp];
383
384
  ozoneRequestSingle.ext = extObj;
384
- deepSetValue(ozoneRequestSingle, 'source.tid', imp.ext[whitelabelBidder].transactionId);// RTB 2.5 : tid is Transaction ID that must be common across all participants in this bid request (e.g., potentially multiple exchanges).
385
+ deepSetValue(ozoneRequestSingle, 'source.tid', bidderRequest.auctionId);// RTB 2.5 : tid is Transaction ID that must be common across all participants in this bid request (e.g., potentially multiple exchanges).
385
386
  deepSetValue(ozoneRequestSingle, 'user.ext.eids', userExtEids);
386
387
  logInfo('buildRequests RequestSingle (for non-single) = ', ozoneRequestSingle);
387
388
  return {
@@ -1,4 +1,4 @@
1
- import { logInfo, deepAccess } from '../src/utils.js';
1
+ import {deepAccess, logInfo} from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {BANNER} from '../src/mediaTypes.js';
4
4
 
@@ -40,7 +40,7 @@ export const spec = {
40
40
  }));
41
41
 
42
42
  const openrtbRequest = {
43
- id: bidderRequest.auctionId,
43
+ id: bidderRequest.bidderRequestId,
44
44
  imp: impressions,
45
45
  site: {
46
46
  domain: bidderRequest?.refererInfo?.domain,
@@ -1,20 +1,12 @@
1
- import { registerBidder } from '../src/adapters/bidderFactory.js';
2
- import { getStorageManager } from '../src/storageManager.js';
3
- import { BANNER } from '../src/mediaTypes.js';
4
- import { config } from '../src/config.js';
5
- import { find, includes } from '../src/polyfill.js';
6
- import {
7
- convertCamelToUnderscore,
8
- deepAccess,
9
- isArray,
10
- isEmpty,
11
- isFn,
12
- isNumber,
13
- isPlainObject,
14
- transformBidderParamKeywords
15
- } from '../src/utils.js';
16
- import { auctionManager } from '../src/auctionManager.js';
1
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
2
+ import {getStorageManager} from '../src/storageManager.js';
3
+ import {BANNER} from '../src/mediaTypes.js';
4
+ import {config} from '../src/config.js';
5
+ import {find, includes} from '../src/polyfill.js';
6
+ import {convertCamelToUnderscore, deepAccess, isArray, isFn, isNumber, isPlainObject} from '../src/utils.js';
7
+ import {auctionManager} from '../src/auctionManager.js';
17
8
  import {getGlobal} from '../src/prebidGlobal.js';
9
+ import {getANKeywordParam} from '../libraries/appnexusKeywords/anKeywords.js';
18
10
 
19
11
  const SOURCE = 'pbjs';
20
12
  const storageManager = getStorageManager({bidderCode: 'pixfuture'});
@@ -136,8 +128,9 @@ export const spec = {
136
128
  v: getGlobal().version,
137
129
  pageUrl: referer,
138
130
  bidId: bidRequest.bidId,
131
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
139
132
  auctionId: bidRequest.auctionId,
140
- transactionId: bidRequest.transactionId,
133
+ transactionId: bidRequest.ortb2Imp?.ext?.tid,
141
134
  adUnitCode: bidRequest.adUnitCode,
142
135
  bidRequestCount: bidRequest.bidRequestCount,
143
136
  sizes: bidRequest.sizes,
@@ -281,14 +274,7 @@ function bidToTag(bid) {
281
274
  if (bid.params.externalImpId) {
282
275
  tag.external_imp_id = bid.params.externalImpId;
283
276
  }
284
- if (!isEmpty(bid.params.keywords)) {
285
- let keywords = transformBidderParamKeywords(bid.params.keywords);
286
-
287
- if (keywords.length > 0) {
288
- keywords.forEach(deleteValues);
289
- }
290
- tag.keywords = keywords;
291
- }
277
+ tag.keywords = getANKeywordParam(bid.ortb2, bid.params.keywords)
292
278
 
293
279
  let gpid = deepAccess(bid, 'ortb2Imp.ext.data.pbadslot');
294
280
  if (gpid) {
@@ -302,7 +288,7 @@ function bidToTag(bid) {
302
288
  if (bid.params.frameworks && isArray(bid.params.frameworks)) {
303
289
  tag['banner_frameworks'] = bid.params.frameworks;
304
290
  }
305
-
291
+ // TODO: why does this need to iterate through every adUnit?
306
292
  let adUnit = find(auctionManager.getAdUnits(), au => bid.transactionId === au.transactionId);
307
293
  if (adUnit && adUnit.mediaTypes && adUnit.mediaTypes.banner) {
308
294
  tag.ad_types.push(BANNER);
@@ -368,14 +354,4 @@ function getBidFloor(bid) {
368
354
  return null;
369
355
  }
370
356
 
371
- function deleteValues(keyPairObj) {
372
- if (isPopulatedArray(keyPairObj.value) && keyPairObj.value[0] === '') {
373
- delete keyPairObj.value;
374
- }
375
- }
376
-
377
- function isPopulatedArray(arr) {
378
- return !!(isArray(arr) && arr.length > 0);
379
- }
380
-
381
357
  registerBidder(spec);
@@ -96,10 +96,8 @@ export const s2sDefaultConfig = {
96
96
  adapterOptions: {},
97
97
  syncUrlModifier: {},
98
98
  ortbNative: {
99
- context: 1,
100
- plcmttype: 1,
101
99
  eventtrackers: [
102
- {event: 1, methods: [1]}
100
+ {event: 1, methods: [1, 2]}
103
101
  ],
104
102
  }
105
103
  };
@@ -18,6 +18,12 @@ import {setImpBidParams} from '../../libraries/pbsExtensions/processors/params.j
18
18
  import {SUPPORTED_MEDIA_TYPES} from '../../libraries/pbsExtensions/processors/mediaType.js';
19
19
  import {IMP, REQUEST, RESPONSE} from '../../src/pbjsORTB.js';
20
20
  import {beConvertCurrency} from '../../src/utils/currency.js';
21
+ import {redactor} from '../../src/activities/redactor.js';
22
+ import {s2sActivityParams} from '../../src/adapterManager.js';
23
+ import {activityParams} from '../../src/activities/activityParams.js';
24
+ import {MODULE_TYPE_BIDDER} from '../../src/activities/modules.js';
25
+ import {isActivityAllowed} from '../../src/activities/rules.js';
26
+ import {ACTIVITY_TRANSMIT_TID} from '../../src/activities/activities.js';
21
27
 
22
28
  const DEFAULT_S2S_TTL = 60;
23
29
  const DEFAULT_S2S_CURRENCY = 'USD';
@@ -51,7 +57,6 @@ const PBS_CONVERTER = ortbConverter({
51
57
  const request = buildRequest(imps, proxyBidderRequest, context);
52
58
 
53
59
  request.tmax = s2sBidRequest.s2sConfig.timeout;
54
- deepSetValue(request, 'source.tid', proxyBidderRequest.auctionId);
55
60
 
56
61
  [request.app, request.dooh, request.site].forEach(section => {
57
62
  if (section && !section.publisher?.id) {
@@ -69,6 +74,10 @@ const PBS_CONVERTER = ortbConverter({
69
74
  deepSetValue(request, 'ext.prebid.data.eidpermissions', eidPermissions);
70
75
  }
71
76
 
77
+ if (!context.transmitTids) {
78
+ deepSetValue(request, 'ext.prebid.createtids', false);
79
+ }
80
+
72
81
  return request;
73
82
  }
74
83
  },
@@ -103,9 +112,8 @@ const PBS_CONVERTER = ortbConverter({
103
112
 
104
113
  // because core has special treatment for PBS adapter responses, we need some additional processing
105
114
  bidResponse.requestTimestamp = context.requestTimestamp;
106
- const status = bid.price !== 0 ? CONSTANTS.STATUS.GOOD : CONSTANTS.STATUS.NO_BID;
107
115
  return {
108
- bid: Object.assign(createBid(status, {
116
+ bid: Object.assign(createBid(CONSTANTS.STATUS.GOOD, {
109
117
  src: CONSTANTS.S2S.SRC,
110
118
  bidId: bidRequest ? (bidRequest.bidId || bidRequest.bid_Id) : null,
111
119
  transactionId: context.adUnit.transactionId,
@@ -167,13 +175,17 @@ const PBS_CONVERTER = ortbConverter({
167
175
  deepSetValue(ortbRequest, 'ext.prebid', mergeDeep(ortbRequest.ext?.prebid || {}, context.s2sBidRequest.s2sConfig.extPrebid));
168
176
  }
169
177
 
178
+ // for global FPD, check allowed activities against "prebid.pbsBidAdapter"...
179
+ context.getRedactor().ortb2(ortbRequest);
180
+
170
181
  const fpdConfigs = Object.entries(context.s2sBidRequest.ortb2Fragments?.bidder || {}).filter(([bidder]) => {
171
182
  const bidders = context.s2sBidRequest.s2sConfig.bidders;
172
183
  const allowUnknownBidderCodes = context.s2sBidRequest.s2sConfig.allowUnknownBidderCodes;
173
184
  return allowUnknownBidderCodes || (bidders && bidders.includes(bidder));
174
185
  }).map(([bidder, ortb2]) => ({
186
+ // ... but for bidder specific FPD we can use the actual bidder
175
187
  bidders: [bidder],
176
- config: {ortb2}
188
+ config: {ortb2: context.getRedactor(bidder).ortb2(ortb2)}
177
189
  }));
178
190
  if (fpdConfigs.length) {
179
191
  deepSetValue(ortbRequest, 'ext.prebid.bidderconfig', fpdConfigs);
@@ -241,10 +253,25 @@ export function buildPBSRequest(s2sBidRequest, bidderRequests, adUnits, requeste
241
253
  const requestTimestamp = timestamp();
242
254
  const impIds = new Set();
243
255
  const proxyBidRequests = [];
256
+ const s2sParams = s2sActivityParams(s2sBidRequest.s2sConfig);
257
+
258
+ const getRedactor = (() => {
259
+ const global = redactor(s2sParams);
260
+ const bidders = {};
261
+ return (bidder) => {
262
+ if (bidder == null) return global;
263
+ if (!bidders.hasOwnProperty(bidder)) {
264
+ bidders[bidder] = redactor(activityParams(MODULE_TYPE_BIDDER, bidder));
265
+ }
266
+ return bidders[bidder]
267
+ }
268
+ })();
269
+
270
+ adUnits = adUnits.map((au) => getRedactor().bidRequest(au))
244
271
 
245
272
  adUnits.forEach(adUnit => {
246
273
  const actualBidRequests = new Map();
247
-
274
+ adUnits.bids = adUnit.bids.map(br => getRedactor(br.bidder).bidRequest(br));
248
275
  adUnit.bids.forEach((bid) => {
249
276
  if (bid.mediaTypes != null) {
250
277
  // TODO: support labels / conditional bids
@@ -286,6 +313,8 @@ export function buildPBSRequest(s2sBidRequest, bidderRequests, adUnits, requeste
286
313
  actualBidderRequests: bidderRequests,
287
314
  eidPermissions,
288
315
  nativeRequest: s2sBidRequest.s2sConfig.ortbNative,
316
+ getRedactor,
317
+ transmitTids: isActivityAllowed(ACTIVITY_TRANSMIT_TID, s2sParams),
289
318
  }
290
319
  });
291
320
  }
@@ -151,8 +151,9 @@ export function getFirstMatchingFloor(floorData, bidObject, responseObject = {})
151
151
  matchingRule
152
152
  };
153
153
  // use adUnit floorMin as priority!
154
- if (typeof deepAccess(bidObject, 'ortb2Imp.ext.prebid.floorMin') === 'number') {
155
- matchingData.floorMin = bidObject.ortb2Imp.ext.prebid.floorMin;
154
+ const floorMin = deepAccess(bidObject, 'ortb2Imp.ext.prebid.floors.floorMin');
155
+ if (typeof floorMin === 'number') {
156
+ matchingData.floorMin = floorMin;
156
157
  }
157
158
  matchingData.matchingFloor = Math.max(matchingData.floorMin, matchingData.floorRuleValue);
158
159
  // save for later lookup if needed
@@ -632,7 +633,7 @@ export function handleSetFloorsConfig(config) {
632
633
  'bidAdjustment', bidAdjustment => bidAdjustment !== false, // defaults to true
633
634
  ]),
634
635
  'additionalSchemaFields', additionalSchemaFields => typeof additionalSchemaFields === 'object' && Object.keys(additionalSchemaFields).length > 0 ? addFieldOverrides(additionalSchemaFields) : undefined,
635
- 'data', data => (data && parseFloorData(data, 'setConfig')) || _floorsConfig.data // do not overwrite if passed in data not valid
636
+ 'data', data => (data && parseFloorData(data, 'setConfig')) || undefined
636
637
  ]);
637
638
 
638
639
  // if enabled then do some stuff
@@ -744,10 +745,9 @@ export const addBidResponseHook = timedBidResponseHook('priceFloors', function a
744
745
  // now do the compare!
745
746
  if (shouldFloorBid(floorData, floorInfo, bid)) {
746
747
  // bid fails floor -> throw it out
747
- // continue with a "NO_BID" bid, TODO: remove this in v8
748
- const flooredBid = reject(CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET);
749
- logWarn(`${MODULE_NAME}: ${flooredBid.bidderCode}'s Bid Response for ${adUnitCode} was rejected due to floor not met (adjusted cpm: ${bid?.floorData?.cpmAfterAdjustments}, floor: ${floorInfo?.matchingFloor})`, bid);
750
- return fn.call(this, adUnitCode, flooredBid, reject);
748
+ reject(CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET);
749
+ logWarn(`${MODULE_NAME}: ${bid.bidderCode}'s Bid Response for ${adUnitCode} was rejected due to floor not met (adjusted cpm: ${bid?.floorData?.cpmAfterAdjustments}, floor: ${floorInfo?.matchingFloor})`, bid);
750
+ return;
751
751
  }
752
752
  return fn.call(this, adUnitCode, bid, reject);
753
753
  });
@@ -1,8 +1,8 @@
1
1
  import {ajax} from '../src/ajax.js';
2
2
  import {config} from '../src/config.js';
3
- import { transformBidderParamKeywords } from '../src/utils.js';
4
3
  import {registerBidder} from '../src/adapters/bidderFactory.js';
5
4
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
5
+ import {getANKeywordParam} from '../libraries/appnexusKeywords/anKeywords.js';
6
6
 
7
7
  const BIDDER_CODE = 'prisma';
8
8
  const BIDDER_URL = 'https://prisma.nexx360.io/prebid';
@@ -70,12 +70,13 @@ export const spec = {
70
70
  tagId: adunitValue.params.tagId,
71
71
  label: adunitValue.adUnitCode,
72
72
  bidId: adunitValue.bidId,
73
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
73
74
  auctionId: adunitValue.auctionId,
74
- transactionId: adunitValue.transactionId,
75
+ transactionId: adunitValue.ortb2Imp?.ext?.tid,
75
76
  mediatypes: adunitValue.mediaTypes,
76
77
  bidfloor: 0,
77
78
  bidfloorCurrency: 'USD',
78
- keywords: adunitValue.params.keywords ? transformBidderParamKeywords(adunitValue.params.keywords) : [],
79
+ keywords: getANKeywordParam(bidderRequest.ortb2, adunitValue.params.keywords)
79
80
  }
80
81
  adUnits.push(foo);
81
82
  if (adunitValue.userIdAsEids) userEids = adunitValue.userIdAsEids;
@@ -24,8 +24,9 @@ function _createServerRequest(bidRequests, bidderRequest) {
24
24
  sizeIds.push(sizeId);
25
25
  });
26
26
  var payload = {
27
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
27
28
  auctionId: bidRequests[0].auctionId,
28
- transactionId: bidRequests[0].auctionId,
29
+ transactionId: bidRequests[0].ortb2Imp?.ext?.tid,
29
30
  bids: sizeIds,
30
31
  website: bidRequests[0].params.website,
31
32
  language: bidRequests[0].params.language,
@@ -1,7 +1,7 @@
1
- import { registerBidder } from '../src/adapters/bidderFactory.js';
2
- import { ajax } from '../src/ajax.js';
3
- import { config } from '../src/config.js';
4
- import { BANNER, VIDEO } from '../src/mediaTypes.js';
1
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
2
+ import {ajax} from '../src/ajax.js';
3
+ import {config} from '../src/config.js';
4
+ import {BANNER, VIDEO} from '../src/mediaTypes.js';
5
5
  import {
6
6
  deepAccess,
7
7
  deepSetValue,
@@ -41,7 +41,7 @@ export const spec = {
41
41
 
42
42
  buildRequests: function (bidRequests, bidderRequest) {
43
43
  const data = {
44
- id: bidderRequest.auctionId,
44
+ id: bidderRequest.bidderRequestId,
45
45
  imp: bidRequests.map(buildImp),
46
46
  tmax: bidderRequest.timeout,
47
47
  ext: {
@@ -110,10 +110,6 @@ function setBidStatus(bid, args) {
110
110
  bid.status = SUCCESS;
111
111
  delete bid.error; // it's possible for this to be set by a previous timeout
112
112
  break;
113
- case CONSTANTS.STATUS.NO_BID:
114
- bid.status = NO_BID;
115
- delete bid.error;
116
- break;
117
113
  default:
118
114
  bid.status = ERROR;
119
115
  bid.error = {
@@ -256,6 +252,10 @@ export function getMetadata(meta) {
256
252
  return metaObj;
257
253
  }
258
254
 
255
+ function isS2SBidder(bidder) {
256
+ return (s2sBidders.indexOf(bidder) > -1) ? 1 : 0
257
+ }
258
+
259
259
  function gatherPartnerBidsForAdUnitForLogger(adUnit, adUnitId, highestBid) {
260
260
  highestBid = (highestBid && highestBid.length > 0) ? highestBid[0] : null;
261
261
  return Object.keys(adUnit.bids).reduce(function(partnerBids, bidId) {
@@ -275,7 +275,7 @@ function gatherPartnerBidsForAdUnitForLogger(adUnit, adUnitId, highestBid) {
275
275
  'l1': bid.bidResponse ? bid.clientLatencyTimeMs : 0,
276
276
  'l2': 0,
277
277
  'adv': bid.bidResponse ? getAdDomain(bid.bidResponse) || undefined : undefined,
278
- 'ss': (s2sBidders.indexOf(bid.bidder) > -1) ? 1 : 0,
278
+ 'ss': isS2SBidder(bid.bidder),
279
279
  't': (bid.status == ERROR && bid.error.code == TIMEOUT_ERROR) ? 1 : 0,
280
280
  'wb': (highestBid && highestBid.adId === bid.adId ? 1 : 0),
281
281
  'mi': bid.bidResponse ? (bid.bidResponse.mi || undefined) : undefined,
@@ -311,6 +311,14 @@ function getAdUnit(adUnits, adUnitId) {
311
311
  return adUnits.filter(adUnit => (adUnit.divID && adUnit.divID == adUnitId) || (adUnit.code == adUnitId))[0];
312
312
  }
313
313
 
314
+ function getTgId() {
315
+ var testGroupId = parseInt(config.getConfig('testGroupId') || 0);
316
+ if (testGroupId <= 15 && testGroupId >= 0) {
317
+ return testGroupId;
318
+ }
319
+ return 0;
320
+ }
321
+
314
322
  function executeBidsLoggerCall(e, highestCpmBids) {
315
323
  let auctionId = e.auctionId;
316
324
  let referrer = config.getConfig('pageUrl') || cache.auctions[auctionId].referer || '';
@@ -337,13 +345,7 @@ function executeBidsLoggerCall(e, highestCpmBids) {
337
345
  outputObj['pid'] = '' + profileId;
338
346
  outputObj['pdvid'] = '' + profileVersionId;
339
347
  outputObj['dvc'] = {'plt': getDevicePlatform()};
340
- outputObj['tgid'] = (function() {
341
- var testGroupId = parseInt(config.getConfig('testGroupId') || 0);
342
- if (testGroupId <= 15 && testGroupId >= 0) {
343
- return testGroupId;
344
- }
345
- return 0;
346
- })();
348
+ outputObj['tgid'] = getTgId();
347
349
 
348
350
  if (floorData) {
349
351
  outputObj['fmv'] = floorData.floorRequestData ? floorData.floorRequestData.modelVersion || undefined : undefined;
@@ -391,6 +393,12 @@ function executeBidWonLoggerCall(auctionId, adUnitId) {
391
393
 
392
394
  const adapterName = getAdapterNameForAlias(winningBid.adapterCode || winningBid.bidder);
393
395
  let origAdUnit = getAdUnit(cache.auctions[auctionId].origAdUnits, adUnitId) || {};
396
+ let auctionCache = cache.auctions[auctionId];
397
+ let floorData = auctionCache.floorData;
398
+ let referrer = config.getConfig('pageUrl') || cache.auctions[auctionId].referer || '';
399
+ let adv = winningBid.bidResponse ? getAdDomain(winningBid.bidResponse) || undefined : undefined;
400
+ let fskp = floorData ? (floorData.floorRequestData ? (floorData.floorRequestData.skipped == false ? 0 : 1) : undefined) : undefined;
401
+
394
402
  let pixelURL = END_POINT_WIN_BID_LOGGER;
395
403
  pixelURL += 'pubid=' + publisherId;
396
404
  pixelURL += '&purl=' + enc(config.getConfig('pageUrl') || cache.auctions[auctionId].referer || '');
@@ -407,6 +415,17 @@ function executeBidWonLoggerCall(auctionId, adUnitId) {
407
415
  pixelURL += '&eg=' + enc(winningBid.bidResponse.bidGrossCpmUSD);
408
416
  pixelURL += '&kgpv=' + enc(getValueForKgpv(winningBid, adUnitId));
409
417
  pixelURL += '&piid=' + enc(winningBid.bidResponse.partnerImpId || EMPTY_STRING);
418
+
419
+ pixelURL += '&plt=' + enc(getDevicePlatform());
420
+ pixelURL += '&psz=' + enc((winningBid?.bidResponse?.dimensions?.width || '0') + 'x' +
421
+ (winningBid?.bidResponse?.dimensions?.height || '0'));
422
+ pixelURL += '&tgid=' + enc(getTgId());
423
+ adv && (pixelURL += '&adv=' + enc(adv));
424
+ pixelURL += '&orig=' + enc(getDomainFromUrl(referrer));
425
+ pixelURL += '&ss=' + enc(isS2SBidder(winningBid.bidder));
426
+ (fskp != undefined) && (pixelURL += '&fskp=' + enc(fskp));
427
+ pixelURL += '&af=' + enc(winningBid.bidResponse ? (winningBid.bidResponse.mediaType || undefined) : undefined);
428
+
410
429
  ajax(
411
430
  pixelURL,
412
431
  null,
@@ -1078,7 +1078,7 @@ export const spec = {
1078
1078
  }
1079
1079
  conf.pubId = conf.pubId || bid.params.publisherId;
1080
1080
  conf = _handleCustomParams(bid.params, conf);
1081
- conf.transactionId = bid.transactionId;
1081
+ conf.transactionId = bid.ortb2Imp?.ext?.tid;
1082
1082
  if (bidCurrency === '') {
1083
1083
  bidCurrency = bid.params.currency || UNDEFINED;
1084
1084
  } else if (bid.params.hasOwnProperty('currency') && bidCurrency !== bid.params.currency) {
@@ -1110,6 +1110,7 @@ export const spec = {
1110
1110
  payload.ext.wrapper = {};
1111
1111
  payload.ext.wrapper.profile = parseInt(conf.profId) || UNDEFINED;
1112
1112
  payload.ext.wrapper.version = parseInt(conf.verId) || UNDEFINED;
1113
+ // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
1113
1114
  payload.ext.wrapper.wiid = conf.wiid || bidderRequest.auctionId;
1114
1115
  // eslint-disable-next-line no-undef
1115
1116
  payload.ext.wrapper.wv = $$REPO_AND_VERSION$$;
@@ -1132,8 +1133,9 @@ export const spec = {
1132
1133
 
1133
1134
  payload.user.gender = (conf.gender ? conf.gender.trim() : UNDEFINED);
1134
1135
  payload.user.geo = {};
1135
- payload.user.geo.lat = _parseSlotParam('lat', conf.lat);
1136
- payload.user.geo.lon = _parseSlotParam('lon', conf.lon);
1136
+ // TODO: fix lat and long to only come from request object, not params
1137
+ payload.user.geo.lat = _parseSlotParam('lat', 0);
1138
+ payload.user.geo.lon = _parseSlotParam('lon', 0);
1137
1139
  payload.user.yob = _parseSlotParam('yob', conf.yob);
1138
1140
  payload.device.geo = payload.user.geo;
1139
1141
  payload.site.page = conf.kadpageurl.trim() || payload.site.page.trim();
@@ -1153,7 +1155,7 @@ export const spec = {
1153
1155
  payload.device.language = payload.device.language && payload.device.language.split('-')[0];
1154
1156
 
1155
1157
  // passing transactionId in source.tid
1156
- deepSetValue(payload, 'source.tid', conf.transactionId);
1158
+ deepSetValue(payload, 'source.tid', bidderRequest?.ortb2?.source?.tid);
1157
1159
 
1158
1160
  // test bids
1159
1161
  if (window.location.href.indexOf('pubmaticTest=true') !== -1) {
@@ -194,7 +194,7 @@ export const spec = {
194
194
  _parseAdSlot(bid);
195
195
 
196
196
  conf = _handleCustomParams(bid.params, conf);
197
- conf.transactionId = bid.transactionId;
197
+ conf.transactionId = bid.ortb2Imp?.ext?.tid;
198
198
  bidCurrency = bid.params.currency || UNDEFINED;
199
199
  bid.params.currency = bidCurrency;
200
200
 
@@ -224,8 +224,9 @@ export const spec = {
224
224
  payload.site.publisher.id = bid.params.siteId.trim();
225
225
  payload.user.gender = (conf.gender ? conf.gender.trim() : UNDEFINED);
226
226
  payload.user.geo = {};
227
- payload.user.geo.lat = _parseSlotParam('lat', conf.lat);
228
- payload.user.geo.lon = _parseSlotParam('lon', conf.lon);
227
+ // TODO: fix lat and long to only come from ortb2 object so publishers can control precise location
228
+ payload.user.geo.lat = _parseSlotParam('lat', 0);
229
+ payload.user.geo.lon = _parseSlotParam('lon', 0);
229
230
  payload.user.yob = _parseSlotParam('yob', conf.yob);
230
231
  payload.device.geo = payload.user.geo;
231
232
  payload.site.page = payload.site?.page?.trim();
@@ -242,7 +243,7 @@ export const spec = {
242
243
  }
243
244
 
244
245
  // passing transactionId in source.tid
245
- deepSetValue(payload, 'source.tid', bidderRequest?.auctionId);
246
+ deepSetValue(payload, 'source.tid', bidderRequest?.ortb2?.source?.tid);
246
247
 
247
248
  // schain
248
249
  if (validBidRequests[0].schain) {
@@ -528,7 +529,7 @@ function _createImpressionObject(bid, conf) {
528
529
  secure: 1,
529
530
  bidfloorcur: bid.params.currency ? _parseSlotParam('currency', bid.params.currency) : DEFAULT_CURRENCY, // capitalization dicated by 3.2.4 spec
530
531
  ext: {
531
- tid: (bid.transactionId ? bid.transactionId : '')
532
+ tid: bid.ortb2Imp?.ext?.tid || ''
532
533
  }
533
534
  };
534
535