prebid.js 8.44.0 → 8.45.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 (472) 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/amxBidAdapter.js +1 -1
  33. package/dist/amxIdSystem.js +1 -1
  34. package/dist/analyticsAdapter.js +1 -1
  35. package/dist/appierAnalyticsAdapter.js +1 -1
  36. package/dist/appnexusBidAdapter.js +1 -1
  37. package/dist/asoBidAdapter.js +1 -1
  38. package/dist/asteriobidAnalyticsAdapter.js +1 -1
  39. package/dist/atsAnalyticsAdapter.js +1 -1
  40. package/dist/automatadAnalyticsAdapter.js +1 -1
  41. package/dist/axonixBidAdapter.js +1 -1
  42. package/dist/bidViewability.js +1 -1
  43. package/dist/bidViewabilityIO.js +1 -1
  44. package/dist/bidglassBidAdapter.js +1 -1
  45. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  46. package/dist/big-richmediaBidAdapter.js +1 -1
  47. package/dist/brandmetricsRtdProvider.js +1 -1
  48. package/dist/bridBidAdapter.js +1 -1
  49. package/dist/bridgewellBidAdapter.js +1 -1
  50. package/dist/brightMountainMediaBidAdapter.js +1 -1
  51. package/dist/browsiRtdProvider.js +1 -1
  52. package/dist/byDataAnalyticsAdapter.js +1 -1
  53. package/dist/carodaBidAdapter.js +1 -1
  54. package/dist/chtnwBidAdapter.js +1 -1
  55. package/dist/chunk-core.js +1 -1
  56. package/dist/chunk-paapi.js +1 -1
  57. package/dist/cleanioRtdProvider.js +1 -1
  58. package/dist/concertAnalyticsAdapter.js +1 -1
  59. package/dist/concertBidAdapter.js +1 -1
  60. package/dist/confiantRtdProvider.js +1 -1
  61. package/dist/connectadBidAdapter.js +1 -1
  62. package/dist/consentManagementUsp.js +1 -1
  63. package/dist/consumableBidAdapter.js +1 -1
  64. package/dist/conversantAnalyticsAdapter.js +1 -1
  65. package/dist/conversantBidAdapter.js +1 -1
  66. package/dist/craftBidAdapter.js +1 -1
  67. package/dist/creative-renderer-native.js +1 -1
  68. package/dist/criteoBidAdapter.js +1 -1
  69. package/dist/currency.js +1 -1
  70. package/dist/cwireBidAdapter.js +1 -1
  71. package/dist/dailymotionBidAdapter.js +1 -0
  72. package/dist/datablocksAnalyticsAdapter.js +1 -1
  73. package/dist/datawrkzBidAdapter.js +1 -1
  74. package/dist/debugging-standalone.js +1 -1
  75. package/dist/debugging.js +1 -1
  76. package/dist/dependencies.json +3 -3
  77. package/dist/dfpAdServerVideo.js +1 -1
  78. package/dist/dsaControl.js +1 -1
  79. package/dist/dspxBidAdapter.js +1 -1
  80. package/dist/dxkultureBidAdapter.js +1 -1
  81. package/dist/eplanningAnalyticsAdapter.js +1 -1
  82. package/dist/eplanningBidAdapter.js +1 -1
  83. package/dist/euidIdSystem.js +1 -1
  84. package/dist/feedadBidAdapter.js +1 -1
  85. package/dist/finativeBidAdapter.js +1 -1
  86. package/dist/fintezaAnalyticsAdapter.js +1 -1
  87. package/dist/freewheel-sspBidAdapter.js +1 -1
  88. package/dist/gdprEnforcement.js +1 -1
  89. package/dist/genericAnalyticsAdapter.js +1 -1
  90. package/dist/geoedgeRtdProvider.js +1 -1
  91. package/dist/gmosspBidAdapter.js +1 -1
  92. package/dist/goldbachBidAdapter.js +1 -1
  93. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  94. package/dist/greenbidsRtdProvider.js +1 -1
  95. package/dist/gridBidAdapter.js +1 -1
  96. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  97. package/dist/gumgumBidAdapter.js +1 -1
  98. package/dist/h12mediaBidAdapter.js +1 -1
  99. package/dist/hadronAnalyticsAdapter.js +1 -1
  100. package/dist/holidBidAdapter.js +1 -1
  101. package/dist/hypelabBidAdapter.js +1 -1
  102. package/dist/id5AnalyticsAdapter.js +1 -1
  103. package/dist/id5IdSystem.js +1 -1
  104. package/dist/illuminBidAdapter.js +1 -1
  105. package/dist/imdsBidAdapter.js +1 -1
  106. package/dist/improvedigitalBidAdapter.js +1 -1
  107. package/dist/insticatorBidAdapter.js +1 -1
  108. package/dist/instreamTracking.js +1 -1
  109. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  110. package/dist/ixBidAdapter.js +1 -1
  111. package/dist/jixieBidAdapter.js +1 -1
  112. package/dist/justpremiumBidAdapter.js +1 -1
  113. package/dist/kargoAnalyticsAdapter.js +1 -1
  114. package/dist/kargoBidAdapter.js +1 -1
  115. package/dist/kimberliteBidAdapter.js +1 -1
  116. package/dist/konduitAnalyticsAdapter.js +1 -1
  117. package/dist/kueezBidAdapter.js +1 -1
  118. package/dist/kueezRtbBidAdapter.js +1 -1
  119. package/dist/lassoBidAdapter.js +1 -1
  120. package/dist/lifestreetBidAdapter.js +1 -1
  121. package/dist/liveIntentAnalyticsAdapter.js +1 -1
  122. package/dist/liveIntentIdSystem.js +1 -1
  123. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  124. package/dist/logicadBidAdapter.js +1 -1
  125. package/dist/loglyliftBidAdapter.js +1 -1
  126. package/dist/luceadBidAdapter.js +1 -1
  127. package/dist/magniteAnalyticsAdapter.js +1 -1
  128. package/dist/malltvAnalyticsAdapter.js +1 -1
  129. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  130. package/dist/marsmediaBidAdapter.js +1 -1
  131. package/dist/mediafilterRtdProvider.js +1 -1
  132. package/dist/mediafuseBidAdapter.js +1 -1
  133. package/dist/medianetAnalyticsAdapter.js +1 -1
  134. package/dist/medianetBidAdapter.js +1 -1
  135. package/dist/mediasquareBidAdapter.js +1 -1
  136. package/dist/mgidBidAdapter.js +1 -1
  137. package/dist/minutemediaBidAdapter.js +1 -1
  138. package/dist/minutemediaplusBidAdapter.js +1 -1
  139. package/dist/missenaBidAdapter.js +1 -1
  140. package/dist/multibid.js +1 -1
  141. package/dist/neuwoRtdProvider.js +1 -1
  142. package/dist/nextMillenniumBidAdapter.js +1 -1
  143. package/dist/nexx360BidAdapter.js +1 -1
  144. package/dist/nobidAnalyticsAdapter.js +1 -1
  145. package/dist/not-for-prod/prebid.js +237 -235
  146. package/dist/oguryBidAdapter.js +1 -1
  147. package/dist/onetagBidAdapter.js +1 -1
  148. package/dist/ooloAnalyticsAdapter.js +1 -1
  149. package/dist/openwebBidAdapter.js +1 -1
  150. package/dist/openxBidAdapter.js +1 -1
  151. package/dist/optidigitalBidAdapter.js +1 -1
  152. package/dist/optimonAnalyticsAdapter.js +1 -1
  153. package/dist/outbrainBidAdapter.js +1 -1
  154. package/dist/oxxionAnalyticsAdapter.js +1 -1
  155. package/dist/oxxionRtdProvider.js +1 -1
  156. package/dist/parrableIdSystem.js +1 -1
  157. package/dist/pbsExtensions.js +1 -1
  158. package/dist/permutiveRtdProvider.js +1 -1
  159. package/dist/pgamsspBidAdapter.js +1 -1
  160. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  161. package/dist/pirIdSystem.js +1 -0
  162. package/dist/pixfutureBidAdapter.js +1 -1
  163. package/dist/prebidServerBidAdapter.js +1 -1
  164. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  165. package/dist/priceFloors.js +1 -1
  166. package/dist/publinkIdSystem.js +1 -1
  167. package/dist/publirBidAdapter.js +1 -1
  168. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  169. package/dist/pubmaticBidAdapter.js +1 -1
  170. package/dist/pubperfAnalyticsAdapter.js +1 -1
  171. package/dist/pubstackAnalyticsAdapter.js +1 -1
  172. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  173. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  174. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  175. package/dist/pxyzBidAdapter.js +1 -1
  176. package/dist/qortexRtdProvider.js +1 -1
  177. package/dist/quantcastBidAdapter.js +1 -1
  178. package/dist/readpeakBidAdapter.js +1 -1
  179. package/dist/relaidoBidAdapter.js +1 -1
  180. package/dist/relevantAnalyticsAdapter.js +1 -1
  181. package/dist/retailspotBidAdapter.js +1 -1
  182. package/dist/rhythmoneBidAdapter.js +1 -1
  183. package/dist/riseBidAdapter.js +1 -1
  184. package/dist/rivrAnalyticsAdapter.js +1 -1
  185. package/dist/roxotAnalyticsAdapter.js +1 -1
  186. package/dist/rtdModule.js +1 -1
  187. package/dist/rubiconBidAdapter.js +1 -1
  188. package/dist/s2sTesting.js +1 -1
  189. package/dist/scaleableAnalyticsAdapter.js +1 -1
  190. package/dist/schain.js +1 -1
  191. package/dist/seedingAllianceBidAdapter.js +1 -1
  192. package/dist/seedtagBidAdapter.js +1 -1
  193. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  194. package/dist/sharethroughBidAdapter.js +1 -1
  195. package/dist/shinezBidAdapter.js +1 -1
  196. package/dist/shinezRtbBidAdapter.js +1 -1
  197. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  198. package/dist/sizeMapping.js +1 -1
  199. package/dist/smaatoBidAdapter.js +1 -1
  200. package/dist/smartadserverBidAdapter.js +1 -1
  201. package/dist/smartxBidAdapter.js +1 -1
  202. package/dist/smilewantedBidAdapter.js +1 -1
  203. package/dist/sonobiAnalyticsAdapter.js +1 -1
  204. package/dist/sonobiBidAdapter.js +1 -1
  205. package/dist/sovrnAnalyticsAdapter.js +1 -1
  206. package/dist/sovrnBidAdapter.js +1 -1
  207. package/dist/sspBCBidAdapter.js +1 -1
  208. package/dist/staqAnalyticsAdapter.js +1 -1
  209. package/dist/stnBidAdapter.js +1 -1
  210. package/dist/stvBidAdapter.js +1 -1
  211. package/dist/sublimeBidAdapter.js +1 -1
  212. package/dist/taboolaBidAdapter.js +1 -1
  213. package/dist/tagorasBidAdapter.js +1 -1
  214. package/dist/targetVideoBidAdapter.js +1 -1
  215. package/dist/teadsBidAdapter.js +1 -1
  216. package/dist/terceptAnalyticsAdapter.js +1 -1
  217. package/dist/themoneytizerBidAdapter.js +1 -1
  218. package/dist/topicsFpdModule.js +1 -1
  219. package/dist/trionBidAdapter.js +1 -1
  220. package/dist/tripleliftBidAdapter.js +1 -1
  221. package/dist/ttdBidAdapter.js +1 -1
  222. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  223. package/dist/uid2IdSystem.js +1 -1
  224. package/dist/underdogmediaBidAdapter.js +1 -1
  225. package/dist/undertoneBidAdapter.js +1 -1
  226. package/dist/unrulyBidAdapter.js +1 -1
  227. package/dist/userId.js +1 -1
  228. package/dist/vidazooBidAdapter.js +1 -1
  229. package/dist/videoModule.js +1 -1
  230. package/dist/videobyteBidAdapter.js +1 -1
  231. package/dist/visxBidAdapter.js +1 -1
  232. package/dist/vuukleBidAdapter.js +1 -1
  233. package/dist/weboramaRtdProvider.js +1 -1
  234. package/dist/widespaceBidAdapter.js +1 -1
  235. package/dist/winrBidAdapter.js +1 -1
  236. package/dist/yahoosspBidAdapter.js +1 -1
  237. package/dist/yandexAnalyticsAdapter.js +1 -1
  238. package/dist/yieldmoBidAdapter.js +1 -1
  239. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  240. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  241. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  242. package/dist/zeta_global_sspBidAdapter.js +1 -1
  243. package/gulpfile.js +9 -1
  244. package/integrationExamples/gpt/adnuntius_example.html +7 -1
  245. package/integrationExamples/gpt/azerionedgeRtdProvider_example.html +3 -3
  246. package/integrationExamples/gpt/top-level-paapi/decisionLogic.js +57 -0
  247. package/integrationExamples/gpt/top-level-paapi/tl_paapi_example.html +188 -0
  248. package/integrationExamples/gpt/x-domain/creative.html +1 -1
  249. package/libraries/analyticsAdapter/AnalyticsAdapter.js +4 -4
  250. package/libraries/creative-renderer-native/renderer.js +1 -1
  251. package/modules/33acrossAnalyticsAdapter.js +2 -4
  252. package/modules/33acrossIdSystem.js +1 -1
  253. package/modules/adWMGAnalyticsAdapter.js +9 -11
  254. package/modules/adagioAnalyticsAdapter.js +8 -8
  255. package/modules/adkernelAdnAnalyticsAdapter.js +8 -8
  256. package/modules/adkernelBidAdapter.js +9 -3
  257. package/modules/adlooxAdServerVideo.js +2 -2
  258. package/modules/adlooxAnalyticsAdapter.js +4 -4
  259. package/modules/adnuntiusBidAdapter.js +49 -31
  260. package/modules/adomikAnalyticsAdapter.js +7 -7
  261. package/modules/adpod.js +3 -3
  262. package/modules/adxcgAnalyticsAdapter.js +10 -10
  263. package/modules/adxpremiumAnalyticsAdapter.js +8 -10
  264. package/modules/agmaAnalyticsAdapter.js +2 -6
  265. package/modules/appierAnalyticsAdapter.js +5 -7
  266. package/modules/asteriobidAnalyticsAdapter.js +14 -14
  267. package/modules/atsAnalyticsAdapter.js +4 -4
  268. package/modules/automatadAnalyticsAdapter.js +20 -20
  269. package/modules/azerionedgeRtdProvider.md +4 -2
  270. package/modules/bidViewability.js +3 -3
  271. package/modules/bidViewabilityIO.js +3 -3
  272. package/modules/bidwatchAnalyticsAdapter.js +7 -9
  273. package/modules/brandmetricsRtdProvider.js +6 -6
  274. package/modules/browsiRtdProvider.js +3 -3
  275. package/modules/byDataAnalyticsAdapter.js +3 -3
  276. package/modules/cleanioRtdProvider.js +3 -3
  277. package/modules/concertAnalyticsAdapter.js +5 -7
  278. package/modules/confiantRtdProvider.js +2 -2
  279. package/modules/conversantAnalyticsAdapter.js +2 -4
  280. package/modules/criteoBidAdapter.js +51 -8
  281. package/modules/currency.js +7 -7
  282. package/modules/dailymotionBidAdapter.js +139 -0
  283. package/modules/dailymotionBidAdapter.md +140 -0
  284. package/modules/datawrkzBidAdapter.js +4 -4
  285. package/modules/debugging/pbsInterceptor.js +2 -2
  286. package/modules/dfpAdServerVideo.js +2 -2
  287. package/modules/dsaControl.js +5 -5
  288. package/modules/eplanningAnalyticsAdapter.js +8 -8
  289. package/modules/fintezaAnalyticsAdapter.js +5 -5
  290. package/modules/gdprEnforcement.js +3 -3
  291. package/modules/geoedgeRtdProvider.js +2 -2
  292. package/modules/greenbidsAnalyticsAdapter.js +13 -10
  293. package/modules/greenbidsRtdProvider.js +2 -2
  294. package/modules/growthCodeAnalyticsAdapter.js +14 -14
  295. package/modules/hadronAnalyticsAdapter.js +14 -14
  296. package/modules/holidBidAdapter.js +2 -2
  297. package/modules/id5AnalyticsAdapter.js +7 -9
  298. package/modules/improvedigitalBidAdapter.js +2 -1
  299. package/modules/insticatorBidAdapter.js +137 -27
  300. package/modules/instreamTracking.js +4 -4
  301. package/modules/invisiblyAnalyticsAdapter.js +15 -17
  302. package/modules/ixBidAdapter.js +3 -3
  303. package/modules/kargoAnalyticsAdapter.js +3 -3
  304. package/modules/kargoBidAdapter.js +5 -11
  305. package/modules/konduitAnalyticsAdapter.js +13 -13
  306. package/modules/liveIntentAnalyticsAdapter.js +2 -2
  307. package/modules/livewrappedAnalyticsAdapter.js +10 -10
  308. package/modules/magniteAnalyticsAdapter.js +25 -23
  309. package/modules/malltvAnalyticsAdapter.js +4 -6
  310. package/modules/mediafilterRtdProvider.js +2 -2
  311. package/modules/medianetAnalyticsAdapter.js +12 -12
  312. package/modules/medianetBidAdapter.js +1 -1
  313. package/modules/multibid/index.js +2 -2
  314. package/modules/neuwoRtdProvider.js +2 -2
  315. package/modules/nextMillenniumBidAdapter.js +4 -4
  316. package/modules/nobidAnalyticsAdapter.js +9 -11
  317. package/modules/ooloAnalyticsAdapter.js +2 -2
  318. package/modules/oxxionAnalyticsAdapter.js +7 -9
  319. package/modules/paapi.js +20 -6
  320. package/modules/permutiveRtdProvider.js +21 -2
  321. package/modules/pgamsspBidAdapter.js +26 -3
  322. package/modules/pirIdSystem.js +62 -0
  323. package/modules/pirIdSystem.md +27 -0
  324. package/modules/prebidServerBidAdapter/index.js +8 -8
  325. package/modules/prebidServerBidAdapter/ortbConverter.js +3 -3
  326. package/modules/prebidmanagerAnalyticsAdapter.js +14 -14
  327. package/modules/priceFloors.js +10 -5
  328. package/modules/pubmaticAnalyticsAdapter.js +32 -22
  329. package/modules/pubmaticBidAdapter.js +1 -17
  330. package/modules/pubwiseAnalyticsAdapter.js +11 -11
  331. package/modules/pubxaiAnalyticsAdapter.js +6 -6
  332. package/modules/qortexRtdProvider.js +2 -2
  333. package/modules/roxotAnalyticsAdapter.js +8 -10
  334. package/modules/rtdModule/index.js +7 -7
  335. package/modules/scaleableAnalyticsAdapter.js +5 -5
  336. package/modules/seedtagBidAdapter.js +12 -3
  337. package/modules/sigmoidAnalyticsAdapter.js +7 -7
  338. package/modules/smaatoBidAdapter.js +1 -2
  339. package/modules/sonobiAnalyticsAdapter.js +10 -12
  340. package/modules/sovrnAnalyticsAdapter.js +7 -9
  341. package/modules/sovrnBidAdapter.js +1 -1
  342. package/modules/staqAnalyticsAdapter.js +9 -9
  343. package/modules/terceptAnalyticsAdapter.js +7 -7
  344. package/modules/topicsFpdModule.js +3 -0
  345. package/modules/topicsFpdModule.md +4 -0
  346. package/modules/ucfunnelAnalyticsAdapter.js +5 -7
  347. package/modules/userId/index.js +3 -3
  348. package/modules/videoModule/index.js +4 -4
  349. package/modules/yandexAnalyticsAdapter.js +2 -2
  350. package/modules/yieldoneAnalyticsAdapter.js +7 -7
  351. package/modules/yuktamediaAnalyticsAdapter.js +9 -9
  352. package/modules/zeta_global_sspAnalyticsAdapter.js +5 -5
  353. package/modules/zeta_global_sspBidAdapter.js +8 -1
  354. package/package.json +1 -1
  355. package/src/adRendering.js +15 -15
  356. package/src/adUnits.js +9 -21
  357. package/src/adapterManager.js +23 -13
  358. package/src/adapters/bidderFactory.js +8 -8
  359. package/src/auction.js +26 -28
  360. package/src/auctionManager.js +4 -4
  361. package/src/bidderSettings.js +2 -2
  362. package/src/config.js +2 -2
  363. package/src/constants.js +190 -0
  364. package/src/events.js +3 -3
  365. package/src/native.js +6 -8
  366. package/src/prebid.js +6 -10
  367. package/src/secureCreatives.js +5 -5
  368. package/src/targeting.js +13 -13
  369. package/src/utils.js +4 -4
  370. package/test/fixtures/fixtures.js +44 -44
  371. package/test/helpers/analytics.js +6 -6
  372. package/test/spec/AnalyticsAdapter_spec.js +3 -3
  373. package/test/spec/auctionmanager_spec.js +82 -82
  374. package/test/spec/modules/33acrossAnalyticsAdapter_spec.js +1 -2
  375. package/test/spec/modules/33acrossIdSystem_spec.js +3 -3
  376. package/test/spec/modules/adWMGAnalyticsAdapter_spec.js +14 -14
  377. package/test/spec/modules/adagioAnalyticsAdapter_spec.js +26 -26
  378. package/test/spec/modules/adkernelAdnAnalytics_spec.js +6 -6
  379. package/test/spec/modules/adkernelBidAdapter_spec.js +9 -4
  380. package/test/spec/modules/adlooxAnalyticsAdapter_spec.js +6 -6
  381. package/test/spec/modules/adnuntiusBidAdapter_spec.js +8 -5
  382. package/test/spec/modules/adomikAnalyticsAdapter_spec.js +7 -7
  383. package/test/spec/modules/adxcgAnalyticsAdapter_spec.js +7 -7
  384. package/test/spec/modules/adxpremiumAnalyticsAdapter_spec.js +7 -7
  385. package/test/spec/modules/agmaAnalyticsAdapter_spec.js +14 -14
  386. package/test/spec/modules/appierAnalyticsAdapter_spec.js +1 -1
  387. package/test/spec/modules/asteriobidAnalyticsAdapter_spec.js +2 -2
  388. package/test/spec/modules/atsAnalyticsAdapter_spec.js +8 -8
  389. package/test/spec/modules/automatadAnalyticsAdapter_spec.js +2 -2
  390. package/test/spec/modules/bidViewabilityIO_spec.js +2 -2
  391. package/test/spec/modules/bidViewability_spec.js +4 -4
  392. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +7 -6
  393. package/test/spec/modules/byDataAnalyticsAdapter_spec.js +5 -4
  394. package/test/spec/modules/cleanioRtdProvider_spec.js +6 -6
  395. package/test/spec/modules/concertAnalyticsAdapter_spec.js +7 -6
  396. package/test/spec/modules/confiantRtdProvider_spec.js +2 -2
  397. package/test/spec/modules/conversantAnalyticsAdapter_spec.js +61 -61
  398. package/test/spec/modules/criteoBidAdapter_spec.js +111 -5
  399. package/test/spec/modules/currency_spec.js +6 -6
  400. package/test/spec/modules/dailymotionBidAdapter_spec.js +369 -0
  401. package/test/spec/modules/dsaControl_spec.js +4 -4
  402. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +20 -13
  403. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +5 -5
  404. package/test/spec/modules/genericAnalyticsAdapter_spec.js +2 -2
  405. package/test/spec/modules/geoedgeRtdProvider_spec.js +37 -37
  406. package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +15 -2
  407. package/test/spec/modules/greenbidsRtdProvider_spec.js +2 -2
  408. package/test/spec/modules/growthCodeAnalyticsAdapter_spec.js +2 -2
  409. package/test/spec/modules/hadronAnalyticsAdapter_spec.js +3 -3
  410. package/test/spec/modules/id5AnalyticsAdapter_spec.js +5 -5
  411. package/test/spec/modules/id5IdSystem_spec.js +2 -2
  412. package/test/spec/modules/improvedigitalBidAdapter_spec.js +3 -3
  413. package/test/spec/modules/insticatorBidAdapter_spec.js +275 -22
  414. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +40 -40
  415. package/test/spec/modules/kargoAnalyticsAdapter_spec.js +3 -3
  416. package/test/spec/modules/konduitAnalyticsAdapter_spec.js +13 -13
  417. package/test/spec/modules/lemmaDigitalBidAdapter_spec.js +1 -1
  418. package/test/spec/modules/liveIntentAnalyticsAdapter_spec.js +3 -3
  419. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +15 -20
  420. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +31 -15
  421. package/test/spec/modules/malltvAnalyticsAdapter_spec.js +3 -3
  422. package/test/spec/modules/mediafilterRtdProvider_spec.js +2 -2
  423. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +3 -3
  424. package/test/spec/modules/nobidAnalyticsAdapter_spec.js +23 -23
  425. package/test/spec/modules/ooloAnalyticsAdapter_spec.js +33 -33
  426. package/test/spec/modules/optimonAnalyticsAdapter_spec.js +0 -1
  427. package/test/spec/modules/oxxionAnalyticsAdapter_spec.js +7 -7
  428. package/test/spec/modules/paapi_spec.js +40 -14
  429. package/test/spec/modules/permutiveRtdProvider_spec.js +29 -1
  430. package/test/spec/modules/pgamsspBidAdapter_spec.js +50 -4
  431. package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +9 -9
  432. package/test/spec/modules/pirIdSystem_spec.js +77 -0
  433. package/test/spec/modules/prebidServerBidAdapter_spec.js +7 -7
  434. package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -2
  435. package/test/spec/modules/priceFloors_spec.js +6 -5
  436. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +12 -14
  437. package/test/spec/modules/pubmaticBidAdapter_spec.js +1 -1
  438. package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +0 -1
  439. package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +14 -14
  440. package/test/spec/modules/pubxaiAnalyticsAdapter_spec.js +7 -7
  441. package/test/spec/modules/qortexRtdProvider_spec.js +2 -2
  442. package/test/spec/modules/realTimeDataModule_spec.js +9 -9
  443. package/test/spec/modules/relevantAnalyticsAdapter_spec.js +3 -3
  444. package/test/spec/modules/relevantdigitalBidAdapter_spec.js +2 -2
  445. package/test/spec/modules/rivrAnalyticsAdapter_spec.js +4 -4
  446. package/test/spec/modules/roxotAnalyticsAdapter_spec.js +25 -25
  447. package/test/spec/modules/scaleableAnalyticsAdapter_spec.js +5 -5
  448. package/test/spec/modules/seedtagBidAdapter_spec.js +56 -3
  449. package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +0 -1
  450. package/test/spec/modules/sonobiAnalyticsAdapter_spec.js +8 -7
  451. package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -2
  452. package/test/spec/modules/sovrnBidAdapter_spec.js +5 -5
  453. package/test/spec/modules/staqAnalyticsAdapter_spec.js +7 -7
  454. package/test/spec/modules/terceptAnalyticsAdapter_spec.js +7 -7
  455. package/test/spec/modules/trionBidAdapter_spec.js +1 -1
  456. package/test/spec/modules/ucfunnelAnalyticsAdapter_spec.js +1 -1
  457. package/test/spec/modules/userId_spec.js +4 -4
  458. package/test/spec/modules/videoModule/pbVideo_spec.js +3 -3
  459. package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +22 -21
  460. package/test/spec/modules/yuktamediaAnalyticsAdapter_spec.js +33 -32
  461. package/test/spec/modules/zeta_global_sspAnalyticsAdapter_spec.js +8 -8
  462. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +1 -1
  463. package/test/spec/native_spec.js +19 -19
  464. package/test/spec/unit/adRendering_spec.js +14 -14
  465. package/test/spec/unit/adUnits_spec.js +1 -1
  466. package/test/spec/unit/core/adapterManager_spec.js +99 -59
  467. package/test/spec/unit/core/bidderFactory_spec.js +6 -6
  468. package/test/spec/unit/core/targeting_spec.js +47 -47
  469. package/test/spec/unit/pbjs_api_spec.js +81 -81
  470. package/test/spec/unit/secureCreatives_spec.js +27 -27
  471. package/test/spec/utils_spec.js +2 -2
  472. package/src/constants.json +0 -196
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  layout: page_v2
3
- title: azerion edge RTD Provider
3
+ title: Azerion Edge RTD Provider
4
4
  display_name: Azerion Edge RTD Provider
5
5
  description: Client-side contextual cookieless audiences.
6
6
  page_type: module
@@ -18,6 +18,8 @@ Client-side contextual cookieless audiences.
18
18
  Azerion Edge RTD module helps publishers to capture users' interest
19
19
  audiences on their site, and attach these into the bid request.
20
20
 
21
+ Please contact [edge@azerion.com](edge@azerion.com) for more information.
22
+
21
23
  Maintainer: [azerion.com](https://www.azerion.com/)
22
24
 
23
25
  {:.no_toc}
@@ -64,7 +66,7 @@ pbjs.setConfig(
64
66
  | :--- | :------- | :------------------ | :--------------- |
65
67
  | name | `String` | RTD sub module name | Always "azerionedge" |
66
68
  | waitForIt | `Boolean` | Required to ensure that the auction is delayed for the module to respond. | Optional. Defaults to false but recommended to true. |
67
- | params.key | `String` | Publisher partner specific key | Optional |
69
+ | params.key | `String` | Publisher partner specific key | Mandatory. The key is required for the module to work. If you haven't received one, please reach [support@improvedigital.com](support@improvedigital.com) |
68
70
  | params.bidders | `Array` | Bidders with which to share segment information | Optional. Defaults to "improvedigital". |
69
71
  | params.process | `Object` | Configuration for the Azerion Edge script. | Optional. Defaults to `{}`. |
70
72
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import {config} from '../src/config.js';
6
6
  import * as events from '../src/events.js';
7
- import CONSTANTS from '../src/constants.json';
7
+ import { EVENTS } from '../src/constants.js';
8
8
  import {isFn, logWarn, triggerPixel} from '../src/utils.js';
9
9
  import {getGlobal} from '../src/prebidGlobal.js';
10
10
  import adapterManager, {gdprDataHandler, uspDataHandler, gppDataHandler} from '../src/adapterManager.js';
@@ -82,12 +82,12 @@ export let impressionViewableHandler = (globalModuleConfig, slot, event) => {
82
82
  }
83
83
 
84
84
  // emit the BID_VIEWABLE event with bid details, this event can be consumed by bidders and analytics pixels
85
- events.emit(CONSTANTS.EVENTS.BID_VIEWABLE, respectiveBid);
85
+ events.emit(EVENTS.BID_VIEWABLE, respectiveBid);
86
86
  }
87
87
  };
88
88
 
89
89
  export let init = () => {
90
- events.on(CONSTANTS.EVENTS.AUCTION_INIT, () => {
90
+ events.on(EVENTS.AUCTION_INIT, () => {
91
91
  // read the config for the module
92
92
  const globalModuleConfig = config.getConfig(MODULE_NAME) || {};
93
93
  // do nothing if module-config.enabled is not set to true
@@ -1,7 +1,7 @@
1
1
  import { logMessage } from '../src/utils.js';
2
2
  import { config } from '../src/config.js';
3
3
  import * as events from '../src/events.js';
4
- import CONSTANTS from '../src/constants.json';
4
+ import {EVENTS} from '../src/constants.js';
5
5
 
6
6
  const MODULE_NAME = 'bidViewabilityIO';
7
7
  const CONFIG_ENABLED = 'enabled';
@@ -42,7 +42,7 @@ export let getViewableOptions = (bid) => {
42
42
  export let markViewed = (bid, entry, observer) => {
43
43
  return () => {
44
44
  observer.unobserve(entry.target);
45
- events.emit(CONSTANTS.EVENTS.BID_VIEWABLE, bid);
45
+ events.emit(EVENTS.BID_VIEWABLE, bid);
46
46
  _logMessage(`id: ${entry.target.getAttribute('id')} code: ${bid.adUnitCode} was viewed`);
47
47
  }
48
48
  }
@@ -77,7 +77,7 @@ export let init = () => {
77
77
  if (conf[MODULE_NAME][CONFIG_ENABLED] && CLIENT_SUPPORTS_IO) {
78
78
  // if the module is enabled and the browser supports Intersection Observer,
79
79
  // then listen to AD_RENDER_SUCCEEDED to setup IO's for supported mediaTypes
80
- events.on(CONSTANTS.EVENTS.AD_RENDER_SUCCEEDED, ({doc, bid, id}) => {
80
+ events.on(EVENTS.AD_RENDER_SUCCEEDED, ({doc, bid, id}) => {
81
81
  if (isSupportedMediaType(bid)) {
82
82
  let viewable = new IntersectionObserver(viewCallbackFactory(bid), getViewableOptions(bid));
83
83
  let element = document.getElementById(bid.adUnitCode);
@@ -1,6 +1,6 @@
1
1
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
2
2
  import adapterManager from '../src/adapterManager.js';
3
- import CONSTANTS from '../src/constants.json';
3
+ import { EVENTS } from '../src/constants.js';
4
4
  import { ajax } from '../src/ajax.js';
5
5
  import { getRefererInfo } from '../src/refererDetection.js';
6
6
 
@@ -8,14 +8,12 @@ const analyticsType = 'endpoint';
8
8
  const url = 'URL_TO_SERVER_ENDPOINT';
9
9
 
10
10
  const {
11
- EVENTS: {
12
- AUCTION_END,
13
- BID_WON,
14
- BID_RESPONSE,
15
- BID_REQUESTED,
16
- BID_TIMEOUT,
17
- }
18
- } = CONSTANTS;
11
+ AUCTION_END,
12
+ BID_WON,
13
+ BID_RESPONSE,
14
+ BID_REQUESTED,
15
+ BID_TIMEOUT,
16
+ } = EVENTS;
19
17
 
20
18
  let saveEvents = {}
21
19
  let allEvents = {}
@@ -5,11 +5,11 @@
5
5
  * @module modules/brandmetricsRtdProvider
6
6
  * @requires module:modules/realTimeData
7
7
  */
8
- import {submodule} from '../src/hook.js';
9
- import {deepAccess, deepSetValue, logError, mergeDeep, generateUUID} from '../src/utils.js';
10
- import {loadExternalScript} from '../src/adloader.js';
8
+ import { submodule } from '../src/hook.js';
9
+ import { deepAccess, deepSetValue, logError, mergeDeep, generateUUID } from '../src/utils.js';
10
+ import { loadExternalScript } from '../src/adloader.js';
11
11
  import * as events from '../src/events.js';
12
- import CONSTANTS from '../src/constants.json';
12
+ import { EVENTS } from '../src/constants.js';
13
13
 
14
14
  /**
15
15
  * @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule
@@ -156,7 +156,7 @@ function initializeBillableEvents() {
156
156
  handler: (ev) => {
157
157
  if (ev.source && ev.source.type === 'pbj') {
158
158
  const bid = ev.source.data;
159
- events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
159
+ events.emit(EVENTS.BILLABLE_EVENT, {
160
160
  vendor: 'brandmetrics',
161
161
  type: 'creative_in_view',
162
162
  measurementId: ev.mid,
@@ -202,7 +202,7 @@ export const brandmetricsSubmodule = {
202
202
  logError(e)
203
203
  }
204
204
  },
205
- init: init
205
+ init
206
206
  }
207
207
 
208
208
  submodule('realTimeData', brandmetricsSubmodule)
@@ -23,7 +23,7 @@ import {getStorageManager} from '../src/storageManager.js';
23
23
  import {find, includes} from '../src/polyfill.js';
24
24
  import {getGlobal} from '../src/prebidGlobal.js';
25
25
  import * as events from '../src/events.js';
26
- import CONSTANTS from '../src/constants.json';
26
+ import {EVENTS} from '../src/constants.js';
27
27
  import {MODULE_TYPE_RTD} from '../src/activities/modules.js';
28
28
 
29
29
  /**
@@ -67,7 +67,7 @@ export function addBrowsiTag(data) {
67
67
  export function sendPageviewEvent(eventType) {
68
68
  if (eventType === 'PAGEVIEW') {
69
69
  window.addEventListener('browsi_pageview', () => {
70
- events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
70
+ events.emit(EVENTS.BILLABLE_EVENT, {
71
71
  vendor: 'browsi',
72
72
  type: 'pageview',
73
73
  billingId: generateUUID()
@@ -363,7 +363,7 @@ function getTargetingData(uc, c, us, a) {
363
363
  }
364
364
  if (sendAdRequestEvent) {
365
365
  const transactionId = a.adUnits.find(adUnit => adUnit.code === auc).transactionId;
366
- events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
366
+ events.emit(EVENTS.BILLABLE_EVENT, {
367
367
  vendor: 'browsi',
368
368
  type: 'adRequest',
369
369
  billingId: generateUUID(),
@@ -3,7 +3,7 @@ import Base64 from 'crypto-js/enc-base64';
3
3
  import hmacSHA512 from 'crypto-js/hmac-sha512';
4
4
  import enc from 'crypto-js/enc-utf8';
5
5
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
6
- import CONSTANTS from '../src/constants.json';
6
+ import { EVENTS, BID_STATUS } from '../src/constants.js';
7
7
  import adapterManager from '../src/adapterManager.js';
8
8
  import {getStorageManager} from '../src/storageManager.js';
9
9
  import { auctionManager } from '../src/auctionManager.js';
@@ -12,7 +12,7 @@ import {MODULE_TYPE_ANALYTICS} from '../src/activities/modules.js';
12
12
 
13
13
  const versionCode = '4.4.1'
14
14
  const secretKey = 'bydata@123456'
15
- const { EVENTS: { NO_BID, BID_TIMEOUT, AUCTION_END, AUCTION_INIT, BID_WON } } = CONSTANTS
15
+ const { NO_BID, BID_TIMEOUT, AUCTION_END, AUCTION_INIT, BID_WON } = EVENTS
16
16
  const DEFAULT_EVENT_URL = 'https://pbjs-stream.bydata.com/topics/prebid'
17
17
  const analyticsType = 'endpoint'
18
18
  const isBydata = isKeyInUrl('bydata_debug')
@@ -342,7 +342,7 @@ ascAdapter.dataProcess = function (t) {
342
342
  })
343
343
  });
344
344
 
345
- var prebidWinningBids = auctionManager.getBidsReceived().filter(bid => bid.status === CONSTANTS.BID_STATUS.BID_TARGETING_SET);
345
+ var prebidWinningBids = auctionManager.getBidsReceived().filter(bid => bid.status === BID_STATUS.BID_TARGETING_SET);
346
346
  prebidWinningBids && prebidWinningBids.length > 0 && prebidWinningBids.forEach(pbbid => {
347
347
  payload['auctionData'] && payload['auctionData'].forEach(rwData => {
348
348
  if (rwData['bid'] === pbbid.requestId && rwData['brs'] === pbbid.size) {
@@ -10,7 +10,7 @@ import { submodule } from '../src/hook.js';
10
10
  import { loadExternalScript } from '../src/adloader.js';
11
11
  import { logError, generateUUID, insertElement } from '../src/utils.js';
12
12
  import * as events from '../src/events.js';
13
- import CONSTANTS from '../src/constants.json';
13
+ import { EVENTS } from '../src/constants.js';
14
14
 
15
15
  /**
16
16
  * @typedef {import('../modules/rtdModule/index.js').RtdSubmodule} RtdSubmodule
@@ -158,8 +158,8 @@ function readConfig(config) {
158
158
  let startBillableEvents = function() {
159
159
  // Upon clean.io submodule initialization, every winner bid is considered to be protected
160
160
  // and therefore, subjected to billing
161
- events.on(CONSTANTS.EVENTS.BID_WON, winnerBidResponse => {
162
- events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
161
+ events.on(EVENTS.BID_WON, winnerBidResponse => {
162
+ events.emit(EVENTS.BILLABLE_EVENT, {
163
163
  vendor: 'clean.io',
164
164
  billingId: generateUUID(),
165
165
  type: 'impression',
@@ -1,7 +1,7 @@
1
1
  import { logMessage } from '../src/utils.js';
2
2
  import {ajax} from '../src/ajax.js';
3
3
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
- import CONSTANTS from '../src/constants.json';
4
+ import { EVENTS } from '../src/constants.js';
5
5
  import adapterManager from '../src/adapterManager.js';
6
6
 
7
7
  const analyticsType = 'endpoint';
@@ -13,12 +13,10 @@ const pageIncludedInSample = sampleAnalytics();
13
13
  const url = 'https://bids.concert.io/analytics';
14
14
 
15
15
  const {
16
- EVENTS: {
17
- BID_RESPONSE,
18
- BID_WON,
19
- AUCTION_END
20
- }
21
- } = CONSTANTS;
16
+ BID_RESPONSE,
17
+ BID_WON,
18
+ AUCTION_END
19
+ } = EVENTS;
22
20
 
23
21
  let queue = [];
24
22
 
@@ -12,7 +12,7 @@ import { submodule } from '../src/hook.js';
12
12
  import { logError, generateUUID } from '../src/utils.js';
13
13
  import { loadExternalScript } from '../src/adloader.js';
14
14
  import * as events from '../src/events.js';
15
- import CONSTANTS from '../src/constants.json';
15
+ import { EVENTS } from '../src/constants.js';
16
16
 
17
17
  /**
18
18
  * Injects the Confiant Inc. configuration script into the page, based on proprtyId provided
@@ -89,7 +89,7 @@ function setUpMutationObserver() {
89
89
  function getEventHandlerFunction(propertyId) {
90
90
  return function reportBillableEvent(e) {
91
91
  if (e.data.type.indexOf('cnft:reportBillableEvent:' + propertyId) > -1) {
92
- events.emit(CONSTANTS.EVENTS.BILLABLE_EVENT, {
92
+ events.emit(EVENTS.BILLABLE_EVENT, {
93
93
  auctionId: e.data.auctionId,
94
94
  billingId: generateUUID(),
95
95
  transactionId: e.data.transactionId,
@@ -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 {getGlobal} from '../src/prebidGlobal.js';
5
5
  import adapterManager from '../src/adapterManager.js';
6
6
  import {logInfo, logWarn, logError, logMessage, deepAccess, isInteger} from '../src/utils.js';
@@ -8,9 +8,7 @@ import {getRefererInfo} from '../src/refererDetection.js';
8
8
 
9
9
  // Maintainer: mediapsr@epsilon.com
10
10
 
11
- const {
12
- EVENTS: { AUCTION_END, AD_RENDER_FAILED, BID_TIMEOUT, BID_WON, BIDDER_ERROR }
13
- } = CONSTANTS;
11
+ const { AUCTION_END, AD_RENDER_FAILED, BID_TIMEOUT, BID_WON, BIDDER_ERROR } = EVENTS;
14
12
  // STALE_RENDER, TCF2_ENFORCEMENT would need to add extra calls for these as they likely occur after AUCTION_END?
15
13
  const GVLID = 24;
16
14
  const ANALYTICS_TYPE = 'endpoint';
@@ -55,16 +55,18 @@ export const spec = {
55
55
  gvlid: GVLID,
56
56
  supportedMediaTypes: [BANNER, VIDEO, NATIVE],
57
57
 
58
- getUserSyncs: function (syncOptions, _, gdprConsent, uspConsent) {
59
- const fastBidVersion = config.getConfig('criteo.fastBidVersion');
60
- if (canFastBid(fastBidVersion)) {
61
- return [];
62
- }
63
-
64
- const refererInfo = getRefererInfo();
65
- const origin = 'criteoPrebidAdapter';
58
+ getUserSyncs: function (syncOptions, _, gdprConsent, uspConsent, gppConsent = {}) {
59
+ let { gppString = '', applicableSections = [] } = gppConsent;
66
60
 
67
61
  if (syncOptions.iframeEnabled && hasPurpose1Consent(gdprConsent)) {
62
+ const fastBidVersion = config.getConfig('criteo.fastBidVersion');
63
+ if (canFastBid(fastBidVersion)) {
64
+ return [];
65
+ }
66
+
67
+ const refererInfo = getRefererInfo();
68
+ const origin = 'criteoPrebidAdapter';
69
+
68
70
  const queryParams = [];
69
71
  queryParams.push(`origin=${origin}`);
70
72
  queryParams.push(`topUrl=${refererInfo.domain}`);
@@ -79,6 +81,12 @@ export const spec = {
79
81
  if (uspConsent) {
80
82
  queryParams.push(`us_privacy=${uspConsent}`);
81
83
  }
84
+ queryParams.push(`gpp=${gppString}`);
85
+ if (Array.isArray(applicableSections)) {
86
+ for (const applicableSection of applicableSections) {
87
+ queryParams.push(`gpp_sid=${applicableSection}`);
88
+ }
89
+ }
82
90
 
83
91
  const requestId = Math.random().toString();
84
92
 
@@ -126,6 +134,32 @@ export const spec = {
126
134
  type: 'iframe',
127
135
  url: `https://gum.criteo.com/syncframe?${queryParams.join('&')}#${jsonHashSerialized}`
128
136
  }];
137
+ } else if (syncOptions.pixelEnabled && hasPurpose1Consent(gdprConsent)) {
138
+ const queryParams = [];
139
+ queryParams.push(`profile=207`);
140
+ if (gdprConsent) {
141
+ if (gdprConsent.gdprApplies === true) {
142
+ queryParams.push(`gdprapplies=true`);
143
+ }
144
+ if (gdprConsent.consentString) {
145
+ queryParams.push(`gdpr=${gdprConsent.consentString}`);
146
+ }
147
+ }
148
+ if (uspConsent) {
149
+ queryParams.push(`ccpa=${uspConsent}`);
150
+ }
151
+ queryParams.push(`gpp=${gppString}`);
152
+ if (Array.isArray(applicableSections)) {
153
+ for (const applicableSection of applicableSections) {
154
+ queryParams.push(`gpp_sid=${applicableSection}`);
155
+ }
156
+ }
157
+ // gpp
158
+ // gpp_sid
159
+ return [{
160
+ type: 'image',
161
+ url: `https://ssp-sync.criteo.com/user-sync/redirect?${queryParams.join('&')}`
162
+ }];
129
163
  }
130
164
  return [];
131
165
  },
@@ -473,6 +507,7 @@ function checkNativeSendId(bidRequest) {
473
507
  */
474
508
  function buildCdbRequest(context, bidRequests, bidderRequest) {
475
509
  let networkId;
510
+ let pubid;
476
511
  let schain;
477
512
  let userIdAsEids;
478
513
  let regs = Object.assign({}, {
@@ -490,6 +525,7 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
490
525
  userIdAsEids = bidRequest.userIdAsEids;
491
526
  }
492
527
  networkId = bidRequest.params.networkId || networkId;
528
+ pubid = bidRequest.params.pubid || pubid;
493
529
  schain = bidRequest.schain || schain;
494
530
  const slot = {
495
531
  slotid: bidRequest.bidId,
@@ -513,6 +549,10 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
513
549
  if (bidRequest.nativeOrtbRequest?.assets) {
514
550
  slot.ext = Object.assign({}, slot.ext, { assets: bidRequest.nativeOrtbRequest.assets });
515
551
  }
552
+ if (bidRequest.params.uid) {
553
+ slot.ext = Object.assign({}, slot.ext, { bidder: { uid: bidRequest.params.uid } });
554
+ }
555
+
516
556
  if (bidRequest.params.publisherSubId) {
517
557
  slot.publishersubid = bidRequest.params.publisherSubId;
518
558
  }
@@ -581,6 +621,9 @@ function buildCdbRequest(context, bidRequests, bidderRequest) {
581
621
  if (networkId) {
582
622
  request.publisher.networkid = networkId;
583
623
  }
624
+ if (pubid) {
625
+ request.publisher.id = pubid;
626
+ }
584
627
 
585
628
  request.source = {
586
629
  tid: bidderRequest.ortb2?.source?.tid
@@ -1,6 +1,6 @@
1
1
  import {logError, logInfo, logMessage, logWarn} from '../src/utils.js';
2
2
  import {getGlobal} from '../src/prebidGlobal.js';
3
- import CONSTANTS from '../src/constants.json';
3
+ import { EVENTS, REJECTION_REASON } from '../src/constants.js';
4
4
  import {ajax} from '../src/ajax.js';
5
5
  import {config} from '../src/config.js';
6
6
  import {getHook} from '../src/hook.js';
@@ -163,8 +163,8 @@ function initCurrency() {
163
163
  getGlobal().convertCurrency = (cpm, fromCurrency, toCurrency) => parseFloat(cpm) * getCurrencyConversion(fromCurrency, toCurrency);
164
164
  getHook('addBidResponse').before(addBidResponseHook, 100);
165
165
  getHook('responsesReady').before(responsesReadyHook);
166
- onEvent(CONSTANTS.EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout);
167
- onEvent(CONSTANTS.EVENTS.AUCTION_INIT, loadRates);
166
+ onEvent(EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout);
167
+ onEvent(EVENTS.AUCTION_INIT, loadRates);
168
168
  loadRates();
169
169
  }
170
170
 
@@ -173,8 +173,8 @@ function resetCurrency() {
173
173
 
174
174
  getHook('addBidResponse').getHooks({hook: addBidResponseHook}).remove();
175
175
  getHook('responsesReady').getHooks({hook: responsesReadyHook}).remove();
176
- offEvent(CONSTANTS.EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout);
177
- offEvent(CONSTANTS.EVENTS.AUCTION_INIT, loadRates);
176
+ offEvent(EVENTS.AUCTION_TIMEOUT, rejectOnAuctionTimeout);
177
+ offEvent(EVENTS.AUCTION_INIT, loadRates);
178
178
  delete getGlobal().convertCurrency;
179
179
 
180
180
  adServerCurrency = 'USD';
@@ -230,7 +230,7 @@ export const addBidResponseHook = timedBidResponseHook('currency', function addB
230
230
  function rejectOnAuctionTimeout({auctionId}) {
231
231
  bidResponseQueue = bidResponseQueue.filter(([fn, ctx, adUnitCode, bid, reject]) => {
232
232
  if (bid.auctionId === auctionId) {
233
- reject(CONSTANTS.REJECTION_REASON.CANNOT_CONVERT_CURRENCY)
233
+ reject(REJECTION_REASON.CANNOT_CONVERT_CURRENCY)
234
234
  } else {
235
235
  return true;
236
236
  }
@@ -250,7 +250,7 @@ function processBidResponseQueue() {
250
250
  }
251
251
  } catch (e) {
252
252
  logWarn('getCurrencyConversion threw error: ', e);
253
- reject(CONSTANTS.REJECTION_REASON.CANNOT_CONVERT_CURRENCY);
253
+ reject(REJECTION_REASON.CANNOT_CONVERT_CURRENCY);
254
254
  continue;
255
255
  }
256
256
  }
@@ -0,0 +1,139 @@
1
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
2
+ import { VIDEO } from '../src/mediaTypes.js';
3
+ import { deepAccess } from '../src/utils.js';
4
+
5
+ /**
6
+ * Get video metadata from bid request
7
+ *
8
+ * @param {BidRequest} bidRequest A valid bid requests that should be sent to the Server.
9
+ * @return video metadata
10
+ */
11
+ function getVideoMetadata(bidRequest, bidderRequest) {
12
+ const videoAdUnit = deepAccess(bidRequest, 'mediaTypes.video', {});
13
+ const videoBidderParams = deepAccess(bidRequest, 'params.video', {});
14
+
15
+ const videoParams = {
16
+ ...videoAdUnit,
17
+ ...videoBidderParams, // Bidder Specific overrides
18
+ };
19
+
20
+ // Store as object keys to ensure uniqueness
21
+ const iabcat1 = {};
22
+ const iabcat2 = {};
23
+
24
+ deepAccess(bidderRequest, 'ortb2.site.content.data', []).forEach((data) => {
25
+ if ([4, 5, 6, 7].includes(data?.ext?.segtax)) {
26
+ (Array.isArray(data.segment) ? data.segment : []).forEach((segment) => {
27
+ if (typeof segment.id === 'string') {
28
+ // See https://docs.prebid.org/features/firstPartyData.html#segments-and-taxonomy
29
+ // Only take IAB cats of taxonomy V1
30
+ if (data.ext.segtax === 4) iabcat1[segment.id] = 1;
31
+ // Only take IAB cats of taxonomy V2 or higher
32
+ if ([5, 6, 7].includes(data.ext.segtax)) iabcat2[segment.id] = 1;
33
+ }
34
+ });
35
+ }
36
+ });
37
+
38
+ const videoMetadata = {
39
+ description: videoParams.description || '',
40
+ duration: videoParams.duration || 0,
41
+ iabcat1: Object.keys(iabcat1),
42
+ iabcat2: Array.isArray(videoParams.iabcat2)
43
+ ? videoParams.iabcat2
44
+ : Object.keys(iabcat2),
45
+ id: videoParams.id || '',
46
+ lang: videoParams.lang || '',
47
+ private: videoParams.private || false,
48
+ tags: videoParams.tags || '',
49
+ title: videoParams.title || '',
50
+ topics: videoParams.topics || '',
51
+ xid: videoParams.xid || '',
52
+ };
53
+
54
+ return videoMetadata;
55
+ }
56
+
57
+ export const spec = {
58
+ code: 'dailymotion',
59
+ gvlid: 573,
60
+ supportedMediaTypes: [VIDEO],
61
+
62
+ /**
63
+ * Determines whether or not the given bid request is valid.
64
+ * The only mandatory parameter for a bid to be valid is the API key.
65
+ * Other parameters are optional.
66
+ *
67
+ * @return boolean True if this is a valid bid, and false otherwise.
68
+ */
69
+ isBidRequestValid: function (bid) {
70
+ return typeof bid?.params?.apiKey === 'string' && bid.params.apiKey.length > 10;
71
+ },
72
+
73
+ /**
74
+ * Make a server request from the list of valid BidRequests (that already passed the isBidRequestValid call)
75
+ *
76
+ * @param {BidRequest[]} validBidRequests A non-empty list of valid bid requests that should be sent to the Server.
77
+ * @param {BidderRequest} bidderRequest
78
+ * @return ServerRequest Info describing the request to the server.
79
+ */
80
+ buildRequests: (validBidRequests = [], bidderRequest) => validBidRequests.map(bid => ({
81
+ method: 'POST',
82
+ url: 'https://pb.dmxleo.com',
83
+ data: {
84
+ bidder_request: {
85
+ gdprConsent: {
86
+ apiVersion: bidderRequest?.gdprConsent?.apiVersion || 1,
87
+ consentString: bidderRequest?.gdprConsent?.consentString || '',
88
+ // Cast boolean in any case (eg: if value is int) to ensure type
89
+ gdprApplies: !!bidderRequest?.gdprConsent?.gdprApplies,
90
+ },
91
+ refererInfo: {
92
+ page: bidderRequest?.refererInfo?.page || '',
93
+ },
94
+ uspConsent: bidderRequest?.uspConsent || '',
95
+ gppConsent: {
96
+ gppString: deepAccess(bidderRequest, 'gppConsent.gppString') ||
97
+ deepAccess(bidderRequest, 'ortb2.regs.gpp', ''),
98
+ applicableSections: deepAccess(bidderRequest, 'gppConsent.applicableSections') ||
99
+ deepAccess(bidderRequest, 'ortb2.regs.gpp_sid', []),
100
+ },
101
+ },
102
+ config: {
103
+ api_key: bid.params.apiKey
104
+ },
105
+ // Cast boolean in any case (value should be 0 or 1) to ensure type
106
+ coppa: !!deepAccess(bidderRequest, 'ortb2.regs.coppa'),
107
+ request: {
108
+ adUnitCode: bid.adUnitCode || '',
109
+ auctionId: bid.auctionId || '',
110
+ bidId: bid.bidId || '',
111
+ mediaTypes: {
112
+ video: {
113
+ playerSize: bid.mediaTypes?.[VIDEO]?.playerSize || [],
114
+ api: bid.mediaTypes?.[VIDEO]?.api || [],
115
+ startDelay: bid.mediaTypes?.[VIDEO]?.startdelay || 0,
116
+ },
117
+ },
118
+ sizes: bid.sizes || [],
119
+ },
120
+ video_metadata: getVideoMetadata(bid, bidderRequest),
121
+ },
122
+ options: {
123
+ withCredentials: true,
124
+ crossOrigin: true,
125
+ },
126
+ })),
127
+
128
+ /**
129
+ * Map the response from the server into a list of bids.
130
+ * As dailymotion prebid server returns an entry with the correct Prebid structure,
131
+ * we directly include it as the only bid in the response.
132
+ *
133
+ * @param {*} serverResponse A successful response from the server.
134
+ * @return {Bid[]} An array of bids which were nested inside the server.
135
+ */
136
+ interpretResponse: serverResponse => serverResponse?.body ? [serverResponse.body] : [],
137
+ };
138
+
139
+ registerBidder(spec);