prebid.js 8.3.0 → 8.5.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 (354) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/a1MediaRtdProvider.js +1 -0
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adfBidAdapter.js +1 -1
  7. package/dist/adgenerationBidAdapter.js +1 -1
  8. package/dist/adkernelAdnBidAdapter.js +1 -1
  9. package/dist/adkernelBidAdapter.js +1 -1
  10. package/dist/admanBidAdapter.js +1 -1
  11. package/dist/admixerIdSystem.js +1 -1
  12. package/dist/adnuntiusBidAdapter.js +1 -1
  13. package/dist/adqueryBidAdapter.js +1 -1
  14. package/dist/adqueryIdSystem.js +1 -1
  15. package/dist/adrelevantisBidAdapter.js +1 -1
  16. package/dist/adtelligentIdSystem.js +1 -1
  17. package/dist/adtrgtmeBidAdapter.js +1 -1
  18. package/dist/adxcgBidAdapter.js +1 -1
  19. package/dist/adyoulikeBidAdapter.js +1 -1
  20. package/dist/ajaBidAdapter.js +1 -1
  21. package/dist/amxBidAdapter.js +1 -1
  22. package/dist/amxIdSystem.js +1 -1
  23. package/dist/appierAnalyticsAdapter.js +1 -1
  24. package/dist/appnexusBidAdapter.js +1 -1
  25. package/dist/asoBidAdapter.js +1 -1
  26. package/dist/axonixBidAdapter.js +1 -1
  27. package/dist/beachfrontBidAdapter.js +1 -1
  28. package/dist/bidglassBidAdapter.js +1 -1
  29. package/dist/big-richmediaBidAdapter.js +1 -1
  30. package/dist/brandmetricsRtdProvider.js +1 -1
  31. package/dist/bridBidAdapter.js +1 -1
  32. package/dist/bridgewellBidAdapter.js +1 -1
  33. package/dist/brightMountainMediaBidAdapter.js +1 -1
  34. package/dist/britepoolIdSystem.js +1 -1
  35. package/dist/carodaBidAdapter.js +1 -1
  36. package/dist/chtnwBidAdapter.js +1 -1
  37. package/dist/concertBidAdapter.js +1 -1
  38. package/dist/connectIdSystem.js +1 -1
  39. package/dist/connectadBidAdapter.js +1 -1
  40. package/dist/consentManagementGpp.js +1 -1
  41. package/dist/consumableBidAdapter.js +1 -1
  42. package/dist/conversantAnalyticsAdapter.js +1 -1
  43. package/dist/conversantBidAdapter.js +1 -1
  44. package/dist/craftBidAdapter.js +1 -1
  45. package/dist/criteoBidAdapter.js +1 -1
  46. package/dist/criteoIdSystem.js +1 -1
  47. package/dist/cwireBidAdapter.js +1 -1
  48. package/dist/czechAdIdSystem.js +1 -1
  49. package/dist/dacIdSystem.js +1 -1
  50. package/dist/deepintentDpesIdSystem.js +1 -1
  51. package/dist/dependencies.json +6 -0
  52. package/dist/dmdIdSystem.js +1 -1
  53. package/dist/dspxBidAdapter.js +1 -1
  54. package/dist/eplanningBidAdapter.js +1 -1
  55. package/dist/euidIdSystem.js +1 -1
  56. package/dist/fabrickIdSystem.js +1 -1
  57. package/dist/feedadBidAdapter.js +1 -1
  58. package/dist/finativeBidAdapter.js +1 -1
  59. package/dist/freewheel-sspBidAdapter.js +1 -1
  60. package/dist/ftrackIdSystem.js +1 -1
  61. package/dist/gdprEnforcement.js +1 -1
  62. package/dist/geolocationRtdProvider.js +1 -0
  63. package/dist/gmosspBidAdapter.js +1 -1
  64. package/dist/goldbachBidAdapter.js +1 -1
  65. package/dist/gravitoIdSystem.js +1 -1
  66. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  67. package/dist/greenbidsRtdProvider.js +1 -1
  68. package/dist/gridBidAdapter.js +1 -1
  69. package/dist/growthCodeIdSystem.js +1 -1
  70. package/dist/gumgumBidAdapter.js +1 -1
  71. package/dist/h12mediaBidAdapter.js +1 -1
  72. package/dist/hadronIdSystem.js +1 -1
  73. package/dist/hypelabBidAdapter.js +1 -1
  74. package/dist/id5IdSystem.js +1 -1
  75. package/dist/identityLinkIdSystem.js +1 -1
  76. package/dist/idxIdSystem.js +1 -1
  77. package/dist/imdsBidAdapter.js +1 -1
  78. package/dist/improvedigitalBidAdapter.js +1 -1
  79. package/dist/imuIdSystem.js +1 -1
  80. package/dist/insticatorBidAdapter.js +1 -1
  81. package/dist/intentIqIdSystem.js +1 -1
  82. package/dist/invibesBidAdapter.js +1 -1
  83. package/dist/ixBidAdapter.js +1 -1
  84. package/dist/justIdSystem.js +1 -1
  85. package/dist/justpremiumBidAdapter.js +1 -1
  86. package/dist/kargoBidAdapter.js +1 -1
  87. package/dist/kinessoIdSystem.js +1 -1
  88. package/dist/konduitAnalyticsAdapter.js +1 -1
  89. package/dist/kueezBidAdapter.js +1 -1
  90. package/dist/kueezRtbBidAdapter.js +1 -1
  91. package/dist/kulturemediaBidAdapter.js +1 -1
  92. package/dist/lassoBidAdapter.js +1 -1
  93. package/dist/lifestreetBidAdapter.js +1 -1
  94. package/dist/liveIntentIdSystem.js +1 -1
  95. package/dist/logicadBidAdapter.js +1 -1
  96. package/dist/loglyliftBidAdapter.js +1 -1
  97. package/dist/lotamePanoramaIdSystem.js +1 -1
  98. package/dist/magniteAnalyticsAdapter.js +1 -1
  99. package/dist/malltvAnalyticsAdapter.js +1 -1
  100. package/dist/marsmediaBidAdapter.js +1 -1
  101. package/dist/mediafuseBidAdapter.js +1 -1
  102. package/dist/mediasquareBidAdapter.js +1 -1
  103. package/dist/merkleIdSystem.js +1 -1
  104. package/dist/mgidBidAdapter.js +1 -1
  105. package/dist/minutemediaBidAdapter.js +1 -1
  106. package/dist/minutemediaplusBidAdapter.js +1 -1
  107. package/dist/mwOpenLinkIdSystem.js +1 -1
  108. package/dist/naveggIdSystem.js +1 -1
  109. package/dist/netIdSystem.js +1 -1
  110. package/dist/nexx360BidAdapter.js +1 -1
  111. package/dist/not-for-prod/prebid.js +185 -182
  112. package/dist/novatiqIdSystem.js +1 -1
  113. package/dist/oguryBidAdapter.js +1 -1
  114. package/dist/oneKeyIdSystem.js +1 -1
  115. package/dist/onetagBidAdapter.js +1 -1
  116. package/dist/ooloAnalyticsAdapter.js +1 -1
  117. package/dist/optidigitalBidAdapter.js +1 -1
  118. package/dist/outbrainBidAdapter.js +1 -1
  119. package/dist/ozoneBidAdapter.js +1 -1
  120. package/dist/pairIdSystem.js +1 -1
  121. package/dist/parrableIdSystem.js +1 -1
  122. package/dist/pixfutureBidAdapter.js +1 -1
  123. package/dist/prebid-core.js +2 -2
  124. package/dist/publinkIdSystem.js +1 -1
  125. package/dist/pubmaticBidAdapter.js +1 -1
  126. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  127. package/dist/pulsepointBidAdapter.js +1 -1
  128. package/dist/pxyzBidAdapter.js +1 -1
  129. package/dist/quantcastBidAdapter.js +1 -1
  130. package/dist/quantcastIdSystem.js +1 -1
  131. package/dist/readpeakBidAdapter.js +1 -1
  132. package/dist/relaidoBidAdapter.js +1 -1
  133. package/dist/retailspotBidAdapter.js +1 -1
  134. package/dist/rhythmoneBidAdapter.js +1 -1
  135. package/dist/riseBidAdapter.js +1 -1
  136. package/dist/rubiconBidAdapter.js +1 -1
  137. package/dist/seedingAllianceBidAdapter.js +1 -1
  138. package/dist/seedtagBidAdapter.js +1 -1
  139. package/dist/sharedIdSystem.js +1 -1
  140. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  141. package/dist/sharethroughBidAdapter.js +1 -1
  142. package/dist/shinezBidAdapter.js +1 -1
  143. package/dist/silverpushBidAdapter.js +1 -1
  144. package/dist/smaatoBidAdapter.js +1 -1
  145. package/dist/smartadserverBidAdapter.js +1 -1
  146. package/dist/smartxBidAdapter.js +1 -1
  147. package/dist/smilewantedBidAdapter.js +1 -1
  148. package/dist/sonobiBidAdapter.js +1 -1
  149. package/dist/sovrnAnalyticsAdapter.js +1 -1
  150. package/dist/sovrnBidAdapter.js +1 -1
  151. package/dist/ssmasBidAdapter.js +1 -0
  152. package/dist/sspBCBidAdapter.js +1 -1
  153. package/dist/stroeerCoreBidAdapter.js +1 -1
  154. package/dist/stvBidAdapter.js +1 -1
  155. package/dist/sublimeBidAdapter.js +1 -1
  156. package/dist/tapadIdSystem.js +1 -1
  157. package/dist/targetVideoBidAdapter.js +1 -1
  158. package/dist/teadsBidAdapter.js +1 -1
  159. package/dist/tncIdSystem.js +1 -1
  160. package/dist/topicsFpdModule.js +1 -1
  161. package/dist/trionBidAdapter.js +1 -1
  162. package/dist/tripleliftBidAdapter.js +1 -1
  163. package/dist/ttdBidAdapter.js +1 -1
  164. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  165. package/dist/uid2IdSystem.js +1 -1
  166. package/dist/underdogmediaBidAdapter.js +1 -1
  167. package/dist/undertoneBidAdapter.js +1 -1
  168. package/dist/unifiedIdSystem.js +1 -1
  169. package/dist/userId.js +1 -1
  170. package/dist/utiqSystem.js +1 -1
  171. package/dist/verizonMediaIdSystem.js +1 -1
  172. package/dist/vidazooBidAdapter.js +1 -1
  173. package/dist/videobyteBidAdapter.js +1 -1
  174. package/dist/visxBidAdapter.js +1 -1
  175. package/dist/voxBidAdapter.js +1 -1
  176. package/dist/vrtcalBidAdapter.js +1 -1
  177. package/dist/vuukleBidAdapter.js +1 -1
  178. package/dist/widespaceBidAdapter.js +1 -1
  179. package/dist/winrBidAdapter.js +1 -1
  180. package/dist/yahoosspBidAdapter.js +1 -1
  181. package/dist/yandexBidAdapter.js +1 -1
  182. package/dist/yieldmoBidAdapter.js +1 -1
  183. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  184. package/dist/zeotapIdPlusIdSystem.js +1 -1
  185. package/integrationExamples/gpt/adUnitFloors.html +0 -1
  186. package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +1 -1
  187. package/integrationExamples/videoModule/jwplayer/eventListeners.html +2 -2
  188. package/integrationExamples/videoModule/jwplayer/eventsUI.html +1 -1
  189. package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +1 -1
  190. package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +1 -1
  191. package/integrationExamples/videoModule/jwplayer/playlist.html +1 -1
  192. package/integrationExamples/videoModule/videojs/bidMarkedAsUsed.html +1 -1
  193. package/integrationExamples/videoModule/videojs/bidRequestScheduling.html +1 -1
  194. package/integrationExamples/videoModule/videojs/eventListeners.html +1 -1
  195. package/integrationExamples/videoModule/videojs/eventsUI.html +1 -1
  196. package/integrationExamples/videoModule/videojs/gamAdServerMediation.html +1 -1
  197. package/integrationExamples/videoModule/videojs/mediaMetadata.html +1 -1
  198. package/integrationExamples/videoModule/videojs/playlist.html +1 -1
  199. package/modules/.submodules.json +1 -0
  200. package/modules/33acrossBidAdapter.js +24 -14
  201. package/modules/33acrossIdSystem.js +24 -4
  202. package/modules/a1MediaRtdProvider.js +92 -0
  203. package/modules/a1MediaRtdProvider.md +46 -0
  204. package/modules/adagioBidAdapter.js +0 -1
  205. package/modules/adfBidAdapter.js +4 -1
  206. package/modules/adkernelAdnBidAdapter.js +1 -1
  207. package/modules/adkernelBidAdapter.js +10 -3
  208. package/modules/admanBidAdapter.js +4 -0
  209. package/modules/admixerIdSystem.js +6 -0
  210. package/modules/adnuntiusBidAdapter.js +5 -13
  211. package/modules/adqueryIdSystem.js +6 -0
  212. package/modules/adtelligentIdSystem.js +6 -0
  213. package/modules/adyoulikeBidAdapter.js +6 -3
  214. package/modules/amxIdSystem.js +6 -0
  215. package/modules/beachfrontBidAdapter.js +32 -6
  216. package/modules/brandmetricsRtdProvider.js +36 -2
  217. package/modules/brandmetricsRtdProvider.md +17 -2
  218. package/modules/britepoolIdSystem.js +6 -0
  219. package/modules/connectIdSystem.js +6 -0
  220. package/modules/consentManagementGpp.js +10 -1
  221. package/modules/consumableBidAdapter.js +9 -1
  222. package/modules/criteoIdSystem.js +6 -0
  223. package/modules/czechAdIdSystem.js +6 -0
  224. package/modules/dacIdSystem.js +6 -0
  225. package/modules/deepintentDpesIdSystem.js +7 -2
  226. package/modules/dmdIdSystem.js +6 -0
  227. package/modules/euidIdSystem.js +9 -0
  228. package/modules/fabrickIdSystem.js +6 -0
  229. package/modules/ftrackIdSystem.js +16 -0
  230. package/modules/gdprEnforcement.js +27 -22
  231. package/modules/geolocationRtdProvider.js +65 -0
  232. package/modules/gravitoIdSystem.js +6 -0
  233. package/modules/greenbidsRtdProvider.js +1 -1
  234. package/modules/gridBidAdapter.js +19 -0
  235. package/modules/growthCodeIdSystem.js +20 -1
  236. package/modules/hadronIdSystem.js +6 -0
  237. package/modules/id5IdSystem.js +34 -8
  238. package/modules/identityLinkIdSystem.js +6 -0
  239. package/modules/idxIdSystem.js +6 -0
  240. package/modules/imdsBidAdapter.js +38 -14
  241. package/modules/imuIdSystem.js +10 -0
  242. package/modules/intentIqIdSystem.js +6 -0
  243. package/modules/invibesBidAdapter.js +5 -5
  244. package/modules/ixBidAdapter.js +56 -2
  245. package/modules/justIdSystem.js +6 -0
  246. package/modules/kargoBidAdapter.js +4 -0
  247. package/modules/kinessoIdSystem.js +7 -2
  248. package/modules/liveIntentIdSystem.js +53 -0
  249. package/modules/lotamePanoramaIdSystem.js +6 -0
  250. package/modules/merkleIdSystem.js +24 -0
  251. package/modules/minutemediaBidAdapter.js +17 -2
  252. package/modules/mwOpenLinkIdSystem.js +6 -0
  253. package/modules/naveggIdSystem.js +6 -0
  254. package/modules/netIdSystem.js +6 -0
  255. package/modules/novatiqIdSystem.js +12 -0
  256. package/modules/oguryBidAdapter.js +29 -16
  257. package/modules/oneKeyIdSystem.js +26 -0
  258. package/modules/ozoneBidAdapter.js +65 -18
  259. package/modules/ozoneBidAdapter.md +3 -1
  260. package/modules/pairIdSystem.js +6 -0
  261. package/modules/parrableIdSystem.js +38 -2
  262. package/modules/publinkIdSystem.js +7 -1
  263. package/modules/pubmaticBidAdapter.js +16 -1
  264. package/modules/pulsepointBidAdapter.js +63 -424
  265. package/modules/pulsepointBidAdapter.md +39 -45
  266. package/modules/quantcastIdSystem.js +6 -0
  267. package/modules/rubiconBidAdapter.js +9 -0
  268. package/modules/sharedIdSystem.js +7 -1
  269. package/modules/silverpushBidAdapter.js +2 -2
  270. package/modules/sovrnBidAdapter.js +5 -1
  271. package/modules/ssmasBidAdapter.js +126 -0
  272. package/modules/ssmasBidAdapter.md +35 -0
  273. package/modules/sspBCBidAdapter.js +36 -13
  274. package/modules/stroeerCoreBidAdapter.js +2 -3
  275. package/modules/tapadIdSystem.js +6 -0
  276. package/modules/teadsBidAdapter.js +2 -0
  277. package/modules/tncIdSystem.js +6 -0
  278. package/modules/topicsFpdModule.js +4 -1
  279. package/modules/topicsFpdModule.md +4 -0
  280. package/modules/tripleliftBidAdapter.js +5 -0
  281. package/modules/uid2IdSystem.js +14 -0
  282. package/modules/unifiedIdSystem.js +11 -0
  283. package/modules/userId/eids.js +6 -445
  284. package/modules/userId/index.js +38 -26
  285. package/modules/utiqSystem.js +9 -0
  286. package/modules/verizonMediaIdSystem.js +6 -0
  287. package/modules/vidazooBidAdapter.js +5 -7
  288. package/modules/voxBidAdapter.js +16 -5
  289. package/modules/vrtcalBidAdapter.js +10 -6
  290. package/modules/yahoosspBidAdapter.js +38 -33
  291. package/modules/yahoosspBidAdapter.md +96 -95
  292. package/modules/yandexBidAdapter.js +12 -15
  293. package/modules/zeotapIdPlusIdSystem.js +6 -0
  294. package/package.json +1 -1
  295. package/src/activities/redactor.js +1 -1
  296. package/src/adapters/bidderFactory.js +15 -6
  297. package/src/adloader.js +2 -1
  298. package/src/auction.js +24 -2
  299. package/src/constants.json +3 -1
  300. package/src/fpd/sua.js +8 -2
  301. package/test/spec/auctionmanager_spec.js +29 -1
  302. package/test/spec/fpd/enrichment_spec.js +7 -1
  303. package/test/spec/fpd/sua_spec.js +12 -0
  304. package/test/spec/modules/33acrossBidAdapter_spec.js +188 -35
  305. package/test/spec/modules/33acrossIdSystem_spec.js +122 -27
  306. package/test/spec/modules/a1MediaRtdProvider_spec.js +105 -0
  307. package/test/spec/modules/adagioBidAdapter_spec.js +0 -1
  308. package/test/spec/modules/adfBidAdapter_spec.js +47 -0
  309. package/test/spec/modules/adkernelAdnBidAdapter_spec.js +1 -2
  310. package/test/spec/modules/adkernelBidAdapter_spec.js +7 -2
  311. package/test/spec/modules/adnuntiusBidAdapter_spec.js +116 -64
  312. package/test/spec/modules/adyoulikeBidAdapter_spec.js +13 -24
  313. package/test/spec/modules/beachfrontBidAdapter_spec.js +35 -2
  314. package/test/spec/modules/brandmetricsRtdProvider_spec.js +69 -7
  315. package/test/spec/modules/consentManagementGpp_spec.js +16 -0
  316. package/test/spec/modules/consumableBidAdapter_spec.js +15 -0
  317. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +5 -5
  318. package/test/spec/modules/gdprEnforcement_spec.js +43 -2
  319. package/test/spec/modules/geolocationRtdProvider_spec.js +119 -0
  320. package/test/spec/modules/greenbidsRtdProvider_spec.js +1 -1
  321. package/test/spec/modules/gridBidAdapter_spec.js +42 -0
  322. package/test/spec/modules/id5IdSystem_spec.js +18 -0
  323. package/test/spec/modules/imdsBidAdapter_spec.js +98 -17
  324. package/test/spec/modules/invibesBidAdapter_spec.js +123 -32
  325. package/test/spec/modules/ixBidAdapter_spec.js +95 -5
  326. package/test/spec/modules/kargoBidAdapter_spec.js +121 -106
  327. package/test/spec/modules/medianetBidAdapter_spec.js +117 -0
  328. package/test/spec/modules/minutemediaBidAdapter_spec.js +36 -5
  329. package/test/spec/modules/oguryBidAdapter_spec.js +208 -108
  330. package/test/spec/modules/outbrainBidAdapter_spec.js +3 -5
  331. package/test/spec/modules/ozoneBidAdapter_spec.js +27 -1
  332. package/test/spec/modules/prebidServerBidAdapter_spec.js +2 -20
  333. package/test/spec/modules/priceFloors_spec.js +14 -0
  334. package/test/spec/modules/pubmaticBidAdapter_spec.js +125 -373
  335. package/test/spec/modules/pulsepointBidAdapter_spec.js +225 -486
  336. package/test/spec/modules/rubiconBidAdapter_spec.js +220 -9
  337. package/test/spec/modules/smaatoBidAdapter_spec.js +4 -6
  338. package/test/spec/modules/sovrnBidAdapter_spec.js +24 -4
  339. package/test/spec/modules/ssmasBidAdapter_spec.js +244 -0
  340. package/test/spec/modules/sspBCBidAdapter_spec.js +18 -19
  341. package/test/spec/modules/stroeerCoreBidAdapter_spec.js +8 -5
  342. package/test/spec/modules/teadsBidAdapter_spec.js +70 -21
  343. package/test/spec/modules/topicsFpdModule_spec.js +10 -4
  344. package/test/spec/modules/tripleliftBidAdapter_spec.js +40 -0
  345. package/test/spec/modules/userId_spec.js +116 -7
  346. package/test/spec/modules/vidazooBidAdapter_spec.js +0 -5
  347. package/test/spec/modules/voxBidAdapter_spec.js +93 -0
  348. package/test/spec/modules/vrtcalBidAdapter_spec.js +12 -4
  349. package/test/spec/modules/xeBidAdapter_spec.js +366 -368
  350. package/test/spec/modules/yahoosspBidAdapter_spec.js +405 -330
  351. package/test/spec/modules/yandexBidAdapter_spec.js +21 -3
  352. package/test/spec/unit/core/bidderFactory_spec.js +61 -14
  353. package/integrationExamples/gpt/inskin_example.html +0 -100
  354. package/integrationExamples/gpt/pbjs_video_adUnit.html +0 -109
@@ -1,450 +1,10 @@
1
- import { pick, isFn, isStr, isPlainObject, deepAccess } from '../../src/utils.js';
1
+ import {deepAccess, isFn, isPlainObject, isStr} from '../../src/utils.js';
2
2
 
3
- // Each user-id sub-module is expected to mention respective config here
4
- export const USER_IDS_CONFIG = {
5
-
6
- // key-name : {config}
7
-
8
- // GrowthCode
9
- 'growthCodeId': {
10
- getValue: function(data) {
11
- return data.gc_id
12
- },
13
- source: 'growthcode.io',
14
- atype: 1,
15
- getUidExt: function(data) {
16
- const extendedData = pick(data, [
17
- 'h1',
18
- 'h2',
19
- 'h3',
20
- ]);
21
- if (Object.keys(extendedData).length) {
22
- return extendedData;
23
- }
24
- }
25
- },
26
-
27
- // utiq
28
- 'utiq': {
29
- source: 'utiq.com',
30
- atype: 1,
31
- getValue: function (data) {
32
- return data;
33
- },
34
- },
35
-
36
- // intentIqId
37
- 'intentIqId': {
38
- source: 'intentiq.com',
39
- atype: 1
40
- },
41
-
42
- // naveggId
43
- 'naveggId': {
44
- source: 'navegg.com',
45
- atype: 1
46
- },
47
-
48
- // pairId
49
- 'pairId': {
50
- source: 'google.com',
51
- atype: 571187
52
- },
53
-
54
- // justId
55
- 'justId': {
56
- source: 'justtag.com',
57
- atype: 1
58
- },
59
-
60
- // pubCommonId
61
- 'pubcid': {
62
- source: 'pubcid.org',
63
- atype: 1
64
- },
65
-
66
- // unifiedId
67
- 'tdid': {
68
- source: 'adserver.org',
69
- atype: 1,
70
- getUidExt: function() {
71
- return {
72
- rtiPartner: 'TDID'
73
- };
74
- }
75
- },
76
-
77
- // id5Id
78
- 'id5id': {
79
- getValue: function(data) {
80
- return data.uid
81
- },
82
- source: 'id5-sync.com',
83
- atype: 1,
84
- getUidExt: function(data) {
85
- if (data.ext) {
86
- return data.ext;
87
- }
88
- }
89
- },
90
-
91
- // ftrack
92
- 'ftrackId': {
93
- source: 'flashtalking.com',
94
- atype: 1,
95
- getValue: function(data) {
96
- let value = '';
97
- if (data && data.ext && data.ext.DeviceID) {
98
- value = data.ext.DeviceID;
99
- }
100
- return value;
101
- },
102
- getUidExt: function(data) {
103
- return data && data.ext;
104
- }
105
- },
106
-
107
- // parrableId
108
- 'parrableId': {
109
- source: 'parrable.com',
110
- atype: 1,
111
- getValue: function(parrableId) {
112
- if (parrableId.eid) {
113
- return parrableId.eid;
114
- }
115
- if (parrableId.ccpaOptout) {
116
- // If the EID was suppressed due to a non consenting ccpa optout then
117
- // we still wish to provide this as a reason to the adapters
118
- return '';
119
- }
120
- return null;
121
- },
122
- getUidExt: function(parrableId) {
123
- const extendedData = pick(parrableId, [
124
- 'ibaOptout',
125
- 'ccpaOptout'
126
- ]);
127
- if (Object.keys(extendedData).length) {
128
- return extendedData;
129
- }
130
- }
131
- },
132
-
133
- // identityLink
134
- 'idl_env': {
135
- source: 'liveramp.com',
136
- atype: 3
137
- },
138
-
139
- // liveIntentId
140
- 'lipb': {
141
- getValue: function(data) {
142
- return data.lipbid;
143
- },
144
- source: 'liveintent.com',
145
- atype: 3,
146
- getEidExt: function(data) {
147
- if (Array.isArray(data.segments) && data.segments.length) {
148
- return {
149
- segments: data.segments
150
- };
151
- }
152
- }
153
- },
154
-
155
- // bidswitchId
156
- 'bidswitch': {
157
- source: 'bidswitch.net',
158
- atype: 3,
159
- getValue: function(data) {
160
- return data.id;
161
- },
162
- getUidExt: function(data) {
163
- if (data.ext) {
164
- return data.ext;
165
- }
166
- }
167
- },
168
-
169
- // medianetId
170
- 'medianet': {
171
- source: 'media.net',
172
- atype: 3,
173
- getValue: function(data) {
174
- return data.id;
175
- },
176
- getUidExt: function(data) {
177
- if (data.ext) {
178
- return data.ext;
179
- }
180
- }
181
- },
182
-
183
- // magnite
184
- 'magnite': {
185
- source: 'rubiconproject.com',
186
- atype: 3,
187
- getValue: function(data) {
188
- return data.id;
189
- },
190
- getUidExt: function(data) {
191
- if (data.ext) {
192
- return data.ext;
193
- }
194
- }
195
- },
196
-
197
- // britepoolId
198
- 'britepoolid': {
199
- source: 'britepool.com',
200
- atype: 3
201
- },
202
-
203
- // dmdId
204
- 'dmdId': {
205
- source: 'hcn.health',
206
- atype: 3
207
- },
208
-
209
- // lotamePanoramaId
210
- lotamePanoramaId: {
211
- source: 'crwdcntrl.net',
212
- atype: 1,
213
- },
214
-
215
- // criteo
216
- 'criteoId': {
217
- source: 'criteo.com',
218
- atype: 1
219
- },
220
-
221
- // merkleId
222
- 'merkleId': {
223
- atype: 3,
224
- getSource: function(data) {
225
- if (data?.ext?.ssp) {
226
- return `${data.ext.ssp}.merkleinc.com`
227
- }
228
- return 'merkleinc.com'
229
- },
230
- getValue: function(data) {
231
- return data.id;
232
- },
233
- getUidExt: function(data) {
234
- if (data.keyID) {
235
- return {
236
- keyID: data.keyID
237
- }
238
- }
239
- if (data.ext) {
240
- return data.ext;
241
- }
242
- }
243
- },
244
-
245
- // NetId
246
- 'netId': {
247
- source: 'netid.de',
248
- atype: 1
249
- },
250
-
251
- // zeotapIdPlus
252
- 'IDP': {
253
- source: 'zeotap.com',
254
- atype: 1
255
- },
256
-
257
- // hadronId
258
- 'hadronId': {
259
- source: 'audigent.com',
260
- atype: 1
261
- },
262
-
263
- // quantcastId
264
- 'quantcastId': {
265
- source: 'quantcast.com',
266
- atype: 1
267
- },
268
-
269
- // IDx
270
- 'idx': {
271
- source: 'idx.lat',
272
- atype: 1
273
- },
274
-
275
- // Verizon Media ConnectID
276
- 'connectid': {
277
- source: 'verizonmedia.com',
278
- atype: 3
279
- },
280
-
281
- // Neustar Fabrick
282
- 'fabrickId': {
283
- source: 'neustar.biz',
284
- atype: 1
285
- },
286
-
287
- // MediaWallah OpenLink
288
- 'mwOpenLinkId': {
289
- source: 'mediawallahscript.com',
290
- atype: 1
291
- },
292
-
293
- 'tapadId': {
294
- source: 'tapad.com',
295
- atype: 1
296
- },
297
-
298
- // Novatiq Snowflake
299
- 'novatiq': {
300
- getValue: function(data) {
301
- if (data.snowflake.id === undefined) {
302
- return data.snowflake;
303
- }
304
-
305
- return data.snowflake.id;
306
- },
307
- source: 'novatiq.com',
308
- },
309
-
310
- 'uid2': {
311
- source: 'uidapi.com',
312
- atype: 3,
313
- getValue: function(data) {
314
- return data.id;
315
- },
316
- getUidExt: function(data) {
317
- if (data.ext) {
318
- return data.ext;
319
- }
320
- }
321
- },
322
-
323
- 'euid': {
324
- source: 'euid.eu',
325
- atype: 3,
326
- getValue: function(data) {
327
- return data.id;
328
- }
329
- },
330
-
331
- 'deepintentId': {
332
- source: 'deepintent.com',
333
- atype: 3
334
- },
335
-
336
- // Admixer Id
337
- 'admixerId': {
338
- source: 'admixer.net',
339
- atype: 3
340
- },
341
-
342
- // Adtelligent Id
343
- 'adtelligentId': {
344
- source: 'adtelligent.com',
345
- atype: 3
346
- },
347
-
348
- amxId: {
349
- source: 'amxdt.net',
350
- atype: 1,
351
- },
352
-
353
- 'publinkId': {
354
- source: 'epsilon.com',
355
- atype: 3
356
- },
357
-
358
- 'kpuid': {
359
- source: 'kpuid.com',
360
- atype: 3
361
- },
362
-
363
- 'imppid': {
364
- source: 'ppid.intimatemerger.com',
365
- atype: 1
366
- },
367
-
368
- 'imuid': {
369
- source: 'intimatemerger.com',
370
- atype: 1
371
- },
372
-
373
- // Yahoo ConnectID
374
- 'connectId': {
375
- source: 'yahoo.com',
376
- atype: 3
377
- },
378
-
379
- // Adquery ID
380
- 'qid': {
381
- source: 'adquery.io',
382
- atype: 1
383
- },
384
-
385
- // DAC ID
386
- 'dacId': {
387
- source: 'impact-ad.jp',
388
- atype: 1
389
- },
390
-
391
- // 33across ID
392
- '33acrossId': {
393
- source: '33across.com',
394
- atype: 1,
395
- getValue: function(data) {
396
- return data.envelope;
397
- }
398
- },
399
-
400
- // tncId
401
- 'tncid': {
402
- source: 'thenewco.it',
403
- atype: 3
404
- },
405
-
406
- // Gravito MP ID
407
- 'gravitompId': {
408
- source: 'gravito.net',
409
- atype: 1
410
- },
411
-
412
- // czechAdId
413
- 'czechAdId': {
414
- source: 'czechadid.cz',
415
- atype: 1
416
- },
417
-
418
- // OneKey Data
419
- 'oneKeyData': {
420
- getValue: function(data) {
421
- if (data && Array.isArray(data.identifiers) && data.identifiers[0]) {
422
- return data.identifiers[0].value;
423
- }
424
- },
425
- source: 'paf',
426
- atype: 1,
427
- getEidExt: function(data) {
428
- if (data && data.preferences) {
429
- return {preferences: data.preferences};
430
- }
431
- },
432
- getUidExt: function(data) {
433
- if (data && Array.isArray(data.identifiers) && data.identifiers[0]) {
434
- const id = data.identifiers[0];
435
- return {
436
- version: id.version,
437
- type: id.type,
438
- source: id.source
439
- };
440
- }
441
- }
442
- }
443
- };
3
+ export const EID_CONFIG = new Map();
444
4
 
445
5
  // this function will create an eid object for the given UserId sub-module
446
6
  function createEidObject(userIdData, subModuleKey) {
447
- const conf = USER_IDS_CONFIG[subModuleKey];
7
+ const conf = EID_CONFIG.get(subModuleKey);
448
8
  if (conf && userIdData) {
449
9
  let eid = {};
450
10
  eid.source = isFn(conf['getSource']) ? conf['getSource'](userIdData) : conf['source'];
@@ -510,11 +70,12 @@ export function buildEidPermissions(submodules) {
510
70
  submodules.filter(i => isPlainObject(i.idObj) && Object.keys(i.idObj).length)
511
71
  .forEach(i => {
512
72
  Object.keys(i.idObj).forEach(key => {
73
+ const eidConf = EID_CONFIG.get(key) || {};
513
74
  if (deepAccess(i, 'config.bidders') && Array.isArray(i.config.bidders) &&
514
- deepAccess(USER_IDS_CONFIG, key + '.source')) {
75
+ eidConf.source) {
515
76
  eidPermissions.push(
516
77
  {
517
- source: USER_IDS_CONFIG[key].source,
78
+ source: eidConf.source,
518
79
  bidders: i.config.bidders
519
80
  }
520
81
  );
@@ -133,7 +133,7 @@ import {getGlobal} from '../../src/prebidGlobal.js';
133
133
  import adapterManager, {gdprDataHandler, gppDataHandler} from '../../src/adapterManager.js';
134
134
  import CONSTANTS from '../../src/constants.json';
135
135
  import {module, ready as hooksReady} from '../../src/hook.js';
136
- import {buildEidPermissions, createEidsArray, USER_IDS_CONFIG} from './eids.js';
136
+ import {buildEidPermissions, createEidsArray, EID_CONFIG} from './eids.js';
137
137
  import {
138
138
  getCoreStorageManager,
139
139
  getStorageManager,
@@ -232,6 +232,7 @@ function submoduleMetrics(moduleName) {
232
232
  /** @param {Submodule[]} submodules */
233
233
  export function setSubmoduleRegistry(submodules) {
234
234
  submoduleRegistry = submodules;
235
+ updateEIDConfig(submodules);
235
236
  }
236
237
 
237
238
  function cookieSetter(submodule, storageMgr) {
@@ -465,7 +466,7 @@ function getSubmoduleId(submodules, sourceName) {
465
466
 
466
467
  const prioritisedIds = getPrioritizedCombinedSubmoduleIds(submodules);
467
468
  const eligibleIdName = Object.keys(prioritisedIds).find(idName => {
468
- const config = USER_IDS_CONFIG[idName];
469
+ const config = EID_CONFIG.get(idName);
469
470
  return config?.source === sourceName || (isFn(config?.getSource) && config.getSource() === sourceName);
470
471
  });
471
472
 
@@ -487,32 +488,33 @@ function getCombinedSubmoduleIdsForBidder(submodules, bidder) {
487
488
  return getPrioritizedCombinedSubmoduleIds(eligibleSubmodules);
488
489
  }
489
490
 
491
+ function collectByPriority(submodules, getIds, getName) {
492
+ return Object.fromEntries(Object.entries(submodules.reduce((carry, submod) => {
493
+ const ids = getIds(submod);
494
+ ids && Object.keys(ids).forEach(key => {
495
+ const maybeCurrentIdPriority = idPriority[key]?.indexOf(getName(submod));
496
+ const currentIdPriority = isNumber(maybeCurrentIdPriority) ? maybeCurrentIdPriority : -1;
497
+ const currentIdState = {priority: currentIdPriority, value: ids[key]};
498
+ if (carry[key]) {
499
+ const winnerIdState = currentIdState.priority > carry[key].priority ? currentIdState : carry[key];
500
+ carry[key] = winnerIdState;
501
+ } else {
502
+ carry[key] = currentIdState;
503
+ }
504
+ });
505
+ return carry;
506
+ }, {})).map(([k, v]) => [k, v.value]));
507
+ }
508
+
490
509
  /**
491
510
  * @param {SubmoduleContainer[]} submodules
492
511
  */
493
512
  function getPrioritizedCombinedSubmoduleIds(submodules) {
494
- const combinedIdStates = submodules
495
- .filter(i => isPlainObject(i.idObj) && Object.keys(i.idObj).length)
496
- .reduce((carry, i) => {
497
- Object.keys(i.idObj).forEach(key => {
498
- const maybeCurrentIdPriority = idPriority[key]?.indexOf(i.submodule.name);
499
- const currentIdPriority = isNumber(maybeCurrentIdPriority) ? maybeCurrentIdPriority : -1;
500
- const currentIdState = {priority: currentIdPriority, value: i.idObj[key]};
501
- if (carry[key]) {
502
- const winnerIdState = currentIdState.priority > carry[key].priority ? currentIdState : carry[key];
503
- carry[key] = winnerIdState;
504
- } else {
505
- carry[key] = currentIdState;
506
- }
507
- });
508
- return carry;
509
- }, {});
510
-
511
- const result = {};
512
- Object.keys(combinedIdStates).forEach(key => {
513
- result[key] = combinedIdStates[key].value
514
- });
515
- return result;
513
+ return collectByPriority(
514
+ submodules.filter(i => isPlainObject(i.idObj) && Object.keys(i.idObj).length),
515
+ (submod) => submod.idObj,
516
+ (submod) => submod.submodule.name
517
+ )
516
518
  }
517
519
 
518
520
  /**
@@ -743,14 +745,14 @@ function registerSignalSources() {
743
745
  if (!isGptPubadsDefined()) {
744
746
  return;
745
747
  }
746
- window.googletag.encryptedSignalProviders = window.googletag.encryptedSignalProviders || [];
748
+ window.googletag.secureSignalProviders = window.googletag.secureSignalProviders || [];
747
749
  const encryptedSignalSources = config.getConfig('userSync.encryptedSignalSources');
748
750
  if (encryptedSignalSources) {
749
751
  const registerDelay = encryptedSignalSources.registerDelay || 0;
750
752
  setTimeout(() => {
751
753
  encryptedSignalSources['sources'] && encryptedSignalSources['sources'].forEach(({ source, encrypt, customFunc }) => {
752
754
  source.forEach((src) => {
753
- window.googletag.encryptedSignalProviders.push({
755
+ window.googletag.secureSignalProviders.push({
754
756
  id: src,
755
757
  collectorFunction: () => getEncryptedEidsForSource(src, encrypt, customFunc)
756
758
  });
@@ -997,10 +999,20 @@ function canUseStorage(submodule) {
997
999
  return false;
998
1000
  }
999
1001
 
1002
+ function updateEIDConfig(submodules) {
1003
+ EID_CONFIG.clear();
1004
+ Object.entries(collectByPriority(
1005
+ submodules,
1006
+ (mod) => mod.eids,
1007
+ (mod) => mod.name
1008
+ )).forEach(([id, conf]) => EID_CONFIG.set(id, conf));
1009
+ }
1010
+
1000
1011
  /**
1001
1012
  * update submodules by validating against existing configs and storage types
1002
1013
  */
1003
1014
  function updateSubmodules() {
1015
+ updateEIDConfig(submoduleRegistry);
1004
1016
  const configs = getValidSubmoduleConfigs(configRegistry, submoduleRegistry);
1005
1017
  if (!configs.length) {
1006
1018
  return;
@@ -124,6 +124,15 @@ export const utiqSubmodule = {
124
124
  return { callback: result };
125
125
  }
126
126
  },
127
+ eids: {
128
+ 'utiq': {
129
+ source: 'utiq.com',
130
+ atype: 1,
131
+ getValue: function (data) {
132
+ return data;
133
+ },
134
+ },
135
+ }
127
136
  };
128
137
 
129
138
  submodule('userId', utiqSubmodule);
@@ -99,6 +99,12 @@ export const verizonMediaIdSubmodule = {
99
99
  */
100
100
  getAjaxFn() {
101
101
  return ajax;
102
+ },
103
+ eids: {
104
+ 'connectid': {
105
+ source: 'verizonmedia.com',
106
+ atype: 3
107
+ },
102
108
  }
103
109
  };
104
110
 
@@ -56,7 +56,6 @@ function buildRequestData(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout
56
56
  adUnitCode,
57
57
  schain,
58
58
  mediaTypes,
59
- auctionId,
60
59
  ortb2Imp,
61
60
  bidderRequestId,
62
61
  bidRequestsCount,
@@ -112,8 +111,6 @@ function buildRequestData(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout
112
111
  gpid: gpid,
113
112
  cat: cat,
114
113
  pagecat: pagecat,
115
- // TODO: fix auctionId leak: https://github.com/prebid/Prebid.js/issues/9781
116
- auctionId: auctionId,
117
114
  transactionId: ortb2Imp?.ext?.tid,
118
115
  bidderRequestId: bidderRequestId,
119
116
  bidRequestsCount: bidRequestsCount,
@@ -179,9 +176,9 @@ function buildSingleRequest(bidRequests, bidderRequest, topWindowUrl, bidderTime
179
176
  const sizes = parseSizesInput(bid.sizes);
180
177
  return buildRequestData(bid, topWindowUrl, sizes, bidderRequest, bidderTimeout)
181
178
  });
182
- const CHUNK_SIZE = Math.min(10, config.getConfig('vidazoo.chunkSize') || 10);
179
+ const chunkSize = Math.min(20, config.getConfig('vidazoo.chunkSize') || 10);
183
180
 
184
- const chunkedData = chunk(data, CHUNK_SIZE);
181
+ const chunkedData = chunk(data, chunkSize);
185
182
  return chunkedData.map(chunk => {
186
183
  return {
187
184
  method: 'POST',
@@ -226,14 +223,15 @@ function buildRequests(validBidRequests, bidderRequest) {
226
223
  const requests = [];
227
224
 
228
225
  if (singleRequestMode) {
229
- // We need to split the requests into banner and video requests
226
+ // banner bids are sent as a single request
230
227
  const bannerBidRequests = validBidRequests.filter(bid => isArray(bid.mediaTypes) ? bid.mediaTypes.includes(BANNER) : bid.mediaTypes[BANNER] !== undefined);
231
228
  if (bannerBidRequests.length > 0) {
232
229
  const singleRequests = buildSingleRequest(bannerBidRequests, bidderRequest, topWindowUrl, bidderTimeout);
233
230
  requests.push(...singleRequests);
234
231
  }
235
232
 
236
- // Video Logic
233
+ // video bids are sent as a single request for each bid
234
+
237
235
  const videoBidRequests = validBidRequests.filter(bid => bid.mediaTypes[VIDEO] !== undefined);
238
236
  videoBidRequests.forEach(validBidRequest => {
239
237
  const sizes = parseSizesInput(validBidRequest.sizes);
@@ -4,6 +4,9 @@ import {BANNER, VIDEO} from '../src/mediaTypes.js';
4
4
  import {find} from '../src/polyfill.js';
5
5
  import {auctionManager} from '../src/auctionManager.js';
6
6
  import {Renderer} from '../src/Renderer.js';
7
+ import {config} from '../src/config.js'
8
+
9
+ const { getConfig } = config;
7
10
 
8
11
  const BIDDER_CODE = 'vox';
9
12
  const SSP_ENDPOINT = 'https://ssp.hybrid.ai/auction/prebid';
@@ -11,13 +14,21 @@ const VIDEO_RENDERER_URL = 'https://acdn.adnxs.com/video/outstream/ANOutstreamVi
11
14
  const TTL = 60;
12
15
 
13
16
  function buildBidRequests(validBidRequests) {
14
- return _map(validBidRequests, function(validBidRequest) {
15
- const params = validBidRequest.params;
17
+ return _map(validBidRequests, function(bid) {
18
+ const currency = getConfig('currency.adServerCurrency');
19
+ const floorInfo = bid.getFloor ? bid.getFloor({
20
+ currency: currency || 'USD'
21
+ }) : {};
22
+
23
+ const params = bid.params;
16
24
  const bidRequest = {
17
- bidId: validBidRequest.bidId,
25
+ floorInfo,
26
+ schain: bid.schain,
27
+ userId: bid.userId,
28
+ bidId: bid.bidId,
18
29
  // TODO: fix transactionId leak: https://github.com/prebid/Prebid.js/issues/9781
19
- transactionId: validBidRequest.transactionId,
20
- sizes: validBidRequest.sizes,
30
+ transactionId: bid.transactionId,
31
+ sizes: bid.sizes,
21
32
  placement: params.placement,
22
33
  placeId: params.placementId,
23
34
  imageUrl: params.imageUrl