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
@@ -15,7 +15,8 @@ const GVLID = 855;
15
15
  const DEFAULT_VAST_VERSION = 'vast4'
16
16
  const MAXIMUM_DEALS_LIMIT = 5;
17
17
  const VALID_BID_TYPES = ['netBid', 'grossBid'];
18
- const META_DATA_KEY = 'adn.metaData';
18
+ const METADATA_KEY = 'adn.metaData';
19
+ const METADATA_KEY_SEPARATOR = '@@@';
19
20
 
20
21
  export const misc = {
21
22
  getUnixTimestamp: function (addDays, asMinutes) {
@@ -28,23 +29,28 @@ const storageTool = (function () {
28
29
  const storage = getStorageManager({ bidderCode: BIDDER_CODE });
29
30
  let metaInternal;
30
31
 
31
- const getMetaInternal = function () {
32
+ const getMetaDataFromLocalStorage = function (pNetwork) {
32
33
  if (!storage.localStorageIsEnabled()) {
33
34
  return [];
34
35
  }
35
36
 
36
37
  let parsedJson;
37
38
  try {
38
- parsedJson = JSON.parse(storage.getDataFromLocalStorage(META_DATA_KEY));
39
+ parsedJson = JSON.parse(storage.getDataFromLocalStorage(METADATA_KEY));
39
40
  } catch (e) {
40
41
  return [];
41
42
  }
42
43
 
44
+ let network = pNetwork;
45
+ if (Array.isArray(pNetwork)) {
46
+ network = (pNetwork.find((p) => p.network) || {}).network;
47
+ }
48
+
43
49
  let filteredEntries = parsedJson ? parsedJson.filter((datum) => {
44
50
  if (datum.key === 'voidAuIds' && Array.isArray(datum.value)) {
45
51
  return true;
46
52
  }
47
- return datum.key && datum.value && datum.exp && datum.exp > misc.getUnixTimestamp();
53
+ return datum.key && datum.value && datum.exp && datum.exp > misc.getUnixTimestamp() && (!network || network === datum.network);
48
54
  }) : [];
49
55
  const voidAuIdsEntry = filteredEntries.find(entry => entry.key === 'voidAuIds');
50
56
  if (voidAuIdsEntry) {
@@ -57,7 +63,7 @@ const storageTool = (function () {
57
63
  return filteredEntries;
58
64
  };
59
65
 
60
- const setMetaInternal = function (apiResponse) {
66
+ const setMetaInternal = function (apiRespMetadata, network) {
61
67
  if (!storage.localStorageIsEnabled()) {
62
68
  return;
63
69
  }
@@ -74,41 +80,48 @@ const storageTool = (function () {
74
80
  return notNewExistingAuIds.concat(apiIdsArray) || [];
75
81
  }
76
82
 
77
- const metaAsObj = getMetaInternal().reduce((a, entry) => ({ ...a, [entry.key]: { value: entry.value, exp: entry.exp } }), {});
78
- for (const key in apiResponse) {
83
+ // use the metadata key separator to distinguish the same key for different networks.
84
+ const metaAsObj = getMetaDataFromLocalStorage().reduce((a, entry) => ({ ...a, [entry.key + METADATA_KEY_SEPARATOR + (entry.network ? entry.network : '')]: { value: entry.value, exp: entry.exp, network: entry.network } }), {});
85
+ for (const key in apiRespMetadata) {
79
86
  if (key !== 'voidAuIds') {
80
- metaAsObj[key] = {
81
- value: apiResponse[key],
82
- exp: misc.getUnixTimestamp(100)
87
+ metaAsObj[key + METADATA_KEY_SEPARATOR + network] = {
88
+ value: apiRespMetadata[key],
89
+ exp: misc.getUnixTimestamp(100),
90
+ network: network
83
91
  }
84
92
  }
85
93
  }
86
- const currentAuIds = updateVoidAuIds(metaAsObj.voidAuIds || [], apiResponse.voidAuIds);
94
+ const currentAuIds = updateVoidAuIds(metaAsObj.voidAuIds || [], apiRespMetadata.voidAuIds);
87
95
  if (currentAuIds.length > 0) {
88
96
  metaAsObj.voidAuIds = { value: currentAuIds };
89
97
  }
90
98
  const metaDataForSaving = Object.entries(metaAsObj).map((entrySet) => {
91
- if (entrySet[0] === 'voidAuIds') {
99
+ if (entrySet.length !== 2) {
100
+ return {};
101
+ }
102
+ const key = entrySet[0].split(METADATA_KEY_SEPARATOR)[0];
103
+ if (key === 'voidAuIds') {
92
104
  return {
93
- key: entrySet[0],
105
+ key: key,
94
106
  value: entrySet[1].value
95
107
  };
96
108
  }
97
109
  return {
98
- key: entrySet[0],
110
+ key: key,
99
111
  value: entrySet[1].value,
100
- exp: entrySet[1].exp
112
+ exp: entrySet[1].exp,
113
+ network: entrySet[1].network
101
114
  }
102
- });
103
- storage.setDataInLocalStorage(META_DATA_KEY, JSON.stringify(metaDataForSaving));
115
+ }).filter(entry => entry.key);
116
+ storage.setDataInLocalStorage(METADATA_KEY, JSON.stringify(metaDataForSaving));
104
117
  };
105
118
 
106
- const getUsi = function (meta, ortb2, bidderRequest) {
119
+ const getUsi = function (meta, ortb2, bidParams) {
107
120
  // Fetch user id from parameters.
108
- for (let i = 0; i < (bidderRequest.bids || []).length; i++) {
109
- const bid = bidderRequest.bids[i];
110
- if (bid.params && bid.params.userId) {
111
- return bid.params.userId;
121
+ for (let i = 0; i < bidParams.length; i++) {
122
+ const bidParam = bidParams[i];
123
+ if (bidParam.userId) {
124
+ return bidParam.userId;
112
125
  }
113
126
  }
114
127
  if (ortb2 && ortb2.user && ortb2.user.id) {
@@ -136,8 +149,11 @@ const storageTool = (function () {
136
149
  return {
137
150
  refreshStorage: function (bidderRequest) {
138
151
  const ortb2 = bidderRequest.ortb2 || {};
139
- metaInternal = getMetaInternal().reduce((a, entry) => ({ ...a, [entry.key]: entry.value }), {});
140
- metaInternal.usi = getUsi(metaInternal, ortb2, bidderRequest);
152
+ const bidParams = (bidderRequest.bids || []).map((b) => {
153
+ return b.params ? b.params : {};
154
+ });
155
+ metaInternal = getMetaDataFromLocalStorage(bidParams).reduce((a, entry) => ({ ...a, [entry.key]: entry.value }), {});
156
+ metaInternal.usi = getUsi(metaInternal, ortb2, bidParams);
141
157
  if (!metaInternal.usi) {
142
158
  delete metaInternal.usi;
143
159
  }
@@ -148,15 +164,17 @@ const storageTool = (function () {
148
164
  }
149
165
  metaInternal.segments = getSegmentsFromOrtb(ortb2);
150
166
  },
151
- saveToStorage: function (serverData) {
152
- setMetaInternal(serverData);
167
+ saveToStorage: function (serverData, network) {
168
+ setMetaInternal(serverData, network);
153
169
  },
154
170
  getUrlRelatedData: function () {
171
+ // getting the URL information is theoretically not network-specific
155
172
  const { segments, usi, voidAuIdsArray } = metaInternal;
156
173
  return { segments, usi, voidAuIdsArray };
157
174
  },
158
- getPayloadRelatedData: function () {
159
- const { segments, usi, userId, voidAuIdsArray, voidAuIds, ...payloadRelatedData } = metaInternal;
175
+ getPayloadRelatedData: function (network) {
176
+ // getting the payload data should be network-specific
177
+ const { segments, usi, userId, voidAuIdsArray, voidAuIds, ...payloadRelatedData } = getMetaDataFromLocalStorage(network).reduce((a, entry) => ({...a, [entry.key]: entry.value}), {});
160
178
  return payloadRelatedData;
161
179
  }
162
180
  };
@@ -191,6 +209,11 @@ export const spec = {
191
209
  queryParamsAndValues.push('gdpr=' + flag);
192
210
  }
193
211
 
212
+ const searchParams = new URLSearchParams(window.location.search);
213
+ if (searchParams.has('script-override')) {
214
+ queryParamsAndValues.push('so=' + searchParams.get('script-override'));
215
+ }
216
+
194
217
  storageTool.refreshStorage(bidderRequest);
195
218
 
196
219
  const urlRelatedMetaData = storageTool.getUrlRelatedData();
@@ -223,7 +246,7 @@ export const spec = {
223
246
  networks[network].adUnits = networks[network].adUnits || [];
224
247
  if (bidderRequest && bidderRequest.refererInfo) networks[network].context = bidderRequest.refererInfo.page;
225
248
 
226
- const payloadRelatedData = storageTool.getPayloadRelatedData();
249
+ const payloadRelatedData = storageTool.getPayloadRelatedData(bid.params.network);
227
250
  if (Object.keys(payloadRelatedData).length > 0) {
228
251
  networks[network].metaData = payloadRelatedData;
229
252
  }
@@ -239,7 +262,7 @@ export const spec = {
239
262
  }
240
263
 
241
264
  const requests = [];
242
- const networkKeys = Object.keys(networks)
265
+ const networkKeys = Object.keys(networks);
243
266
  for (let j = 0; j < networkKeys.length; j++) {
244
267
  const network = networkKeys[j];
245
268
  if (network.indexOf('_video') > -1) { queryParamsAndValues.push('tt=' + DEFAULT_VAST_VERSION) }
@@ -257,7 +280,7 @@ export const spec = {
257
280
 
258
281
  interpretResponse: function (serverResponse, bidRequest) {
259
282
  if (serverResponse.body.metaData) {
260
- storageTool.saveToStorage(serverResponse.body.metaData);
283
+ storageTool.saveToStorage(serverResponse.body.metaData, serverResponse.body.network);
261
284
  }
262
285
  const adUnits = serverResponse.body.adUnits;
263
286
 
@@ -1,16 +1,16 @@
1
1
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
2
- import CONSTANTS from '../src/constants.json';
2
+ import {EVENTS} from '../src/constants.js';
3
3
  import adapterManager from '../src/adapterManager.js';
4
4
  import {logInfo} from '../src/utils.js';
5
5
  import {find, findIndex} from '../src/polyfill.js';
6
6
 
7
7
  // Events used in adomik analytics adapter.
8
- const auctionInit = CONSTANTS.EVENTS.AUCTION_INIT;
9
- const auctionEnd = CONSTANTS.EVENTS.AUCTION_END;
10
- const bidRequested = CONSTANTS.EVENTS.BID_REQUESTED;
11
- const bidResponse = CONSTANTS.EVENTS.BID_RESPONSE;
12
- const bidWon = CONSTANTS.EVENTS.BID_WON;
13
- const bidTimeout = CONSTANTS.EVENTS.BID_TIMEOUT;
8
+ const auctionInit = EVENTS.AUCTION_INIT;
9
+ const auctionEnd = EVENTS.AUCTION_END;
10
+ const bidRequested = EVENTS.BID_REQUESTED;
11
+ const bidResponse = EVENTS.BID_RESPONSE;
12
+ const bidWon = EVENTS.BID_WON;
13
+ const bidTimeout = EVENTS.BID_TIMEOUT;
14
14
  const ua = navigator.userAgent;
15
15
 
16
16
  var _sampled = true;
package/modules/adpod.js CHANGED
@@ -38,7 +38,7 @@ import {config} from '../src/config.js';
38
38
  import {ADPOD} from '../src/mediaTypes.js';
39
39
  import {find, arrayFrom as from} from '../src/polyfill.js';
40
40
  import {auctionManager} from '../src/auctionManager.js';
41
- import CONSTANTS from '../src/constants.json';
41
+ import { TARGETING_KEYS } from '../src/constants.js';
42
42
 
43
43
  const TARGETING_KEY_PB_CAT_DUR = 'hb_pb_cat_dur';
44
44
  const TARGETING_KEY_CACHE_ID = 'hb_cache_id';
@@ -454,10 +454,10 @@ export function callPrebidCacheAfterAuction(bids, callback) {
454
454
  * @param {Object} bid
455
455
  */
456
456
  export function sortByPricePerSecond(a, b) {
457
- if (a.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket < b.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) {
457
+ if (a.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket < b.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) {
458
458
  return 1;
459
459
  }
460
- if (a.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket > b.adserverTargeting[CONSTANTS.TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) {
460
+ if (a.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / a.video.durationBucket > b.adserverTargeting[TARGETING_KEYS.PRICE_BUCKET] / b.video.durationBucket) {
461
461
  return -1;
462
462
  }
463
463
  return 0;
@@ -2,7 +2,7 @@ import { parseSizesInput, uniques, buildUrl, logError } from '../src/utils.js';
2
2
  import { ajax } from '../src/ajax.js';
3
3
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
4
  import adapterManager from '../src/adapterManager.js';
5
- import CONSTANTS from '../src/constants.json';
5
+ import { EVENTS } from '../src/constants.js';
6
6
  import {getGlobal} from '../src/prebidGlobal.js';
7
7
 
8
8
  /**
@@ -22,29 +22,29 @@ var adxcgAnalyticsAdapter = Object.assign(adapter(
22
22
  }), {
23
23
  track ({eventType, args}) {
24
24
  switch (eventType) {
25
- case CONSTANTS.EVENTS.AUCTION_INIT:
25
+ case EVENTS.AUCTION_INIT:
26
26
  adxcgAnalyticsAdapter.context.events.auctionInit = mapAuctionInit(args);
27
27
  adxcgAnalyticsAdapter.context.auctionTimestamp = args.timestamp;
28
28
  break;
29
- case CONSTANTS.EVENTS.BID_REQUESTED:
29
+ case EVENTS.BID_REQUESTED:
30
30
  adxcgAnalyticsAdapter.context.auctionId = args.auctionId;
31
31
  adxcgAnalyticsAdapter.context.events.bidRequests.push(mapBidRequested(args));
32
32
  break;
33
- case CONSTANTS.EVENTS.BID_ADJUSTMENT:
33
+ case EVENTS.BID_ADJUSTMENT:
34
34
  break;
35
- case CONSTANTS.EVENTS.BID_TIMEOUT:
35
+ case EVENTS.BID_TIMEOUT:
36
36
  adxcgAnalyticsAdapter.context.events.bidTimeout = args.map(item => item.bidder).filter(uniques);
37
37
  break;
38
- case CONSTANTS.EVENTS.BIDDER_DONE:
38
+ case EVENTS.BIDDER_DONE:
39
39
  break;
40
- case CONSTANTS.EVENTS.BID_RESPONSE:
40
+ case EVENTS.BID_RESPONSE:
41
41
  adxcgAnalyticsAdapter.context.events.bidResponses.push(mapBidResponse(args, eventType));
42
42
  break;
43
- case CONSTANTS.EVENTS.BID_WON:
43
+ case EVENTS.BID_WON:
44
44
  let outData2 = {bidWons: mapBidWon(args)};
45
45
  send(outData2);
46
46
  break;
47
- case CONSTANTS.EVENTS.AUCTION_END:
47
+ case EVENTS.AUCTION_END:
48
48
  send(adxcgAnalyticsAdapter.context.events);
49
49
  break;
50
50
  }
@@ -87,7 +87,7 @@ function mapBidResponse (bidResponse, eventType) {
87
87
  currency: bidResponse.currency,
88
88
  netRevenue: bidResponse.netRevenue,
89
89
  timeToRespond: bidResponse.timeToRespond,
90
- bidId: eventType === CONSTANTS.EVENTS.BID_TIMEOUT ? bidResponse.bidId : bidResponse.requestId,
90
+ bidId: eventType === EVENTS.BID_TIMEOUT ? bidResponse.bidId : bidResponse.requestId,
91
91
  dealId: bidResponse.dealId,
92
92
  status: bidResponse.status,
93
93
  creativeId: bidResponse.creativeId.toString()
@@ -2,7 +2,7 @@ import {deepClone, logError, logInfo} from '../src/utils.js';
2
2
  import {ajax} from '../src/ajax.js';
3
3
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
4
  import adapterManager from '../src/adapterManager.js';
5
- import CONSTANTS from '../src/constants.json';
5
+ import { EVENTS } from '../src/constants.js';
6
6
  import {includes} from '../src/polyfill.js';
7
7
 
8
8
  const analyticsType = 'endpoint';
@@ -12,15 +12,13 @@ let reqCountry = window.reqCountry || null;
12
12
 
13
13
  // Events needed
14
14
  const {
15
- EVENTS: {
16
- AUCTION_INIT,
17
- BID_REQUESTED,
18
- BID_TIMEOUT,
19
- BID_RESPONSE,
20
- BID_WON,
21
- AUCTION_END
22
- }
23
- } = CONSTANTS;
15
+ AUCTION_INIT,
16
+ BID_REQUESTED,
17
+ BID_TIMEOUT,
18
+ BID_RESPONSE,
19
+ BID_WON,
20
+ AUCTION_END
21
+ } = EVENTS;
24
22
 
25
23
  let timeoutBased = false;
26
24
  let requestSent = false;
@@ -9,7 +9,7 @@ import {
9
9
  } from '../src/utils.js';
10
10
  import { getGlobal } from '../src/prebidGlobal.js';
11
11
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
12
- import CONSTANTS from '../src/constants.json';
12
+ import { EVENTS } from '../src/constants.js';
13
13
  import adapterManager, { gdprDataHandler } from '../src/adapterManager.js';
14
14
  import { getRefererInfo } from '../src/refererDetection.js';
15
15
  import { config } from '../src/config.js';
@@ -22,10 +22,6 @@ const batchDelayInMs = 1000;
22
22
  const agmaURL = 'https://pbc.agma-analytics.de/v1';
23
23
  const pageViewId = generateUUID();
24
24
 
25
- const {
26
- EVENTS: { AUCTION_INIT },
27
- } = CONSTANTS;
28
-
29
25
  // Helper functions
30
26
  const getScreen = () => {
31
27
  const w = window;
@@ -212,7 +208,7 @@ agmaAnalytics.enableAnalytics = function (config = {}) {
212
208
  }
213
209
 
214
210
  agmaAnalytics.options = {
215
- triggerEvent: AUCTION_INIT,
211
+ triggerEvent: EVENTS.AUCTION_INIT,
216
212
  ...options,
217
213
  };
218
214
 
@@ -1,12 +1,15 @@
1
1
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
2
  import {deepAccess, deepClone, getDNT, generateUUID, replaceAuctionPrice} from '../src/utils.js';
3
3
  import {ajax} from '../src/ajax.js';
4
+ import {getStorageManager} from '../src/storageManager.js';
4
5
  import {VIDEO, BANNER} from '../src/mediaTypes.js';
5
6
  import {config} from '../src/config.js';
6
7
 
7
8
  const BIDDER_CODE = 'alkimi';
8
9
  const GVLID = 1169;
10
+ const USER_ID_KEY = 'alkimiUserID';
9
11
  export const ENDPOINT = 'https://exchange.alkimi-onboarding.com/bid?prebid=true';
12
+ export const storage = getStorageManager({bidderCode: BIDDER_CODE});
10
13
 
11
14
  export const spec = {
12
15
  code: BIDDER_CODE,
@@ -43,11 +46,16 @@ export const spec = {
43
46
  bidIds.push(bidRequest.bidId)
44
47
  })
45
48
 
49
+ const ortb2 = bidderRequest.ortb2
50
+ const site = ortb2?.site
51
+
52
+ const id = getUserId()
46
53
  const alkimiConfig = config.getConfig('alkimi')
47
- const fullPageAuction = bidderRequest.ortb2?.source?.ext?.full_page_auction
48
- const source = fullPageAuction != undefined ? { ext: { full_page_auction: fullPageAuction } } : undefined
54
+ const fpa = ortb2?.source?.ext?.fpa
55
+ const source = fpa != undefined ? { ext: { fpa } } : undefined
49
56
  const walletID = alkimiConfig && alkimiConfig.walletID
50
- const user = walletID != undefined ? { ext: { walletID: walletID } } : undefined
57
+ const userParams = alkimiConfig && alkimiConfig.userParams
58
+ const user = (walletID != undefined || userParams != undefined || id != undefined) ? { id, ext: { walletID, userParams } } : undefined
51
59
 
52
60
  let payload = {
53
61
  requestId: generateUUID(),
@@ -66,11 +74,14 @@ export const spec = {
66
74
  source,
67
75
  user,
68
76
  site: {
69
- keywords: bidderRequest.ortb2?.site?.keywords
77
+ keywords: site?.keywords,
78
+ sectioncat: site?.sectioncat,
79
+ pagecat: site?.pagecat,
80
+ cat: site?.cat
70
81
  },
71
- at: bidderRequest.ortb2?.at,
72
- bcat: bidderRequest.ortb2?.bcat,
73
- wseat: bidderRequest.ortb2?.wseat
82
+ at: ortb2?.at,
83
+ bcat: ortb2?.bcat,
84
+ wseat: ortb2?.wseat
74
85
  }
75
86
  }
76
87
 
@@ -111,7 +122,7 @@ export const spec = {
111
122
  }
112
123
 
113
124
  const {prebidResponse} = serverBody;
114
- if (!prebidResponse || typeof prebidResponse !== 'object') {
125
+ if (!Array.isArray(prebidResponse)) {
115
126
  return [];
116
127
  }
117
128
 
@@ -141,6 +152,24 @@ export const spec = {
141
152
  return true;
142
153
  }
143
154
  return false;
155
+ },
156
+
157
+ getUserSyncs: function(syncOptions, serverResponses, gdprConsent) {
158
+ if (syncOptions.iframeEnabled && serverResponses.length > 0) {
159
+ const serverBody = serverResponses[0].body;
160
+ if (!serverBody || typeof serverBody !== 'object') return [];
161
+
162
+ const { iframeList } = serverBody;
163
+ if (!Array.isArray(iframeList)) return [];
164
+
165
+ const urls = [];
166
+ iframeList.forEach(url => {
167
+ urls.push({type: 'iframe', url});
168
+ })
169
+
170
+ return urls;
171
+ }
172
+ return [];
144
173
  }
145
174
  }
146
175
 
@@ -175,4 +204,15 @@ const getFormatType = bidRequest => {
175
204
  return formats
176
205
  }
177
206
 
207
+ const getUserId = () => {
208
+ if (storage.localStorageIsEnabled()) {
209
+ let userId = storage.getDataFromLocalStorage(USER_ID_KEY)
210
+ if (!userId) {
211
+ userId = generateUUID()
212
+ storage.setDataInLocalStorage(USER_ID_KEY, userId)
213
+ }
214
+ return userId
215
+ }
216
+ }
217
+
178
218
  registerBidder(spec);
@@ -1,6 +1,6 @@
1
1
  import {ajax} from '../src/ajax.js';
2
2
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
- import CONSTANTS from '../src/constants.json';
3
+ import { EVENTS } from '../src/constants.js';
4
4
  import adapterManager from '../src/adapterManager.js';
5
5
  import {getGlobal} from '../src/prebidGlobal.js';
6
6
  import {logError, logInfo, deepClone} from '../src/utils.js';
@@ -12,12 +12,10 @@ export const ANALYTICS_VERSION = '1.0.0';
12
12
  const DEFAULT_SERVER = 'https://prebid-analytics.c.appier.net/v1';
13
13
 
14
14
  const {
15
- EVENTS: {
16
- AUCTION_END,
17
- BID_WON,
18
- BID_TIMEOUT
19
- }
20
- } = CONSTANTS;
15
+ AUCTION_END,
16
+ BID_WON,
17
+ BID_TIMEOUT
18
+ } = EVENTS;
21
19
 
22
20
  export const BIDDER_STATUS = {
23
21
  BID: 'bid',
@@ -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
  import {getRefererInfo} from '../src/refererDetection.js';
9
9
 
@@ -203,7 +203,7 @@ function handleEvent(eventType, eventArgs) {
203
203
  pmEvent.eventType = eventType
204
204
 
205
205
  switch (eventType) {
206
- case CONSTANTS.EVENTS.AUCTION_INIT: {
206
+ case EVENTS.AUCTION_INIT: {
207
207
  pmEvent.auctionId = eventArgs.auctionId
208
208
  pmEvent.timeout = eventArgs.timeout
209
209
  pmEvent.adUnits = eventArgs.adUnits && eventArgs.adUnits.map(trimAdUnit)
@@ -212,7 +212,7 @@ function handleEvent(eventType, eventArgs) {
212
212
  auctionTimeouts[pmEvent.auctionId] = pmEvent.timeout
213
213
  break
214
214
  }
215
- case CONSTANTS.EVENTS.AUCTION_END: {
215
+ case EVENTS.AUCTION_END: {
216
216
  pmEvent.auctionId = eventArgs.auctionId
217
217
  pmEvent.end = eventArgs.end
218
218
  pmEvent.start = eventArgs.start
@@ -222,15 +222,15 @@ function handleEvent(eventType, eventArgs) {
222
222
  pmEvent.end = Date.now()
223
223
  break
224
224
  }
225
- case CONSTANTS.EVENTS.BID_ADJUSTMENT: {
225
+ case EVENTS.BID_ADJUSTMENT: {
226
226
  break
227
227
  }
228
- case CONSTANTS.EVENTS.BID_TIMEOUT: {
228
+ case EVENTS.BID_TIMEOUT: {
229
229
  pmEvent.bidders = eventArgs && eventArgs.map ? eventArgs.map(trimBid) : eventArgs
230
230
  pmEvent.duration = auctionTimeouts[pmEvent.auctionId]
231
231
  break
232
232
  }
233
- case CONSTANTS.EVENTS.BID_REQUESTED: {
233
+ case EVENTS.BID_REQUESTED: {
234
234
  pmEvent.auctionId = eventArgs.auctionId
235
235
  pmEvent.bidderCode = eventArgs.bidderCode
236
236
  pmEvent.doneCbCallCount = eventArgs.doneCbCallCount
@@ -241,7 +241,7 @@ function handleEvent(eventType, eventArgs) {
241
241
  pmEvent.timeout = eventArgs.timeout
242
242
  break
243
243
  }
244
- case CONSTANTS.EVENTS.BID_RESPONSE: {
244
+ case EVENTS.BID_RESPONSE: {
245
245
  pmEvent.bidderCode = eventArgs.bidderCode
246
246
  pmEvent.width = eventArgs.width
247
247
  pmEvent.height = eventArgs.height
@@ -260,7 +260,7 @@ function handleEvent(eventType, eventArgs) {
260
260
  pmEvent.adserverTargeting = eventArgs.adserverTargeting
261
261
  break
262
262
  }
263
- case CONSTANTS.EVENTS.BID_WON: {
263
+ case EVENTS.BID_WON: {
264
264
  pmEvent.auctionId = eventArgs.auctionId
265
265
  pmEvent.adId = eventArgs.adId
266
266
  pmEvent.adserverTargeting = eventArgs.adserverTargeting
@@ -278,7 +278,7 @@ function handleEvent(eventType, eventArgs) {
278
278
  pmEvent.bidder = eventArgs.bidder
279
279
  break
280
280
  }
281
- case CONSTANTS.EVENTS.BIDDER_DONE: {
281
+ case EVENTS.BIDDER_DONE: {
282
282
  pmEvent.auctionId = eventArgs.auctionId
283
283
  pmEvent.auctionStart = eventArgs.auctionStart
284
284
  pmEvent.bidderCode = eventArgs.bidderCode
@@ -291,16 +291,16 @@ function handleEvent(eventType, eventArgs) {
291
291
  pmEvent.src = eventArgs.src
292
292
  break
293
293
  }
294
- case CONSTANTS.EVENTS.SET_TARGETING: {
294
+ case EVENTS.SET_TARGETING: {
295
295
  break
296
296
  }
297
- case CONSTANTS.EVENTS.REQUEST_BIDS: {
297
+ case EVENTS.REQUEST_BIDS: {
298
298
  break
299
299
  }
300
- case CONSTANTS.EVENTS.ADD_AD_UNITS: {
300
+ case EVENTS.ADD_AD_UNITS: {
301
301
  break
302
302
  }
303
- case CONSTANTS.EVENTS.AD_RENDER_FAILED: {
303
+ case EVENTS.AD_RENDER_FAILED: {
304
304
  pmEvent.bid = eventArgs.bid
305
305
  pmEvent.message = eventArgs.message
306
306
  pmEvent.reason = eventArgs.reason
@@ -317,7 +317,7 @@ function sendEvent(event) {
317
317
  eventQueue.push(event)
318
318
  logInfo(`${analyticsName} Event ${event.eventType}:`, event)
319
319
 
320
- if (event.eventType === CONSTANTS.EVENTS.AUCTION_END) {
320
+ if (event.eventType === EVENTS.AUCTION_END) {
321
321
  flush()
322
322
  }
323
323
  }
@@ -1,6 +1,6 @@
1
1
  import { logError, logInfo } from '../src/utils.js';
2
2
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
- import CONSTANTS from '../src/constants.json';
3
+ import { EVENTS } from '../src/constants.js';
4
4
  import adaptermanager from '../src/adapterManager.js';
5
5
  import {ajax} from '../src/ajax.js';
6
6
  import {getStorageManager} from '../src/storageManager.js';
@@ -346,12 +346,12 @@ atsAnalyticsAdapter.enableAnalytics = function (config) {
346
346
  };
347
347
 
348
348
  atsAnalyticsAdapter.callHandler = function (evtype, args) {
349
- if (evtype === CONSTANTS.EVENTS.BID_REQUESTED) {
349
+ if (evtype === EVENTS.BID_REQUESTED) {
350
350
  handlerRequest = handlerRequest.concat(bidRequestedHandler(args));
351
- } else if (evtype === CONSTANTS.EVENTS.BID_RESPONSE) {
351
+ } else if (evtype === EVENTS.BID_RESPONSE) {
352
352
  handlerResponse.push(bidResponseHandler(args));
353
353
  }
354
- if (evtype === CONSTANTS.EVENTS.AUCTION_END) {
354
+ if (evtype === EVENTS.AUCTION_END) {
355
355
  let bidWonTimeout = atsAnalyticsAdapter.context.bidWonTimeout ? atsAnalyticsAdapter.context.bidWonTimeout : 2000;
356
356
  let events = [];
357
357
  setTimeout(() => {