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
@@ -2,7 +2,7 @@ import { getParameterByName, logInfo, generateUUID, debugTurnedOn } from '../src
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 {getStorageManager} from '../src/storageManager.js';
7
7
  import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
8
8
  const MODULE_CODE = 'pubwise';
@@ -176,13 +176,13 @@ function flushEvents() {
176
176
 
177
177
  function isIngestedEvent(eventType) {
178
178
  const ingested = [
179
- CONSTANTS.EVENTS.AUCTION_INIT,
180
- CONSTANTS.EVENTS.BID_REQUESTED,
181
- CONSTANTS.EVENTS.BID_RESPONSE,
182
- CONSTANTS.EVENTS.BID_WON,
183
- CONSTANTS.EVENTS.BID_TIMEOUT,
184
- CONSTANTS.EVENTS.AD_RENDER_FAILED,
185
- CONSTANTS.EVENTS.TCF2_ENFORCEMENT
179
+ EVENTS.AUCTION_INIT,
180
+ EVENTS.BID_REQUESTED,
181
+ EVENTS.BID_RESPONSE,
182
+ EVENTS.BID_WON,
183
+ EVENTS.BID_TIMEOUT,
184
+ EVENTS.AD_RENDER_FAILED,
185
+ EVENTS.TCF2_ENFORCEMENT
186
186
  ];
187
187
  return ingested.indexOf(eventType) !== -1;
188
188
  }
@@ -278,9 +278,9 @@ pubwiseAnalytics.handleEvent = function(eventType, data) {
278
278
  metaData = enrichWithCustomSegments(metaData);
279
279
 
280
280
  // add data on init to the metadata container
281
- if (eventType === CONSTANTS.EVENTS.AUCTION_INIT) {
281
+ if (eventType === EVENTS.AUCTION_INIT) {
282
282
  data = filterAuctionInit(data);
283
- } else if (eventType === CONSTANTS.EVENTS.BID_RESPONSE) {
283
+ } else if (eventType === EVENTS.BID_RESPONSE) {
284
284
  data = filterBidResponse(data);
285
285
  }
286
286
 
@@ -294,7 +294,7 @@ pubwiseAnalytics.handleEvent = function(eventType, data) {
294
294
  }
295
295
 
296
296
  // once the auction ends, or the event is a bid won send events
297
- if (eventType === CONSTANTS.EVENTS.AUCTION_END || eventType === CONSTANTS.EVENTS.BID_WON) {
297
+ if (eventType === EVENTS.AUCTION_END || eventType === EVENTS.BID_WON) {
298
298
  flushEvents();
299
299
  }
300
300
  };
@@ -2,7 +2,7 @@ import { deepAccess, parseSizesInput, getWindowLocation, buildUrl } from '../src
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
  import {getGptSlotInfoForAdUnitCode} from '../libraries/gptUtils/gptUtils.js';
8
8
 
@@ -38,9 +38,9 @@ var pubxaiAnalyticsAdapter = Object.assign(adapter(
38
38
  }), {
39
39
  track({ eventType, args }) {
40
40
  if (typeof args !== 'undefined') {
41
- if (eventType === CONSTANTS.EVENTS.BID_TIMEOUT) {
41
+ if (eventType === EVENTS.BID_TIMEOUT) {
42
42
  args.forEach(item => { mapBidResponse(item, 'timeout'); });
43
- } else if (eventType === CONSTANTS.EVENTS.AUCTION_INIT) {
43
+ } else if (eventType === EVENTS.AUCTION_INIT) {
44
44
  events.auctionInit = args;
45
45
  events.floorDetail = {};
46
46
  events.bids = [];
@@ -49,15 +49,15 @@ var pubxaiAnalyticsAdapter = Object.assign(adapter(
49
49
  Object.assign(events.floorDetail, floorData);
50
50
  }
51
51
  auctionTimestamp = args.timestamp;
52
- } else if (eventType === CONSTANTS.EVENTS.BID_RESPONSE) {
52
+ } else if (eventType === EVENTS.BID_RESPONSE) {
53
53
  mapBidResponse(args, 'response');
54
- } else if (eventType === CONSTANTS.EVENTS.BID_WON) {
54
+ } else if (eventType === EVENTS.BID_WON) {
55
55
  send({
56
56
  winningBid: mapBidResponse(args, 'bidwon')
57
57
  }, 'bidwon');
58
58
  }
59
59
  }
60
- if (eventType === CONSTANTS.EVENTS.AUCTION_END) {
60
+ if (eventType === EVENTS.AUCTION_END) {
61
61
  send(events, 'auctionEnd');
62
62
  }
63
63
  }
@@ -3,7 +3,7 @@ import { ajax } from '../src/ajax.js';
3
3
  import { logWarn, mergeDeep, logMessage, generateUUID } from '../src/utils.js';
4
4
  import { loadExternalScript } from '../src/adloader.js';
5
5
  import * as events from '../src/events.js';
6
- import CONSTANTS from '../src/constants.json';
6
+ import { EVENTS } from '../src/constants.js';
7
7
 
8
8
  let requestUrl;
9
9
  let bidderArray;
@@ -128,7 +128,7 @@ export function loadScriptTag(config) {
128
128
  logMessage('received billable event: qx-impression')
129
129
  impressionIds.add(uid)
130
130
  billableEvent.transactionId = e.detail.uid;
131
- events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, billableEvent);
131
+ events.emit(EVENTS.BILLABLE_EVENT, billableEvent);
132
132
  break;
133
133
  }
134
134
  default:
@@ -7,17 +7,19 @@ import {
7
7
  isArray,
8
8
  isNumber,
9
9
  parseSizesInput,
10
- getBidIdParameter
10
+ getBidIdParameter,
11
+ isGptPubadsDefined
11
12
  } from '../src/utils.js';
12
13
  import { registerBidder } from '../src/adapters/bidderFactory.js';
13
14
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
14
15
  import { Renderer } from '../src/Renderer.js';
15
16
  import { getStorageManager } from '../src/storageManager.js';
16
17
  import sha1 from 'crypto-js/sha1';
18
+ import { isSlotMatchingAdUnitCode } from '../libraries/gptUtils/gptUtils.js';
17
19
 
18
20
  const BIDDER_CODE = 'relaido';
19
21
  const BIDDER_DOMAIN = 'api.relaido.jp';
20
- const ADAPTER_VERSION = '1.1.0';
22
+ const ADAPTER_VERSION = '1.2.0';
21
23
  const DEFAULT_TTL = 300;
22
24
  const UUID_KEY = 'relaido_uuid';
23
25
 
@@ -47,6 +49,7 @@ function buildRequests(validBidRequests, bidderRequest) {
47
49
  let bidDomain = null;
48
50
  let bidder = null;
49
51
  let count = null;
52
+ let isOgUrlOption = false;
50
53
 
51
54
  for (let i = 0; i < validBidRequests.length; i++) {
52
55
  const bidRequest = validBidRequests[i];
@@ -92,6 +95,10 @@ function buildRequests(validBidRequests, bidderRequest) {
92
95
  count = bidRequest.bidRequestsCount;
93
96
  }
94
97
 
98
+ if (getBidIdParameter('ogUrl', bidRequest.params)) {
99
+ isOgUrlOption = true;
100
+ }
101
+
95
102
  bids.push({
96
103
  bid_id: bidRequest.bidId,
97
104
  placement_id: getBidIdParameter('placementId', bidRequest.params),
@@ -105,10 +112,13 @@ function buildRequests(validBidRequests, bidderRequest) {
105
112
  height: height,
106
113
  banner_sizes: getBannerSizes(bidRequest),
107
114
  media_type: mediaType,
108
- userIdAsEids: bidRequest.userIdAsEids || {},
115
+ userIdAsEids: bidRequest.userIdAsEids || [],
116
+ pagekvt: getTargeting(bidRequest),
109
117
  });
110
118
  }
111
119
 
120
+ const canonicalUrl = getCanonicalUrl(bidderRequest.refererInfo?.canonicalUrl, isOgUrlOption);
121
+
112
122
  const data = JSON.stringify({
113
123
  version: ADAPTER_VERSION,
114
124
  bids: bids,
@@ -118,8 +128,8 @@ function buildRequests(validBidRequests, bidderRequest) {
118
128
  uuid: getUuid(),
119
129
  pv: '$prebid.version$',
120
130
  imuid: imuid,
121
- canonical_url: bidderRequest.refererInfo?.canonicalUrl || null,
122
- canonical_url_hash: getCanonicalUrlHash(bidderRequest.refererInfo),
131
+ canonical_url: canonicalUrl,
132
+ canonical_url_hash: getCanonicalUrlHash(canonicalUrl),
123
133
  ref: bidderRequest.refererInfo.page
124
134
  });
125
135
 
@@ -294,12 +304,25 @@ function getUuid() {
294
304
  return newId;
295
305
  }
296
306
 
297
- function getCanonicalUrlHash(refererInfo) {
298
- const canonicalUrl = refererInfo.canonicalUrl || null;
307
+ function getOgUrl() {
308
+ try {
309
+ const ogURLElement = window.top.document.querySelector('meta[property="og:url"]');
310
+ return ogURLElement ? ogURLElement.content : null;
311
+ } catch (e) {
312
+ const ogURLElement = document.querySelector('meta[property="og:url"]');
313
+ return ogURLElement ? ogURLElement.content : null;
314
+ }
315
+ }
316
+
317
+ function getCanonicalUrl(canonicalUrl, isOgUrlOption) {
299
318
  if (!canonicalUrl) {
300
- return null;
319
+ return (isOgUrlOption) ? getOgUrl() : null;
301
320
  }
302
- return sha1(canonicalUrl).toString();
321
+ return canonicalUrl;
322
+ }
323
+
324
+ function getCanonicalUrlHash(canonicalUrl) {
325
+ return (canonicalUrl) ? sha1(canonicalUrl).toString() : null;
303
326
  }
304
327
 
305
328
  function hasBannerMediaType(bid) {
@@ -349,6 +372,44 @@ function getBannerSizes(bidRequest) {
349
372
  return parseSizesInput(sizes).join(',');
350
373
  }
351
374
 
375
+ function getTargeting(bidRequest) {
376
+ const targetings = {};
377
+ const pubads = getPubads();
378
+ if (pubads) {
379
+ const keys = pubads.getTargetingKeys();
380
+ for (const key of keys) {
381
+ const values = pubads.getTargeting(key);
382
+ targetings[key] = values;
383
+ }
384
+ }
385
+ const adUnitSlot = getAdUnit(bidRequest.adUnitCode);
386
+ if (adUnitSlot) {
387
+ const keys = adUnitSlot.getTargetingKeys();
388
+ for (const key of keys) {
389
+ const values = adUnitSlot.getTargeting(key);
390
+ targetings[key] = values;
391
+ }
392
+ }
393
+ return targetings;
394
+ }
395
+
396
+ function getPubads() {
397
+ return (isGptPubadsDefined()) ? window.googletag.pubads() : null;
398
+ }
399
+
400
+ function getAdUnit(adUnitCode) {
401
+ if (isGptPubadsDefined()) {
402
+ const adSlots = window.googletag.pubads().getSlots();
403
+ const isMatchingAdSlot = isSlotMatchingAdUnitCode(adUnitCode);
404
+ for (let i = 0; i < adSlots.length; i++) {
405
+ if (isMatchingAdSlot(adSlots[i])) {
406
+ return adSlots[i];
407
+ }
408
+ }
409
+ }
410
+ return null;
411
+ }
412
+
352
413
  export const spec = {
353
414
  code: BIDDER_CODE,
354
415
  supportedMediaTypes: [BANNER, VIDEO],
@@ -1,6 +1,6 @@
1
1
  import {deepClone, getParameterByName, 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 {includes} from '../src/polyfill.js';
6
6
  import {ajaxBuilder} from '../src/ajax.js';
@@ -18,15 +18,13 @@ const DEFAULT_SERVER_CONFIG_URL = 'pa.rxthdr.com/v3';
18
18
  const analyticsType = 'endpoint';
19
19
 
20
20
  const {
21
- EVENTS: {
22
- AUCTION_INIT,
23
- AUCTION_END,
24
- BID_REQUESTED,
25
- BID_ADJUSTMENT,
26
- BIDDER_DONE,
27
- BID_WON
28
- }
29
- } = CONSTANTS;
21
+ AUCTION_INIT,
22
+ AUCTION_END,
23
+ BID_REQUESTED,
24
+ BID_ADJUSTMENT,
25
+ BIDDER_DONE,
26
+ BID_WON
27
+ } = EVENTS;
30
28
 
31
29
  const AUCTION_STATUS = {
32
30
  'RUNNING': 'running',
@@ -163,7 +163,7 @@ import {config} from '../../src/config.js';
163
163
  import {getHook, module} from '../../src/hook.js';
164
164
  import {logError, logInfo, logWarn} from '../../src/utils.js';
165
165
  import * as events from '../../src/events.js';
166
- import CONSTANTS from '../../src/constants.json';
166
+ import { EVENTS, JSON_MAPPING } from '../../src/constants.js';
167
167
  import adapterManager, {gdprDataHandler, uspDataHandler, gppDataHandler} from '../../src/adapterManager.js';
168
168
  import {find} from '../../src/polyfill.js';
169
169
  import {timedAuctionHook} from '../../src/utils/perfMetrics.js';
@@ -213,11 +213,11 @@ const setEventsListeners = (function () {
213
213
  return function setEventsListeners() {
214
214
  if (!registered) {
215
215
  Object.entries({
216
- [CONSTANTS.EVENTS.AUCTION_INIT]: ['onAuctionInitEvent'],
217
- [CONSTANTS.EVENTS.AUCTION_END]: ['onAuctionEndEvent', getAdUnitTargeting],
218
- [CONSTANTS.EVENTS.BID_RESPONSE]: ['onBidResponseEvent'],
219
- [CONSTANTS.EVENTS.BID_REQUESTED]: ['onBidRequestEvent'],
220
- [CONSTANTS.EVENTS.BID_ACCEPTED]: ['onBidAcceptedEvent']
216
+ [EVENTS.AUCTION_INIT]: ['onAuctionInitEvent'],
217
+ [EVENTS.AUCTION_END]: ['onAuctionEndEvent', getAdUnitTargeting],
218
+ [EVENTS.BID_RESPONSE]: ['onBidResponseEvent'],
219
+ [EVENTS.BID_REQUESTED]: ['onBidRequestEvent'],
220
+ [EVENTS.BID_ACCEPTED]: ['onBidAcceptedEvent']
221
221
  }).forEach(([ev, [handler, preprocess]]) => {
222
222
  events.on(ev, (args) => {
223
223
  preprocess && preprocess(args);
@@ -380,7 +380,7 @@ export function getAdUnitTargeting(auction) {
380
380
  return
381
381
  }
382
382
  logInfo('RTD set ad unit targeting of', kv, 'for', adUnit);
383
- adUnit[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING] = Object.assign(adUnit[CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING] || {}, kv);
383
+ adUnit[JSON_MAPPING.ADSERVER_TARGETING] = Object.assign(adUnit[JSON_MAPPING.ADSERVER_TARGETING] || {}, kv);
384
384
  });
385
385
  return auction.adUnits;
386
386
  }
@@ -1,7 +1,7 @@
1
1
  /* COPYRIGHT SCALEABLE LLC 2019 */
2
2
 
3
3
  import { ajax } from '../src/ajax.js';
4
- import CONSTANTS from '../src/constants.json';
4
+ import { EVENTS } from '../src/constants.js';
5
5
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
6
6
  import adapterManager from '../src/adapterManager.js';
7
7
  import { logMessage } from '../src/utils.js';
@@ -16,10 +16,10 @@ const entries = Object.entries || function(obj) {
16
16
  return resArray;
17
17
  };
18
18
 
19
- const BID_TIMEOUT = CONSTANTS.EVENTS.BID_TIMEOUT;
20
- const AUCTION_INIT = CONSTANTS.EVENTS.AUCTION_INIT;
21
- const BID_WON = CONSTANTS.EVENTS.BID_WON;
22
- const AUCTION_END = CONSTANTS.EVENTS.AUCTION_END;
19
+ const BID_TIMEOUT = EVENTS.BID_TIMEOUT;
20
+ const AUCTION_INIT = EVENTS.AUCTION_INIT;
21
+ const BID_WON = EVENTS.BID_WON;
22
+ const AUCTION_END = EVENTS.AUCTION_END;
23
23
 
24
24
  const URL = 'https://auction.scaleable.ai/';
25
25
  const ANALYTICS_TYPE = 'endpoint';
@@ -1,7 +1,7 @@
1
- import { isArray, _map, triggerPixel } from '../src/utils.js';
2
1
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
- import { VIDEO, BANNER } from '../src/mediaTypes.js';
4
2
  import { config } from '../src/config.js';
3
+ import { BANNER, VIDEO } from '../src/mediaTypes.js';
4
+ import { _map, isArray, triggerPixel } from '../src/utils.js';
5
5
 
6
6
  /**
7
7
  * @typedef {import('../src/adapters/bidderFactory.js').BidRequest} BidRequest
@@ -125,7 +125,7 @@ function buildBidRequest(validBidRequest) {
125
125
  adUnitCode: validBidRequest.adUnitCode,
126
126
  geom: geom(validBidRequest.adUnitCode),
127
127
  placement: params.placement,
128
- requestCount: validBidRequest.bidderRequestsCount || 1, // FIXME : in unit test the parameter bidderRequestsCount is undefined
128
+ requestCount: validBidRequest.bidderRequestsCount || 1, // FIXME : in unit test the parameter bidderRequestsCount is undefinedt
129
129
  };
130
130
 
131
131
  if (hasVideoMediaType(validBidRequest)) {
@@ -284,6 +284,7 @@ export const spec = {
284
284
  auctionStart: bidderRequest.auctionStart || Date.now(),
285
285
  ttfb: ttfb(),
286
286
  bidRequests: _map(validBidRequests, buildBidRequest),
287
+ user: { topics: [], eids: [] }
287
288
  };
288
289
 
289
290
  if (payload.cmp) {
@@ -316,7 +317,15 @@ export const spec = {
316
317
  }
317
318
  }
318
319
 
320
+ if (bidderRequest.ortb2?.user?.data) {
321
+ payload.user.topics = bidderRequest.ortb2.user.data
322
+ }
323
+ if (validBidRequests[0] && validBidRequests[0].userIdAsEids) {
324
+ payload.user.eids = validBidRequests[0].userIdAsEids
325
+ }
326
+
319
327
  const payloadString = JSON.stringify(payload);
328
+
320
329
  return {
321
330
  method: 'POST',
322
331
  url: SEEDTAG_SSP_ENDPOINT,
@@ -2,7 +2,7 @@
2
2
  Updated : 2018-03-28 */
3
3
  import {includes} from '../src/polyfill.js';
4
4
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
5
- import CONSTANTS from '../src/constants.json';
5
+ import { EVENTS } from '../src/constants.js';
6
6
  import adapterManager from '../src/adapterManager.js';
7
7
  import {getStorageManager} from '../src/storageManager.js';
8
8
  import {generateUUID, logError, logInfo} from '../src/utils.js';
@@ -14,12 +14,12 @@ const storage = getStorageManager({moduleType: MODULE_TYPE_ANALYTICS, moduleName
14
14
  const url = 'https://kinesis.us-east-1.amazonaws.com/';
15
15
  const analyticsType = 'endpoint';
16
16
 
17
- const auctionInitConst = CONSTANTS.EVENTS.AUCTION_INIT;
18
- const auctionEndConst = CONSTANTS.EVENTS.AUCTION_END;
19
- const bidWonConst = CONSTANTS.EVENTS.BID_WON;
20
- const bidRequestConst = CONSTANTS.EVENTS.BID_REQUESTED;
21
- const bidAdjustmentConst = CONSTANTS.EVENTS.BID_ADJUSTMENT;
22
- const bidResponseConst = CONSTANTS.EVENTS.BID_RESPONSE;
17
+ const auctionInitConst = EVENTS.AUCTION_INIT;
18
+ const auctionEndConst = EVENTS.AUCTION_END;
19
+ const bidWonConst = EVENTS.BID_WON;
20
+ const bidRequestConst = EVENTS.BID_REQUESTED;
21
+ const bidAdjustmentConst = EVENTS.BID_ADJUSTMENT;
22
+ const bidResponseConst = EVENTS.BID_RESPONSE;
23
23
 
24
24
  let initOptions = { publisherIds: [], utmTagData: [], adUnits: [] };
25
25
  let bidWon = {options: {}, events: []};
@@ -7,17 +7,19 @@
7
7
  * @module modules/sirdataRtdProvider
8
8
  * @requires module:modules/realTimeData
9
9
  */
10
- import {deepAccess, deepSetValue, isEmpty, logError, mergeDeep} from '../src/utils.js';
10
+ import {deepAccess, deepSetValue, isEmpty, logError, logInfo, mergeDeep} from '../src/utils.js';
11
11
  import {submodule} from '../src/hook.js';
12
12
  import {ajax} from '../src/ajax.js';
13
13
  import {findIndex} from '../src/polyfill.js';
14
14
  import {getRefererInfo} from '../src/refererDetection.js';
15
15
  import {config} from '../src/config.js';
16
+ import {getGlobal} from '../src/prebidGlobal.js';
16
17
 
17
18
  /** @type {string} */
18
19
  const MODULE_NAME = 'realTimeData';
19
20
  const SUBMODULE_NAME = 'SirdataRTDModule';
20
21
  const ORTB2_NAME = 'sirdata.com';
22
+ const LOG_PREFIX = 'Sirdata RTD: ';
21
23
 
22
24
  const partnerIds = {
23
25
  'criteo': 27443,
@@ -63,28 +65,28 @@ const partnerIds = {
63
65
  'zeta_global_ssp': 33385,
64
66
  };
65
67
 
66
- let CONTEXT_ONLY = true;
67
-
68
68
  export function getSegmentsAndCategories(reqBidsConfigObj, onDone, moduleConfig, userConsent) {
69
+ logInfo(LOG_PREFIX, 'init');
69
70
  moduleConfig.params = moduleConfig.params || {};
70
71
 
71
- var tcString = (userConsent && userConsent.gdpr && userConsent.gdpr.consentString ? userConsent.gdpr.consentString : '');
72
- var gdprApplies = (userConsent && userConsent.gdpr && userConsent.gdpr.gdprApplies ? userConsent.gdpr.gdprApplies : '');
72
+ let tcString = (userConsent && userConsent.gdpr && userConsent.gdpr.consentString ? userConsent.gdpr.consentString : '');
73
+ let gdprApplies = (userConsent && userConsent.gdpr && userConsent.gdpr.gdprApplies ? userConsent.gdpr.gdprApplies : '');
73
74
 
74
75
  moduleConfig.params.partnerId = moduleConfig.params.partnerId ? moduleConfig.params.partnerId : 1;
75
76
  moduleConfig.params.key = moduleConfig.params.key ? moduleConfig.params.key : 1;
77
+ moduleConfig.params.actualUrl = moduleConfig.params.actualUrl || null;
76
78
 
77
- var sirdataDomain;
78
- var sendWithCredentials;
79
+ let sirdataDomain;
80
+ let sendWithCredentials;
79
81
 
80
- if (userConsent.coppa || (userConsent.usp && (userConsent.usp[0] == '1' && (userConsent.usp[1] == 'N' || userConsent.usp[2] == 'Y')))) {
82
+ if (userConsent.coppa || (userConsent.usp && (userConsent.usp[0] === '1' && (userConsent.usp[1] === 'N' || userConsent.usp[2] === 'Y')))) {
81
83
  // if children or "Do not Sell" management in California, no segments, page categories only whatever TCF signal
82
84
  sirdataDomain = 'cookieless-data.com';
83
85
  sendWithCredentials = false;
84
86
  gdprApplies = null;
85
87
  tcString = '';
86
88
  } else if (config.getConfig('consentManagement.gdpr')) {
87
- // Default endpoint is cookieless if gdpr management is set. Needed because the cookie-based endpoint will fail and return error if user is located in Europe and no consent has been given
89
+ // Default endpoint for Contextual results only is cookieless if gdpr management is set. Needed because the cookie-based endpoint will fail and return error if user is located in Europe and no consent has been given
88
90
  sirdataDomain = 'cookieless-data.com';
89
91
  sendWithCredentials = false;
90
92
  }
@@ -94,10 +96,9 @@ export function getSegmentsAndCategories(reqBidsConfigObj, onDone, moduleConfig,
94
96
  if (!sirdataDomain || !gdprApplies || (deepAccess(userConsent, 'gdpr.vendorData.vendor.consents') && userConsent.gdpr.vendorData.vendor.consents[53] && userConsent.gdpr.vendorData.purpose.consents[1] && userConsent.gdpr.vendorData.purpose.consents[4])) {
95
97
  sirdataDomain = 'sddan.com';
96
98
  sendWithCredentials = true;
97
- CONTEXT_ONLY = false;
98
99
  }
99
100
 
100
- var actualUrl = moduleConfig.params.actualUrl || getRefererInfo().stack.pop() || getRefererInfo().page;
101
+ let actualUrl = moduleConfig.params.actualUrl || getRefererInfo().stack.pop() || getRefererInfo().page;
101
102
 
102
103
  const url = 'https://kvt.' + sirdataDomain + '/api/v1/public/p/' + moduleConfig.params.partnerId + '/d/' + moduleConfig.params.key + '/s?callback=&gdpr=' + gdprApplies + '&gdpr_consent=' + tcString + (actualUrl ? '&url=' + encodeURIComponent(actualUrl) : '');
103
104
 
@@ -169,7 +170,7 @@ export function setOrtb2Sda(ortb2Fragments, bidder, type, segments, segtaxValue)
169
170
  if (segtaxValue) {
170
171
  ortb2Data[0].ext = { segtax: segtaxValue };
171
172
  }
172
- let ortb2Conf = (type == 'site' ? {site: {content: {data: ortb2Data}}} : {user: {data: ortb2Data}});
173
+ let ortb2Conf = (type === 'site' ? {site: {content: {data: ortb2Data}}} : {user: {data: ortb2Data}});
173
174
  if (bidder) {
174
175
  ortb2Conf = {[bidder]: ortb2Conf};
175
176
  }
@@ -218,7 +219,7 @@ export function getSegAndCatsArray(data, minScore, pid) {
218
219
  if (data.contextual_categories.hasOwnProperty(catId) && data.contextual_categories[catId]) {
219
220
  let value = data.contextual_categories[catId];
220
221
  if (value >= minScore && sirdataData.categories.indexOf(catId) === -1) {
221
- if (pid && cattaxid) {
222
+ if (pid && pid === '27440' && cattaxid) { // Equativ only
222
223
  sirdataData.categories.push(pid.toString() + 'cc' + catId.toString());
223
224
  } else {
224
225
  sirdataData.categories.push(catId.toString());
@@ -236,15 +237,10 @@ export function getSegAndCatsArray(data, minScore, pid) {
236
237
  for (let segId in data.segments) {
237
238
  if (data.segments.hasOwnProperty(segId) && data.segments[segId]) {
238
239
  let id = data.segments[segId].toString();
239
- if (pid && CONTEXT_ONLY) {
240
- if (segtaxid) {
241
- sirdataData.categories.push(pid.toString() + 'uc' + id);
242
- } else {
243
- sirdataData.categories.push(id);
244
- sirdataData.categories_score[id] = 100;
245
- }
240
+ if (pid && pid === '27440' && segtaxid) { // Equativ only
241
+ sirdataData.segments.push(pid.toString() + 'us' + id);
246
242
  } else {
247
- sirdataData.segments.push((pid && segtaxid) ? pid.toString() + 'us' + id : id);
243
+ sirdataData.segments.push(id);
248
244
  }
249
245
  }
250
246
  }
@@ -259,7 +255,7 @@ export function applySdaGetSpecificData(data, sirdataData, biddersParamsExist, m
259
255
  // only share SDA data if whitelisted
260
256
  if (!biddersParamsExist || indexFound) {
261
257
  // SDA Publisher
262
- let sirdataDataForSDA = getSegAndCatsArray(data, minScore, moduleConfig.params.partnerId);
258
+ let sirdataDataForSDA = getSegAndCatsArray(data, minScore, moduleConfig.params.partnerId.toString());
263
259
  pushToOrtb2(reqBids.ortb2Fragments?.bidder, bid.bidder, sirdataDataForSDA, data.segtaxid, data.cattaxid);
264
260
  }
265
261
 
@@ -269,7 +265,7 @@ export function applySdaGetSpecificData(data, sirdataData, biddersParamsExist, m
269
265
  // seller defined audience & bidder specific data
270
266
  if (data.shared_taxonomy && data.shared_taxonomy[curationId]) {
271
267
  // Get Bidder Specific Data
272
- let curationData = getSegAndCatsArray(data.shared_taxonomy[curationId], minScore, curationId);
268
+ let curationData = getSegAndCatsArray(data.shared_taxonomy[curationId], minScore, curationId.toString());
273
269
  pushToOrtb2(reqBids.ortb2Fragments?.bidder, bid.bidder, curationData, data.shared_taxonomy[curationId].segtaxid, data.shared_taxonomy[curationId].cattaxid);
274
270
  }
275
271
  }
@@ -284,26 +280,19 @@ export function applySdaGetSpecificData(data, sirdataData, biddersParamsExist, m
284
280
  }
285
281
  }
286
282
 
287
- export function applySdaAndDefaultSpecificData(data, sirdataData, biddersParamsExist, minScore, reqBids, bid, moduleConfig, indexFound, bidderIndex, adUnit) {
288
- sirdataData = applySdaGetSpecificData(data, sirdataData, biddersParamsExist, minScore, reqBids, bid, moduleConfig, indexFound, bidderIndex, adUnit);
289
- /*
290
- if (sirdataData.segments && sirdataData.segments.length > 0) {
291
- setOrtb2(reqBids.ortb2Fragments?.bidder, bid.bidder, 'user.ext.data', {sd_rtd: sirdataData.segments});
292
- }
293
- if (sirdataData.categories && sirdataData.categories.length > 0) {
294
- setOrtb2(reqBids.ortb2Fragments?.bidder, bid.bidder, 'site.ext.data', {sd_rtd: sirdataData.categories});
283
+ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
284
+ const adUnits = (reqBids && reqBids.adUnits) || getGlobal().adUnits;
285
+ if (!adUnits) {
286
+ onDone();
287
+ return;
295
288
  }
296
- */
297
- }
298
289
 
299
- export function addSegmentData(reqBids, data, moduleConfig, onDone) {
300
- const adUnits = reqBids.adUnits;
301
290
  moduleConfig = moduleConfig || {};
302
291
  moduleConfig.params = moduleConfig.params || {};
303
292
  const globalMinScore = moduleConfig.params.hasOwnProperty('contextualMinRelevancyScore') ? moduleConfig.params.contextualMinRelevancyScore : 30;
304
- var sirdataData = getSegAndCatsArray(data, globalMinScore, null);
293
+ let sirdataData = getSegAndCatsArray(data, globalMinScore, null);
305
294
 
306
- const biddersParamsExist = (!!(moduleConfig.params && moduleConfig.params.bidders));
295
+ const biddersParamsExist = (!!(moduleConfig.params && moduleConfig.params.bidders && moduleConfig.params.bidders.length > 0));
307
296
 
308
297
  // Global ortb2 SDA
309
298
  if (data.global_taxonomy && !isEmpty(data.global_taxonomy)) {
@@ -320,10 +309,12 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
320
309
  if (typeof window.googletag !== 'undefined' && (moduleConfig.params.setGptKeyValues || !moduleConfig.params.hasOwnProperty('setGptKeyValues'))) {
321
310
  try {
322
311
  let gptCurationId = (moduleConfig.params.gptCurationId ? moduleConfig.params.gptCurationId : (partnerIds['sdRtdForGpt'] ? partnerIds['sdRtdForGpt'] : null));
323
- let sirdataMergedList = sirdataData.segments.concat(sirdataData.categories);
312
+ let sirdataMergedList = [];
324
313
  if (gptCurationId && data.shared_taxonomy && data.shared_taxonomy[gptCurationId]) {
325
314
  let gamCurationData = getSegAndCatsArray(data.shared_taxonomy[gptCurationId], globalMinScore, null);
326
315
  sirdataMergedList = sirdataMergedList.concat(gamCurationData.segments).concat(gamCurationData.categories);
316
+ } else {
317
+ sirdataMergedList = sirdataData.segments.concat(sirdataData.categories);
327
318
  }
328
319
  window.googletag.cmd.push(function() {
329
320
  window.googletag.pubads().getSlots().forEach(function (n) {
@@ -338,8 +329,8 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
338
329
  }
339
330
 
340
331
  // Bid targeting level for FPD non-generic biders
341
- var bidderIndex = '';
342
- var indexFound = false;
332
+ let bidderIndex = '';
333
+ let indexFound = false;
343
334
 
344
335
  adUnits.forEach(adUnit => {
345
336
  adUnit.hasOwnProperty('bids') && adUnit.bids.forEach(bid => {
@@ -349,7 +340,6 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
349
340
  indexFound = (!!(typeof bidderIndex == 'number' && bidderIndex >= 0));
350
341
  try {
351
342
  let minScore = (indexFound && moduleConfig.params.bidders[bidderIndex].hasOwnProperty('contextualMinRelevancyScore') ? moduleConfig.params.bidders[bidderIndex].contextualMinRelevancyScore : globalMinScore);
352
-
353
343
  switch (bid.bidder) {
354
344
  case 'appnexus':
355
345
  case 'appnexusAst':
@@ -379,7 +369,7 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
379
369
 
380
370
  default:
381
371
  if (!biddersParamsExist || (indexFound && (!moduleConfig.params.bidders[bidderIndex].hasOwnProperty('adUnitCodes') || moduleConfig.params.bidders[bidderIndex].adUnitCodes.indexOf(adUnit.code) !== -1))) {
382
- applySdaAndDefaultSpecificData(data, sirdataData, biddersParamsExist, minScore, reqBids, bid, moduleConfig, indexFound, bidderIndex, adUnit);
372
+ applySdaGetSpecificData(data, sirdataData, biddersParamsExist, minScore, reqBids, bid, moduleConfig, indexFound, bidderIndex, adUnit);
383
373
  }
384
374
  }
385
375
  } catch (e) {
@@ -387,12 +377,12 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
387
377
  }
388
378
  })
389
379
  });
390
-
391
380
  onDone();
392
381
  return adUnits;
393
382
  }
394
383
 
395
384
  export function init(config) {
385
+ logInfo(LOG_PREFIX, config);
396
386
  return true;
397
387
  }
398
388
 
@@ -3,7 +3,7 @@ import {find} from '../src/polyfill.js';
3
3
  import {registerBidder} from '../src/adapters/bidderFactory.js';
4
4
  import {config} from '../src/config.js';
5
5
  import {ADPOD, BANNER, NATIVE, VIDEO} from '../src/mediaTypes.js';
6
- import CONSTANTS from '../src/constants.json';
6
+ import { NATIVE_IMAGE_TYPES } from '../src/constants.js';
7
7
  import {getAdUnitSizes} from '../libraries/sizeUtils/sizeUtils.js';
8
8
  import {fill} from '../libraries/appnexusUtils/anUtils.js';
9
9
  import {chunk} from '../libraries/chunk/chunk.js';
@@ -16,7 +16,6 @@ import {chunk} from '../libraries/chunk/chunk.js';
16
16
  * @typedef {import('../src/adapters/bidderFactory.js').UserSync} UserSync
17
17
  */
18
18
 
19
- const { NATIVE_IMAGE_TYPES } = CONSTANTS;
20
19
  const BIDDER_CODE = 'smaato';
21
20
  const SMAATO_ENDPOINT = 'https://prebid.ad.smaato.net/oapi/prebid';
22
21
  const SMAATO_CLIENT = 'prebid_js_$prebid.version$_1.8'