prebid.js 8.44.0 → 8.46.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 (521) hide show
  1. package/README.md +7 -1
  2. package/creative/constants.js +7 -7
  3. package/creative/renderers/display/constants.js +2 -2
  4. package/creative/renderers/native/constants.js +2 -2
  5. package/dist/33acrossAnalyticsAdapter.js +1 -1
  6. package/dist/33acrossBidAdapter.js +1 -1
  7. package/dist/33acrossIdSystem.js +1 -1
  8. package/dist/BTBidAdapter.js +1 -1
  9. package/dist/adWMGAnalyticsAdapter.js +1 -1
  10. package/dist/adagioAnalyticsAdapter.js +1 -1
  11. package/dist/adagioBidAdapter.js +1 -1
  12. package/dist/adbookpspBidAdapter.js +1 -1
  13. package/dist/adgenerationBidAdapter.js +1 -1
  14. package/dist/adkernelAdnAnalyticsAdapter.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/adnuntiusBidAdapter.js +1 -1
  20. package/dist/adomikAnalyticsAdapter.js +1 -1
  21. package/dist/adpod.js +1 -1
  22. package/dist/adqueryBidAdapter.js +1 -1
  23. package/dist/adrelevantisBidAdapter.js +1 -1
  24. package/dist/adstirBidAdapter.js +1 -1
  25. package/dist/adtrgtmeBidAdapter.js +1 -1
  26. package/dist/adxcgAnalyticsAdapter.js +1 -1
  27. package/dist/adxcgBidAdapter.js +1 -1
  28. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  29. package/dist/adyoulikeBidAdapter.js +1 -1
  30. package/dist/agmaAnalyticsAdapter.js +1 -1
  31. package/dist/ajaBidAdapter.js +1 -1
  32. package/dist/alkimiBidAdapter.js +1 -1
  33. package/dist/amxBidAdapter.js +1 -1
  34. package/dist/amxIdSystem.js +1 -1
  35. package/dist/analyticsAdapter.js +1 -1
  36. package/dist/appierAnalyticsAdapter.js +1 -1
  37. package/dist/appnexusBidAdapter.js +1 -1
  38. package/dist/asoBidAdapter.js +1 -1
  39. package/dist/asteriobidAnalyticsAdapter.js +1 -1
  40. package/dist/atsAnalyticsAdapter.js +1 -1
  41. package/dist/automatadAnalyticsAdapter.js +1 -1
  42. package/dist/axonixBidAdapter.js +1 -1
  43. package/dist/bidViewability.js +1 -1
  44. package/dist/bidViewabilityIO.js +1 -1
  45. package/dist/bidglassBidAdapter.js +1 -1
  46. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  47. package/dist/big-richmediaBidAdapter.js +1 -1
  48. package/dist/brandmetricsRtdProvider.js +1 -1
  49. package/dist/bridBidAdapter.js +1 -1
  50. package/dist/bridgewellBidAdapter.js +1 -1
  51. package/dist/brightMountainMediaBidAdapter.js +1 -1
  52. package/dist/browsiRtdProvider.js +1 -1
  53. package/dist/byDataAnalyticsAdapter.js +1 -1
  54. package/dist/carodaBidAdapter.js +1 -1
  55. package/dist/chtnwBidAdapter.js +1 -1
  56. package/dist/chunk-core.js +1 -1
  57. package/dist/chunk-paapi.js +1 -1
  58. package/dist/cleanioRtdProvider.js +1 -1
  59. package/dist/concertAnalyticsAdapter.js +1 -1
  60. package/dist/concertBidAdapter.js +1 -1
  61. package/dist/confiantRtdProvider.js +1 -1
  62. package/dist/connectadBidAdapter.js +1 -1
  63. package/dist/consentManagementUsp.js +1 -1
  64. package/dist/consumableBidAdapter.js +1 -1
  65. package/dist/conversantAnalyticsAdapter.js +1 -1
  66. package/dist/conversantBidAdapter.js +1 -1
  67. package/dist/craftBidAdapter.js +1 -1
  68. package/dist/creative-renderer-native.js +1 -1
  69. package/dist/criteoBidAdapter.js +1 -1
  70. package/dist/currency.js +1 -1
  71. package/dist/cwireBidAdapter.js +1 -1
  72. package/dist/dailymotionBidAdapter.js +1 -0
  73. package/dist/datablocksAnalyticsAdapter.js +1 -1
  74. package/dist/datawrkzBidAdapter.js +1 -1
  75. package/dist/debugging-standalone.js +1 -1
  76. package/dist/debugging.js +1 -1
  77. package/dist/dependencies.json +15 -6
  78. package/dist/dfpAdServerVideo.js +1 -1
  79. package/dist/dsaControl.js +1 -1
  80. package/dist/dspxBidAdapter.js +1 -1
  81. package/dist/dxkultureBidAdapter.js +1 -1
  82. package/dist/engageyaBidAdapter.js +1 -1
  83. package/dist/eplanningAnalyticsAdapter.js +1 -1
  84. package/dist/eplanningBidAdapter.js +1 -1
  85. package/dist/euidIdSystem.js +1 -1
  86. package/dist/feedadBidAdapter.js +1 -1
  87. package/dist/finativeBidAdapter.js +1 -1
  88. package/dist/fintezaAnalyticsAdapter.js +1 -1
  89. package/dist/freewheel-sspBidAdapter.js +1 -1
  90. package/dist/gdprEnforcement.js +1 -1
  91. package/dist/genericAnalyticsAdapter.js +1 -1
  92. package/dist/geoedgeRtdProvider.js +1 -1
  93. package/dist/gmosspBidAdapter.js +1 -1
  94. package/dist/goldbachBidAdapter.js +1 -1
  95. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  96. package/dist/greenbidsRtdProvider.js +1 -1
  97. package/dist/gridBidAdapter.js +1 -1
  98. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  99. package/dist/gumgumBidAdapter.js +1 -1
  100. package/dist/h12mediaBidAdapter.js +1 -1
  101. package/dist/hadronAnalyticsAdapter.js +1 -1
  102. package/dist/holidBidAdapter.js +1 -1
  103. package/dist/hypelabBidAdapter.js +1 -1
  104. package/dist/id5AnalyticsAdapter.js +1 -1
  105. package/dist/id5IdSystem.js +1 -1
  106. package/dist/illuminBidAdapter.js +1 -1
  107. package/dist/imdsBidAdapter.js +1 -1
  108. package/dist/improvedigitalBidAdapter.js +1 -1
  109. package/dist/insticatorBidAdapter.js +1 -1
  110. package/dist/instreamTracking.js +1 -1
  111. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  112. package/dist/ixBidAdapter.js +1 -1
  113. package/dist/jixieBidAdapter.js +1 -1
  114. package/dist/justpremiumBidAdapter.js +1 -1
  115. package/dist/jwplayerBidAdapter.js +1 -0
  116. package/dist/kargoAnalyticsAdapter.js +1 -1
  117. package/dist/kargoBidAdapter.js +1 -1
  118. package/dist/kimberliteBidAdapter.js +1 -1
  119. package/dist/konduitAnalyticsAdapter.js +1 -1
  120. package/dist/kueezBidAdapter.js +1 -1
  121. package/dist/kueezRtbBidAdapter.js +1 -1
  122. package/dist/lassoBidAdapter.js +1 -1
  123. package/dist/lifestreetBidAdapter.js +1 -1
  124. package/dist/liveIntentAnalyticsAdapter.js +1 -1
  125. package/dist/liveIntentIdSystem.js +1 -1
  126. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  127. package/dist/logicadBidAdapter.js +1 -1
  128. package/dist/loglyliftBidAdapter.js +1 -1
  129. package/dist/luceadBidAdapter.js +1 -1
  130. package/dist/magniteAnalyticsAdapter.js +1 -1
  131. package/dist/malltvAnalyticsAdapter.js +1 -1
  132. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  133. package/dist/marsmediaBidAdapter.js +1 -1
  134. package/dist/mediafilterRtdProvider.js +1 -1
  135. package/dist/mediafuseBidAdapter.js +1 -1
  136. package/dist/medianetAnalyticsAdapter.js +1 -1
  137. package/dist/medianetBidAdapter.js +1 -1
  138. package/dist/mediasquareBidAdapter.js +1 -1
  139. package/dist/mgidBidAdapter.js +1 -1
  140. package/dist/minutemediaBidAdapter.js +1 -1
  141. package/dist/minutemediaplusBidAdapter.js +1 -1
  142. package/dist/missenaBidAdapter.js +1 -1
  143. package/dist/multibid.js +1 -1
  144. package/dist/neuwoRtdProvider.js +1 -1
  145. package/dist/nextMillenniumBidAdapter.js +1 -1
  146. package/dist/nexx360BidAdapter.js +1 -1
  147. package/dist/nobidAnalyticsAdapter.js +1 -1
  148. package/dist/not-for-prod/prebid.js +245 -241
  149. package/dist/oguryBidAdapter.js +1 -1
  150. package/dist/onetagBidAdapter.js +1 -1
  151. package/dist/ooloAnalyticsAdapter.js +1 -1
  152. package/dist/openwebBidAdapter.js +1 -1
  153. package/dist/openxBidAdapter.js +1 -1
  154. package/dist/optableBidAdapter.js +1 -0
  155. package/dist/optidigitalBidAdapter.js +1 -1
  156. package/dist/optimonAnalyticsAdapter.js +1 -1
  157. package/dist/ortbConverter.js +1 -1
  158. package/dist/outbrainBidAdapter.js +1 -1
  159. package/dist/oxxionAnalyticsAdapter.js +1 -1
  160. package/dist/oxxionRtdProvider.js +1 -1
  161. package/dist/parrableIdSystem.js +1 -1
  162. package/dist/pbsExtensions.js +1 -1
  163. package/dist/permutiveRtdProvider.js +1 -1
  164. package/dist/pgamsspBidAdapter.js +1 -1
  165. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  166. package/dist/pirIdSystem.js +1 -0
  167. package/dist/pixfutureBidAdapter.js +1 -1
  168. package/dist/prebidServerBidAdapter.js +1 -1
  169. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  170. package/dist/priceFloors.js +1 -1
  171. package/dist/publinkIdSystem.js +1 -1
  172. package/dist/publirBidAdapter.js +1 -1
  173. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  174. package/dist/pubmaticBidAdapter.js +1 -1
  175. package/dist/pubperfAnalyticsAdapter.js +1 -1
  176. package/dist/pubstackAnalyticsAdapter.js +1 -1
  177. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  178. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  179. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  180. package/dist/pxyzBidAdapter.js +1 -1
  181. package/dist/qortexRtdProvider.js +1 -1
  182. package/dist/quantcastBidAdapter.js +1 -1
  183. package/dist/readpeakBidAdapter.js +1 -1
  184. package/dist/relaidoBidAdapter.js +1 -1
  185. package/dist/relevantAnalyticsAdapter.js +1 -1
  186. package/dist/retailspotBidAdapter.js +1 -1
  187. package/dist/rhythmoneBidAdapter.js +1 -1
  188. package/dist/riseBidAdapter.js +1 -1
  189. package/dist/rivrAnalyticsAdapter.js +1 -1
  190. package/dist/roxotAnalyticsAdapter.js +1 -1
  191. package/dist/rtdModule.js +1 -1
  192. package/dist/rubiconBidAdapter.js +1 -1
  193. package/dist/s2sTesting.js +1 -1
  194. package/dist/scaleableAnalyticsAdapter.js +1 -1
  195. package/dist/schain.js +1 -1
  196. package/dist/seedingAllianceBidAdapter.js +1 -1
  197. package/dist/seedtagBidAdapter.js +1 -1
  198. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  199. package/dist/sharethroughBidAdapter.js +1 -1
  200. package/dist/shinezBidAdapter.js +1 -1
  201. package/dist/shinezRtbBidAdapter.js +1 -1
  202. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  203. package/dist/sirdataRtdProvider.js +1 -1
  204. package/dist/sizeMapping.js +1 -1
  205. package/dist/smaatoBidAdapter.js +1 -1
  206. package/dist/smartadserverBidAdapter.js +1 -1
  207. package/dist/smartxBidAdapter.js +1 -1
  208. package/dist/smilewantedBidAdapter.js +1 -1
  209. package/dist/sonobiAnalyticsAdapter.js +1 -1
  210. package/dist/sonobiBidAdapter.js +1 -1
  211. package/dist/sovrnAnalyticsAdapter.js +1 -1
  212. package/dist/sovrnBidAdapter.js +1 -1
  213. package/dist/sspBCBidAdapter.js +1 -1
  214. package/dist/staqAnalyticsAdapter.js +1 -1
  215. package/dist/stnBidAdapter.js +1 -1
  216. package/dist/stroeerCoreBidAdapter.js +1 -1
  217. package/dist/stvBidAdapter.js +1 -1
  218. package/dist/sublimeBidAdapter.js +1 -1
  219. package/dist/taboolaBidAdapter.js +1 -1
  220. package/dist/tagorasBidAdapter.js +1 -1
  221. package/dist/targetVideoBidAdapter.js +1 -1
  222. package/dist/teadsBidAdapter.js +1 -1
  223. package/dist/terceptAnalyticsAdapter.js +1 -1
  224. package/dist/themoneytizerBidAdapter.js +1 -1
  225. package/dist/topicsFpdModule.js +1 -1
  226. package/dist/trionBidAdapter.js +1 -1
  227. package/dist/tripleliftBidAdapter.js +1 -1
  228. package/dist/ttdBidAdapter.js +1 -1
  229. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  230. package/dist/uid2IdSystem.js +1 -1
  231. package/dist/underdogmediaBidAdapter.js +1 -1
  232. package/dist/undertoneBidAdapter.js +1 -1
  233. package/dist/unrulyBidAdapter.js +1 -1
  234. package/dist/userId.js +1 -1
  235. package/dist/viantOrtbBidAdapter.js +1 -1
  236. package/dist/vidazooBidAdapter.js +1 -1
  237. package/dist/videoModule.js +1 -1
  238. package/dist/videobyteBidAdapter.js +1 -1
  239. package/dist/visxBidAdapter.js +1 -1
  240. package/dist/vuukleBidAdapter.js +1 -1
  241. package/dist/weboramaRtdProvider.js +1 -1
  242. package/dist/widespaceBidAdapter.js +1 -1
  243. package/dist/winrBidAdapter.js +1 -1
  244. package/dist/yahoosspBidAdapter.js +1 -1
  245. package/dist/yandexAnalyticsAdapter.js +1 -1
  246. package/dist/yieldmoBidAdapter.js +1 -1
  247. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  248. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  249. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  250. package/dist/zeta_global_sspBidAdapter.js +1 -1
  251. package/gulpfile.js +9 -1
  252. package/integrationExamples/gpt/adnuntius_example.html +7 -1
  253. package/integrationExamples/gpt/azerionedgeRtdProvider_example.html +3 -3
  254. package/integrationExamples/gpt/top-level-paapi/decisionLogic.js +57 -0
  255. package/integrationExamples/gpt/top-level-paapi/tl_paapi_example.html +188 -0
  256. package/integrationExamples/gpt/x-domain/creative.html +1 -1
  257. package/integrationExamples/noadserver/jwplayerBidAdapter_sample.html +75 -0
  258. package/integrationExamples/realTimeData/jwplayerRtdProvider_example.html +7 -0
  259. package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +7 -0
  260. package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +9 -4
  261. package/integrationExamples/videoModule/jwplayer/bidsBackHandlerOverride.html +7 -0
  262. package/integrationExamples/videoModule/jwplayer/eventListeners.html +7 -0
  263. package/integrationExamples/videoModule/jwplayer/eventsUI.html +7 -0
  264. package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +7 -0
  265. package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +7 -0
  266. package/integrationExamples/videoModule/jwplayer/playlist.html +7 -0
  267. package/integrationExamples/videoModule/videojs/bidMarkedAsUsed.html +7 -0
  268. package/integrationExamples/videoModule/videojs/bidRequestScheduling.html +7 -0
  269. package/integrationExamples/videoModule/videojs/bidsBackHandlerOverride.html +7 -0
  270. package/integrationExamples/videoModule/videojs/eventListeners.html +7 -0
  271. package/integrationExamples/videoModule/videojs/eventsUI.html +7 -0
  272. package/integrationExamples/videoModule/videojs/gamAdServerMediation.html +7 -0
  273. package/integrationExamples/videoModule/videojs/mediaMetadata.html +7 -0
  274. package/integrationExamples/videoModule/videojs/playlist.html +7 -0
  275. package/libraries/analyticsAdapter/AnalyticsAdapter.js +4 -4
  276. package/libraries/creative-renderer-native/renderer.js +1 -1
  277. package/libraries/ortbConverter/processors/banner.js +2 -2
  278. package/modules/33acrossAnalyticsAdapter.js +2 -4
  279. package/modules/33acrossIdSystem.js +1 -1
  280. package/modules/adWMGAnalyticsAdapter.js +9 -11
  281. package/modules/adagioAnalyticsAdapter.js +8 -8
  282. package/modules/adgenerationBidAdapter.js +6 -10
  283. package/modules/adkernelAdnAnalyticsAdapter.js +8 -8
  284. package/modules/adkernelBidAdapter.js +9 -3
  285. package/modules/adlooxAdServerVideo.js +2 -2
  286. package/modules/adlooxAnalyticsAdapter.js +4 -4
  287. package/modules/adnuntiusBidAdapter.js +54 -31
  288. package/modules/adomikAnalyticsAdapter.js +7 -7
  289. package/modules/adpod.js +3 -3
  290. package/modules/adxcgAnalyticsAdapter.js +10 -10
  291. package/modules/adxpremiumAnalyticsAdapter.js +8 -10
  292. package/modules/agmaAnalyticsAdapter.js +2 -6
  293. package/modules/alkimiBidAdapter.js +48 -8
  294. package/modules/appierAnalyticsAdapter.js +5 -7
  295. package/modules/asteriobidAnalyticsAdapter.js +14 -14
  296. package/modules/atsAnalyticsAdapter.js +4 -4
  297. package/modules/automatadAnalyticsAdapter.js +20 -20
  298. package/modules/azerionedgeRtdProvider.md +4 -2
  299. package/modules/bidViewability.js +3 -3
  300. package/modules/bidViewabilityIO.js +3 -3
  301. package/modules/bidwatchAnalyticsAdapter.js +7 -9
  302. package/modules/brandmetricsRtdProvider.js +6 -6
  303. package/modules/browsiRtdProvider.js +3 -3
  304. package/modules/byDataAnalyticsAdapter.js +3 -3
  305. package/modules/cleanioRtdProvider.js +3 -3
  306. package/modules/concertAnalyticsAdapter.js +5 -7
  307. package/modules/confiantRtdProvider.js +2 -2
  308. package/modules/conversantAnalyticsAdapter.js +2 -4
  309. package/modules/criteoBidAdapter.js +51 -8
  310. package/modules/currency.js +7 -7
  311. package/modules/dailymotionBidAdapter.js +139 -0
  312. package/modules/dailymotionBidAdapter.md +140 -0
  313. package/modules/datawrkzBidAdapter.js +4 -4
  314. package/modules/debugging/pbsInterceptor.js +2 -2
  315. package/modules/dfpAdServerVideo.js +2 -2
  316. package/modules/dsaControl.js +5 -5
  317. package/modules/engageyaBidAdapter.js +1 -1
  318. package/modules/eplanningAnalyticsAdapter.js +8 -8
  319. package/modules/fintezaAnalyticsAdapter.js +5 -5
  320. package/modules/gdprEnforcement.js +3 -3
  321. package/modules/geoedgeRtdProvider.js +2 -2
  322. package/modules/greenbidsAnalyticsAdapter.js +13 -10
  323. package/modules/greenbidsRtdProvider.js +2 -2
  324. package/modules/growthCodeAnalyticsAdapter.js +14 -14
  325. package/modules/gumgumBidAdapter.js +1 -1
  326. package/modules/hadronAnalyticsAdapter.js +14 -14
  327. package/modules/holidBidAdapter.js +2 -2
  328. package/modules/id5AnalyticsAdapter.js +7 -9
  329. package/modules/improvedigitalBidAdapter.js +2 -1
  330. package/modules/insticatorBidAdapter.js +137 -27
  331. package/modules/instreamTracking.js +4 -4
  332. package/modules/invisiblyAnalyticsAdapter.js +15 -17
  333. package/modules/ixBidAdapter.js +3 -3
  334. package/modules/jwplayerBidAdapter.js +412 -0
  335. package/modules/jwplayerBidAdapter.md +72 -0
  336. package/modules/kargoAnalyticsAdapter.js +3 -3
  337. package/modules/kargoBidAdapter.js +5 -11
  338. package/modules/konduitAnalyticsAdapter.js +13 -13
  339. package/modules/liveIntentAnalyticsAdapter.js +2 -2
  340. package/modules/livewrappedAnalyticsAdapter.js +10 -10
  341. package/modules/magniteAnalyticsAdapter.js +25 -23
  342. package/modules/malltvAnalyticsAdapter.js +4 -6
  343. package/modules/mediafilterRtdProvider.js +2 -2
  344. package/modules/medianetAnalyticsAdapter.js +12 -12
  345. package/modules/medianetBidAdapter.js +1 -1
  346. package/modules/multibid/index.js +2 -2
  347. package/modules/neuwoRtdProvider.js +2 -2
  348. package/modules/nextMillenniumBidAdapter.js +4 -4
  349. package/modules/nobidAnalyticsAdapter.js +9 -11
  350. package/modules/ooloAnalyticsAdapter.js +2 -2
  351. package/modules/optableBidAdapter.js +42 -0
  352. package/modules/optableBidAdapter.md +41 -0
  353. package/modules/optidigitalBidAdapter.js +20 -4
  354. package/modules/oxxionAnalyticsAdapter.js +7 -9
  355. package/modules/paapi.js +20 -6
  356. package/modules/permutiveRtdProvider.js +21 -2
  357. package/modules/pgamsspBidAdapter.js +26 -3
  358. package/modules/pirIdSystem.js +62 -0
  359. package/modules/pirIdSystem.md +27 -0
  360. package/modules/prebidServerBidAdapter/index.js +8 -8
  361. package/modules/prebidServerBidAdapter/ortbConverter.js +3 -3
  362. package/modules/prebidmanagerAnalyticsAdapter.js +14 -14
  363. package/modules/priceFloors.js +10 -5
  364. package/modules/pubmaticAnalyticsAdapter.js +32 -22
  365. package/modules/pubmaticBidAdapter.js +22 -18
  366. package/modules/pubwiseAnalyticsAdapter.js +11 -11
  367. package/modules/pubxaiAnalyticsAdapter.js +6 -6
  368. package/modules/qortexRtdProvider.js +2 -2
  369. package/modules/relaidoBidAdapter.js +70 -9
  370. package/modules/roxotAnalyticsAdapter.js +8 -10
  371. package/modules/rtdModule/index.js +7 -7
  372. package/modules/scaleableAnalyticsAdapter.js +5 -5
  373. package/modules/seedtagBidAdapter.js +12 -3
  374. package/modules/sigmoidAnalyticsAdapter.js +7 -7
  375. package/modules/sirdataRtdProvider.js +33 -43
  376. package/modules/smaatoBidAdapter.js +1 -2
  377. package/modules/sonobiAnalyticsAdapter.js +10 -12
  378. package/modules/sovrnAnalyticsAdapter.js +7 -9
  379. package/modules/sovrnBidAdapter.js +1 -1
  380. package/modules/staqAnalyticsAdapter.js +9 -9
  381. package/modules/stroeerCoreBidAdapter.js +7 -5
  382. package/modules/terceptAnalyticsAdapter.js +7 -7
  383. package/modules/topicsFpdModule.js +3 -0
  384. package/modules/topicsFpdModule.md +4 -0
  385. package/modules/ucfunnelAnalyticsAdapter.js +5 -7
  386. package/modules/userId/index.js +3 -3
  387. package/modules/viantOrtbBidAdapter.js +2 -0
  388. package/modules/videoModule/index.js +4 -4
  389. package/modules/yandexAnalyticsAdapter.js +8 -2
  390. package/modules/yieldoneAnalyticsAdapter.js +7 -7
  391. package/modules/yuktamediaAnalyticsAdapter.js +9 -9
  392. package/modules/zeta_global_sspAnalyticsAdapter.js +5 -5
  393. package/modules/zeta_global_sspBidAdapter.js +8 -1
  394. package/package.json +1 -1
  395. package/src/adRendering.js +15 -15
  396. package/src/adUnits.js +9 -21
  397. package/src/adapterManager.js +23 -13
  398. package/src/adapters/bidderFactory.js +8 -8
  399. package/src/auction.js +26 -28
  400. package/src/auctionManager.js +4 -4
  401. package/src/bidderSettings.js +2 -2
  402. package/src/config.js +2 -2
  403. package/src/constants.js +190 -0
  404. package/src/events.js +3 -3
  405. package/src/native.js +6 -8
  406. package/src/prebid.js +6 -10
  407. package/src/secureCreatives.js +5 -5
  408. package/src/targeting.js +13 -13
  409. package/src/utils.js +19 -6
  410. package/test/fixtures/fixtures.js +44 -44
  411. package/test/helpers/analytics.js +6 -6
  412. package/test/spec/AnalyticsAdapter_spec.js +3 -3
  413. package/test/spec/auctionmanager_spec.js +82 -82
  414. package/test/spec/modules/33acrossAnalyticsAdapter_spec.js +1 -2
  415. package/test/spec/modules/33acrossIdSystem_spec.js +3 -3
  416. package/test/spec/modules/adWMGAnalyticsAdapter_spec.js +14 -14
  417. package/test/spec/modules/adagioAnalyticsAdapter_spec.js +26 -26
  418. package/test/spec/modules/adgenerationBidAdapter_spec.js +6 -6
  419. package/test/spec/modules/adkernelAdnAnalytics_spec.js +6 -6
  420. package/test/spec/modules/adkernelBidAdapter_spec.js +9 -4
  421. package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +6 -6
  422. package/test/spec/modules/adnuntiusBidAdapter_spec.js +26 -6
  423. package/test/spec/modules/adomikAnalyticsAdapter_spec.js +7 -7
  424. package/test/spec/modules/adxcgAnalyticsAdapter_spec.js +7 -7
  425. package/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js +7 -7
  426. package/test/spec/modules/agmaAnalyticsAdapter_spec.js +14 -14
  427. package/test/spec/modules/alkimiBidAdapter_spec.js +11 -5
  428. package/test/spec/modules/appierAnalyticsAdapter_spec.js +1 -1
  429. package/test/spec/modules/asteriobidAnalyticsAdapter_spec.js +2 -2
  430. package/test/spec/modules/atsAnalyticsAdapter_spec.js +8 -8
  431. package/test/spec/modules/automatadAnalyticsAdapter_spec.js +2 -2
  432. package/test/spec/modules/bidViewabilityIO_spec.js +2 -2
  433. package/test/spec/modules/bidViewability_spec.js +4 -4
  434. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +7 -6
  435. package/test/spec/modules/byDataAnalyticsAdapter_spec.js +5 -4
  436. package/test/spec/modules/cleanioRtdProvider_spec.js +6 -6
  437. package/test/spec/modules/concertAnalyticsAdapter_spec.js +7 -6
  438. package/test/spec/modules/confiantRtdProvider_spec.js +2 -2
  439. package/test/spec/modules/conversantAnalyticsAdapter_spec.js +61 -61
  440. package/test/spec/modules/criteoBidAdapter_spec.js +111 -5
  441. package/test/spec/modules/currency_spec.js +6 -6
  442. package/test/spec/modules/dailymotionBidAdapter_spec.js +369 -0
  443. package/test/spec/modules/dsaControl_spec.js +4 -4
  444. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +20 -13
  445. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +5 -5
  446. package/test/spec/modules/genericAnalyticsAdapter_spec.js +2 -2
  447. package/test/spec/modules/geoedgeRtdProvider_spec.js +37 -37
  448. package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +15 -2
  449. package/test/spec/modules/greenbidsRtdProvider_spec.js +2 -2
  450. package/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +2 -2
  451. package/test/spec/modules/gumgumBidAdapter_spec.js +1 -1
  452. package/test/spec/modules/hadronAnalyticsAdapter_spec.js +3 -3
  453. package/test/spec/modules/id5AnalyticsAdapter_spec.js +5 -5
  454. package/test/spec/modules/id5IdSystem_spec.js +2 -2
  455. package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -3
  456. package/test/spec/modules/insticatorBidAdapter_spec.js +275 -22
  457. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +40 -40
  458. package/test/spec/modules/jwplayerBidAdapter_spec.js +412 -0
  459. package/test/spec/modules/kargoAnalyticsAdapter_spec.js +3 -3
  460. package/test/spec/modules/konduitAnalyticsAdapter_spec.js +13 -13
  461. package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +1 -1
  462. package/test/spec/modules/liveIntentAnalyticsAdapter_spec.js +3 -3
  463. package/test/spec/modules/liveIntentIdSystem_spec.js +13 -15
  464. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +15 -20
  465. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +31 -15
  466. package/test/spec/modules/malltvAnalyticsAdapter_spec.js +3 -3
  467. package/test/spec/modules/mediafilterRtdProvider_spec.js +2 -2
  468. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +3 -3
  469. package/test/spec/modules/nobidAnalyticsAdapter_spec.js +23 -23
  470. package/test/spec/modules/ooloAnalyticsAdapter_spec.js +33 -33
  471. package/test/spec/modules/optableBidAdapter_spec.js +89 -0
  472. package/test/spec/modules/optidigitalBidAdapter_spec.js +34 -4
  473. package/test/spec/modules/optimonAnalyticsAdapter_spec.js +0 -1
  474. package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +7 -7
  475. package/test/spec/modules/paapi_spec.js +40 -14
  476. package/test/spec/modules/permutiveRtdProvider_spec.js +29 -1
  477. package/test/spec/modules/pgamsspBidAdapter_spec.js +50 -4
  478. package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +9 -9
  479. package/test/spec/modules/pirIdSystem_spec.js +77 -0
  480. package/test/spec/modules/prebidServerBidAdapter_spec.js +7 -7
  481. package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -2
  482. package/test/spec/modules/priceFloors_spec.js +6 -5
  483. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +12 -14
  484. package/test/spec/modules/pubmaticBidAdapter_spec.js +25 -2
  485. package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +0 -1
  486. package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +14 -14
  487. package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +7 -7
  488. package/test/spec/modules/qortexRtdProvider_spec.js +2 -2
  489. package/test/spec/modules/realTimeDataModule_spec.js +9 -9
  490. package/test/spec/modules/relaidoBidAdapter_spec.js +62 -0
  491. package/test/spec/modules/relevantAnalyticsAdapter_spec.js +3 -3
  492. package/test/spec/modules/relevantdigitalBidAdapter_spec.js +2 -2
  493. package/test/spec/modules/rivrAnalyticsAdapter_spec.js +4 -4
  494. package/test/spec/modules/roxotAnalyticsAdapter_spec.js +25 -25
  495. package/test/spec/modules/scaleableAnalyticsAdapter_spec.js +5 -5
  496. package/test/spec/modules/seedtagBidAdapter_spec.js +56 -3
  497. package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +0 -1
  498. package/test/spec/modules/sonobiAnalyticsAdapter_spec.js +8 -7
  499. package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -2
  500. package/test/spec/modules/sovrnBidAdapter_spec.js +5 -5
  501. package/test/spec/modules/staqAnalyticsAdapter_spec.js +7 -7
  502. package/test/spec/modules/stroeerCoreBidAdapter_spec.js +21 -0
  503. package/test/spec/modules/terceptAnalyticsAdapter_spec.js +7 -7
  504. package/test/spec/modules/trionBidAdapter_spec.js +1 -1
  505. package/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +1 -1
  506. package/test/spec/modules/userId_spec.js +4 -4
  507. package/test/spec/modules/videoModule/pbVideo_spec.js +3 -3
  508. package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +22 -21
  509. package/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js +33 -32
  510. package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +8 -8
  511. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +1 -1
  512. package/test/spec/native_spec.js +19 -19
  513. package/test/spec/unit/adRendering_spec.js +14 -14
  514. package/test/spec/unit/adUnits_spec.js +1 -1
  515. package/test/spec/unit/core/adapterManager_spec.js +99 -59
  516. package/test/spec/unit/core/bidderFactory_spec.js +6 -6
  517. package/test/spec/unit/core/targeting_spec.js +47 -47
  518. package/test/spec/unit/pbjs_api_spec.js +81 -81
  519. package/test/spec/unit/secureCreatives_spec.js +27 -27
  520. package/test/spec/utils_spec.js +19 -3
  521. package/src/constants.json +0 -196
@@ -104,6 +104,7 @@ export function setBidderRtb (bidderOrtb2, moduleConfig, segmentData) {
104
104
 
105
105
  const ssps = segmentData?.ssp?.ssps ?? []
106
106
  const sspCohorts = segmentData?.ssp?.cohorts ?? []
107
+ const topics = segmentData?.topics ?? {}
107
108
 
108
109
  const bidders = new Set([...acBidders, ...ssps])
109
110
  bidders.forEach(function (bidder) {
@@ -121,7 +122,7 @@ export function setBidderRtb (bidderOrtb2, moduleConfig, segmentData) {
121
122
  cohorts = [...new Set([...cohorts, ...sspCohorts])].slice(0, maxSegs)
122
123
  }
123
124
 
124
- const nextConfig = updateOrtbConfig(bidder, currConfig, cohorts, sspCohorts, transformationConfigs, segmentData)
125
+ const nextConfig = updateOrtbConfig(bidder, currConfig, cohorts, sspCohorts, topics, transformationConfigs, segmentData)
125
126
  bidderOrtb2[bidder] = nextConfig.ortb2
126
127
  })
127
128
  }
@@ -134,10 +135,11 @@ export function setBidderRtb (bidderOrtb2, moduleConfig, segmentData) {
134
135
  * the transformations on user data to include the ORTB2 object
135
136
  * @param {string[]} segmentIDs - Permutive segment IDs
136
137
  * @param {string[]} sspSegmentIDs - Permutive SSP segment IDs
138
+ * @param {Object} topics - Privacy Sandbox Topics, keyed by IAB taxonomy version (600, 601, etc.)
137
139
  * @param {Object} segmentData - The segments available for targeting
138
140
  * @return {Object} Merged ortb2 object
139
141
  */
140
- function updateOrtbConfig(bidder, currConfig, segmentIDs, sspSegmentIDs, transformationConfigs, segmentData) {
142
+ function updateOrtbConfig(bidder, currConfig, segmentIDs, sspSegmentIDs, topics, transformationConfigs, segmentData) {
141
143
  logger.logInfo(`Current ortb2 config`, { bidder, config: currConfig })
142
144
 
143
145
  const customCohortsData = deepAccess(segmentData, bidder) || []
@@ -161,9 +163,21 @@ function updateOrtbConfig(bidder, currConfig, segmentIDs, sspSegmentIDs, transfo
161
163
  const ortbConfig = mergeDeep({}, currConfig)
162
164
  const currentUserData = deepAccess(ortbConfig, 'ortb2.user.data') || []
163
165
 
166
+ let topicsUserData = []
167
+ for (const [k, value] of Object.entries(topics)) {
168
+ topicsUserData.push({
169
+ name,
170
+ ext: {
171
+ segtax: Number(k)
172
+ },
173
+ segment: value.map(topic => ({ id: topic.toString() })),
174
+ })
175
+ }
176
+
164
177
  const updatedUserData = currentUserData
165
178
  .filter(el => el.name !== permutiveUserData.name && el.name !== customCohortsUserData.name)
166
179
  .concat(permutiveUserData, transformedUserData, customCohortsUserData)
180
+ .concat(topicsUserData)
167
181
 
168
182
  logger.logInfo(`Updating ortb2.user.data`, { bidder, user_data: updatedUserData })
169
183
  deepSetValue(ortbConfig, 'ortb2.user.data', updatedUserData)
@@ -311,6 +325,7 @@ export function getSegments (maxSegs) {
311
325
  cohorts: [],
312
326
  ssps: []
313
327
  }),
328
+ topics: readSegments('_ppsts', {}),
314
329
  }
315
330
 
316
331
  for (const bidder in segments) {
@@ -318,6 +333,10 @@ export function getSegments (maxSegs) {
318
333
  if (segments[bidder].cohorts && Array.isArray(segments[bidder].cohorts)) {
319
334
  segments[bidder].cohorts = segments[bidder].cohorts.slice(0, maxSegs)
320
335
  }
336
+ } else if (bidder === 'topics') {
337
+ for (const taxonomy in segments[bidder]) {
338
+ segments[bidder][taxonomy] = segments[bidder][taxonomy].slice(0, maxSegs)
339
+ }
321
340
  } else {
322
341
  segments[bidder] = segments[bidder].slice(0, maxSegs)
323
342
  }
@@ -171,11 +171,27 @@ export const spec = {
171
171
  page,
172
172
  placements,
173
173
  coppa: config.getConfig('coppa') === true ? 1 : 0,
174
- ccpa: bidderRequest.uspConsent || undefined,
175
- gdpr: bidderRequest.gdprConsent || undefined,
176
174
  tmax: bidderRequest.timeout
177
175
  };
178
176
 
177
+ if (bidderRequest.uspConsent) {
178
+ request.ccpa = bidderRequest.uspConsent;
179
+ }
180
+
181
+ if (bidderRequest.gdprConsent) {
182
+ request.gdpr = {
183
+ consentString: bidderRequest.gdprConsent.consentString
184
+ };
185
+ }
186
+
187
+ if (bidderRequest.gppConsent) {
188
+ request.gpp = bidderRequest.gppConsent.gppString;
189
+ request.gpp_sid = bidderRequest.gppConsent.applicableSections;
190
+ } else if (bidderRequest.ortb2?.regs?.gpp) {
191
+ request.gpp = bidderRequest.ortb2.regs.gpp;
192
+ request.gpp_sid = bidderRequest.ortb2.regs.gpp_sid;
193
+ }
194
+
179
195
  const len = validBidRequests.length;
180
196
  for (let i = 0; i < len; i++) {
181
197
  const bid = validBidRequests[i];
@@ -203,9 +219,10 @@ export const spec = {
203
219
  return response;
204
220
  },
205
221
 
206
- getUserSyncs: (syncOptions, serverResponses, gdprConsent, uspConsent) => {
222
+ getUserSyncs: (syncOptions, serverResponses, gdprConsent, uspConsent, gppConsent) => {
207
223
  let syncType = syncOptions.iframeEnabled ? 'iframe' : 'image';
208
224
  let syncUrl = SYNC_URL + `/${syncType}?pbjs=1`;
225
+
209
226
  if (gdprConsent && gdprConsent.consentString) {
210
227
  if (typeof gdprConsent.gdprApplies === 'boolean') {
211
228
  syncUrl += `&gdpr=${Number(gdprConsent.gdprApplies)}&gdpr_consent=${gdprConsent.consentString}`;
@@ -213,10 +230,16 @@ export const spec = {
213
230
  syncUrl += `&gdpr=0&gdpr_consent=${gdprConsent.consentString}`;
214
231
  }
215
232
  }
233
+
216
234
  if (uspConsent && uspConsent.consentString) {
217
235
  syncUrl += `&ccpa_consent=${uspConsent.consentString}`;
218
236
  }
219
237
 
238
+ if (gppConsent?.gppString && gppConsent?.applicableSections?.length) {
239
+ syncUrl += '&gpp=' + gppConsent.gppString;
240
+ syncUrl += '&gpp_sid=' + gppConsent.applicableSections.join(',');
241
+ }
242
+
220
243
  const coppa = config.getConfig('coppa') ? 1 : 0;
221
244
  syncUrl += `&coppa=${coppa}`;
222
245
 
@@ -0,0 +1,62 @@
1
+ /**
2
+ * This module adds pirId to the User ID module
3
+ * The {@link module:modules/userId} module is required
4
+ * @module modules/pirId
5
+ * @requires module:modules/userId
6
+ */
7
+
8
+ import { MODULE_TYPE_UID } from '../src/activities/modules.js';
9
+ import { getStorageManager } from '../src/storageManager.js';
10
+ import { submodule } from '../src/hook.js';
11
+ import {domainOverrideToRootDomain} from '../libraries/domainOverrideToRootDomain/index.js';
12
+
13
+ /**
14
+ * @typedef {import('../modules/userId/index.js').Submodule} Submodule
15
+ * @typedef {import('../modules/userId/index.js').IdResponse} IdResponse
16
+ */
17
+
18
+ const MODULE_NAME = 'pirId';
19
+ const ID_TOKEN = 'WPxid';
20
+ export const storage = getStorageManager({ moduleName: MODULE_NAME, moduleType: MODULE_TYPE_UID });
21
+
22
+ /**
23
+ * Reads the ID token from local storage or cookies.
24
+ * @returns {string|undefined} The ID token, or undefined if not found.
25
+ */
26
+ export const readId = () => storage.getDataFromLocalStorage(ID_TOKEN) || storage.getCookie(ID_TOKEN);
27
+
28
+ /** @type {Submodule} */
29
+ export const pirIdSubmodule = {
30
+ name: MODULE_NAME,
31
+ gvlid: 676,
32
+
33
+ /**
34
+ * decode the stored id value for passing to bid requests
35
+ * @function decode
36
+ * @param {string} value
37
+ * @returns {(Object|undefined)}
38
+ */
39
+ decode(value) {
40
+ return typeof value === 'string' ? { 'pirId': value } : undefined;
41
+ },
42
+
43
+ /**
44
+ * performs action to obtain id and return a value
45
+ * @function
46
+ * @returns {(IdResponse|undefined)}
47
+ */
48
+ getId() {
49
+ const pirIdToken = readId();
50
+
51
+ return pirIdToken ? { id: pirIdToken } : undefined;
52
+ },
53
+ domainOverride: domainOverrideToRootDomain(storage, MODULE_NAME),
54
+ eids: {
55
+ 'pirId': {
56
+ source: 'pir.wp.pl',
57
+ atype: 1
58
+ },
59
+ },
60
+ };
61
+
62
+ submodule('userId', pirIdSubmodule);
@@ -0,0 +1,27 @@
1
+ # Overview
2
+
3
+ Module Name: pirIDSystem
4
+ Module Type: UserID Module
5
+ Maintainer: pawel.grudzien@grupawp.pl
6
+
7
+ # Description
8
+
9
+ User identification system for WPM
10
+
11
+ ### Prebid Params example
12
+
13
+ ```
14
+ pbjs.setConfig({
15
+ userSync: {
16
+ userIds: [{
17
+ name: 'pirID',
18
+ storage: {
19
+ type: 'cookie',
20
+ name: 'pirIdToken',
21
+ expires: 7,
22
+ refreshInSeconds: 360
23
+ },
24
+ }]
25
+ }
26
+ });
27
+ ```
@@ -16,7 +16,7 @@ import {
16
16
  triggerPixel,
17
17
  uniques,
18
18
  } from '../../src/utils.js';
19
- import CONSTANTS from '../../src/constants.json';
19
+ import { EVENTS, REJECTION_REASON, S2S } from '../../src/constants.js';
20
20
  import adapterManager, {s2sActivityParams} from '../../src/adapterManager.js';
21
21
  import {config} from '../../src/config.js';
22
22
  import {addComponentAuction, isValid} from '../../src/adapters/bidderFactory.js';
@@ -33,7 +33,7 @@ import {ACTIVITY_TRANSMIT_UFPD} from '../../src/activities/activities.js';
33
33
 
34
34
  const getConfig = config.getConfig;
35
35
 
36
- const TYPE = CONSTANTS.S2S.SRC;
36
+ const TYPE = S2S.SRC;
37
37
  let _syncCount = 0;
38
38
  let _s2sConfigs;
39
39
 
@@ -467,10 +467,10 @@ export function PrebidServer() {
467
467
  processPBSRequest(s2sBidRequest, bidRequests, ajax, {
468
468
  onResponse: function (isValid, requestedBidders, response) {
469
469
  if (isValid) {
470
- bidRequests.forEach(bidderRequest => events.emit(CONSTANTS.EVENTS.BIDDER_DONE, bidderRequest));
470
+ bidRequests.forEach(bidderRequest => events.emit(EVENTS.BIDDER_DONE, bidderRequest));
471
471
  }
472
472
  if (shouldEmitNonbids(s2sBidRequest.s2sConfig, response)) {
473
- events.emit(CONSTANTS.EVENTS.SEAT_NON_BID, {
473
+ events.emit(EVENTS.SEAT_NON_BID, {
474
474
  seatnonbid: response.ext.seatnonbid,
475
475
  auctionId: bidRequests[0].auctionId,
476
476
  requestedBidders,
@@ -483,7 +483,7 @@ export function PrebidServer() {
483
483
  },
484
484
  onError(msg, error) {
485
485
  logError(`Prebid server call failed: '${msg}'`, error);
486
- bidRequests.forEach(bidderRequest => events.emit(CONSTANTS.EVENTS.BIDDER_ERROR, {error, bidderRequest}));
486
+ bidRequests.forEach(bidderRequest => events.emit(EVENTS.BIDDER_ERROR, { error, bidderRequest }));
487
487
  done(error.timedOut);
488
488
  },
489
489
  onBid: function ({adUnit, bid}) {
@@ -491,7 +491,7 @@ export function PrebidServer() {
491
491
  metrics.checkpoint('addBidResponse');
492
492
  if ((bid.requestId == null || bid.requestBidder == null) && !s2sBidRequest.s2sConfig.allowUnknownBidderCodes) {
493
493
  logWarn(`PBS adapter received bid from unknown bidder (${bid.bidder}), but 's2sConfig.allowUnknownBidderCodes' is not set. Ignoring bid.`);
494
- addBidResponse.reject(adUnit, bid, CONSTANTS.REJECTION_REASON.BIDDER_DISALLOWED);
494
+ addBidResponse.reject(adUnit, bid, REJECTION_REASON.BIDDER_DISALLOWED);
495
495
  } else {
496
496
  if (metrics.measureTime('addBidResponse.validate', () => isValid(adUnit, bid))) {
497
497
  addBidResponse(adUnit, bid);
@@ -499,7 +499,7 @@ export function PrebidServer() {
499
499
  addWurl(bid.auctionId, bid.adId, bid.pbsWurl);
500
500
  }
501
501
  } else {
502
- addBidResponse.reject(adUnit, bid, CONSTANTS.REJECTION_REASON.INVALID);
502
+ addBidResponse.reject(adUnit, bid, REJECTION_REASON.INVALID);
503
503
  }
504
504
  }
505
505
  },
@@ -511,7 +511,7 @@ export function PrebidServer() {
511
511
  };
512
512
 
513
513
  // Listen for bid won to call wurl
514
- events.on(CONSTANTS.EVENTS.BID_WON, bidWonHandler);
514
+ events.on(EVENTS.BID_WON, bidWonHandler);
515
515
 
516
516
  return Object.assign(this, {
517
517
  callBids: baseAdapter.callBids,
@@ -11,7 +11,7 @@ import {
11
11
  timestamp
12
12
  } from '../../src/utils.js';
13
13
  import {config} from '../../src/config.js';
14
- import CONSTANTS from '../../src/constants.json';
14
+ import { STATUS, S2S } from '../../src/constants.js';
15
15
  import {createBid} from '../../src/bidfactory.js';
16
16
  import {pbsExtensions} from '../../libraries/pbsExtensions/pbsExtensions.js';
17
17
  import {setImpBidParams} from '../../libraries/pbsExtensions/processors/params.js';
@@ -114,8 +114,8 @@ const PBS_CONVERTER = ortbConverter({
114
114
  // because core has special treatment for PBS adapter responses, we need some additional processing
115
115
  bidResponse.requestTimestamp = context.requestTimestamp;
116
116
  return {
117
- bid: Object.assign(createBid(CONSTANTS.STATUS.GOOD, {
118
- src: CONSTANTS.S2S.SRC,
117
+ bid: Object.assign(createBid(STATUS.GOOD, {
118
+ src: S2S.SRC,
119
119
  bidId: bidRequest ? (bidRequest.bidId || bidRequest.bid_Id) : null,
120
120
  transactionId: context.adUnit.transactionId,
121
121
  adUnitId: context.adUnit.adUnitId,
@@ -3,7 +3,7 @@ import {ajaxBuilder} from '../src/ajax.js';
3
3
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
4
  import adapterManager from '../src/adapterManager.js';
5
5
  import {getStorageManager} from '../src/storageManager.js';
6
- import CONSTANTS from '../src/constants.json';
6
+ import { EVENTS } from '../src/constants.js';
7
7
  import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
8
8
 
9
9
  /**
@@ -208,7 +208,7 @@ function handleEvent(eventType, eventArgs) {
208
208
  const pmEvent = {};
209
209
 
210
210
  switch (eventType) {
211
- case CONSTANTS.EVENTS.AUCTION_INIT: {
211
+ case EVENTS.AUCTION_INIT: {
212
212
  pmEvent.auctionId = eventArgs.auctionId;
213
213
  pmEvent.timeout = eventArgs.timeout;
214
214
  pmEvent.eventType = eventArgs.eventType;
@@ -218,7 +218,7 @@ function handleEvent(eventType, eventArgs) {
218
218
  _bidRequestTimeout = pmEvent.timeout;
219
219
  break;
220
220
  }
221
- case CONSTANTS.EVENTS.AUCTION_END: {
221
+ case EVENTS.AUCTION_END: {
222
222
  pmEvent.auctionId = eventArgs.auctionId;
223
223
  pmEvent.end = eventArgs.end;
224
224
  pmEvent.start = eventArgs.start;
@@ -228,15 +228,15 @@ function handleEvent(eventType, eventArgs) {
228
228
  pmEvent.end = Date.now();
229
229
  break;
230
230
  }
231
- case CONSTANTS.EVENTS.BID_ADJUSTMENT: {
231
+ case EVENTS.BID_ADJUSTMENT: {
232
232
  break;
233
233
  }
234
- case CONSTANTS.EVENTS.BID_TIMEOUT: {
234
+ case EVENTS.BID_TIMEOUT: {
235
235
  pmEvent.bidders = eventArgs && eventArgs.map ? eventArgs.map(trimBid) : eventArgs;
236
236
  pmEvent.duration = _bidRequestTimeout;
237
237
  break;
238
238
  }
239
- case CONSTANTS.EVENTS.BID_REQUESTED: {
239
+ case EVENTS.BID_REQUESTED: {
240
240
  pmEvent.auctionId = eventArgs.auctionId;
241
241
  pmEvent.bidderCode = eventArgs.bidderCode;
242
242
  pmEvent.doneCbCallCount = eventArgs.doneCbCallCount;
@@ -247,7 +247,7 @@ function handleEvent(eventType, eventArgs) {
247
247
  pmEvent.timeout = eventArgs.timeout;
248
248
  break;
249
249
  }
250
- case CONSTANTS.EVENTS.BID_RESPONSE: {
250
+ case EVENTS.BID_RESPONSE: {
251
251
  pmEvent.bidderCode = eventArgs.bidderCode;
252
252
  pmEvent.width = eventArgs.width;
253
253
  pmEvent.height = eventArgs.height;
@@ -266,7 +266,7 @@ function handleEvent(eventType, eventArgs) {
266
266
  pmEvent.adserverTargeting = eventArgs.adserverTargeting;
267
267
  break;
268
268
  }
269
- case CONSTANTS.EVENTS.BID_WON: {
269
+ case EVENTS.BID_WON: {
270
270
  pmEvent.auctionId = eventArgs.auctionId;
271
271
  pmEvent.adId = eventArgs.adId;
272
272
  pmEvent.adserverTargeting = eventArgs.adserverTargeting;
@@ -284,7 +284,7 @@ function handleEvent(eventType, eventArgs) {
284
284
  pmEvent.bidder = eventArgs.bidder;
285
285
  break;
286
286
  }
287
- case CONSTANTS.EVENTS.BIDDER_DONE: {
287
+ case EVENTS.BIDDER_DONE: {
288
288
  pmEvent.auctionId = eventArgs.auctionId;
289
289
  pmEvent.auctionStart = eventArgs.auctionStart;
290
290
  pmEvent.bidderCode = eventArgs.bidderCode;
@@ -297,16 +297,16 @@ function handleEvent(eventType, eventArgs) {
297
297
  pmEvent.src = eventArgs.src;
298
298
  break;
299
299
  }
300
- case CONSTANTS.EVENTS.SET_TARGETING: {
300
+ case EVENTS.SET_TARGETING: {
301
301
  break;
302
302
  }
303
- case CONSTANTS.EVENTS.REQUEST_BIDS: {
303
+ case EVENTS.REQUEST_BIDS: {
304
304
  break;
305
305
  }
306
- case CONSTANTS.EVENTS.ADD_AD_UNITS: {
306
+ case EVENTS.ADD_AD_UNITS: {
307
307
  break;
308
308
  }
309
- case CONSTANTS.EVENTS.AD_RENDER_FAILED: {
309
+ case EVENTS.AD_RENDER_FAILED: {
310
310
  pmEvent.bid = eventArgs.bid;
311
311
  pmEvent.message = eventArgs.message;
312
312
  pmEvent.reason = eventArgs.reason;
@@ -326,7 +326,7 @@ function sendEvent(event) {
326
326
  _eventQueue.push(event);
327
327
  logInfo(`${analyticsName} Event ${event.eventType}:`, event);
328
328
 
329
- if (event.eventType === CONSTANTS.EVENTS.AUCTION_END) {
329
+ if (event.eventType === EVENTS.AUCTION_END) {
330
330
  flush();
331
331
  }
332
332
  }
@@ -19,7 +19,7 @@ import {getGlobal} from '../src/prebidGlobal.js';
19
19
  import {config} from '../src/config.js';
20
20
  import {ajaxBuilder} from '../src/ajax.js';
21
21
  import * as events from '../src/events.js';
22
- import CONSTANTS from '../src/constants.json';
22
+ import { EVENTS, REJECTION_REASON } from '../src/constants.js';
23
23
  import {getHook} from '../src/hook.js';
24
24
  import {find} from '../src/polyfill.js';
25
25
  import {getRefererInfo} from '../src/refererDetection.js';
@@ -31,6 +31,11 @@ import {adjustCpm} from '../src/utils/cpm.js';
31
31
  import {getGptSlotInfoForAdUnitCode} from '../libraries/gptUtils/gptUtils.js';
32
32
  import {convertCurrency} from '../libraries/currencyUtils/currency.js';
33
33
 
34
+ export const FLOOR_SKIPPED_REASON = {
35
+ NOT_FOUND: 'not_found',
36
+ RANDOM: 'random'
37
+ };
38
+
34
39
  /**
35
40
  * @summary This Module is intended to provide users with the ability to dynamically set and enforce price floors on a per auction basis.
36
41
  */
@@ -412,13 +417,13 @@ export function createFloorsDataForAuction(adUnits, auctionId) {
412
417
  // if we still do not have a valid floor data then floors is not on for this auction, so skip
413
418
  if (Object.keys(deepAccess(resolvedFloorsData, 'data.values') || {}).length === 0) {
414
419
  resolvedFloorsData.skipped = true;
415
- resolvedFloorsData.skippedReason = CONSTANTS.FLOOR_SKIPPED_REASON.NOT_FOUND
420
+ resolvedFloorsData.skippedReason = FLOOR_SKIPPED_REASON.NOT_FOUND
416
421
  } else {
417
422
  // determine the skip rate now
418
423
  const auctionSkipRate = getParameterByName('pbjs_skipRate') || (deepAccess(resolvedFloorsData, 'data.skipRate') ?? resolvedFloorsData.skipRate);
419
424
  const isSkipped = Math.random() * 100 < parseFloat(auctionSkipRate);
420
425
  resolvedFloorsData.skipped = isSkipped;
421
- if (isSkipped) resolvedFloorsData.skippedReason = CONSTANTS.FLOOR_SKIPPED_REASON.RANDOM
426
+ if (isSkipped) resolvedFloorsData.skippedReason = FLOOR_SKIPPED_REASON.RANDOM
422
427
  }
423
428
  // copy FloorMin to floorData.data
424
429
  if (resolvedFloorsData.hasOwnProperty('floorMin')) resolvedFloorsData.data.floorMin = resolvedFloorsData.floorMin;
@@ -701,7 +706,7 @@ export function handleSetFloorsConfig(config) {
701
706
  if (!addedFloorsHook) {
702
707
  // register hooks / listening events
703
708
  // when auction finishes remove it's associated floor data after 3 seconds so we stil have it for latent responses
704
- events.on(CONSTANTS.EVENTS.AUCTION_END, (args) => {
709
+ events.on(EVENTS.AUCTION_END, (args) => {
705
710
  setTimeout(() => delete _floorDataForAuction[args.auctionId], 3000);
706
711
  });
707
712
 
@@ -802,7 +807,7 @@ export const addBidResponseHook = timedBidResponseHook('priceFloors', function a
802
807
  // now do the compare!
803
808
  if (shouldFloorBid(floorData, floorInfo, bid)) {
804
809
  // bid fails floor -> throw it out
805
- reject(CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET);
810
+ reject(REJECTION_REASON.FLOOR_NOT_MET);
806
811
  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);
807
812
  return;
808
813
  }
@@ -1,12 +1,22 @@
1
1
  import {_each, isArray, isStr, logError, logWarn, pick, generateUUID} from '../src/utils.js';
2
2
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
3
  import adapterManager from '../src/adapterManager.js';
4
- import CONSTANTS from '../src/constants.json';
4
+ import { BID_STATUS, EVENTS, STATUS, REJECTION_REASON } from '../src/constants.js';
5
5
  import {ajax} from '../src/ajax.js';
6
6
  import {config} from '../src/config.js';
7
7
  import {getGlobal} from '../src/prebidGlobal.js';
8
8
  import {getGptSlotInfoForAdUnitCode} from '../libraries/gptUtils/gptUtils.js';
9
9
 
10
+ const FLOOR_VALUES = {
11
+ NO_DATA: 'noData',
12
+ AD_UNIT: 'adUnit',
13
+ SET_CONFIG: 'setConfig',
14
+ FETCH: 'fetch',
15
+ SUCCESS: 'success',
16
+ ERROR: 'error',
17
+ TIMEOUT: 'timeout'
18
+ };
19
+
10
20
  /// /////////// CONSTANTS //////////////
11
21
  const ADAPTER_CODE = 'pubmatic';
12
22
  const VENDOR_OPENWRAP = 'openwrap';
@@ -109,7 +119,7 @@ function copyRequiredBidDetails(bid) {
109
119
 
110
120
  function setBidStatus(bid, args) {
111
121
  switch (args.getStatusCode()) {
112
- case CONSTANTS.STATUS.GOOD:
122
+ case STATUS.GOOD:
113
123
  bid.status = SUCCESS;
114
124
  delete bid.error; // it's possible for this to be set by a previous timeout
115
125
  break;
@@ -346,9 +356,9 @@ function getFloorFetchStatus(floorData) {
346
356
  return false;
347
357
  }
348
358
  const { location, fetchStatus } = floorData?.floorRequestData;
349
- const isDataValid = location !== CONSTANTS.FLOOR_VALUES.NO_DATA;
350
- const isFetchSuccessful = location === CONSTANTS.FLOOR_VALUES.FETCH && fetchStatus === CONSTANTS.FLOOR_VALUES.SUCCESS;
351
- const isAdUnitOrSetConfig = location === CONSTANTS.FLOOR_VALUES.AD_UNIT || location === CONSTANTS.FLOOR_VALUES.SET_CONFIG;
359
+ const isDataValid = location !== FLOOR_VALUES.NO_DATA;
360
+ const isFetchSuccessful = location === FLOOR_VALUES.FETCH && fetchStatus === FLOOR_VALUES.SUCCESS;
361
+ const isAdUnitOrSetConfig = location === FLOOR_VALUES.AD_UNIT || location === FLOOR_VALUES.SET_CONFIG;
352
362
  return isDataValid && (isAdUnitOrSetConfig || isFetchSuccessful);
353
363
  }
354
364
 
@@ -404,16 +414,16 @@ function executeBidsLoggerCall(e, highestCpmBids) {
404
414
  if (floorData?.floorRequestData) {
405
415
  const { location, fetchStatus, floorProvider } = floorData?.floorRequestData;
406
416
  slotObject.ffs = {
407
- [CONSTANTS.FLOOR_VALUES.SUCCESS]: 1,
408
- [CONSTANTS.FLOOR_VALUES.ERROR]: 2,
409
- [CONSTANTS.FLOOR_VALUES.TIMEOUT]: 4,
417
+ [FLOOR_VALUES.SUCCESS]: 1,
418
+ [FLOOR_VALUES.ERROR]: 2,
419
+ [FLOOR_VALUES.TIMEOUT]: 4,
410
420
  undefined: 0
411
421
  }[fetchStatus];
412
422
  slotObject.fsrc = {
413
- [CONSTANTS.FLOOR_VALUES.FETCH]: 2,
414
- [CONSTANTS.FLOOR_VALUES.NO_DATA]: 2,
415
- [CONSTANTS.FLOOR_VALUES.AD_UNIT]: 1,
416
- [CONSTANTS.FLOOR_VALUES.SET_CONFIG]: 1
423
+ [FLOOR_VALUES.FETCH]: 2,
424
+ [FLOOR_VALUES.NO_DATA]: 2,
425
+ [FLOOR_VALUES.AD_UNIT]: 1,
426
+ [FLOOR_VALUES.SET_CONFIG]: 1
417
427
  }[location];
418
428
  slotObject.fp = floorProvider;
419
429
  }
@@ -578,9 +588,9 @@ function bidResponseHandler(args) {
578
588
  function bidRejectedHandler(args) {
579
589
  // If bid is rejected due to floors value did not met
580
590
  // make cpm as 0, status as bidRejected and forward the bid for logging
581
- if (args.rejectionReason === CONSTANTS.REJECTION_REASON.FLOOR_NOT_MET) {
591
+ if (args.rejectionReason === REJECTION_REASON.FLOOR_NOT_MET) {
582
592
  args.cpm = 0;
583
- args.status = CONSTANTS.BID_STATUS.BID_REJECTED;
593
+ args.status = BID_STATUS.BID_REJECTED;
584
594
  bidResponseHandler(args);
585
595
  }
586
596
  }
@@ -674,28 +684,28 @@ let pubmaticAdapter = Object.assign({}, baseAdapter, {
674
684
 
675
685
  track({eventType, args}) {
676
686
  switch (eventType) {
677
- case CONSTANTS.EVENTS.AUCTION_INIT:
687
+ case EVENTS.AUCTION_INIT:
678
688
  auctionInitHandler(args);
679
689
  break;
680
- case CONSTANTS.EVENTS.BID_REQUESTED:
690
+ case EVENTS.BID_REQUESTED:
681
691
  bidRequestedHandler(args);
682
692
  break;
683
- case CONSTANTS.EVENTS.BID_RESPONSE:
693
+ case EVENTS.BID_RESPONSE:
684
694
  bidResponseHandler(args);
685
695
  break;
686
- case CONSTANTS.EVENTS.BID_REJECTED:
696
+ case EVENTS.BID_REJECTED:
687
697
  bidRejectedHandler(args)
688
698
  break;
689
- case CONSTANTS.EVENTS.BIDDER_DONE:
699
+ case EVENTS.BIDDER_DONE:
690
700
  bidderDoneHandler(args);
691
701
  break;
692
- case CONSTANTS.EVENTS.BID_WON:
702
+ case EVENTS.BID_WON:
693
703
  bidWonHandler(args);
694
704
  break;
695
- case CONSTANTS.EVENTS.AUCTION_END:
705
+ case EVENTS.AUCTION_END:
696
706
  auctionEndHandler(args);
697
707
  break;
698
- case CONSTANTS.EVENTS.BID_TIMEOUT:
708
+ case EVENTS.BID_TIMEOUT:
699
709
  bidTimeoutHandler(args);
700
710
  break;
701
711
  }
@@ -4,8 +4,7 @@ import { BANNER, VIDEO, NATIVE, ADPOD } from '../src/mediaTypes.js';
4
4
  import { config } from '../src/config.js';
5
5
  import { Renderer } from '../src/Renderer.js';
6
6
  import { bidderSettings } from '../src/bidderSettings.js';
7
- import CONSTANTS from '../src/constants.json';
8
- import {convertTypes} from '../libraries/transformParamsUtils/convertTypes.js';
7
+ import { NATIVE_IMAGE_TYPES, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS, NATIVE_ASSET_TYPES } from '../src/constants.js';
9
8
 
10
9
  /**
11
10
  * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
@@ -264,6 +263,25 @@ function _handleCustomParams(params, conf) {
264
263
  return conf;
265
264
  }
266
265
 
266
+ export function getDeviceConnectionType() {
267
+ let connection = window.navigator && (window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection);
268
+ switch (connection?.effectiveType) {
269
+ case 'ethernet':
270
+ return 1;
271
+ case 'wifi':
272
+ return 2;
273
+ case 'slow-2g':
274
+ case '2g':
275
+ return 4;
276
+ case '3g':
277
+ return 5;
278
+ case '4g':
279
+ return 6;
280
+ default:
281
+ return 0;
282
+ }
283
+ }
284
+
267
285
  function _createOrtbTemplate(conf) {
268
286
  return {
269
287
  id: '' + new Date().getTime(),
@@ -281,7 +299,8 @@ function _createOrtbTemplate(conf) {
281
299
  dnt: (navigator.doNotTrack == 'yes' || navigator.doNotTrack == '1' || navigator.msDoNotTrack == '1') ? 1 : 0,
282
300
  h: screen.height,
283
301
  w: screen.width,
284
- language: navigator.language
302
+ language: navigator.language,
303
+ connectiontype: getDeviceConnectionType()
285
304
  },
286
305
  user: {},
287
306
  ext: {}
@@ -332,7 +351,6 @@ const PREBID_NATIVE_DATA_KEYS_TO_ORTB = {
332
351
  'displayurl': 'displayurl'
333
352
  };
334
353
 
335
- const { NATIVE_IMAGE_TYPES, NATIVE_KEYS_THAT_ARE_NOT_ASSETS, NATIVE_KEYS, NATIVE_ASSET_TYPES } = CONSTANTS;
336
354
  const PREBID_NATIVE_DATA_KEY_VALUES = Object.values(PREBID_NATIVE_DATA_KEYS_TO_ORTB);
337
355
 
338
356
  // TODO remove this function when the support for 1.1 is removed
@@ -1448,20 +1466,6 @@ export const spec = {
1448
1466
  url: USER_SYNC_URL_IMAGE + syncurl
1449
1467
  }];
1450
1468
  }
1451
- },
1452
-
1453
- /**
1454
- * Covert bid param types for S2S
1455
- * @param {Object} params bid params
1456
- * @param {Boolean} isOpenRtb boolean to check openrtb2 protocol
1457
- * @return {Object} params bid params
1458
- */
1459
-
1460
- transformBidParams: function (params, isOpenRtb, adUnit, bidRequests) {
1461
- return convertTypes({
1462
- 'publisherId': 'string',
1463
- 'adSlot': 'string'
1464
- }, params);
1465
1469
  }
1466
1470
  };
1467
1471