prebid.js 7.43.0 → 7.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 (503) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/acuityAdsBidAdapter.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adgenerationBidAdapter.js +1 -1
  7. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  8. package/dist/admixerIdSystem.js +1 -1
  9. package/dist/adnuntiusBidAdapter.js +1 -1
  10. package/dist/adqueryBidAdapter.js +1 -1
  11. package/dist/adqueryIdSystem.js +1 -1
  12. package/dist/adrelevantisBidAdapter.js +1 -1
  13. package/dist/adrinoBidAdapter.js +1 -1
  14. package/dist/adriverIdSystem.js +1 -1
  15. package/dist/adsinteractiveBidAdapter.js +1 -0
  16. package/dist/adtrgtmeBidAdapter.js +1 -1
  17. package/dist/adxcgBidAdapter.js +1 -1
  18. package/dist/adyoulikeBidAdapter.js +1 -1
  19. package/dist/aidemBidAdapter.js +1 -1
  20. package/dist/airgridRtdProvider.js +1 -1
  21. package/dist/ajaBidAdapter.js +1 -1
  22. package/dist/akamaiDapRtdProvider.js +1 -1
  23. package/dist/amxBidAdapter.js +1 -1
  24. package/dist/amxIdSystem.js +1 -1
  25. package/dist/appierAnalyticsAdapter.js +1 -1
  26. package/dist/appnexusBidAdapter.js +1 -1
  27. package/dist/appushBidAdapter.js +1 -1
  28. package/dist/apstreamBidAdapter.js +1 -1
  29. package/dist/asoBidAdapter.js +1 -1
  30. package/dist/atsAnalyticsAdapter.js +1 -1
  31. package/dist/audiencerunBidAdapter.js +1 -1
  32. package/dist/axonixBidAdapter.js +1 -1
  33. package/dist/bedigitechBidAdapter.js +1 -0
  34. package/dist/beyondmediaBidAdapter.js +1 -1
  35. package/dist/bidglassBidAdapter.js +1 -1
  36. package/dist/big-richmediaBidAdapter.js +1 -1
  37. package/dist/bluebillywigBidAdapter.js +1 -1
  38. package/dist/blueconicRtdProvider.js +1 -1
  39. package/dist/braveBidAdapter.js +1 -1
  40. package/dist/bridgewellBidAdapter.js +1 -1
  41. package/dist/brightMountainMediaBidAdapter.js +1 -1
  42. package/dist/brightcomBidAdapter.js +1 -1
  43. package/dist/brightcomSSPBidAdapter.js +1 -1
  44. package/dist/browsiRtdProvider.js +1 -1
  45. package/dist/byDataAnalyticsAdapter.js +1 -1
  46. package/dist/carodaBidAdapter.js +1 -1
  47. package/dist/chtnwBidAdapter.js +1 -1
  48. package/dist/coinzillaBidAdapter.js +1 -1
  49. package/dist/compassBidAdapter.js +1 -1
  50. package/dist/concertBidAdapter.js +1 -1
  51. package/dist/connectIdSystem.js +1 -1
  52. package/dist/connectadBidAdapter.js +1 -1
  53. package/dist/consumableBidAdapter.js +1 -1
  54. package/dist/contentexchangeBidAdapter.js +1 -1
  55. package/dist/conversantAnalyticsAdapter.js +1 -1
  56. package/dist/conversantBidAdapter.js +1 -1
  57. package/dist/craftBidAdapter.js +1 -1
  58. package/dist/criteoBidAdapter.js +1 -1
  59. package/dist/criteoIdSystem.js +1 -1
  60. package/dist/cwireBidAdapter.js +1 -1
  61. package/dist/czechAdIdSystem.js +1 -1
  62. package/dist/dacIdSystem.js +1 -1
  63. package/dist/deepintentDpesIdSystem.js +1 -1
  64. package/dist/dependencies.json +15 -0
  65. package/dist/discoveryBidAdapter.js +1 -1
  66. package/dist/domainOverrideToRootDomain.js +1 -0
  67. package/dist/dspxBidAdapter.js +1 -1
  68. package/dist/eplanningBidAdapter.js +1 -1
  69. package/dist/feedadBidAdapter.js +1 -1
  70. package/dist/finativeBidAdapter.js +1 -1
  71. package/dist/fintezaAnalyticsAdapter.js +1 -1
  72. package/dist/fledgeForGpt.js +1 -1
  73. package/dist/freewheel-sspBidAdapter.js +1 -1
  74. package/dist/ftrackIdSystem.js +1 -1
  75. package/dist/gdprEnforcement.js +1 -1
  76. package/dist/glimpseBidAdapter.js +1 -1
  77. package/dist/globalsunBidAdapter.js +1 -1
  78. package/dist/gmosspBidAdapter.js +1 -1
  79. package/dist/gnetBidAdapter.js +1 -1
  80. package/dist/goldbachBidAdapter.js +1 -1
  81. package/dist/gravitoIdSystem.js +1 -1
  82. package/dist/greenbidsAnalyticsAdapter.js +1 -0
  83. package/dist/gridBidAdapter.js +1 -1
  84. package/dist/gridNMBidAdapter.js +1 -1
  85. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  86. package/dist/growthCodeIdSystem.js +1 -1
  87. package/dist/gumgumBidAdapter.js +1 -1
  88. package/dist/h12mediaBidAdapter.js +1 -1
  89. package/dist/hadronAnalyticsAdapter.js +1 -1
  90. package/dist/hadronIdSystem.js +1 -1
  91. package/dist/hadronRtdProvider.js +1 -1
  92. package/dist/id5IdSystem.js +1 -1
  93. package/dist/idWardRtdProvider.js +1 -1
  94. package/dist/identityLinkIdSystem.js +1 -1
  95. package/dist/idxIdSystem.js +1 -1
  96. package/dist/imRtdProvider.js +1 -1
  97. package/dist/impactifyBidAdapter.js +1 -1
  98. package/dist/improvedigitalBidAdapter.js +1 -1
  99. package/dist/imuIdSystem.js +1 -1
  100. package/dist/inmarBidAdapter.js +1 -1
  101. package/dist/insticatorBidAdapter.js +1 -1
  102. package/dist/intentIqIdSystem.js +1 -1
  103. package/dist/invibesBidAdapter.js +1 -1
  104. package/dist/iqzoneBidAdapter.js +1 -1
  105. package/dist/ivsBidAdapter.js +1 -0
  106. package/dist/ixBidAdapter.js +1 -1
  107. package/dist/jixieBidAdapter.js +1 -1
  108. package/dist/justpremiumBidAdapter.js +1 -1
  109. package/dist/jwplayerVideoProvider.js +1 -1
  110. package/dist/kargoBidAdapter.js +1 -1
  111. package/dist/koblerBidAdapter.js +1 -1
  112. package/dist/konduitAnalyticsAdapter.js +1 -1
  113. package/dist/kueezBidAdapter.js +1 -1
  114. package/dist/kueezRtbBidAdapter.js +1 -1
  115. package/dist/kulturemediaBidAdapter.js +1 -1
  116. package/dist/lassoBidAdapter.js +1 -1
  117. package/dist/lifestreetBidAdapter.js +1 -1
  118. package/dist/liveIntentIdSystem.js +1 -1
  119. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  120. package/dist/logicadBidAdapter.js +1 -1
  121. package/dist/loglyliftBidAdapter.js +1 -1
  122. package/dist/lotamePanoramaIdSystem.js +1 -1
  123. package/dist/luponmediaBidAdapter.js +1 -1
  124. package/dist/magniteAnalyticsAdapter.js +1 -1
  125. package/dist/malltvAnalyticsAdapter.js +1 -1
  126. package/dist/marsmediaBidAdapter.js +1 -1
  127. package/dist/mathildeadsBidAdapter.js +1 -1
  128. package/dist/mediafuseBidAdapter.js +1 -1
  129. package/dist/mediagoBidAdapter.js +1 -1
  130. package/dist/mediakeysBidAdapter.js +1 -1
  131. package/dist/medianetBidAdapter.js +1 -1
  132. package/dist/mediasquareBidAdapter.js +1 -1
  133. package/dist/merkleIdSystem.js +1 -1
  134. package/dist/mgidBidAdapter.js +1 -1
  135. package/dist/mgidRtdProvider.js +1 -1
  136. package/dist/minutemediaBidAdapter.js +1 -1
  137. package/dist/minutemediaplusBidAdapter.js +1 -1
  138. package/dist/mwOpenLinkIdSystem.js +1 -1
  139. package/dist/naveggIdSystem.js +1 -1
  140. package/dist/nexx360BidAdapter.js +1 -1
  141. package/dist/nobidBidAdapter.js +1 -1
  142. package/dist/not-for-prod/prebid.js +232 -227
  143. package/dist/novatiqIdSystem.js +1 -1
  144. package/dist/oguryBidAdapter.js +1 -1
  145. package/dist/onetagBidAdapter.js +1 -1
  146. package/dist/onomagicBidAdapter.js +1 -1
  147. package/dist/ooloAnalyticsAdapter.js +1 -1
  148. package/dist/openxBidAdapter.js +1 -1
  149. package/dist/openxOrtbBidAdapter.js +1 -1
  150. package/dist/operaadsBidAdapter.js +1 -1
  151. package/dist/optidigitalBidAdapter.js +1 -1
  152. package/dist/ortbConverter.js +1 -1
  153. package/dist/outbrainBidAdapter.js +1 -1
  154. package/dist/parrableIdSystem.js +1 -1
  155. package/dist/permutiveRtdProvider.js +1 -1
  156. package/dist/pixfutureBidAdapter.js +1 -1
  157. package/dist/prebid-core.js +1 -1
  158. package/dist/prebidServerBidAdapter.js +1 -1
  159. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  160. package/dist/pubCommonId.js +1 -1
  161. package/dist/publinkIdSystem.js +1 -1
  162. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  163. package/dist/pubmaticBidAdapter.js +1 -1
  164. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  165. package/dist/pubxBidAdapter.js +1 -1
  166. package/dist/pxyzBidAdapter.js +1 -1
  167. package/dist/quantcastBidAdapter.js +1 -1
  168. package/dist/quantcastIdSystem.js +1 -1
  169. package/dist/readpeakBidAdapter.js +1 -1
  170. package/dist/realvuAnalyticsAdapter.js +1 -1
  171. package/dist/relaidoBidAdapter.js +1 -1
  172. package/dist/rhythmoneBidAdapter.js +1 -1
  173. package/dist/riseBidAdapter.js +1 -1
  174. package/dist/roxotAnalyticsAdapter.js +1 -1
  175. package/dist/rtbhouseBidAdapter.js +1 -1
  176. package/dist/rtdModule.js +1 -1
  177. package/dist/rubiconAnalyticsAdapter.js +1 -1
  178. package/dist/rubiconBidAdapter.js +1 -1
  179. package/dist/seedingAllianceBidAdapter.js +1 -1
  180. package/dist/seedtagBidAdapter.js +1 -1
  181. package/dist/sharedIdSystem.js +1 -1
  182. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  183. package/dist/sharethroughBidAdapter.js +1 -1
  184. package/dist/shinezBidAdapter.js +1 -1
  185. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  186. package/dist/smaatoBidAdapter.js +1 -1
  187. package/dist/smartadserverBidAdapter.js +1 -1
  188. package/dist/smarthubBidAdapter.js +1 -1
  189. package/dist/smartxBidAdapter.js +1 -1
  190. package/dist/smilewantedBidAdapter.js +1 -1
  191. package/dist/sonobiBidAdapter.js +1 -1
  192. package/dist/sovrnAnalyticsAdapter.js +1 -1
  193. package/dist/sovrnBidAdapter.js +1 -1
  194. package/dist/sspBCBidAdapter.js +1 -1
  195. package/dist/staqAnalyticsAdapter.js +1 -1
  196. package/dist/stroeerCoreBidAdapter.js +1 -1
  197. package/dist/stvBidAdapter.js +1 -1
  198. package/dist/sublimeBidAdapter.js +1 -1
  199. package/dist/synacormediaBidAdapter.js +1 -1
  200. package/dist/taboolaBidAdapter.js +1 -1
  201. package/dist/targetVideoBidAdapter.js +1 -1
  202. package/dist/teadsBidAdapter.js +1 -1
  203. package/dist/teadsIdSystem.js +1 -1
  204. package/dist/trionBidAdapter.js +1 -1
  205. package/dist/tripleliftBidAdapter.js +1 -1
  206. package/dist/truereachBidAdapter.js +1 -1
  207. package/dist/trustpidSystem.js +1 -1
  208. package/dist/ttdBidAdapter.js +1 -1
  209. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  210. package/dist/uid2IdSystem.js +1 -1
  211. package/dist/underdogmediaBidAdapter.js +1 -1
  212. package/dist/undertoneBidAdapter.js +1 -1
  213. package/dist/userId.js +1 -1
  214. package/dist/validationFpdModule.js +1 -1
  215. package/dist/vidazooBidAdapter.js +1 -1
  216. package/dist/videobyteBidAdapter.js +1 -1
  217. package/dist/videoheroesBidAdapter.js +1 -1
  218. package/dist/vidoomyBidAdapter.js +1 -1
  219. package/dist/visiblemeasuresBidAdapter.js +1 -1
  220. package/dist/visxBidAdapter.js +1 -1
  221. package/dist/vrtcalBidAdapter.js +1 -1
  222. package/dist/vuukleBidAdapter.js +1 -1
  223. package/dist/weboramaRtdProvider.js +1 -1
  224. package/dist/widespaceBidAdapter.js +1 -1
  225. package/dist/winrBidAdapter.js +1 -1
  226. package/dist/yahoosspBidAdapter.js +1 -1
  227. package/dist/yieldmoBidAdapter.js +1 -1
  228. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  229. package/dist/yieldoneBidAdapter.js +1 -1
  230. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  231. package/dist/zeotapIdPlusIdSystem.js +1 -1
  232. package/dist/zeta_global_sspBidAdapter.js +1 -1
  233. package/libraries/domainOverrideToRootDomain/index.js +39 -0
  234. package/libraries/ortbConverter/converter.js +3 -2
  235. package/modules/33acrossIdSystem.js +5 -2
  236. package/modules/acuityAdsBidAdapter.js +1 -1
  237. package/modules/adagioBidAdapter.js +3 -4
  238. package/modules/adkernelAdnAnalyticsAdapter.js +4 -2
  239. package/modules/admixerIdSystem.js +4 -2
  240. package/modules/adnuntiusBidAdapter.js +1 -1
  241. package/modules/adqueryBidAdapter.js +1 -1
  242. package/modules/adqueryIdSystem.js +2 -1
  243. package/modules/adrinoBidAdapter.js +24 -16
  244. package/modules/adriverIdSystem.js +3 -2
  245. package/modules/adsinteractiveBidAdapter.js +144 -0
  246. package/modules/adsinteractiveBidAdapter.md +31 -0
  247. package/modules/adyoulikeBidAdapter.js +2 -3
  248. package/modules/aidemBidAdapter.js +5 -0
  249. package/modules/airgridRtdProvider.js +4 -2
  250. package/modules/ajaBidAdapter.js +38 -16
  251. package/modules/akamaiDapRtdProvider.js +2 -1
  252. package/modules/amxBidAdapter.js +12 -10
  253. package/modules/amxIdSystem.js +23 -20
  254. package/modules/amxIdSystem.md +7 -7
  255. package/modules/appnexusBidAdapter.js +8 -8
  256. package/modules/appushBidAdapter.js +1 -1
  257. package/modules/apstreamBidAdapter.js +1 -1
  258. package/modules/atsAnalyticsAdapter.js +4 -2
  259. package/modules/audiencerunBidAdapter.js +9 -10
  260. package/modules/bedigitechBidAdapter.js +67 -0
  261. package/modules/bedigitechBidAdapter.md +32 -0
  262. package/modules/beyondmediaBidAdapter.js +1 -1
  263. package/modules/bluebillywigBidAdapter.js +2 -4
  264. package/modules/blueconicRtdProvider.js +2 -1
  265. package/modules/braveBidAdapter.js +1 -1
  266. package/modules/brightcomBidAdapter.js +1 -2
  267. package/modules/brightcomSSPBidAdapter.js +1 -2
  268. package/modules/browsiRtdProvider.js +4 -2
  269. package/modules/byDataAnalyticsAdapter.js +6 -3
  270. package/modules/coinzillaBidAdapter.js +1 -2
  271. package/modules/compassBidAdapter.js +1 -1
  272. package/modules/concertBidAdapter.js +14 -7
  273. package/modules/connectIdSystem.js +96 -21
  274. package/modules/connectIdSystem.md +6 -5
  275. package/modules/connectadBidAdapter.js +2 -4
  276. package/modules/contentexchangeBidAdapter.js +1 -1
  277. package/modules/craftBidAdapter.js +29 -24
  278. package/modules/criteoBidAdapter.js +4 -2
  279. package/modules/criteoIdSystem.js +6 -2
  280. package/modules/czechAdIdSystem.js +3 -2
  281. package/modules/dacIdSystem.js +4 -3
  282. package/modules/deepintentDpesIdSystem.js +3 -2
  283. package/modules/discoveryBidAdapter.js +1 -1
  284. package/modules/dspxBidAdapter.js +223 -15
  285. package/modules/fintezaAnalyticsAdapter.js +5 -3
  286. package/modules/fledgeForGpt.js +54 -6
  287. package/modules/freewheel-sspBidAdapter.js +8 -0
  288. package/modules/ftrackIdSystem.js +6 -6
  289. package/modules/gdprEnforcement.js +56 -68
  290. package/modules/glimpseBidAdapter.js +2 -6
  291. package/modules/globalsunBidAdapter.js +1 -1
  292. package/modules/gnetBidAdapter.js +1 -2
  293. package/modules/gravitoIdSystem.js +5 -3
  294. package/modules/greenbidsAnalyticsAdapter.js +181 -0
  295. package/modules/greenbidsAnalyticsAdapter.md +23 -0
  296. package/modules/gridBidAdapter.js +14 -8
  297. package/modules/gridNMBidAdapter.js +1 -1
  298. package/modules/growthCodeAnalyticsAdapter.js +3 -2
  299. package/modules/growthCodeIdSystem.js +21 -17
  300. package/modules/gumgumBidAdapter.js +8 -18
  301. package/modules/hadronAnalyticsAdapter.js +5 -3
  302. package/modules/hadronIdSystem.js +3 -1
  303. package/modules/hadronRtdProvider.js +4 -2
  304. package/modules/id5IdSystem.js +4 -2
  305. package/modules/idWardRtdProvider.js +2 -1
  306. package/modules/identityLinkIdSystem.js +5 -2
  307. package/modules/idxIdSystem.js +3 -2
  308. package/modules/imRtdProvider.js +3 -1
  309. package/modules/impactifyBidAdapter.js +2 -4
  310. package/modules/imuIdSystem.js +6 -3
  311. package/modules/insticatorBidAdapter.js +1 -1
  312. package/modules/intentIqIdSystem.js +3 -2
  313. package/modules/invibesBidAdapter.js +1 -1
  314. package/modules/iqzoneBidAdapter.js +1 -1
  315. package/modules/ivsBidAdapter.js +85 -0
  316. package/modules/ivsBidAdapter.md +34 -0
  317. package/modules/ixBidAdapter.js +43 -106
  318. package/modules/jixieBidAdapter.js +3 -6
  319. package/modules/jwplayerVideoProvider.js +25 -32
  320. package/modules/kargoBidAdapter.js +1 -1
  321. package/modules/koblerBidAdapter.js +1 -2
  322. package/modules/kueezBidAdapter.js +1 -1
  323. package/modules/kueezRtbBidAdapter.js +1 -1
  324. package/modules/liveIntentIdSystem.js +11 -2
  325. package/modules/lotamePanoramaIdSystem.js +3 -2
  326. package/modules/luponmediaBidAdapter.js +1 -1
  327. package/modules/magniteAnalyticsAdapter.js +101 -9
  328. package/modules/mathildeadsBidAdapter.js +1 -1
  329. package/modules/mediafuseBidAdapter.js +1 -1
  330. package/modules/mediagoBidAdapter.js +1 -1
  331. package/modules/mediakeysBidAdapter.js +2 -3
  332. package/modules/medianetBidAdapter.js +1 -1
  333. package/modules/merkleIdSystem.js +2 -1
  334. package/modules/mgidBidAdapter.js +179 -27
  335. package/modules/mgidRtdProvider.js +3 -1
  336. package/modules/minutemediaBidAdapter.js +1 -1
  337. package/modules/minutemediaplusBidAdapter.js +1 -1
  338. package/modules/mwOpenLinkIdSystem.js +3 -2
  339. package/modules/naveggIdSystem.js +3 -2
  340. package/modules/nexx360BidAdapter.js +0 -1
  341. package/modules/nobidBidAdapter.js +1 -1
  342. package/modules/novatiqIdSystem.js +6 -3
  343. package/modules/oguryBidAdapter.js +3 -2
  344. package/modules/onetagBidAdapter.js +1 -1
  345. package/modules/onomagicBidAdapter.js +1 -2
  346. package/modules/openxBidAdapter.js +192 -563
  347. package/modules/openxBidAdapter.md +22 -20
  348. package/modules/openxOrtbBidAdapter.js +24 -10
  349. package/modules/openxOrtbBidAdapter.md +11 -8
  350. package/modules/operaadsBidAdapter.js +1 -1
  351. package/modules/parrableIdSystem.js +4 -2
  352. package/modules/permutiveRtdProvider.js +2 -1
  353. package/modules/prebidServerBidAdapter/index.js +9 -3
  354. package/modules/prebidServerBidAdapter/ortbConverter.js +12 -2
  355. package/modules/prebidmanagerAnalyticsAdapter.js +3 -2
  356. package/modules/pubCommonId.js +6 -3
  357. package/modules/publinkIdSystem.js +2 -1
  358. package/modules/pubmaticAnalyticsAdapter.js +12 -1
  359. package/modules/pubmaticBidAdapter.js +193 -223
  360. package/modules/pubwiseAnalyticsAdapter.js +5 -3
  361. package/modules/pubxBidAdapter.js +5 -2
  362. package/modules/quantcastBidAdapter.js +1 -1
  363. package/modules/quantcastIdSystem.js +5 -3
  364. package/modules/realvuAnalyticsAdapter.js +6 -3
  365. package/modules/riseBidAdapter.js +1 -1
  366. package/modules/roxotAnalyticsAdapter.js +5 -2
  367. package/modules/rtbhouseBidAdapter.js +5 -3
  368. package/modules/rtdModule/index.js +3 -0
  369. package/modules/rubiconAnalyticsAdapter.js +3 -2
  370. package/modules/rubiconBidAdapter.js +1 -0
  371. package/modules/sharedIdSystem.js +16 -36
  372. package/modules/sharethroughBidAdapter.js +2 -3
  373. package/modules/shinezBidAdapter.js +1 -1
  374. package/modules/sigmoidAnalyticsAdapter.js +4 -2
  375. package/modules/smartadserverBidAdapter.js +2 -3
  376. package/modules/smarthubBidAdapter.js +1 -1
  377. package/modules/sovrnBidAdapter.js +2 -3
  378. package/modules/staqAnalyticsAdapter.js +5 -3
  379. package/modules/stroeerCoreBidAdapter.js +3 -2
  380. package/modules/synacormediaBidAdapter.js +1 -3
  381. package/modules/taboolaBidAdapter.js +4 -2
  382. package/modules/teadsBidAdapter.js +1 -1
  383. package/modules/teadsIdSystem.js +2 -1
  384. package/modules/tripleliftBidAdapter.js +1 -1
  385. package/modules/truereachBidAdapter.js +1 -2
  386. package/modules/trustpidSystem.js +3 -2
  387. package/modules/ttdBidAdapter.js +11 -5
  388. package/modules/uid2IdSystem.js +3 -2
  389. package/modules/undertoneBidAdapter.js +1 -0
  390. package/modules/userId/eids.js +18 -0
  391. package/modules/userId/eids.md +16 -0
  392. package/modules/userId/index.js +5 -2
  393. package/modules/validationFpdModule/index.js +3 -2
  394. package/modules/vidazooBidAdapter.js +14 -5
  395. package/modules/videoheroesBidAdapter.js +1 -1
  396. package/modules/vidoomyBidAdapter.js +51 -2
  397. package/modules/visiblemeasuresBidAdapter.js +1 -1
  398. package/modules/vrtcalBidAdapter.js +1 -1
  399. package/modules/weboramaRtdProvider.js +3 -1
  400. package/modules/yieldmoBidAdapter.js +2 -3
  401. package/modules/yieldoneBidAdapter.js +1 -1
  402. package/modules/yuktamediaAnalyticsAdapter.js +4 -2
  403. package/modules/zeotapIdPlusIdSystem.js +3 -2
  404. package/modules/zeta_global_sspBidAdapter.js +3 -0
  405. package/package.json +1 -1
  406. package/plugins/eslint/validateImports.js +13 -14
  407. package/plugins/pbjsGlobals.js +3 -1
  408. package/src/Renderer.js +2 -1
  409. package/src/activities/modules.js +5 -0
  410. package/src/adapterManager.js +4 -8
  411. package/src/adapters/bidderFactory.js +30 -16
  412. package/src/consentHandler.js +42 -0
  413. package/src/native.js +5 -1
  414. package/src/refererDetection.js +39 -21
  415. package/src/secureCreatives.js +2 -2
  416. package/src/storageManager.js +33 -47
  417. package/src/userSync.js +7 -4
  418. package/test/spec/auctionmanager_spec.js +2 -2
  419. package/test/spec/libraries/domainOverrideToRootDomain/index_spec.js +77 -0
  420. package/test/spec/modules/33acrossIdSystem_spec.js +1 -1
  421. package/test/spec/modules/acuityAdsBidAdapter_spec.js +2 -1
  422. package/test/spec/modules/adagioBidAdapter_spec.js +11 -17
  423. package/test/spec/modules/admixerIdSystem_spec.js +0 -3
  424. package/test/spec/modules/adnuntiusBidAdapter_spec.js +6 -6
  425. package/test/spec/modules/adrinoBidAdapter_spec.js +65 -34
  426. package/test/spec/modules/adsinteractiveBidAdapter_spec.js +207 -0
  427. package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -11
  428. package/test/spec/modules/aidemBidAdapter_spec.js +72 -8
  429. package/test/spec/modules/amxBidAdapter_spec.js +4 -1
  430. package/test/spec/modules/amxIdSystem_spec.js +13 -26
  431. package/test/spec/modules/appushBidAdapter_spec.js +2 -1
  432. package/test/spec/modules/atsAnalyticsAdapter_spec.js +2 -2
  433. package/test/spec/modules/audiencerunBidAdapter_spec.js +8 -11
  434. package/test/spec/modules/bedigitechBidAdapter_spec.js +145 -0
  435. package/test/spec/modules/beyondmediaBidAdapter_spec.js +2 -1
  436. package/test/spec/modules/bluebillywigBidAdapter_spec.js +1 -3
  437. package/test/spec/modules/compassBidAdapter_spec.js +2 -1
  438. package/test/spec/modules/concertBidAdapter_spec.js +3 -8
  439. package/test/spec/modules/connectIdSystem_spec.js +420 -242
  440. package/test/spec/modules/connectadBidAdapter_spec.js +11 -3
  441. package/test/spec/modules/contentexchangeBidAdapter_spec.js +2 -1
  442. package/test/spec/modules/criteoBidAdapter_spec.js +29 -0
  443. package/test/spec/modules/criteoIdSystem_spec.js +38 -0
  444. package/test/spec/modules/datablocksBidAdapter_spec.js +0 -1
  445. package/test/spec/modules/dspxBidAdapter_spec.js +184 -13
  446. package/test/spec/modules/eids_spec.js +30 -0
  447. package/test/spec/modules/fledge_spec.js +173 -2
  448. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +37 -0
  449. package/test/spec/modules/gdprEnforcement_spec.js +134 -164
  450. package/test/spec/modules/globalsunBidAdapter_spec.js +2 -1
  451. package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +418 -0
  452. package/test/spec/modules/gridBidAdapter_spec.js +9 -5
  453. package/test/spec/modules/growthCodeIdSystem_spec.js +2 -1
  454. package/test/spec/modules/id5IdSystem_spec.js +41 -4
  455. package/test/spec/modules/identityLinkIdSystem_spec.js +2 -2
  456. package/test/spec/modules/improvedigitalBidAdapter_spec.js +10 -3
  457. package/test/spec/modules/iqzoneBidAdapter_spec.js +2 -1
  458. package/test/spec/modules/ivsBidAdapter_spec.js +197 -0
  459. package/test/spec/modules/ixBidAdapter_spec.js +84 -71
  460. package/test/spec/modules/jixieBidAdapter_spec.js +42 -60
  461. package/test/spec/modules/koblerBidAdapter_spec.js +0 -20
  462. package/test/spec/modules/liveIntentIdSystem_spec.js +10 -0
  463. package/test/spec/modules/luponmediaBidAdapter_spec.js +1 -1
  464. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +129 -1
  465. package/test/spec/modules/mathildeadsBidAdapter_spec.js +2 -1
  466. package/test/spec/modules/mediakeysBidAdapter_spec.js +12 -16
  467. package/test/spec/modules/mgidBidAdapter_spec.js +184 -36
  468. package/test/spec/modules/oguryBidAdapter_spec.js +19 -4
  469. package/test/spec/modules/openxBidAdapter_spec.js +1157 -1936
  470. package/test/spec/modules/openxOrtbBidAdapter_spec.js +108 -50
  471. package/test/spec/modules/prebidServerBidAdapter_spec.js +68 -2
  472. package/test/spec/modules/publinkIdSystem_spec.js +3 -2
  473. package/test/spec/modules/pubmaticBidAdapter_spec.js +67 -10
  474. package/test/spec/modules/pubxBidAdapter_spec.js +10 -2
  475. package/test/spec/modules/realTimeDataModule_spec.js +22 -0
  476. package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -1
  477. package/test/spec/modules/relaidoBidAdapter_spec.js +5 -5
  478. package/test/spec/modules/rubiconBidAdapter_spec.js +2 -1
  479. package/test/spec/modules/sharedIdSystem_spec.js +0 -46
  480. package/test/spec/modules/sharethroughBidAdapter_spec.js +99 -22
  481. package/test/spec/modules/smartadserverBidAdapter_spec.js +74 -12
  482. package/test/spec/modules/smarthubBidAdapter_spec.js +2 -1
  483. package/test/spec/modules/sovrnBidAdapter_spec.js +25 -6
  484. package/test/spec/modules/stroeerCoreBidAdapter_spec.js +13 -18
  485. package/test/spec/modules/synacormediaBidAdapter_spec.js +0 -26
  486. package/test/spec/modules/taboolaBidAdapter_spec.js +101 -0
  487. package/test/spec/modules/ttdBidAdapter_spec.js +25 -7
  488. package/test/spec/modules/userId_spec.js +68 -0
  489. package/test/spec/modules/vidazooBidAdapter_spec.js +13 -0
  490. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +17 -4
  491. package/test/spec/modules/vidoomyBidAdapter_spec.js +68 -0
  492. package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +2 -1
  493. package/test/spec/modules/vrtcalBidAdapter_spec.js +3 -2
  494. package/test/spec/modules/yieldmoBidAdapter_spec.js +18 -2
  495. package/test/spec/modules/zeotapIdPlusIdSystem_spec.js +3 -2
  496. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +8 -0
  497. package/test/spec/refererDetection_spec.js +56 -1
  498. package/test/spec/renderer_spec.js +1 -2
  499. package/test/spec/unit/core/adapterManager_spec.js +21 -58
  500. package/test/spec/unit/core/bidderFactory_spec.js +28 -10
  501. package/test/spec/unit/core/consentHandler_spec.js +29 -1
  502. package/test/spec/unit/core/storageManager_spec.js +31 -21
  503. package/test/spec/userSync_spec.js +2 -1
@@ -0,0 +1,197 @@
1
+ import { spec, converter } from 'modules/ivsBidAdapter.js';
2
+ import { assert } from 'chai';
3
+ import { deepClone } from '../../../src/utils';
4
+
5
+ describe('ivsBidAdapter', function () {
6
+ describe('isBidRequestValid()', function () {
7
+ let validBid = {
8
+ bidder: 'ivs',
9
+ mediaTypes: {
10
+ video: {
11
+ context: 'instream',
12
+ playerSize: [640, 480],
13
+ mimes: ['video/mp4']
14
+ }
15
+ },
16
+ params: {
17
+ bidderDomain: 'https://www.example.com',
18
+ publisherId: '3001234'
19
+ }
20
+ };
21
+
22
+ it('should return true for a valid bid', function () {
23
+ assert.isTrue(spec.isBidRequestValid(validBid));
24
+ });
25
+
26
+ it('should return false if publisherId info is missing', function () {
27
+ let bid = deepClone(validBid);
28
+ delete bid.params.publisherId;
29
+ assert.isFalse(spec.isBidRequestValid(bid));
30
+ });
31
+
32
+ it('should return false for empty video parameters', function () {
33
+ let bid = deepClone(validBid);
34
+ delete bid.mediaTypes.video;
35
+ assert.isFalse(spec.isBidRequestValid(bid));
36
+ });
37
+
38
+ it('should return false for non instream context', function () {
39
+ let bid = deepClone(validBid);
40
+ bid.mediaTypes.video.context = 'outstream';
41
+ assert.isFalse(spec.isBidRequestValid(bid));
42
+ });
43
+ });
44
+
45
+ describe('buildRequests()', function () {
46
+ let validBidRequests, validBidderRequest;
47
+
48
+ beforeEach(function () {
49
+ validBidRequests = [{
50
+ bidder: 'ivs',
51
+ mediaTypes: {
52
+ video: {
53
+ context: 'instream',
54
+ playerSize: [640, 480],
55
+ mimes: ['video/mp4']
56
+ },
57
+ adUnitCode: 'video1',
58
+ transactionId: '1f420478-a3cd-452d-8e33-ac851e7bfba6',
59
+ bidId: '2d986cea00fd01',
60
+ bidderRequestId: '1022d594d79bf5',
61
+ auctionId: '835eacc9-cfe7-4fa2-8738-ab4b5c4f26d2'
62
+ },
63
+ params: {
64
+ bidderDomain: 'https://www.example.com',
65
+ publisherId: '3001234'
66
+ }
67
+ }];
68
+
69
+ validBidderRequest = {
70
+ bidderCode: 'ivs',
71
+ auctionId: '409bd13d-d0be-43c4-9c4f-e6f81ecff475',
72
+ bidderRequestId: '17bfe74bd98e68',
73
+ refererInfo: {
74
+ domain: 'example.com',
75
+ page: 'https://www.example.com/test.html',
76
+ },
77
+ bids: [{
78
+ bidder: 'ivs',
79
+ params: {
80
+ publisherId: '3001234'
81
+ },
82
+ mediaTypes: {
83
+ video: {
84
+ context: 'instream',
85
+ playerSize: [[640, 480]],
86
+ mimes: ['video/mp4']
87
+ }
88
+ },
89
+ adUnitCode: 'video1',
90
+ transactionId: '91b1977f-d05c-45c3-af1f-69b4e7d11e86',
91
+ sizes: [
92
+ [640, 480]
93
+ ],
94
+ }],
95
+ ortb2: {
96
+ site: {
97
+ publisher: {
98
+ domain: 'example.com',
99
+ }
100
+ }
101
+ }
102
+ };
103
+ });
104
+
105
+ it('should return a validate bid request', function () {
106
+ const bidRequest = spec.buildRequests(validBidRequests, validBidderRequest);
107
+ assert.equal(bidRequest.method, 'POST');
108
+ assert.deepEqual(bidRequest.options, { contentType: 'application/json' });
109
+ assert.ok(bidRequest.data);
110
+ });
111
+
112
+ it('should contain the required parameters', function () {
113
+ const bidRequest = spec.buildRequests(validBidRequests, validBidderRequest);
114
+ const bidderRequest = bidRequest.data;
115
+ assert.equal(bidderRequest.id, validBidderRequest.auctionId);
116
+ assert.ok(bidderRequest.site);
117
+ assert.ok(bidderRequest.source);
118
+ assert.lengthOf(bidderRequest.imp, 1);
119
+ });
120
+ });
121
+
122
+ describe('interpretResponse()', function () {
123
+ let serverResponse, bidderRequest, request;
124
+
125
+ beforeEach(function () {
126
+ serverResponse = {
127
+ body: {
128
+ id: '635ba1ed-68ba-47b4-bcec-4a86565f25f9',
129
+ seatbid: [{
130
+ bid: [{
131
+ crid: 3715,
132
+ id: 'bca9823d-ca7a-4dac-b292-0e1fae5948f8',
133
+ impid: '200d1ca23b15a6',
134
+ price: 1.5,
135
+ nurl: 'https://a.ivstracker.net/dev/getvastxml?ad_creativeid=3715&domain=localhost%3A9999&ip=136.158.51.114&pageurl=http%3A%2F%2Flocalhost%3A9999%2Ftest%2Fpages%2Fivs.html&spid=3001234&adplacement=&brand=unknown&device=desktop&adsclientid=A45-fd46289e-dc60-4be2-a637-4bc8eb953ddf&clientid=3b5e435f-0351-4ba0-bd2d-8d6f3454c5ed&uastring=Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F109.0.0.0%20Safari%2F537.36'
136
+ }]
137
+ }],
138
+ cur: 'USD'
139
+ },
140
+ headers: {}
141
+ };
142
+
143
+ bidderRequest = {
144
+ bidderCode: 'ivs',
145
+ auctionId: '635ba1ed-68ba-47b4-bcec-4a86565f25f9',
146
+ bidderRequestId: '1def3e1d03f5a',
147
+ bids: [{
148
+ bidder: 'ivs',
149
+ params: {
150
+ publisherId: '3001234'
151
+ },
152
+ mediaTypes: {
153
+ video: {
154
+ context: 'instream',
155
+ playerSize: [
156
+ [640, 480]
157
+ ],
158
+ mimes: ['video/mp4']
159
+ }
160
+ },
161
+ adUnitCode: 'video1',
162
+ transactionId: '89e5a3e7-df30-4ed6-a130-edfa91941e67',
163
+ bidId: '200d1ca23b15a6',
164
+ bidderRequestId: '1def3e1d03f5a',
165
+ auctionId: '635ba1ed-68ba-47b4-bcec-4a86565f25f9'
166
+ }],
167
+ };
168
+
169
+ request = { data: converter.toORTB({ bidderRequest }) };
170
+ });
171
+
172
+ if (FEATURES.VIDEO) {
173
+ it('should match parsed server response', function () {
174
+ const results = spec.interpretResponse(serverResponse, request);
175
+ const expected = {
176
+ mediaType: 'video',
177
+ playerWidth: 640,
178
+ playerHeight: 480,
179
+ vastUrl: 'https://a.ivstracker.net/dev/getvastxml?ad_creativeid=3715&domain=localhost%3A9999&ip=136.158.51.114&pageurl=http%3A%2F%2Flocalhost%3A9999%2Ftest%2Fpages%2Fivs.html&spid=3001234&adplacement=&brand=unknown&device=desktop&adsclientid=A45-fd46289e-dc60-4be2-a637-4bc8eb953ddf&clientid=3b5e435f-0351-4ba0-bd2d-8d6f3454c5ed&uastring=Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F109.0.0.0%20Safari%2F537.36',
180
+ requestId: '200d1ca23b15a6',
181
+ seatBidId: 'bca9823d-ca7a-4dac-b292-0e1fae5948f8',
182
+ cpm: 1.5,
183
+ currency: 'USD',
184
+ creativeId: 3715,
185
+ ttl: 360,
186
+ };
187
+
188
+ expect(results.length).to.equal(1);
189
+ sinon.assert.match(results[0], expected);
190
+ });
191
+ }
192
+
193
+ it('should return empty when no response', function () {
194
+ assert.ok(!spec.interpretResponse({}, request));
195
+ });
196
+ });
197
+ });
@@ -2,14 +2,14 @@ import * as utils from 'src/utils.js';
2
2
  import { config } from 'src/config.js';
3
3
  import { expect } from 'chai';
4
4
  import { newBidder } from 'src/adapters/bidderFactory.js';
5
- import { spec, storage, ERROR_CODES, FEATURE_TOGGLES, LOCAL_STORAGE_FEATURE_TOGGLES_KEY } from '../../../modules/ixBidAdapter.js';
5
+ import { spec, storage, ERROR_CODES, FEATURE_TOGGLES, LOCAL_STORAGE_FEATURE_TOGGLES_KEY, REQUESTED_FEATURE_TOGGLES } from '../../../modules/ixBidAdapter.js';
6
6
  import { createEidsArray } from 'modules/userId/eids.js';
7
7
  import { deepAccess, deepClone } from '../../../src/utils.js';
8
8
 
9
9
  describe('IndexexchangeAdapter', function () {
10
10
  const IX_SECURE_ENDPOINT = 'https://htlb.casalemedia.com/openrtb/pbjs';
11
- const VIDEO_ENDPOINT_VERSION = 8.1;
12
- const BANNER_ENDPOINT_VERSION = 7.2;
11
+
12
+ FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = ['test1', 'test2'];
13
13
 
14
14
  const SAMPLE_SCHAIN = {
15
15
  'ver': '1.0',
@@ -1669,27 +1669,6 @@ describe('IndexexchangeAdapter', function () {
1669
1669
  expect(r.user.testProperty).to.be.undefined;
1670
1670
  });
1671
1671
 
1672
- it('should not add fpd data to r object if it exceeds maximum request', function () {
1673
- const ortb2 = {
1674
- site: {
1675
- keywords: 'power tools, drills',
1676
- search: 'drill',
1677
- },
1678
- user: {
1679
- keywords: Array(1200).join('#'),
1680
- }
1681
- };
1682
-
1683
- const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
1684
- bid.mediaTypes.banner.sizes = LARGE_SET_OF_SIZES;
1685
-
1686
- const request = spec.buildRequests([bid], { ortb2 })[0];
1687
- const r = extractPayload(request);
1688
-
1689
- expect(r.site.ref).to.exist;
1690
- expect(r.site.keywords).to.be.undefined;
1691
- expect(r.user).to.be.undefined;
1692
- });
1693
1672
  it('should set gpp and gpp_sid field when defined', function () {
1694
1673
  const request = spec.buildRequests(DEFAULT_BANNER_VALID_BID, { ortb2: {regs: {gpp: 'gpp', gpp_sid: [1]}} })[0];
1695
1674
  const r = extractPayload(request);
@@ -2273,7 +2252,7 @@ describe('IndexexchangeAdapter', function () {
2273
2252
  expect(requests[0].data.sn).to.be.undefined;
2274
2253
  });
2275
2254
 
2276
- it('2 requests due to 2 ad units, one larger than url size', function () {
2255
+ it('1 request, one larger than url size, no splitting', function () {
2277
2256
  const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
2278
2257
  bid.mediaTypes.banner.sizes = LARGE_SET_OF_SIZES;
2279
2258
  bid.params.siteId = '124';
@@ -2283,10 +2262,10 @@ describe('IndexexchangeAdapter', function () {
2283
2262
 
2284
2263
  const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
2285
2264
  expect(requests).to.be.an('array');
2286
- expect(requests).to.have.lengthOf(2);
2265
+ expect(requests).to.have.lengthOf(1);
2287
2266
  });
2288
2267
 
2289
- it('6 ad units should generate only 4 requests', function () {
2268
+ it('6 ad units should generate only 1 requests', function () {
2290
2269
  const bid1 = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
2291
2270
  bid1.mediaTypes.banner.sizes = LARGE_SET_OF_SIZES;
2292
2271
  bid1.params.siteId = '121';
@@ -2312,7 +2291,7 @@ describe('IndexexchangeAdapter', function () {
2312
2291
  const requests = spec.buildRequests([bid1, bid2, bid3, bid4, bid5, bid6], DEFAULT_OPTION);
2313
2292
 
2314
2293
  expect(requests).to.be.an('array');
2315
- expect(requests).to.have.lengthOf(4);
2294
+ expect(requests).to.have.lengthOf(1);
2316
2295
 
2317
2296
  for (var i = 0; i < requests.length; i++) {
2318
2297
  const reqSize = `${requests[i].url}?${utils.parseQueryStringParameters(requests[i].data)}`.length;
@@ -3611,7 +3590,7 @@ describe('IndexexchangeAdapter', function () {
3611
3590
  }
3612
3591
  }
3613
3592
  FEATURE_TOGGLES.getFeatureToggles(LOCAL_STORAGE_FEATURE_TOGGLES_KEY);
3614
- expect(FEATURE_TOGGLES.isFeatureEnabled('test')).to.be.undefined;
3593
+ expect(FEATURE_TOGGLES.isFeatureEnabled('test')).to.be.false;
3615
3594
  expect(FEATURE_TOGGLES.featureToggles).to.deep.equal({});
3616
3595
  });
3617
3596
 
@@ -3672,6 +3651,82 @@ describe('IndexexchangeAdapter', function () {
3672
3651
  expect(requests).to.be.an('array');
3673
3652
  expect(requests).to.have.lengthOf(1);
3674
3653
  });
3654
+
3655
+ it('request should have requested feature toggles when local storage is enabled', function () {
3656
+ sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
3657
+ const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
3658
+ const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
3659
+ const r = extractPayload(requests[0]);
3660
+ expect(r.ext.features).to.exist;
3661
+ expect(Object.keys(r.ext.features).length).to.equal(FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES.length);
3662
+ });
3663
+
3664
+ it('request should have requested feature toggles when local storage is not enabled', function () {
3665
+ sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
3666
+ const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
3667
+ const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
3668
+ const r = extractPayload(requests[0]);
3669
+ expect(r.ext.features).to.exist;
3670
+ expect(Object.keys(r.ext.features).length).to.equal(FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES.length);
3671
+ });
3672
+
3673
+ it('request should not have any feature toggles when there is no requested feature toggle', function () {
3674
+ sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
3675
+ const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
3676
+ FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = []
3677
+ const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
3678
+ const r = extractPayload(requests[0]);
3679
+ expect(r.ext.features).to.be.undefined;
3680
+ });
3681
+
3682
+ it('request should not have any feature toggles when there is no requested feature toggle and local storage not enabled', function () {
3683
+ sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
3684
+ const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
3685
+ const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
3686
+ const r = extractPayload(requests[0]);
3687
+ FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = []
3688
+ expect(r.ext.features).to.be.undefined;
3689
+ });
3690
+
3691
+ it('correct activation status of requested feature toggles when local storage not enabled', function () {
3692
+ sandbox.stub(storage, 'localStorageIsEnabled').returns(false);
3693
+ const bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
3694
+ FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES = ['test1']
3695
+ const requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
3696
+ const r = extractPayload(requests[0]);
3697
+ expect(r.ext.features).to.deep.equal({
3698
+ [FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: { activated: false }
3699
+ });
3700
+ });
3701
+
3702
+ it('correct activation status of requested feature toggles', function () {
3703
+ sandbox.stub(storage, 'localStorageIsEnabled').returns(true);
3704
+ serverResponse.body.ext.features = {
3705
+ [FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: {
3706
+ activated: true
3707
+ }
3708
+ }
3709
+ FEATURE_TOGGLES.setFeatureToggles(serverResponse);
3710
+ let bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
3711
+ let requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
3712
+ let r = extractPayload(requests[0]);
3713
+ expect(r.ext.features).to.deep.equal({
3714
+ [FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: { activated: true }
3715
+ });
3716
+
3717
+ serverResponse.body.ext.features = {
3718
+ [FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: {
3719
+ activated: false
3720
+ }
3721
+ }
3722
+ FEATURE_TOGGLES.setFeatureToggles(serverResponse);
3723
+ bid = utils.deepClone(DEFAULT_BANNER_VALID_BID[0]);
3724
+ requests = spec.buildRequests([bid, DEFAULT_BANNER_VALID_BID[0]], DEFAULT_OPTION);
3725
+ r = extractPayload(requests[0]);
3726
+ expect(r.ext.features).to.deep.equal({
3727
+ [FEATURE_TOGGLES.REQUESTED_FEATURE_TOGGLES[0]]: { activated: false }
3728
+ });
3729
+ });
3675
3730
  });
3676
3731
 
3677
3732
  describe('LocalStorage error codes', () => {
@@ -3751,48 +3806,6 @@ describe('IndexexchangeAdapter', function () {
3751
3806
  expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.BID_FLOOR_INVALID_FORMAT]: 1 } });
3752
3807
  });
3753
3808
 
3754
- it('should log ERROR_CODES.IX_FPD_EXCEEDS_MAX_SIZE in LocalStorage when there is logError called.', () => {
3755
- const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
3756
-
3757
- config.setConfig({
3758
- ix: {
3759
- firstPartyData: {
3760
- cd: Array(1700).join('#')
3761
- }
3762
- }
3763
- });
3764
-
3765
- expect(spec.isBidRequestValid(bid)).to.be.true;
3766
- spec.buildRequests([bid], {});
3767
- expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.IX_FPD_EXCEEDS_MAX_SIZE]: 2 } });
3768
- });
3769
-
3770
- it('should log ERROR_CODES.EXCEEDS_MAX_SIZE in LocalStorage when there is logError called.', () => {
3771
- const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
3772
- bid.bidderRequestId = Array(8000).join('#');
3773
-
3774
- expect(spec.isBidRequestValid(bid)).to.be.true;
3775
- spec.buildRequests([bid], {});
3776
- expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.EXCEEDS_MAX_SIZE]: 2 } });
3777
- });
3778
-
3779
- it('should log ERROR_CODES.PB_FPD_EXCEEDS_MAX_SIZE in LocalStorage when there is logError called.', () => {
3780
- const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
3781
- const ortb2 = {
3782
- site: {
3783
- ext: {
3784
- data: {
3785
- pageType: Array(5700).join('#')
3786
- }
3787
- }
3788
- }
3789
- };
3790
-
3791
- expect(spec.isBidRequestValid(bid)).to.be.true;
3792
- spec.buildRequests([bid], { ortb2 });
3793
- expect(JSON.parse(localStorageValues[key])).to.deep.equal({ [TODAY]: { [ERROR_CODES.PB_FPD_EXCEEDS_MAX_SIZE]: 2 } });
3794
- });
3795
-
3796
3809
  it('should log ERROR_CODES.VIDEO_DURATION_INVALID in LocalStorage when there is logError called.', () => {
3797
3810
  const bid = utils.deepClone(DEFAULT_MULTIFORMAT_VIDEO_VALID_BID[0]);
3798
3811
  bid.params.video.minduration = 1;
@@ -309,71 +309,53 @@ describe('jixie Adapter', function () {
309
309
 
310
310
  it('should populate eids when supported userIds are available', function () {
311
311
  const oneSpecialBidReq = Object.assign({}, bidRequests_[0], {
312
- userId: {
313
- tdid: '11111111-2222-3333-4444-555555555555',
314
- uid2: { id: 'AbCdEfGhIjKlMnO9qdQBW7qtMw8f1WTUvtkHe6u+fqLfhbtsqrJ697Z6YoI3IB9klGUv1wvlFIbwH7ELDlqQBGtj8AC1v7fMJ/Q45E7W90dts7UQLTDMLNmtHBRDXVb0Fpas4Vh3yN1jGVQNhzXC/RpGIVtZE8dCxcjfa7VfcTNcvxxxxx==' },
315
- pubProvidedId: [{
316
- source: 'puburl1.com',
317
- uids: [{
318
- id: 'pubid1',
319
- atype: 1,
320
- ext: {
321
- stype: 'ppuid'
322
- }
323
- }]
324
- }, {
325
- source: 'puburl2.com',
326
- uids: [{
327
- id: 'pubid2'
328
- }]
329
- }]
330
- }
331
- });
332
- const request = spec.buildRequests([oneSpecialBidReq], bidderRequest_);
333
- const payload = JSON.parse(request.data);
334
- expect(payload.eids).to.deep.include({
335
- 'source': 'adserver.org',
336
- 'uids': [
312
+ userIdAsEids: [
337
313
  {
338
- 'id': '11111111-2222-3333-4444-555555555555',
339
- 'atype': 1,
340
- 'ext': {
341
- 'rtiPartner': 'TDID'
342
- }
343
- }
344
- ]
345
- });
346
- expect(payload.eids).to.deep.include({
347
- 'source': 'uidapi.com',
348
- 'uids': [
314
+ 'source': 'adserver.org',
315
+ 'uids': [
316
+ {
317
+ 'id': '11111111-2222-3333-4444-555555555555',
318
+ 'atype': 1,
319
+ 'ext': {
320
+ 'rtiPartner': 'TDID'
321
+ }
322
+ }
323
+ ]
324
+ },
349
325
  {
350
- 'id': 'AbCdEfGhIjKlMnO9qdQBW7qtMw8f1WTUvtkHe6u+fqLfhbtsqrJ697Z6YoI3IB9klGUv1wvlFIbwH7ELDlqQBGtj8AC1v7fMJ/Q45E7W90dts7UQLTDMLNmtHBRDXVb0Fpas4Vh3yN1jGVQNhzXC/RpGIVtZE8dCxcjfa7VfcTNcvxxxxx==',
351
- 'atype': 3
352
- }
353
- ]
354
- });
355
-
356
- expect(payload.eids).to.deep.include({
357
- 'source': 'puburl1.com',
358
- 'uids': [
326
+ 'source': 'uidapi.com',
327
+ 'uids': [
328
+ {
329
+ 'id': 'AbCdEfGhIjKlMnO9qdQBW7qtMw8f1WTUvtkHe6u+fqLfhbtsqrJ697Z6YoI3IB9klGUv1wvlFIbwH7ELDlqQBGtj8AC1v7fMJ/Q45E7W90dts7UQLTDMLNmtHBRDXVb0Fpas4Vh3yN1jGVQNhzXC/RpGIVtZE8dCxcjfa7VfcTNcvxxxxx==',
330
+ 'atype': 3
331
+ }
332
+ ]
333
+ },
359
334
  {
360
- 'id': 'pubid1',
361
- 'atype': 1,
362
- 'ext': {
363
- 'stype': 'ppuid'
364
- }
365
- }
366
- ]
367
- });
368
-
369
- expect(payload.eids).to.deep.include({
370
- 'source': 'puburl2.com',
371
- 'uids': [
335
+ 'source': 'puburl1.com',
336
+ 'uids': [
337
+ {
338
+ 'id': 'pubid1',
339
+ 'atype': 1,
340
+ 'ext': {
341
+ 'stype': 'ppuid'
342
+ }
343
+ }
344
+ ]
345
+ },
372
346
  {
373
- 'id': 'pubid2'
374
- }
375
- ]
347
+ 'source': 'puburl2.com',
348
+ 'uids': [
349
+ {
350
+ 'id': 'pubid2'
351
+ }
352
+ ]
353
+ },
354
+ ],
376
355
  });
356
+ const request = spec.buildRequests([oneSpecialBidReq], bidderRequest_);
357
+ const payload = JSON.parse(request.data);
358
+ expect(payload.eids).to.eql(oneSpecialBidReq.userIdAsEids);
377
359
  });
378
360
  });// describe
379
361
 
@@ -366,26 +366,6 @@ describe('KoblerAdapter', function () {
366
366
  expect(openRtbRequest.imp[1].pmp.deals[1].id).to.be.equal(dealIds2[1]);
367
367
  });
368
368
 
369
- it('should read timeout from config', function () {
370
- const timeout = 4000;
371
- const validBidRequests = [createValidBidRequest()];
372
- // No timeout field
373
- const bidderRequest = {
374
- auctionId: 'c1243d83-0bed-4fdb-8c76-42b456be17d0',
375
- refererInfo: {
376
- page: 'example.com'
377
- }
378
- };
379
- config.setConfig({
380
- bidderTimeout: timeout
381
- });
382
-
383
- const result = spec.buildRequests(validBidRequests, bidderRequest);
384
- const openRtbRequest = JSON.parse(result.data);
385
-
386
- expect(openRtbRequest.tmax).to.be.equal(timeout);
387
- });
388
-
389
369
  it('should read floor price using floors module', function () {
390
370
  const floorPriceFor580x400 = 6.5148;
391
371
  const floorPriceForAnySize = 4.2343;
@@ -313,6 +313,16 @@ describe('LiveIntentId', function() {
313
313
  expect(result).to.eql({'lipb': {'lipbid': 'foo', 'nonId': 'foo', 'uid2': 'bar'}, 'uid2': {'id': 'bar'}});
314
314
  });
315
315
 
316
+ it('should decode a bidswitch id to a seperate object when present', function() {
317
+ const result = liveIntentIdSubmodule.decode({ nonId: 'foo', bidswitch: 'bar' });
318
+ expect(result).to.eql({'lipb': {'lipbid': 'foo', 'nonId': 'foo', 'bidswitch': 'bar'}, 'bidswitch': {'id': 'bar'}});
319
+ });
320
+
321
+ it('should decode a medianet id to a seperate object when present', function() {
322
+ const result = liveIntentIdSubmodule.decode({ nonId: 'foo', medianet: 'bar' });
323
+ expect(result).to.eql({'lipb': {'lipbid': 'foo', 'nonId': 'foo', 'medianet': 'bar'}, 'medianet': {'id': 'bar'}});
324
+ });
325
+
316
326
  it('should decode values with uid2 but no nonId', function() {
317
327
  const result = liveIntentIdSubmodule.decode({ uid2: 'bar' });
318
328
  expect(result).to.eql({'uid2': {'id': 'bar'}});
@@ -133,7 +133,7 @@ describe('luponmediaBidAdapter', function () {
133
133
  }
134
134
  ],
135
135
  'auctionStart': 1587413920820,
136
- 'timeout': 2000,
136
+ 'timeout': 1500,
137
137
  'refererInfo': {
138
138
  'page': 'https://novi.ba/clanak/176067/fast-car-beginner-s-guide-to-tuning-turbo-engines',
139
139
  'reachedTop': true,