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
@@ -12,7 +12,7 @@ import {
12
12
  getServerTestingsAds,
13
13
  getBidRequests
14
14
  } from 'test/fixtures/fixtures.js';
15
- import CONSTANTS from 'src/constants.json';
15
+ import { EVENTS, S2S } from 'src/constants.js';
16
16
  import * as utils from 'src/utils.js';
17
17
  import { config } from 'src/config.js';
18
18
  import { registerBidder } from 'src/adapters/bidderFactory.js';
@@ -24,11 +24,13 @@ import {auctionManager} from '../../../../src/auctionManager.js';
24
24
  import {GDPR_GVLIDS} from '../../../../src/consentHandler.js';
25
25
  import {MODULE_TYPE_ANALYTICS, MODULE_TYPE_BIDDER} from '../../../../src/activities/modules.js';
26
26
  import {ACTIVITY_FETCH_BIDS, ACTIVITY_REPORT_ANALYTICS} from '../../../../src/activities/activities.js';
27
+ import {reset as resetAdUnitCounters} from '../../../../src/adUnits.js';
28
+ import {deepClone} from 'src/utils.js';
27
29
  var events = require('../../../../src/events');
28
30
 
29
31
  const CONFIG = {
30
32
  enabled: true,
31
- endpoint: CONSTANTS.S2S.DEFAULT_ENDPOINT,
33
+ endpoint: S2S.DEFAULT_ENDPOINT,
32
34
  timeout: 1000,
33
35
  maxBids: 1,
34
36
  adapter: 'prebidServer',
@@ -172,7 +174,7 @@ describe('adapterManager tests', function () {
172
174
  // function to count BID_REQUESTED events
173
175
  let cnt = 0;
174
176
  let count = () => cnt++;
175
- events.on(CONSTANTS.EVENTS.BID_REQUESTED, count);
177
+ events.on(EVENTS.BID_REQUESTED, count);
176
178
  let bidRequests = [{
177
179
  'bidderCode': 'appnexus',
178
180
  'auctionId': '1863e370099523',
@@ -207,7 +209,7 @@ describe('adapterManager tests', function () {
207
209
  adapterManager.callBids(adUnits, bidRequests, () => {}, () => {});
208
210
  expect(cnt).to.equal(1);
209
211
  sinon.assert.calledOnce(appnexusAdapterMock.callBids);
210
- events.off(CONSTANTS.EVENTS.BID_REQUESTED, count);
212
+ events.off(EVENTS.BID_REQUESTED, count);
211
213
  });
212
214
 
213
215
  it('should give bidders access to bidder-specific config', function(done) {
@@ -390,7 +392,7 @@ describe('adapterManager tests', function () {
390
392
  });
391
393
 
392
394
  it('should NOT call onBidWon when the bid is S2S', () => {
393
- bids[0].src = CONSTANTS.S2S.SRC
395
+ bids[0].src = S2S.SRC
394
396
  adapterManager.callBidWonBidder(bids[0].bidder, bids[0], adUnits);
395
397
  sinon.assert.notCalled(criteoSpec.onBidWon);
396
398
  })
@@ -407,7 +409,7 @@ describe('adapterManager tests', function () {
407
409
  });
408
410
 
409
411
  it('should NOT call onSetTargeting when bid is S2S', () => {
410
- bids[0].src = CONSTANTS.S2S.SRC;
412
+ bids[0].src = S2S.SRC;
411
413
  adapterManager.callSetTargetingBidder(bids[0].bidder, bids[0], adUnits);
412
414
  sinon.assert.notCalled(criteoSpec.onSetTargeting);
413
415
  })
@@ -421,7 +423,7 @@ describe('adapterManager tests', function () {
421
423
  sinon.assert.called(criteoSpec.onBidViewable);
422
424
  });
423
425
  it('should NOT call onBidViewable when bid is S2S', () => {
424
- bids[0].src = CONSTANTS.S2S.SRC;
426
+ bids[0].src = S2S.SRC;
425
427
  adapterManager.callBidViewableBidder(bids[0].bidder, bids[0]);
426
428
  sinon.assert.notCalled(criteoSpec.onBidViewable);
427
429
  })
@@ -649,11 +651,11 @@ describe('adapterManager tests', function () {
649
651
  beforeEach(function () {
650
652
  prebidServerAdapterMock.callBids.reset();
651
653
  cnt = 0;
652
- events.on(CONSTANTS.EVENTS.BID_REQUESTED, count);
654
+ events.on(EVENTS.BID_REQUESTED, count);
653
655
  });
654
656
 
655
657
  afterEach(function () {
656
- events.off(CONSTANTS.EVENTS.BID_REQUESTED, count);
658
+ events.off(EVENTS.BID_REQUESTED, count);
657
659
  });
658
660
 
659
661
  it('should fire for s2s requests', function () {
@@ -1037,11 +1039,11 @@ describe('adapterManager tests', function () {
1037
1039
  beforeEach(function () {
1038
1040
  prebidServerAdapterMock.callBids.reset();
1039
1041
  cnt = 0;
1040
- events.on(CONSTANTS.EVENTS.BID_REQUESTED, count);
1042
+ events.on(EVENTS.BID_REQUESTED, count);
1041
1043
  });
1042
1044
 
1043
1045
  afterEach(function () {
1044
- events.off(CONSTANTS.EVENTS.BID_REQUESTED, count);
1046
+ events.off(EVENTS.BID_REQUESTED, count);
1045
1047
  });
1046
1048
 
1047
1049
  it('should fire for s2s requests', function () {
@@ -1675,12 +1677,24 @@ describe('adapterManager tests', function () {
1675
1677
  describe('makeBidRequests', function () {
1676
1678
  let adUnits;
1677
1679
  beforeEach(function () {
1680
+ resetAdUnitCounters();
1678
1681
  adUnits = utils.deepClone(getAdUnits()).map(adUnit => {
1679
1682
  adUnit.bids = adUnit.bids.filter(bid => includes(['appnexus', 'rubicon'], bid.bidder));
1680
1683
  return adUnit;
1681
1684
  })
1682
1685
  });
1683
1686
 
1687
+ function makeBidRequests(au = adUnits) {
1688
+ return adapterManager.makeBidRequests(
1689
+ au,
1690
+ Date.now(),
1691
+ utils.getUniqueIdentifierStr(),
1692
+ function callback() {
1693
+ },
1694
+ []
1695
+ );
1696
+ }
1697
+
1684
1698
  if (FEATURES.NATIVE) {
1685
1699
  it('should add nativeParams to adUnits after BEFORE_REQUEST_BIDS', () => {
1686
1700
  function beforeReqBids(adUnits) {
@@ -1691,16 +1705,9 @@ describe('adapterManager tests', function () {
1691
1705
  })
1692
1706
  }
1693
1707
 
1694
- events.on(CONSTANTS.EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids);
1695
- adapterManager.makeBidRequests(
1696
- adUnits,
1697
- Date.now(),
1698
- utils.getUniqueIdentifierStr(),
1699
- function callback() {
1700
- },
1701
- []
1702
- );
1703
- events.off(CONSTANTS.EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids);
1708
+ events.on(EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids);
1709
+ makeBidRequests();
1710
+ events.off(EVENTS.BEFORE_REQUEST_BIDS, beforeReqBids);
1704
1711
  expect(adUnits.map((u) => u.nativeParams).some(i => i == null)).to.be.false;
1705
1712
  });
1706
1713
  }
@@ -1708,13 +1715,7 @@ describe('adapterManager tests', function () {
1708
1715
  it('should make separate bidder request objects for each bidder', () => {
1709
1716
  adUnits = [utils.deepClone(getAdUnits()[0])];
1710
1717
 
1711
- let bidRequests = adapterManager.makeBidRequests(
1712
- adUnits,
1713
- Date.now(),
1714
- utils.getUniqueIdentifierStr(),
1715
- function callback() {},
1716
- []
1717
- );
1718
+ let bidRequests = makeBidRequests();
1718
1719
 
1719
1720
  let sizes1 = bidRequests[1].bids[0].sizes;
1720
1721
  let sizes2 = bidRequests[0].bids[0].sizes;
@@ -1725,6 +1726,70 @@ describe('adapterManager tests', function () {
1725
1726
  expect(sizes1).not.to.deep.equal(sizes2);
1726
1727
  });
1727
1728
 
1729
+ it('should set and increment bidRequestsCounter', () => {
1730
+ const [au1, au2] = adUnits;
1731
+ makeBidRequests([au1, au2]).flatMap(br => br.bids).forEach(bid => {
1732
+ expect(bid.bidRequestsCount).to.eql(1);
1733
+ })
1734
+ makeBidRequests([au1]);
1735
+ makeBidRequests([au1, au2]).flatMap(br => br.bids).forEach(bid => {
1736
+ expect(bid.bidRequestsCount).to.eql(bid.adUnitCode === au1.code ? 3 : 2);
1737
+ });
1738
+ })
1739
+
1740
+ describe('bidderRequestsCounter', () => {
1741
+ it('should be set and incremented', () => {
1742
+ const [au1, au2] = adUnits;
1743
+ makeBidRequests([au1, au2]).flatMap(br => br.bids).forEach(bid => {
1744
+ expect(bid.bidderRequestsCount).to.eql(1);
1745
+ });
1746
+ const au3 = {
1747
+ ...au2,
1748
+ bids: [
1749
+ au2.bids[0]
1750
+ ]
1751
+ }
1752
+ makeBidRequests([au3]);
1753
+ const counts = Object.fromEntries(
1754
+ makeBidRequests([au1, au2])
1755
+ .map(br => [br.bidderCode, Object.fromEntries(br.bids.map(bid => [bid.adUnitCode, bid.bidderRequestsCount]))])
1756
+ );
1757
+ expect(counts).to.eql({
1758
+ rubicon: {
1759
+ [au2.code]: 2
1760
+ },
1761
+ appnexus: {
1762
+ [au1.code]: 2,
1763
+ [au2.code]: 3
1764
+ },
1765
+ });
1766
+ });
1767
+
1768
+ it('should NOT be incremented for s2s bids', () => {
1769
+ config.setConfig({
1770
+ s2sConfig: {
1771
+ enabled: true,
1772
+ adapter: 'rubicon',
1773
+ bidders: ['appnexus']
1774
+ }
1775
+ });
1776
+ function expectBidderCounts(bidders) {
1777
+ makeBidRequests().forEach(br => {
1778
+ br.bids.forEach(bid => expect(bid.bidderRequestsCount).to.exist.and.eql(bidders[br.bidderCode]));
1779
+ })
1780
+ }
1781
+ expectBidderCounts({
1782
+ appnexus: 0,
1783
+ rubicon: 1
1784
+ });
1785
+ config.resetConfig();
1786
+ expectBidderCounts({
1787
+ appnexus: 1,
1788
+ rubicon: 2
1789
+ })
1790
+ })
1791
+ });
1792
+
1728
1793
  describe('and activity controls', () => {
1729
1794
  let redactOrtb2;
1730
1795
  let redactBidRequest;
@@ -1757,13 +1822,7 @@ describe('adapterManager tests', function () {
1757
1822
  componentType === MODULE_TYPE_BIDDER &&
1758
1823
  allowed.includes(componentName);
1759
1824
  });
1760
- let reqs = adapterManager.makeBidRequests(
1761
- adUnits,
1762
- Date.now(),
1763
- utils.getUniqueIdentifierStr(),
1764
- function callback() {},
1765
- []
1766
- );
1825
+ let reqs = makeBidRequests();
1767
1826
  const bidders = Array.from(new Set(reqs.flatMap(br => br.bids).map(bid => bid.bidder)).keys());
1768
1827
  expect(bidders).to.have.members(allowed);
1769
1828
  });
@@ -1773,13 +1832,7 @@ describe('adapterManager tests', function () {
1773
1832
  adUnits = [
1774
1833
  {code: 'one', bids: [{bidder: 'mockBidder1'}]}
1775
1834
  ];
1776
- let reqs = adapterManager.makeBidRequests(
1777
- adUnits,
1778
- Date.now(),
1779
- utils.getUniqueIdentifierStr(),
1780
- function callback() {},
1781
- []
1782
- );
1835
+ let reqs = makeBidRequests();
1783
1836
  sinon.assert.calledWith(redactBidRequest, reqs[0].bids[0]);
1784
1837
  sinon.assert.calledWith(redactOrtb2, reqs[0].ortb2);
1785
1838
  })
@@ -1812,13 +1865,7 @@ describe('adapterManager tests', function () {
1812
1865
  {code: 'two', bids: [{module: 'pbsBidAdapter', params: {configName: 'mock1'}}, {module: 'pbsBidAdapter', params: {configName: 'mock2'}}]}
1813
1866
  ]
1814
1867
  dep.isAllowed.callsFake(({componentType}) => componentType !== 'bidder');
1815
- let bidRequests = adapterManager.makeBidRequests(
1816
- adUnits,
1817
- Date.now(),
1818
- utils.getUniqueIdentifierStr(),
1819
- function callback() {},
1820
- []
1821
- );
1868
+ let bidRequests = makeBidRequests();
1822
1869
  expect(new Set(bidRequests.map(br => br.uniquePbsTid)).size).to.equal(3);
1823
1870
  });
1824
1871
 
@@ -1835,14 +1882,7 @@ describe('adapterManager tests', function () {
1835
1882
  }
1836
1883
  ];
1837
1884
  dep.isAllowed.callsFake((_, {configName, componentName}) => !(componentName === 'pbsBidAdapter' && configName === 'mock1'));
1838
- let bidRequests = adapterManager.makeBidRequests(
1839
- adUnits,
1840
- Date.now(),
1841
- utils.getUniqueIdentifierStr(),
1842
- function callback() {
1843
- },
1844
- []
1845
- );
1885
+ let bidRequests = makeBidRequests();
1846
1886
  expect(new Set(bidRequests.map(br => br.uniquePbsTid)).size).to.eql(2)
1847
1887
  });
1848
1888
  });
@@ -2075,11 +2115,11 @@ describe('adapterManager tests', function () {
2075
2115
  const ortb2Fragments = {};
2076
2116
  const req = {
2077
2117
  bidderCode: 'appnexus',
2078
- src: CONSTANTS.S2S.SRC,
2118
+ src: S2S.SRC,
2079
2119
  adUnitsS2SCopy: adUnits,
2080
2120
  bids: [{
2081
2121
  bidder: 'appnexus',
2082
- src: CONSTANTS.S2S.SRC
2122
+ src: S2S.SRC
2083
2123
  }]
2084
2124
  };
2085
2125
  adapterManager.callBids(adUnits, [req], sinon.stub(), sinon.stub(), {request: sinon.stub(), done: sinon.stub()}, 1000, sinon.stub(), ortb2Fragments);
@@ -5,7 +5,7 @@ import {expect} from 'chai';
5
5
  import {userSync} from 'src/userSync.js';
6
6
  import * as utils from 'src/utils.js';
7
7
  import {config} from 'src/config.js';
8
- import CONSTANTS from 'src/constants.json';
8
+ import { EVENTS } from 'src/constants.js';
9
9
  import * as events from 'src/events.js';
10
10
  import {hook} from '../../../../src/hook.js';
11
11
  import {auctionManager} from '../../../../src/auctionManager.js';
@@ -552,7 +552,7 @@ describe('bidderFactory', () => {
552
552
 
553
553
  expect(ajaxStub.calledTwice).to.equal(true);
554
554
  expect(eventEmitterSpy.getCalls()
555
- .filter(call => call.args[0] === CONSTANTS.EVENTS.BEFORE_BIDDER_HTTP)
555
+ .filter(call => call.args[0] === EVENTS.BEFORE_BIDDER_HTTP)
556
556
  ).to.length(2);
557
557
 
558
558
  eventEmitterSpy.restore();
@@ -863,7 +863,7 @@ describe('bidderFactory', () => {
863
863
  expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
864
864
  expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
865
865
  expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
866
- sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, {
866
+ sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
867
867
  error: xhrErrorMock,
868
868
  bidderRequest: MOCK_BIDS_REQUEST
869
869
  });
@@ -889,7 +889,7 @@ describe('bidderFactory', () => {
889
889
  expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
890
890
  expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
891
891
  expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
892
- sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, {
892
+ sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
893
893
  error: xhrErrorMock,
894
894
  bidderRequest: MOCK_BIDS_REQUEST
895
895
  });
@@ -915,7 +915,7 @@ describe('bidderFactory', () => {
915
915
  expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
916
916
  expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
917
917
  expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
918
- sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, {
918
+ sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
919
919
  error: xhrErrorMock,
920
920
  bidderRequest: MOCK_BIDS_REQUEST
921
921
  });
@@ -941,7 +941,7 @@ describe('bidderFactory', () => {
941
941
  expect(callBidderErrorStub.firstCall.args[0]).to.equal(CODE);
942
942
  expect(callBidderErrorStub.firstCall.args[1]).to.equal(xhrErrorMock);
943
943
  expect(callBidderErrorStub.firstCall.args[2]).to.equal(MOCK_BIDS_REQUEST);
944
- sinon.assert.calledWith(eventEmitterStub, CONSTANTS.EVENTS.BIDDER_ERROR, {
944
+ sinon.assert.calledWith(eventEmitterStub, EVENTS.BIDDER_ERROR, {
945
945
  error: xhrErrorMock,
946
946
  bidderRequest: MOCK_BIDS_REQUEST
947
947
  });
@@ -7,7 +7,7 @@ import {
7
7
  } from 'src/targeting.js';
8
8
  import {config} from 'src/config.js';
9
9
  import {createBidReceived} from 'test/fixtures/fixtures.js';
10
- import CONSTANTS from 'src/constants.json';
10
+ import { DEFAULT_TARGETING_KEYS, JSON_MAPPING, NATIVE_KEYS, STATUS, TARGETING_KEYS } from 'src/constants.js';
11
11
  import {auctionManager} from 'src/auctionManager.js';
12
12
  import * as utils from 'src/utils.js';
13
13
  import {deepClone} from 'src/utils.js';
@@ -15,7 +15,7 @@ import {createBid} from '../../../../src/bidfactory.js';
15
15
  import {hook} from '../../../../src/hook.js';
16
16
  import {getHighestCpm} from '../../../../src/utils/reducers.js';
17
17
 
18
- function mkBid(bid, status = CONSTANTS.STATUS.GOOD) {
18
+ function mkBid(bid, status = STATUS.GOOD) {
19
19
  return Object.assign(createBid(status), bid);
20
20
  }
21
21
 
@@ -40,10 +40,10 @@ const sampleBid = {
40
40
  'size': '300x250',
41
41
  'adserverTargeting': {
42
42
  'foobar': '300x250',
43
- [CONSTANTS.TARGETING_KEYS.BIDDER]: 'rubicon',
44
- [CONSTANTS.TARGETING_KEYS.AD_ID]: '148018fe5e',
45
- [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '0.53',
46
- [CONSTANTS.TARGETING_KEYS.DEAL]: '1234'
43
+ [TARGETING_KEYS.BIDDER]: 'rubicon',
44
+ [TARGETING_KEYS.AD_ID]: '148018fe5e',
45
+ [TARGETING_KEYS.PRICE_BUCKET]: '0.53',
46
+ [TARGETING_KEYS.DEAL]: '1234'
47
47
  },
48
48
  'dealId': '1234',
49
49
  'netRevenue': true,
@@ -74,9 +74,9 @@ const bid2 = mkBid({
74
74
  'size': '300x250',
75
75
  'adserverTargeting': {
76
76
  'foobar': '300x250',
77
- [CONSTANTS.TARGETING_KEYS.BIDDER]: 'rubicon',
78
- [CONSTANTS.TARGETING_KEYS.AD_ID]: '5454545',
79
- [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '0.25'
77
+ [TARGETING_KEYS.BIDDER]: 'rubicon',
78
+ [TARGETING_KEYS.AD_ID]: '5454545',
79
+ [TARGETING_KEYS.PRICE_BUCKET]: '0.25'
80
80
  },
81
81
  'netRevenue': true,
82
82
  'currency': 'USD',
@@ -104,9 +104,9 @@ const bid3 = mkBid({
104
104
  'size': '300x600',
105
105
  'adserverTargeting': {
106
106
  'foobar': '300x600',
107
- [CONSTANTS.TARGETING_KEYS.BIDDER]: 'rubicon',
108
- [CONSTANTS.TARGETING_KEYS.AD_ID]: '48747745',
109
- [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '0.75'
107
+ [TARGETING_KEYS.BIDDER]: 'rubicon',
108
+ [TARGETING_KEYS.AD_ID]: '48747745',
109
+ [TARGETING_KEYS.PRICE_BUCKET]: '0.75'
110
110
  },
111
111
  'netRevenue': true,
112
112
  'currency': 'USD',
@@ -166,18 +166,18 @@ const nativeBid1 = mkBid({
166
166
  'pbCg': '',
167
167
  'size': '0x0',
168
168
  'adserverTargeting': {
169
- [CONSTANTS.TARGETING_KEYS.BIDDER]: 'appnexus',
170
- [CONSTANTS.TARGETING_KEYS.AD_ID]: '591e7c9354b633',
171
- [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '10.00',
172
- [CONSTANTS.TARGETING_KEYS.SIZE]: '0x0',
173
- [CONSTANTS.TARGETING_KEYS.SOURCE]: 'client',
174
- [CONSTANTS.TARGETING_KEYS.FORMAT]: 'native',
175
- [CONSTANTS.NATIVE_KEYS.title]: 'This is a Prebid Native Creative',
176
- [CONSTANTS.NATIVE_KEYS.body]: 'This is a Prebid Native Creative. There are many like it, but this one is mine.',
177
- [CONSTANTS.NATIVE_KEYS.sponsoredBy]: 'Prebid.org',
178
- [CONSTANTS.NATIVE_KEYS.clickUrl]: 'http://prebid.org/dev-docs/show-native-ads.html',
179
- [CONSTANTS.NATIVE_KEYS.image]: 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg',
180
- [CONSTANTS.NATIVE_KEYS.icon]: 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png'
169
+ [TARGETING_KEYS.BIDDER]: 'appnexus',
170
+ [TARGETING_KEYS.AD_ID]: '591e7c9354b633',
171
+ [TARGETING_KEYS.PRICE_BUCKET]: '10.00',
172
+ [TARGETING_KEYS.SIZE]: '0x0',
173
+ [TARGETING_KEYS.SOURCE]: 'client',
174
+ [TARGETING_KEYS.FORMAT]: 'native',
175
+ [NATIVE_KEYS.title]: 'This is a Prebid Native Creative',
176
+ [NATIVE_KEYS.body]: 'This is a Prebid Native Creative. There are many like it, but this one is mine.',
177
+ [NATIVE_KEYS.sponsoredBy]: 'Prebid.org',
178
+ [NATIVE_KEYS.clickUrl]: 'http://prebid.org/dev-docs/show-native-ads.html',
179
+ [NATIVE_KEYS.image]: 'http://vcdn.adnxs.com/p/creative-image/94/22/cd/0f/9422cd0f-f400-45d3-80f5-2b92629d9257.jpg',
180
+ [NATIVE_KEYS.icon]: 'http://vcdn.adnxs.com/p/creative-image/bd/59/a6/c6/bd59a6c6-0851-411d-a16d-031475a51312.png'
181
181
  }
182
182
  });
183
183
 
@@ -225,17 +225,17 @@ const nativeBid2 = mkBid({
225
225
  'pbCg': '',
226
226
  'size': '0x0',
227
227
  'adserverTargeting': {
228
- [CONSTANTS.TARGETING_KEYS.BIDDER]: 'dgads',
229
- [CONSTANTS.TARGETING_KEYS.AD_ID]: '6e0aba55ed54e5',
230
- [CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]: '1.90',
231
- [CONSTANTS.TARGETING_KEYS.SIZE]: '0x0',
232
- [CONSTANTS.TARGETING_KEYS.SOURCE]: 'client',
233
- [CONSTANTS.TARGETING_KEYS.FORMAT]: 'native',
234
- [CONSTANTS.NATIVE_KEYS.image]: 'https://ads-tr.bigmining.com/img/300x250.png',
235
- [CONSTANTS.NATIVE_KEYS.title]: 'Test Title',
236
- [CONSTANTS.NATIVE_KEYS.body]: 'Test Description',
237
- [CONSTANTS.NATIVE_KEYS.sponsoredBy]: 'test.com',
238
- [CONSTANTS.NATIVE_KEYS.clickUrl]: 'http://prebid.org/'
228
+ [TARGETING_KEYS.BIDDER]: 'dgads',
229
+ [TARGETING_KEYS.AD_ID]: '6e0aba55ed54e5',
230
+ [TARGETING_KEYS.PRICE_BUCKET]: '1.90',
231
+ [TARGETING_KEYS.SIZE]: '0x0',
232
+ [TARGETING_KEYS.SOURCE]: 'client',
233
+ [TARGETING_KEYS.FORMAT]: 'native',
234
+ [NATIVE_KEYS.image]: 'https://ads-tr.bigmining.com/img/300x250.png',
235
+ [NATIVE_KEYS.title]: 'Test Title',
236
+ [NATIVE_KEYS.body]: 'Test Description',
237
+ [NATIVE_KEYS.sponsoredBy]: 'test.com',
238
+ [NATIVE_KEYS.clickUrl]: 'http://prebid.org/'
239
239
  }
240
240
  });
241
241
 
@@ -351,7 +351,7 @@ describe('targeting tests', function () {
351
351
  return [
352
352
  {
353
353
  'code': adUnitCode,
354
- [CONSTANTS.JSON_MAPPING.ADSERVER_TARGETING]: adServerTargeting
354
+ [JSON_MAPPING.ADSERVER_TARGETING]: adServerTargeting
355
355
  }
356
356
  ];
357
357
  });
@@ -489,7 +489,7 @@ describe('targeting tests', function () {
489
489
  });
490
490
 
491
491
  const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);
492
- let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
492
+ let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
493
493
 
494
494
  expect(limitedBids.length).to.equal(1);
495
495
  });
@@ -502,7 +502,7 @@ describe('targeting tests', function () {
502
502
  });
503
503
 
504
504
  const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);
505
- let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
505
+ let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
506
506
 
507
507
  expect(limitedBids.length).to.equal(2);
508
508
  });
@@ -515,7 +515,7 @@ describe('targeting tests', function () {
515
515
  });
516
516
 
517
517
  const targeting = targetingInstance.getAllTargeting(['/123456/header-bid-tag-0']);
518
- let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
518
+ let limitedBids = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
519
519
 
520
520
  expect(limitedBids.length).to.equal(2);
521
521
  });
@@ -611,7 +611,7 @@ describe('targeting tests', function () {
611
611
  beforeEach(function () {
612
612
  bidsReceived = [bid1, bid2, nativeBid1, nativeBid2].map(deepClone);
613
613
  bidsReceived.forEach((bid) => {
614
- bid.adserverTargeting[CONSTANTS.TARGETING_KEYS.SOURCE] = 'test-source';
614
+ bid.adserverTargeting[TARGETING_KEYS.SOURCE] = 'test-source';
615
615
  bid.adUnitCode = 'adunit';
616
616
  if (winningBid == null || bid.cpm > winningBid.cpm) {
617
617
  winningBid = bid;
@@ -642,7 +642,7 @@ describe('targeting tests', function () {
642
642
  addTargetingKeys: ['SOURCE']
643
643
  }
644
644
  });
645
- expect(targetingResult()).to.include.all.keys(...expandKey(CONSTANTS.TARGETING_KEYS.SOURCE));
645
+ expect(targetingResult()).to.include.all.keys(...expandKey(TARGETING_KEYS.SOURCE));
646
646
  });
647
647
 
648
648
  it('should keep default and native keys', function() {
@@ -651,9 +651,9 @@ describe('targeting tests', function () {
651
651
  addTargetingKeys: ['SOURCE']
652
652
  }
653
653
  });
654
- const defaultKeys = new Set(Object.values(CONSTANTS.DEFAULT_TARGETING_KEYS));
654
+ const defaultKeys = new Set(Object.values(DEFAULT_TARGETING_KEYS));
655
655
  if (FEATURES.NATIVE) {
656
- Object.values(CONSTANTS.NATIVE_KEYS).forEach((k) => defaultKeys.add(k));
656
+ Object.values(NATIVE_KEYS).forEach((k) => defaultKeys.add(k));
657
657
  }
658
658
 
659
659
  const expectedKeys = new Set();
@@ -670,8 +670,8 @@ describe('targeting tests', function () {
670
670
  it('should not be allowed together with allowTargetingKeys', function () {
671
671
  config.setConfig({
672
672
  targetingControls: {
673
- allowTargetingKeys: [CONSTANTS.TARGETING_KEYS.BIDDER],
674
- addTargetingKeys: [CONSTANTS.TARGETING_KEYS.SOURCE]
673
+ allowTargetingKeys: [TARGETING_KEYS.BIDDER],
674
+ addTargetingKeys: [TARGETING_KEYS.SOURCE]
675
675
  }
676
676
  });
677
677
  expect(targetingResult).to.throw();
@@ -849,12 +849,12 @@ describe('targeting tests', function () {
849
849
  // we should only get the targeting data for the one requested adunit
850
850
  expect(Object.keys(targeting).length).to.equal(1);
851
851
 
852
- let sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
852
+ let sendAllBidCpm = Object.keys(targeting['/123456/header-bid-tag-0']).filter(key => key.indexOf(TARGETING_KEYS.PRICE_BUCKET + '_') != -1)
853
853
  // we shouldn't get more than 1 key for hb_pb_${bidder}
854
854
  expect(sendAllBidCpm.length).to.equal(1);
855
855
 
856
856
  // expect the winning CPM to be equal to the sendAllBidCPM
857
- expect(targeting['/123456/header-bid-tag-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET + '_rubicon']).to.deep.equal(targeting['/123456/header-bid-tag-0'][CONSTANTS.TARGETING_KEYS.PRICE_BUCKET]);
857
+ expect(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET + '_rubicon']).to.deep.equal(targeting['/123456/header-bid-tag-0'][TARGETING_KEYS.PRICE_BUCKET]);
858
858
  });
859
859
 
860
860
  if (FEATURES.NATIVE) {