prebid.js 7.43.0 → 7.44.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 (401) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/adagioBidAdapter.js +1 -1
  4. package/dist/adbookpspBidAdapter.js +1 -1
  5. package/dist/adgenerationBidAdapter.js +1 -1
  6. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  7. package/dist/admixerIdSystem.js +1 -1
  8. package/dist/adnuntiusBidAdapter.js +1 -1
  9. package/dist/adqueryBidAdapter.js +1 -1
  10. package/dist/adqueryIdSystem.js +1 -1
  11. package/dist/adrelevantisBidAdapter.js +1 -1
  12. package/dist/adrinoBidAdapter.js +1 -1
  13. package/dist/adriverIdSystem.js +1 -1
  14. package/dist/adsinteractiveBidAdapter.js +1 -0
  15. package/dist/adtrgtmeBidAdapter.js +1 -1
  16. package/dist/adxcgBidAdapter.js +1 -1
  17. package/dist/adyoulikeBidAdapter.js +1 -1
  18. package/dist/aidemBidAdapter.js +1 -1
  19. package/dist/airgridRtdProvider.js +1 -1
  20. package/dist/ajaBidAdapter.js +1 -1
  21. package/dist/akamaiDapRtdProvider.js +1 -1
  22. package/dist/amxBidAdapter.js +1 -1
  23. package/dist/amxIdSystem.js +1 -1
  24. package/dist/appierAnalyticsAdapter.js +1 -1
  25. package/dist/appnexusBidAdapter.js +1 -1
  26. package/dist/apstreamBidAdapter.js +1 -1
  27. package/dist/asoBidAdapter.js +1 -1
  28. package/dist/atsAnalyticsAdapter.js +1 -1
  29. package/dist/audiencerunBidAdapter.js +1 -1
  30. package/dist/axonixBidAdapter.js +1 -1
  31. package/dist/bedigitechBidAdapter.js +1 -0
  32. package/dist/bidglassBidAdapter.js +1 -1
  33. package/dist/big-richmediaBidAdapter.js +1 -1
  34. package/dist/bluebillywigBidAdapter.js +1 -1
  35. package/dist/blueconicRtdProvider.js +1 -1
  36. package/dist/bridgewellBidAdapter.js +1 -1
  37. package/dist/brightMountainMediaBidAdapter.js +1 -1
  38. package/dist/brightcomBidAdapter.js +1 -1
  39. package/dist/brightcomSSPBidAdapter.js +1 -1
  40. package/dist/browsiRtdProvider.js +1 -1
  41. package/dist/byDataAnalyticsAdapter.js +1 -1
  42. package/dist/carodaBidAdapter.js +1 -1
  43. package/dist/chtnwBidAdapter.js +1 -1
  44. package/dist/concertBidAdapter.js +1 -1
  45. package/dist/connectadBidAdapter.js +1 -1
  46. package/dist/consumableBidAdapter.js +1 -1
  47. package/dist/conversantAnalyticsAdapter.js +1 -1
  48. package/dist/conversantBidAdapter.js +1 -1
  49. package/dist/craftBidAdapter.js +1 -1
  50. package/dist/criteoBidAdapter.js +1 -1
  51. package/dist/criteoIdSystem.js +1 -1
  52. package/dist/cwireBidAdapter.js +1 -1
  53. package/dist/czechAdIdSystem.js +1 -1
  54. package/dist/dacIdSystem.js +1 -1
  55. package/dist/deepintentDpesIdSystem.js +1 -1
  56. package/dist/dependencies.json +3 -0
  57. package/dist/discoveryBidAdapter.js +1 -1
  58. package/dist/dspxBidAdapter.js +1 -1
  59. package/dist/eplanningBidAdapter.js +1 -1
  60. package/dist/feedadBidAdapter.js +1 -1
  61. package/dist/finativeBidAdapter.js +1 -1
  62. package/dist/fintezaAnalyticsAdapter.js +1 -1
  63. package/dist/fledgeForGpt.js +1 -1
  64. package/dist/freewheel-sspBidAdapter.js +1 -1
  65. package/dist/ftrackIdSystem.js +1 -1
  66. package/dist/gdprEnforcement.js +1 -1
  67. package/dist/glimpseBidAdapter.js +1 -1
  68. package/dist/gmosspBidAdapter.js +1 -1
  69. package/dist/gnetBidAdapter.js +1 -1
  70. package/dist/goldbachBidAdapter.js +1 -1
  71. package/dist/gravitoIdSystem.js +1 -1
  72. package/dist/greenbidsAnalyticsAdapter.js +1 -0
  73. package/dist/gridBidAdapter.js +1 -1
  74. package/dist/gridNMBidAdapter.js +1 -1
  75. package/dist/growthCodeAnalyticsAdapter.js +1 -1
  76. package/dist/growthCodeIdSystem.js +1 -1
  77. package/dist/gumgumBidAdapter.js +1 -1
  78. package/dist/h12mediaBidAdapter.js +1 -1
  79. package/dist/hadronAnalyticsAdapter.js +1 -1
  80. package/dist/hadronIdSystem.js +1 -1
  81. package/dist/hadronRtdProvider.js +1 -1
  82. package/dist/id5IdSystem.js +1 -1
  83. package/dist/idWardRtdProvider.js +1 -1
  84. package/dist/identityLinkIdSystem.js +1 -1
  85. package/dist/idxIdSystem.js +1 -1
  86. package/dist/imRtdProvider.js +1 -1
  87. package/dist/impactifyBidAdapter.js +1 -1
  88. package/dist/improvedigitalBidAdapter.js +1 -1
  89. package/dist/imuIdSystem.js +1 -1
  90. package/dist/inmarBidAdapter.js +1 -1
  91. package/dist/insticatorBidAdapter.js +1 -1
  92. package/dist/intentIqIdSystem.js +1 -1
  93. package/dist/invibesBidAdapter.js +1 -1
  94. package/dist/ixBidAdapter.js +1 -1
  95. package/dist/jixieBidAdapter.js +1 -1
  96. package/dist/justpremiumBidAdapter.js +1 -1
  97. package/dist/kargoBidAdapter.js +1 -1
  98. package/dist/konduitAnalyticsAdapter.js +1 -1
  99. package/dist/kueezBidAdapter.js +1 -1
  100. package/dist/kueezRtbBidAdapter.js +1 -1
  101. package/dist/kulturemediaBidAdapter.js +1 -1
  102. package/dist/lassoBidAdapter.js +1 -1
  103. package/dist/lifestreetBidAdapter.js +1 -1
  104. package/dist/liveIntentIdSystem.js +1 -1
  105. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  106. package/dist/logicadBidAdapter.js +1 -1
  107. package/dist/loglyliftBidAdapter.js +1 -1
  108. package/dist/lotamePanoramaIdSystem.js +1 -1
  109. package/dist/magniteAnalyticsAdapter.js +1 -1
  110. package/dist/malltvAnalyticsAdapter.js +1 -1
  111. package/dist/marsmediaBidAdapter.js +1 -1
  112. package/dist/mediafuseBidAdapter.js +1 -1
  113. package/dist/mediagoBidAdapter.js +1 -1
  114. package/dist/mediakeysBidAdapter.js +1 -1
  115. package/dist/mediasquareBidAdapter.js +1 -1
  116. package/dist/merkleIdSystem.js +1 -1
  117. package/dist/mgidBidAdapter.js +1 -1
  118. package/dist/mgidRtdProvider.js +1 -1
  119. package/dist/minutemediaBidAdapter.js +1 -1
  120. package/dist/minutemediaplusBidAdapter.js +1 -1
  121. package/dist/mwOpenLinkIdSystem.js +1 -1
  122. package/dist/naveggIdSystem.js +1 -1
  123. package/dist/nexx360BidAdapter.js +1 -1
  124. package/dist/nobidBidAdapter.js +1 -1
  125. package/dist/not-for-prod/prebid.js +205 -202
  126. package/dist/novatiqIdSystem.js +1 -1
  127. package/dist/oguryBidAdapter.js +1 -1
  128. package/dist/onetagBidAdapter.js +1 -1
  129. package/dist/ooloAnalyticsAdapter.js +1 -1
  130. package/dist/openxOrtbBidAdapter.js +1 -1
  131. package/dist/optidigitalBidAdapter.js +1 -1
  132. package/dist/ortbConverter.js +1 -1
  133. package/dist/outbrainBidAdapter.js +1 -1
  134. package/dist/parrableIdSystem.js +1 -1
  135. package/dist/permutiveRtdProvider.js +1 -1
  136. package/dist/pixfutureBidAdapter.js +1 -1
  137. package/dist/prebid-core.js +1 -1
  138. package/dist/prebidServerBidAdapter.js +1 -1
  139. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  140. package/dist/pubCommonId.js +1 -1
  141. package/dist/publinkIdSystem.js +1 -1
  142. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  143. package/dist/pubmaticBidAdapter.js +1 -1
  144. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  145. package/dist/pxyzBidAdapter.js +1 -1
  146. package/dist/quantcastBidAdapter.js +1 -1
  147. package/dist/quantcastIdSystem.js +1 -1
  148. package/dist/readpeakBidAdapter.js +1 -1
  149. package/dist/realvuAnalyticsAdapter.js +1 -1
  150. package/dist/relaidoBidAdapter.js +1 -1
  151. package/dist/rhythmoneBidAdapter.js +1 -1
  152. package/dist/riseBidAdapter.js +1 -1
  153. package/dist/roxotAnalyticsAdapter.js +1 -1
  154. package/dist/rtbhouseBidAdapter.js +1 -1
  155. package/dist/rtdModule.js +1 -1
  156. package/dist/rubiconAnalyticsAdapter.js +1 -1
  157. package/dist/rubiconBidAdapter.js +1 -1
  158. package/dist/seedingAllianceBidAdapter.js +1 -1
  159. package/dist/seedtagBidAdapter.js +1 -1
  160. package/dist/sharedIdSystem.js +1 -1
  161. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  162. package/dist/sharethroughBidAdapter.js +1 -1
  163. package/dist/shinezBidAdapter.js +1 -1
  164. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  165. package/dist/smaatoBidAdapter.js +1 -1
  166. package/dist/smartadserverBidAdapter.js +1 -1
  167. package/dist/smartxBidAdapter.js +1 -1
  168. package/dist/smilewantedBidAdapter.js +1 -1
  169. package/dist/sonobiBidAdapter.js +1 -1
  170. package/dist/sovrnAnalyticsAdapter.js +1 -1
  171. package/dist/sovrnBidAdapter.js +1 -1
  172. package/dist/sspBCBidAdapter.js +1 -1
  173. package/dist/staqAnalyticsAdapter.js +1 -1
  174. package/dist/stroeerCoreBidAdapter.js +1 -1
  175. package/dist/stvBidAdapter.js +1 -1
  176. package/dist/sublimeBidAdapter.js +1 -1
  177. package/dist/synacormediaBidAdapter.js +1 -1
  178. package/dist/taboolaBidAdapter.js +1 -1
  179. package/dist/targetVideoBidAdapter.js +1 -1
  180. package/dist/teadsBidAdapter.js +1 -1
  181. package/dist/teadsIdSystem.js +1 -1
  182. package/dist/trionBidAdapter.js +1 -1
  183. package/dist/tripleliftBidAdapter.js +1 -1
  184. package/dist/trustpidSystem.js +1 -1
  185. package/dist/ttdBidAdapter.js +1 -1
  186. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  187. package/dist/uid2IdSystem.js +1 -1
  188. package/dist/underdogmediaBidAdapter.js +1 -1
  189. package/dist/undertoneBidAdapter.js +1 -1
  190. package/dist/userId.js +1 -1
  191. package/dist/validationFpdModule.js +1 -1
  192. package/dist/vidazooBidAdapter.js +1 -1
  193. package/dist/videobyteBidAdapter.js +1 -1
  194. package/dist/vidoomyBidAdapter.js +1 -1
  195. package/dist/visxBidAdapter.js +1 -1
  196. package/dist/vuukleBidAdapter.js +1 -1
  197. package/dist/weboramaRtdProvider.js +1 -1
  198. package/dist/widespaceBidAdapter.js +1 -1
  199. package/dist/winrBidAdapter.js +1 -1
  200. package/dist/yahoosspBidAdapter.js +1 -1
  201. package/dist/yieldmoBidAdapter.js +1 -1
  202. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  203. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  204. package/dist/zeotapIdPlusIdSystem.js +1 -1
  205. package/dist/zeta_global_sspBidAdapter.js +1 -1
  206. package/libraries/ortbConverter/converter.js +3 -2
  207. package/modules/33acrossIdSystem.js +5 -2
  208. package/modules/adagioBidAdapter.js +3 -4
  209. package/modules/adkernelAdnAnalyticsAdapter.js +4 -2
  210. package/modules/admixerIdSystem.js +4 -2
  211. package/modules/adnuntiusBidAdapter.js +1 -1
  212. package/modules/adqueryBidAdapter.js +1 -1
  213. package/modules/adqueryIdSystem.js +2 -1
  214. package/modules/adrinoBidAdapter.js +24 -16
  215. package/modules/adriverIdSystem.js +3 -2
  216. package/modules/adsinteractiveBidAdapter.js +144 -0
  217. package/modules/adsinteractiveBidAdapter.md +31 -0
  218. package/modules/adyoulikeBidAdapter.js +2 -3
  219. package/modules/aidemBidAdapter.js +5 -0
  220. package/modules/airgridRtdProvider.js +4 -2
  221. package/modules/ajaBidAdapter.js +38 -16
  222. package/modules/akamaiDapRtdProvider.js +2 -1
  223. package/modules/amxBidAdapter.js +11 -9
  224. package/modules/appnexusBidAdapter.js +8 -8
  225. package/modules/apstreamBidAdapter.js +1 -1
  226. package/modules/atsAnalyticsAdapter.js +4 -2
  227. package/modules/audiencerunBidAdapter.js +9 -10
  228. package/modules/bedigitechBidAdapter.js +67 -0
  229. package/modules/bedigitechBidAdapter.md +32 -0
  230. package/modules/bluebillywigBidAdapter.js +2 -4
  231. package/modules/blueconicRtdProvider.js +2 -1
  232. package/modules/brightcomBidAdapter.js +0 -1
  233. package/modules/brightcomSSPBidAdapter.js +0 -1
  234. package/modules/browsiRtdProvider.js +4 -2
  235. package/modules/byDataAnalyticsAdapter.js +6 -3
  236. package/modules/concertBidAdapter.js +14 -7
  237. package/modules/connectadBidAdapter.js +2 -4
  238. package/modules/craftBidAdapter.js +29 -24
  239. package/modules/criteoBidAdapter.js +4 -2
  240. package/modules/criteoIdSystem.js +6 -2
  241. package/modules/czechAdIdSystem.js +3 -2
  242. package/modules/dacIdSystem.js +4 -3
  243. package/modules/deepintentDpesIdSystem.js +3 -2
  244. package/modules/discoveryBidAdapter.js +1 -1
  245. package/modules/dspxBidAdapter.js +223 -15
  246. package/modules/fintezaAnalyticsAdapter.js +5 -3
  247. package/modules/fledgeForGpt.js +54 -6
  248. package/modules/ftrackIdSystem.js +6 -6
  249. package/modules/gdprEnforcement.js +56 -68
  250. package/modules/glimpseBidAdapter.js +1 -4
  251. package/modules/gnetBidAdapter.js +1 -2
  252. package/modules/gravitoIdSystem.js +5 -3
  253. package/modules/greenbidsAnalyticsAdapter.js +181 -0
  254. package/modules/greenbidsAnalyticsAdapter.md +23 -0
  255. package/modules/gridBidAdapter.js +13 -7
  256. package/modules/growthCodeAnalyticsAdapter.js +3 -2
  257. package/modules/growthCodeIdSystem.js +3 -2
  258. package/modules/gumgumBidAdapter.js +7 -17
  259. package/modules/hadronAnalyticsAdapter.js +5 -3
  260. package/modules/hadronIdSystem.js +3 -1
  261. package/modules/hadronRtdProvider.js +4 -2
  262. package/modules/id5IdSystem.js +4 -2
  263. package/modules/idWardRtdProvider.js +2 -1
  264. package/modules/identityLinkIdSystem.js +5 -2
  265. package/modules/idxIdSystem.js +3 -2
  266. package/modules/imRtdProvider.js +3 -1
  267. package/modules/impactifyBidAdapter.js +2 -4
  268. package/modules/imuIdSystem.js +6 -3
  269. package/modules/insticatorBidAdapter.js +1 -1
  270. package/modules/intentIqIdSystem.js +3 -2
  271. package/modules/invibesBidAdapter.js +1 -1
  272. package/modules/ixBidAdapter.js +1 -1
  273. package/modules/jixieBidAdapter.js +3 -6
  274. package/modules/kargoBidAdapter.js +1 -1
  275. package/modules/kueezRtbBidAdapter.js +1 -1
  276. package/modules/liveIntentIdSystem.js +3 -2
  277. package/modules/lotamePanoramaIdSystem.js +3 -2
  278. package/modules/magniteAnalyticsAdapter.js +25 -6
  279. package/modules/mediafuseBidAdapter.js +1 -1
  280. package/modules/mediagoBidAdapter.js +1 -1
  281. package/modules/mediakeysBidAdapter.js +2 -3
  282. package/modules/merkleIdSystem.js +2 -1
  283. package/modules/mgidBidAdapter.js +1 -1
  284. package/modules/mgidRtdProvider.js +3 -1
  285. package/modules/minutemediaplusBidAdapter.js +1 -1
  286. package/modules/mwOpenLinkIdSystem.js +3 -2
  287. package/modules/naveggIdSystem.js +3 -2
  288. package/modules/nexx360BidAdapter.js +0 -1
  289. package/modules/nobidBidAdapter.js +1 -1
  290. package/modules/novatiqIdSystem.js +6 -3
  291. package/modules/onetagBidAdapter.js +1 -1
  292. package/modules/openxOrtbBidAdapter.js +19 -7
  293. package/modules/openxOrtbBidAdapter.md +6 -5
  294. package/modules/parrableIdSystem.js +4 -2
  295. package/modules/permutiveRtdProvider.js +2 -1
  296. package/modules/prebidServerBidAdapter/index.js +9 -3
  297. package/modules/prebidServerBidAdapter/ortbConverter.js +12 -2
  298. package/modules/prebidmanagerAnalyticsAdapter.js +3 -2
  299. package/modules/pubCommonId.js +6 -3
  300. package/modules/publinkIdSystem.js +2 -1
  301. package/modules/pubmaticAnalyticsAdapter.js +12 -1
  302. package/modules/pubmaticBidAdapter.js +192 -222
  303. package/modules/pubwiseAnalyticsAdapter.js +5 -3
  304. package/modules/quantcastBidAdapter.js +1 -1
  305. package/modules/quantcastIdSystem.js +5 -3
  306. package/modules/realvuAnalyticsAdapter.js +6 -3
  307. package/modules/roxotAnalyticsAdapter.js +5 -2
  308. package/modules/rtbhouseBidAdapter.js +5 -3
  309. package/modules/rtdModule/index.js +3 -0
  310. package/modules/rubiconAnalyticsAdapter.js +3 -2
  311. package/modules/rubiconBidAdapter.js +1 -0
  312. package/modules/sharedIdSystem.js +12 -9
  313. package/modules/sharethroughBidAdapter.js +1 -2
  314. package/modules/sigmoidAnalyticsAdapter.js +4 -2
  315. package/modules/smartadserverBidAdapter.js +2 -3
  316. package/modules/sovrnBidAdapter.js +2 -3
  317. package/modules/staqAnalyticsAdapter.js +5 -3
  318. package/modules/stroeerCoreBidAdapter.js +3 -2
  319. package/modules/taboolaBidAdapter.js +4 -2
  320. package/modules/teadsBidAdapter.js +1 -1
  321. package/modules/teadsIdSystem.js +2 -1
  322. package/modules/tripleliftBidAdapter.js +1 -1
  323. package/modules/trustpidSystem.js +3 -2
  324. package/modules/ttdBidAdapter.js +11 -5
  325. package/modules/uid2IdSystem.js +3 -2
  326. package/modules/undertoneBidAdapter.js +1 -0
  327. package/modules/userId/index.js +5 -2
  328. package/modules/validationFpdModule/index.js +3 -2
  329. package/modules/vidazooBidAdapter.js +14 -5
  330. package/modules/vidoomyBidAdapter.js +29 -1
  331. package/modules/weboramaRtdProvider.js +3 -1
  332. package/modules/yieldmoBidAdapter.js +2 -3
  333. package/modules/yuktamediaAnalyticsAdapter.js +4 -2
  334. package/modules/zeotapIdPlusIdSystem.js +3 -2
  335. package/modules/zeta_global_sspBidAdapter.js +3 -0
  336. package/package.json +1 -1
  337. package/plugins/eslint/validateImports.js +13 -14
  338. package/plugins/pbjsGlobals.js +3 -1
  339. package/src/activities/modules.js +5 -0
  340. package/src/adapterManager.js +4 -8
  341. package/src/adapters/bidderFactory.js +30 -16
  342. package/src/consentHandler.js +42 -0
  343. package/src/refererDetection.js +39 -21
  344. package/src/secureCreatives.js +2 -2
  345. package/src/storageManager.js +33 -47
  346. package/src/userSync.js +7 -4
  347. package/test/spec/modules/33acrossIdSystem_spec.js +1 -1
  348. package/test/spec/modules/adagioBidAdapter_spec.js +11 -17
  349. package/test/spec/modules/admixerIdSystem_spec.js +0 -3
  350. package/test/spec/modules/adnuntiusBidAdapter_spec.js +6 -6
  351. package/test/spec/modules/adrinoBidAdapter_spec.js +65 -34
  352. package/test/spec/modules/adsinteractiveBidAdapter_spec.js +207 -0
  353. package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -11
  354. package/test/spec/modules/aidemBidAdapter_spec.js +72 -8
  355. package/test/spec/modules/amxBidAdapter_spec.js +4 -1
  356. package/test/spec/modules/atsAnalyticsAdapter_spec.js +2 -2
  357. package/test/spec/modules/audiencerunBidAdapter_spec.js +8 -11
  358. package/test/spec/modules/bedigitechBidAdapter_spec.js +145 -0
  359. package/test/spec/modules/bluebillywigBidAdapter_spec.js +1 -3
  360. package/test/spec/modules/concertBidAdapter_spec.js +3 -8
  361. package/test/spec/modules/connectadBidAdapter_spec.js +11 -3
  362. package/test/spec/modules/criteoBidAdapter_spec.js +29 -0
  363. package/test/spec/modules/criteoIdSystem_spec.js +38 -0
  364. package/test/spec/modules/datablocksBidAdapter_spec.js +0 -1
  365. package/test/spec/modules/dspxBidAdapter_spec.js +184 -13
  366. package/test/spec/modules/fledge_spec.js +173 -2
  367. package/test/spec/modules/gdprEnforcement_spec.js +134 -164
  368. package/test/spec/modules/greenbidsAnalyticsAdapter_spec.js +418 -0
  369. package/test/spec/modules/gridBidAdapter_spec.js +9 -5
  370. package/test/spec/modules/growthCodeIdSystem_spec.js +2 -1
  371. package/test/spec/modules/id5IdSystem_spec.js +41 -4
  372. package/test/spec/modules/identityLinkIdSystem_spec.js +2 -2
  373. package/test/spec/modules/improvedigitalBidAdapter_spec.js +10 -3
  374. package/test/spec/modules/jixieBidAdapter_spec.js +42 -60
  375. package/test/spec/modules/mediakeysBidAdapter_spec.js +12 -16
  376. package/test/spec/modules/openxOrtbBidAdapter_spec.js +96 -11
  377. package/test/spec/modules/prebidServerBidAdapter_spec.js +68 -2
  378. package/test/spec/modules/publinkIdSystem_spec.js +3 -2
  379. package/test/spec/modules/pubmaticBidAdapter_spec.js +67 -10
  380. package/test/spec/modules/realTimeDataModule_spec.js +22 -0
  381. package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -1
  382. package/test/spec/modules/relaidoBidAdapter_spec.js +5 -5
  383. package/test/spec/modules/rubiconBidAdapter_spec.js +2 -1
  384. package/test/spec/modules/sharethroughBidAdapter_spec.js +97 -21
  385. package/test/spec/modules/smartadserverBidAdapter_spec.js +74 -12
  386. package/test/spec/modules/sovrnBidAdapter_spec.js +25 -6
  387. package/test/spec/modules/stroeerCoreBidAdapter_spec.js +13 -18
  388. package/test/spec/modules/taboolaBidAdapter_spec.js +101 -0
  389. package/test/spec/modules/ttdBidAdapter_spec.js +25 -7
  390. package/test/spec/modules/userId_spec.js +68 -0
  391. package/test/spec/modules/vidazooBidAdapter_spec.js +13 -0
  392. package/test/spec/modules/vidoomyBidAdapter_spec.js +33 -0
  393. package/test/spec/modules/yieldmoBidAdapter_spec.js +18 -2
  394. package/test/spec/modules/zeotapIdPlusIdSystem_spec.js +3 -2
  395. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +8 -0
  396. package/test/spec/refererDetection_spec.js +56 -1
  397. package/test/spec/unit/core/adapterManager_spec.js +21 -58
  398. package/test/spec/unit/core/bidderFactory_spec.js +28 -10
  399. package/test/spec/unit/core/consentHandler_spec.js +29 -1
  400. package/test/spec/unit/core/storageManager_spec.js +31 -21
  401. package/test/spec/userSync_spec.js +2 -1
@@ -4,6 +4,7 @@ import { config } from 'src/config.js';
4
4
  import { init, requestBidsHook, setSubmoduleRegistry } from 'modules/userId/index.js';
5
5
  import { storage, getStorage, zeotapIdPlusSubmodule } from 'modules/zeotapIdPlusIdSystem.js';
6
6
  import * as storageManager from 'src/storageManager.js';
7
+ import {MODULE_TYPE_UID} from '../../../src/activities/modules.js';
7
8
 
8
9
  const ZEOTAP_COOKIE_NAME = 'IDP';
9
10
  const ZEOTAP_COOKIE = 'THIS-IS-A-DUMMY-COOKIE';
@@ -52,9 +53,9 @@ describe('Zeotap ID System', function() {
52
53
  });
53
54
 
54
55
  it('when a stored Zeotap ID exists it is added to bids', function() {
55
- let store = getStorage();
56
+ getStorage();
56
57
  expect(getStorageManagerSpy.calledOnce).to.be.true;
57
- sinon.assert.calledWith(getStorageManagerSpy, {gvlid: 301, moduleName: 'zeotapIdPlus'});
58
+ sinon.assert.calledWith(getStorageManagerSpy, {moduleType: MODULE_TYPE_UID, moduleName: 'zeotapIdPlus'});
58
59
  });
59
60
  });
60
61
 
@@ -51,6 +51,7 @@ describe('Zeta Ssp Bid Adapter', function () {
51
51
  },
52
52
  sid: 'publisherId',
53
53
  shortname: 'test_shortname',
54
+ tagid: 'test_tag_id',
54
55
  site: {
55
56
  page: 'testPage'
56
57
  },
@@ -396,4 +397,11 @@ describe('Zeta Ssp Bid Adapter', function () {
396
397
 
397
398
  expect(payload.source.ext.schain).to.eql(schain);
398
399
  });
400
+
401
+ it('Test tagid provided', function () {
402
+ const request = spec.buildRequests(bannerRequest, bannerRequest[0]);
403
+ const payload = JSON.parse(request.data);
404
+
405
+ expect(payload.imp[0].tagid).to.eql(params.tagid);
406
+ });
399
407
  });
@@ -1,4 +1,4 @@
1
- import {detectReferer, ensureProtocol, parseDomain} from 'src/refererDetection.js';
1
+ import {cacheWithLocation, detectReferer, ensureProtocol, parseDomain} from 'src/refererDetection.js';
2
2
  import {config} from 'src/config.js';
3
3
  import {expect} from 'chai';
4
4
 
@@ -493,3 +493,58 @@ describe('parseDomain', () => {
493
493
  })
494
494
  })
495
495
  });
496
+
497
+ describe('cacheWithLocation', () => {
498
+ let fn, win, cached;
499
+ const RESULT = 'result';
500
+ beforeEach(() => {
501
+ fn = sinon.stub().callsFake(() => RESULT);
502
+ win = {
503
+ location: {
504
+ },
505
+ document: {
506
+ querySelector: sinon.stub()
507
+ }
508
+ }
509
+ });
510
+
511
+ describe('when window is not on top', () => {
512
+ beforeEach(() => {
513
+ win.top = {};
514
+ cached = cacheWithLocation(fn, win);
515
+ })
516
+
517
+ it('should not cache', () => {
518
+ win.top = {};
519
+ cached();
520
+ expect(cached()).to.eql(RESULT);
521
+ expect(fn.callCount).to.eql(2);
522
+ });
523
+ })
524
+
525
+ describe('when window is on top', () => {
526
+ beforeEach(() => {
527
+ win.top = win;
528
+ cached = cacheWithLocation(fn, win);
529
+ })
530
+
531
+ it('should not cache when canonical URL changes', () => {
532
+ let canonical = 'foo';
533
+ win.document.querySelector.callsFake(() => ({href: canonical}));
534
+ cached();
535
+ expect(cached()).to.eql(RESULT);
536
+ canonical = 'bar';
537
+ expect(cached()).to.eql(RESULT);
538
+ expect(fn.callCount).to.eql(2);
539
+ });
540
+
541
+ it('should not cache when location changes', () => {
542
+ win.location.href = 'foo';
543
+ cached();
544
+ expect(cached()).to.eql(RESULT);
545
+ win.location.href = 'bar';
546
+ expect(cached()).to.eql(RESULT);
547
+ expect(fn.callCount).to.eql(2);
548
+ })
549
+ });
550
+ })
@@ -21,6 +21,8 @@ import {find, includes} from 'src/polyfill.js';
21
21
  import s2sTesting from 'modules/s2sTesting.js';
22
22
  import {hook} from '../../../../src/hook.js';
23
23
  import {auctionManager} from '../../../../src/auctionManager.js';
24
+ import {GDPR_GVLIDS} from '../../../../src/consentHandler.js';
25
+ import {MODULE_TYPE_ANALYTICS, MODULE_TYPE_BIDDER} from '../../../../src/activities/modules.js';
24
26
  var events = require('../../../../src/events');
25
27
 
26
28
  const CONFIG = {
@@ -1966,64 +1968,6 @@ describe('adapterManager tests', function () {
1966
1968
  });
1967
1969
  });
1968
1970
 
1969
- describe('fledgeEnabled', function () {
1970
- const origRunAdAuction = navigator?.runAdAuction;
1971
- before(function () {
1972
- // navigator.runAdAuction doesn't exist, so we can't stub it normally with
1973
- // sinon.stub(navigator, 'runAdAuction') or something
1974
- navigator.runAdAuction = sinon.stub();
1975
- });
1976
-
1977
- after(function() {
1978
- navigator.runAdAuction = origRunAdAuction;
1979
- })
1980
-
1981
- afterEach(function () {
1982
- config.resetConfig();
1983
- });
1984
-
1985
- it('should set fledgeEnabled correctly per bidder', function () {
1986
- config.setConfig({bidderSequence: 'fixed'})
1987
- config.setBidderConfig({
1988
- bidders: ['appnexus'],
1989
- config: {
1990
- fledgeEnabled: true,
1991
- }
1992
- });
1993
-
1994
- const adUnits = [{
1995
- 'code': '/19968336/header-bid-tag1',
1996
- 'mediaTypes': {
1997
- 'banner': {
1998
- 'sizes': [[728, 90]]
1999
- },
2000
- },
2001
- 'bids': [
2002
- {
2003
- 'bidder': 'appnexus',
2004
- },
2005
- {
2006
- 'bidder': 'rubicon',
2007
- },
2008
- ]
2009
- }];
2010
-
2011
- const bidRequests = adapterManager.makeBidRequests(
2012
- adUnits,
2013
- Date.now(),
2014
- utils.getUniqueIdentifierStr(),
2015
- function callback() {},
2016
- []
2017
- );
2018
-
2019
- expect(bidRequests[0].bids[0].bidder).equals('appnexus');
2020
- expect(bidRequests[0].fledgeEnabled).to.be.true;
2021
-
2022
- expect(bidRequests[1].bids[0].bidder).equals('rubicon');
2023
- expect(bidRequests[1].fledgeEnabled).to.be.undefined;
2024
- });
2025
- });
2026
-
2027
1971
  describe('sizeMapping', function () {
2028
1972
  let sandbox;
2029
1973
  beforeEach(function () {
@@ -2795,4 +2739,23 @@ describe('adapterManager tests', function () {
2795
2739
  })
2796
2740
  })
2797
2741
  });
2742
+
2743
+ describe('registers GVL IDs', () => {
2744
+ beforeEach(() => {
2745
+ sinon.stub(GDPR_GVLIDS, 'register');
2746
+ });
2747
+ afterEach(() => {
2748
+ GDPR_GVLIDS.register.restore();
2749
+ });
2750
+
2751
+ it('for bid adapters', () => {
2752
+ adapterManager.registerBidAdapter({getSpec: () => ({gvlid: 123}), callBids: sinon.stub()}, 'mock');
2753
+ sinon.assert.calledWith(GDPR_GVLIDS.register, MODULE_TYPE_BIDDER, 'mock', 123);
2754
+ });
2755
+
2756
+ it('for analytics adapters', () => {
2757
+ adapterManager.registerAnalyticsAdapter({adapter: {enableAnalytics: sinon.stub()}, code: 'mock', gvlid: 123});
2758
+ sinon.assert.calledWith(GDPR_GVLIDS.register, MODULE_TYPE_ANALYTICS, 'mock', 123);
2759
+ });
2760
+ });
2798
2761
  });
@@ -1,4 +1,11 @@
1
- import {newBidder, registerBidder, preloadBidderMappingFile, storage, isValid} from 'src/adapters/bidderFactory.js';
1
+ import {
2
+ newBidder,
3
+ registerBidder,
4
+ preloadBidderMappingFile,
5
+ storage,
6
+ isValid,
7
+ addComponentAuction
8
+ } from 'src/adapters/bidderFactory.js';
2
9
  import adapterManager from 'src/adapterManager.js';
3
10
  import * as ajax from 'src/ajax.js';
4
11
  import { expect } from 'chai';
@@ -1212,16 +1219,27 @@ describe('validate bid response: ', function () {
1212
1219
  };
1213
1220
  const fledgeAuctionConfig = {
1214
1221
  bidId: '1',
1222
+ config: {
1223
+ foo: 'bar'
1224
+ }
1215
1225
  }
1216
1226
  describe('when response has FLEDGE auction config', function() {
1217
- let logInfoSpy;
1227
+ let fledgeStub;
1218
1228
 
1219
- beforeEach(function () {
1220
- logInfoSpy = sinon.spy(utils, 'logInfo');
1229
+ function fledgeHook(next, ...args) {
1230
+ fledgeStub(...args);
1231
+ }
1232
+
1233
+ before(() => {
1234
+ addComponentAuction.before(fledgeHook);
1221
1235
  });
1222
1236
 
1223
- afterEach(function () {
1224
- logInfoSpy.restore();
1237
+ after(() => {
1238
+ addComponentAuction.getHooks({hook: fledgeHook}).remove();
1239
+ })
1240
+
1241
+ beforeEach(function () {
1242
+ fledgeStub = sinon.stub();
1225
1243
  });
1226
1244
 
1227
1245
  it('should unwrap bids', function() {
@@ -1243,8 +1261,8 @@ describe('validate bid response: ', function () {
1243
1261
  });
1244
1262
  bidder.callBids(bidRequest, addBidResponseStub, doneStub, ajaxStub, onTimelyResponseStub, wrappedCallback);
1245
1263
 
1246
- expect(logInfoSpy.calledOnce).to.equal(true);
1247
- expect(logInfoSpy.firstCall.args[1]).to.equal(fledgeAuctionConfig);
1264
+ expect(fledgeStub.calledOnce).to.equal(true);
1265
+ sinon.assert.calledWith(fledgeStub, 'mock/placement', fledgeAuctionConfig.config);
1248
1266
  expect(addBidResponseStub.calledOnce).to.equal(true);
1249
1267
  expect(addBidResponseStub.firstCall.args[0]).to.equal('mock/placement');
1250
1268
  })
@@ -1257,8 +1275,8 @@ describe('validate bid response: ', function () {
1257
1275
  });
1258
1276
  bidder.callBids(bidRequest, addBidResponseStub, doneStub, ajaxStub, onTimelyResponseStub, wrappedCallback);
1259
1277
 
1260
- expect(logInfoSpy.calledOnce).to.equal(true);
1261
- expect(logInfoSpy.firstCall.args[1]).to.equal(fledgeAuctionConfig);
1278
+ expect(fledgeStub.calledOnce).to.be.true;
1279
+ sinon.assert.calledWith(fledgeStub, 'mock/placement', fledgeAuctionConfig.config);
1262
1280
  expect(addBidResponseStub.calledOnce).to.equal(false);
1263
1281
  })
1264
1282
  })
@@ -1,4 +1,4 @@
1
- import {ConsentHandler} from '../../../../src/consentHandler.js';
1
+ import {ConsentHandler, gvlidRegistry} from '../../../../src/consentHandler.js';
2
2
 
3
3
  describe('Consent data handler', () => {
4
4
  let handler;
@@ -57,3 +57,31 @@ describe('Consent data handler', () => {
57
57
  })
58
58
  });
59
59
  })
60
+
61
+ describe('gvlidRegistry', () => {
62
+ let registry;
63
+ beforeEach(() => {
64
+ registry = gvlidRegistry();
65
+ });
66
+
67
+ it('returns undef when id cannoot be found', () => {
68
+ expect(registry.get('name')).to.eql({modules: {}})
69
+ });
70
+
71
+ it('does not register null ids', () => {
72
+ registry.register('type', 'name', null);
73
+ expect(registry.get('type', 'name')).to.eql({modules: {}});
74
+ })
75
+
76
+ it('can retrieve registered GVL IDs', () => {
77
+ registry.register('type', 'name', 123);
78
+ registry.register('otherType', 'name', 123);
79
+ expect(registry.get('name')).to.eql({gvlid: 123, modules: {type: 123, otherType: 123}});
80
+ });
81
+
82
+ it('does not return `gvlid` if there is more than one', () => {
83
+ registry.register('type', 'name', 123);
84
+ registry.register('otherType', 'name', 321);
85
+ expect(registry.get('name')).to.eql({modules: {type: 123, otherType: 321}})
86
+ });
87
+ })
@@ -1,14 +1,14 @@
1
1
  import {
2
+ getCoreStorageManager, getStorageManager,
3
+ newStorageManager,
2
4
  resetData,
3
- getCoreStorageManager,
4
5
  storageCallbacks,
5
- getStorageManager,
6
- newStorageManager, validateStorageEnforcement
6
+ validateStorageEnforcement
7
7
  } from 'src/storageManager.js';
8
- import { config } from 'src/config.js';
8
+ import {config} from 'src/config.js';
9
9
  import * as utils from 'src/utils.js';
10
10
  import {hook} from '../../../../src/hook.js';
11
- import {VENDORLESS_GVLID} from '../../../../src/consentHandler.js';
11
+ import {MODULE_TYPE_BIDDER} from '../../../../src/activities/modules.js';
12
12
 
13
13
  describe('storage manager', function() {
14
14
  before(() => {
@@ -34,7 +34,7 @@ describe('storage manager', function() {
34
34
 
35
35
  it('should add done callbacks to storageCallbacks array', function() {
36
36
  let noop = sinon.spy();
37
- const coreStorage = getStorageManager();
37
+ const coreStorage = newStorageManager();
38
38
 
39
39
  coreStorage.setCookie('foo', 'bar', null, null, null, noop);
40
40
  coreStorage.getCookie('foo', noop);
@@ -50,17 +50,16 @@ describe('storage manager', function() {
50
50
 
51
51
  it('should allow bidder to access device if gdpr enforcement module is not included', function() {
52
52
  let deviceAccessSpy = sinon.spy(utils, 'hasDeviceAccess');
53
- const storage = getStorageManager();
53
+ const storage = newStorageManager();
54
54
  storage.setCookie('foo1', 'baz1');
55
55
  expect(deviceAccessSpy.calledOnce).to.equal(true);
56
56
  deviceAccessSpy.restore();
57
57
  });
58
58
 
59
- describe(`core storage`, () => {
60
- let storage, validateHook;
59
+ describe(`enforcement`, () => {
60
+ let validateHook;
61
61
 
62
62
  beforeEach(() => {
63
- storage = getCoreStorageManager();
64
63
  validateHook = sinon.stub().callsFake(function (next, ...args) {
65
64
  next.apply(this, args);
66
65
  });
@@ -72,15 +71,26 @@ describe('storage manager', function() {
72
71
  config.resetConfig();
73
72
  })
74
73
 
75
- it('should respect (vendorless) consent enforcement', () => {
76
- storage.localStorageIsEnabled();
77
- expect(validateHook.args[0][1]).to.equal(VENDORLESS_GVLID); // gvlid should be set to VENDORLESS_GVLID
78
- });
74
+ Object.entries({
75
+ 'core': () => getCoreStorageManager('mock'),
76
+ 'other': () => getStorageManager({moduleType: 'other', moduleName: 'mock'})
77
+ }).forEach(([moduleType, getMgr]) => {
78
+ describe(`for ${moduleType} modules`, () => {
79
+ let storage;
80
+ beforeEach(() => {
81
+ storage = getMgr();
82
+ });
83
+ it(`should pass '${moduleType}' module type to consent enforcement`, () => {
84
+ storage.localStorageIsEnabled();
85
+ expect(validateHook.args[0][1]).to.equal(moduleType);
86
+ });
79
87
 
80
- it('should respect the deviceAccess flag', () => {
81
- config.setConfig({deviceAccess: false});
82
- expect(storage.localStorageIsEnabled()).to.be.false
83
- })
88
+ it('should respect the deviceAccess flag', () => {
89
+ config.setConfig({deviceAccess: false});
90
+ expect(storage.localStorageIsEnabled()).to.be.false
91
+ });
92
+ });
93
+ });
84
94
  })
85
95
 
86
96
  describe('localstorage forbidden access in 3rd-party context', function() {
@@ -100,7 +110,7 @@ describe('storage manager', function() {
100
110
  })
101
111
 
102
112
  it('should not throw if the localstorage is not accessible when setting/getting/removing from localstorage', function() {
103
- const coreStorage = getStorageManager();
113
+ const coreStorage = newStorageManager();
104
114
 
105
115
  coreStorage.setDataInLocalStorage('key', 'value');
106
116
  const val = coreStorage.getDataFromLocalStorage('key');
@@ -124,7 +134,7 @@ describe('storage manager', function() {
124
134
  })
125
135
 
126
136
  it('should remove side-effect after checking', function () {
127
- const storage = getStorageManager();
137
+ const storage = newStorageManager();
128
138
 
129
139
  localStorage.setItem('unrelated', 'dummy');
130
140
  const val = storage.localStorageIsEnabled();
@@ -206,7 +216,7 @@ describe('storage manager', function() {
206
216
  let mgr;
207
217
 
208
218
  beforeEach(() => {
209
- mgr = newStorageManager({bidderCode: bidderCode}, {bidderSettings: mockBidderSettings(configValue)});
219
+ mgr = newStorageManager({moduleType: MODULE_TYPE_BIDDER, moduleName: bidderCode}, {bidderSettings: mockBidderSettings(configValue)});
210
220
  })
211
221
 
212
222
  afterEach(() => {
@@ -110,9 +110,10 @@ describe('user sync', function () {
110
110
  expect(insertUserSyncIframeStub.getCall(0).args[0]).to.equal('http://example.com/iframe');
111
111
  });
112
112
 
113
- it('should only trigger syncs once per page per bidder', function () {
113
+ it('should stop triggering user syncs after bidderDone', function () {
114
114
  const userSync = newTestUserSync({ pixelEnabled: true });
115
115
  userSync.registerSync('image', 'testBidder', 'http://example.com/1');
116
+ userSync.bidderDone('testBidder');
116
117
  userSync.syncUsers();
117
118
  userSync.registerSync('image', 'testBidder', 'http://example.com/2');
118
119
  userSync.registerSync('image', 'testBidder2', 'http://example.com/3');