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
@@ -170,6 +170,12 @@ export const dacIdSystemSubmodule = {
170
170
  }
171
171
 
172
172
  return fetchAoneId(configParams.oid, cookie.fuuid);
173
+ },
174
+ eids: {
175
+ 'dacId': {
176
+ source: 'impact-ad.jp',
177
+ atype: 1
178
+ },
173
179
  }
174
180
  };
175
181
 
@@ -39,8 +39,13 @@ export const deepintentDpesSubmodule = {
39
39
  */
40
40
  getId(config, consentData, cacheIdObj) {
41
41
  return cacheIdObj;
42
- }
43
-
42
+ },
43
+ eids: {
44
+ 'deepintentId': {
45
+ source: 'deepintent.com',
46
+ atype: 3
47
+ },
48
+ },
44
49
  };
45
50
 
46
51
  submodule('userId', deepintentDpesSubmodule);
@@ -85,6 +85,12 @@ export const dmdIdSubmodule = {
85
85
  };
86
86
  return { callback: resp };
87
87
  }
88
+ },
89
+ eids: {
90
+ 'dmdId': {
91
+ source: 'hcn.health',
92
+ atype: 3
93
+ },
88
94
  }
89
95
  };
90
96
 
@@ -103,6 +103,15 @@ export const euidIdSubmodule = {
103
103
  _logInfo(`EUID getId returned`, result);
104
104
  return result;
105
105
  },
106
+ eids: {
107
+ 'euid': {
108
+ source: 'euid.eu',
109
+ atype: 3,
110
+ getValue: function(data) {
111
+ return data.id;
112
+ }
113
+ },
114
+ },
106
115
  };
107
116
 
108
117
  function decodeImpl(value) {
@@ -117,6 +117,12 @@ export const fabrickIdSubmodule = {
117
117
  } catch (e) {
118
118
  logError(`fabrickIdSystem encountered an error`, e);
119
119
  }
120
+ },
121
+ eids: {
122
+ 'fabrickId': {
123
+ source: 'neustar.biz',
124
+ atype: 1
125
+ },
120
126
  }
121
127
  };
122
128
 
@@ -221,6 +221,22 @@ export const ftrackIdSubmodule = {
221
221
  if (usPrivacyVersion == 1 && usPrivacyOptOutSale === 'Y') consentValue = false;
222
222
 
223
223
  return consentValue;
224
+ },
225
+ eids: {
226
+ 'ftrackId': {
227
+ source: 'flashtalking.com',
228
+ atype: 1,
229
+ getValue: function(data) {
230
+ let value = '';
231
+ if (data && data.ext && data.ext.DeviceID) {
232
+ value = data.ext.DeviceID;
233
+ }
234
+ return value;
235
+ },
236
+ getUidExt: function(data) {
237
+ return data && data.ext;
238
+ }
239
+ },
224
240
  }
225
241
  };
226
242
 
@@ -24,18 +24,19 @@ import {
24
24
  import {registerActivityControl} from '../src/activities/rules.js';
25
25
  import {
26
26
  ACTIVITY_ACCESS_DEVICE,
27
- ACTIVITY_ENRICH_EIDS,
27
+ ACTIVITY_ENRICH_EIDS, ACTIVITY_ENRICH_UFPD,
28
28
  ACTIVITY_FETCH_BIDS,
29
29
  ACTIVITY_REPORT_ANALYTICS,
30
- ACTIVITY_SYNC_USER
30
+ ACTIVITY_SYNC_USER, ACTIVITY_TRANSMIT_UFPD
31
31
  } from '../src/activities/activities.js';
32
32
 
33
33
  export const STRICT_STORAGE_ENFORCEMENT = 'strictStorageEnforcement';
34
34
 
35
35
  const TCF2 = {
36
- 'purpose1': {id: 1, name: 'storage'},
37
- 'purpose2': {id: 2, name: 'basicAds'},
38
- 'purpose7': {id: 7, name: 'measurement'}
36
+ purpose1: {id: 1, name: 'storage'},
37
+ purpose2: {id: 2, name: 'basicAds'},
38
+ purpose4: {id: 4, name: 'personalizedAds'},
39
+ purpose7: {id: 7, name: 'measurement'},
39
40
  };
40
41
 
41
42
  /*
@@ -55,6 +56,7 @@ const DEFAULT_RULES = [{
55
56
 
56
57
  export let purpose1Rule;
57
58
  export let purpose2Rule;
59
+ export let purpose4Rule;
58
60
  export let purpose7Rule;
59
61
 
60
62
  export let enforcementRules;
@@ -62,6 +64,7 @@ export let enforcementRules;
62
64
  const storageBlocked = new Set();
63
65
  const biddersBlocked = new Set();
64
66
  const analyticsBlocked = new Set();
67
+ const ufpdBlocked = new Set();
65
68
 
66
69
  let hooksAdded = false;
67
70
  let strictStorageEnforcement = false;
@@ -232,6 +235,8 @@ export const fetchBidsRule = ((rule) => {
232
235
 
233
236
  export const reportAnalyticsRule = gdprRule(7, () => purpose7Rule, analyticsBlocked, (params) => getGvlidFromAnalyticsAdapter(params[ACTIVITY_PARAM_COMPONENT_NAME], params[ACTIVITY_PARAM_ANL_CONFIG]));
234
237
 
238
+ export const ufpdRule = gdprRule(4, () => purpose4Rule, ufpdBlocked);
239
+
235
240
  /**
236
241
  * Compiles the TCF2.0 enforcement results into an object, which is emitted as an event payload to "tcf2Enforcement" event.
237
242
  */
@@ -243,27 +248,20 @@ function emitTCF2FinalResults() {
243
248
  const tcf2FinalResults = {
244
249
  storageBlocked: formatSet(storageBlocked),
245
250
  biddersBlocked: formatSet(biddersBlocked),
246
- analyticsBlocked: formatSet(analyticsBlocked)
251
+ analyticsBlocked: formatSet(analyticsBlocked),
252
+ ufpdBlocked: formatSet(ufpdBlocked),
247
253
  };
248
254
 
249
255
  events.emit(CONSTANTS.EVENTS.TCF2_ENFORCEMENT, tcf2FinalResults);
250
- [storageBlocked, biddersBlocked, analyticsBlocked].forEach(el => el.clear());
256
+ [storageBlocked, biddersBlocked, analyticsBlocked, ufpdBlocked].forEach(el => el.clear());
251
257
  }
252
258
 
253
259
  events.on(CONSTANTS.EVENTS.AUCTION_END, emitTCF2FinalResults);
254
260
 
255
- /*
256
- Set of callback functions used to detect presence of a TCF rule, passed as the second argument to find().
257
- */
258
- const hasPurpose1 = (rule) => {
259
- return rule.purpose === TCF2.purpose1.name;
260
- };
261
- const hasPurpose2 = (rule) => {
262
- return rule.purpose === TCF2.purpose2.name;
263
- };
264
- const hasPurpose7 = (rule) => {
265
- return rule.purpose === TCF2.purpose7.name;
266
- };
261
+ function hasPurpose(purposeNo) {
262
+ const pname = TCF2[`purpose${purposeNo}`].name;
263
+ return (rule) => rule.purpose === pname;
264
+ }
267
265
 
268
266
  /**
269
267
  * A configuration function that initializes some module variables, as well as adds hooks
@@ -279,9 +277,10 @@ export function setEnforcementConfig(config) {
279
277
  }
280
278
  strictStorageEnforcement = !!deepAccess(config, STRICT_STORAGE_ENFORCEMENT);
281
279
 
282
- purpose1Rule = find(enforcementRules, hasPurpose1);
283
- purpose2Rule = find(enforcementRules, hasPurpose2);
284
- purpose7Rule = find(enforcementRules, hasPurpose7);
280
+ purpose1Rule = find(enforcementRules, hasPurpose(1));
281
+ purpose2Rule = find(enforcementRules, hasPurpose(2));
282
+ purpose4Rule = find(enforcementRules, hasPurpose(4))
283
+ purpose7Rule = find(enforcementRules, hasPurpose(7));
285
284
 
286
285
  if (!purpose1Rule) {
287
286
  purpose1Rule = DEFAULT_RULES[0];
@@ -301,6 +300,12 @@ export function setEnforcementConfig(config) {
301
300
  if (purpose2Rule) {
302
301
  RULE_HANDLES.push(registerActivityControl(ACTIVITY_FETCH_BIDS, RULE_NAME, fetchBidsRule));
303
302
  }
303
+ if (purpose4Rule) {
304
+ RULE_HANDLES.push(
305
+ registerActivityControl(ACTIVITY_TRANSMIT_UFPD, RULE_NAME, ufpdRule),
306
+ registerActivityControl(ACTIVITY_ENRICH_UFPD, RULE_NAME, ufpdRule)
307
+ );
308
+ }
304
309
  if (purpose7Rule) {
305
310
  RULE_HANDLES.push(registerActivityControl(ACTIVITY_REPORT_ANALYTICS, RULE_NAME, reportAnalyticsRule));
306
311
  }
@@ -0,0 +1,65 @@
1
+ import {submodule} from '../src/hook.js';
2
+ import {isFn, logError, deepAccess, deepSetValue, logInfo, logWarn} from '../src/utils.js';
3
+ import { ACTIVITY_TRANSMIT_PRECISE_GEO } from '../src/activities/activities.js';
4
+ import { MODULE_TYPE_RTD } from '../src/activities/modules.js';
5
+ import { isActivityAllowed } from '../src/activities/rules.js';
6
+ import { activityParams } from '../src/activities/activityParams.js';
7
+
8
+ let permissionsAvailable = true;
9
+ let geolocation;
10
+ function getGeolocationData(requestBidsObject, onDone, providerConfig, userConsent) {
11
+ let done = false;
12
+ if (!permissionsAvailable) {
13
+ logWarn('permission for geolocation receiving was denied');
14
+ return complete()
15
+ };
16
+ if (!isActivityAllowed(ACTIVITY_TRANSMIT_PRECISE_GEO, activityParams(MODULE_TYPE_RTD, 'geolocation'))) {
17
+ logWarn('permission for geolocation receiving was denied by CMP');
18
+ return complete()
19
+ };
20
+ const requestPermission = deepAccess(providerConfig, 'params.requestPermission') === true;
21
+ const waitForIt = providerConfig.waitForIt;
22
+ navigator.permissions.query({
23
+ name: 'geolocation',
24
+ }).then(permission => {
25
+ if (permission.state !== 'granted' && !requestPermission) return complete();
26
+ navigator.geolocation.getCurrentPosition(geo => {
27
+ geolocation = geo;
28
+ complete();
29
+ });
30
+ });
31
+ if (!waitForIt) complete();
32
+ function complete() {
33
+ if (done) return;
34
+ done = true;
35
+ if (geolocation) {
36
+ deepSetValue(requestBidsObject, 'ortb2Fragments.global.device.geo', {
37
+ lat: geolocation.coords.latitude,
38
+ lon: geolocation.coords.longitude,
39
+ lastfix: geolocation.timestamp,
40
+ type: 1
41
+ });
42
+ logInfo('geolocation was successfully received ', requestBidsObject.ortb2Fragments.global.device.geo)
43
+ }
44
+ onDone();
45
+ }
46
+ }
47
+ function init(moduleConfig) {
48
+ geolocation = void 0;
49
+ if (!isFn(navigator?.permissions?.query) || !isFn(navigator?.geolocation?.getCurrentPosition || !navigator?.permissions?.query)) {
50
+ logError('geolocation is not defined');
51
+ permissionsAvailable = false;
52
+ } else {
53
+ permissionsAvailable = true;
54
+ }
55
+ return permissionsAvailable;
56
+ }
57
+ export const geolocationSubmodule = {
58
+ name: 'geolocation',
59
+ getBidRequestData: getGeolocationData,
60
+ init: init,
61
+ };
62
+ function registerSubModule() {
63
+ submodule('realTimeData', geolocationSubmodule);
64
+ }
65
+ registerSubModule();
@@ -53,6 +53,12 @@ export const gravitoIdSystemSubmodule = {
53
53
  }
54
54
  return undefined;
55
55
  },
56
+ eids: {
57
+ 'gravitompId': {
58
+ source: 'gravito.net',
59
+ atype: 1
60
+ },
61
+ }
56
62
  }
57
63
 
58
64
  submodule('userId', gravitoIdSystemSubmodule);
@@ -4,7 +4,7 @@ import { submodule } from '../src/hook.js';
4
4
 
5
5
  const MODULE_NAME = 'greenbidsRtdProvider';
6
6
  const MODULE_VERSION = '1.0.0';
7
- const ENDPOINT = 'https://europe-west1-greenbids-357713.cloudfunctions.net/partner-selection';
7
+ const ENDPOINT = 'https://t.greenbids.ai';
8
8
 
9
9
  const auctionInfo = {};
10
10
  const rtdOptions = {};
@@ -9,6 +9,7 @@ import {
9
9
  isNumber,
10
10
  isStr
11
11
  } from '../src/utils.js';
12
+ import { ajax } from '../src/ajax.js';
12
13
  import { registerBidder } from '../src/adapters/bidderFactory.js';
13
14
  import { Renderer } from '../src/Renderer.js';
14
15
  import { VIDEO, BANNER } from '../src/mediaTypes.js';
@@ -17,6 +18,7 @@ import { getStorageManager } from '../src/storageManager.js';
17
18
 
18
19
  const BIDDER_CODE = 'grid';
19
20
  const ENDPOINT_URL = 'https://grid.bidswitch.net/hbjson';
21
+ const USP_DELETE_DATA_HANDLER = 'https://media.grid.bidswitch.net/uspapi_delete'
20
22
 
21
23
  const SYNC_URL = 'https://x.bidswitch.net/sync?ssp=themediagrid';
22
24
  const TIME_TO_LIVE = 360;
@@ -462,6 +464,23 @@ export const spec = {
462
464
  url: syncUrl + params
463
465
  };
464
466
  }
467
+ },
468
+
469
+ ajaxCall: function(url, cb, data, options) {
470
+ return ajax(url, cb, data, options);
471
+ },
472
+
473
+ onDataDeletionRequest: function(data) {
474
+ const uids = [];
475
+ const aliases = [spec.code, ...spec.aliases.map((alias) => alias.code || alias)];
476
+ data.forEach(({ bids }) => bids && bids.forEach(({ bidder, params }) => {
477
+ if (aliases.includes(bidder) && params && params.uid) {
478
+ uids.push(params.uid);
479
+ }
480
+ }));
481
+ if (uids.length) {
482
+ spec.ajaxCall(USP_DELETE_DATA_HANDLER, () => {}, JSON.stringify({ uids }), {contentType: 'application/json', method: 'POST'});
483
+ }
465
484
  }
466
485
  };
467
486
 
@@ -5,7 +5,7 @@
5
5
  * @requires module:modules/userId
6
6
  */
7
7
 
8
- import {logError, logInfo, tryAppendQueryString} from '../src/utils.js';
8
+ import {logError, logInfo, pick, tryAppendQueryString} from '../src/utils.js';
9
9
  import {ajax} from '../src/ajax.js';
10
10
  import { submodule } from '../src/hook.js'
11
11
  import {getStorageManager} from '../src/storageManager.js';
@@ -166,6 +166,25 @@ export const growthCodeIdSubmodule = {
166
166
  }
167
167
  };
168
168
  return { callback: resp };
169
+ },
170
+ eids: {
171
+ 'growthCodeId': {
172
+ getValue: function(data) {
173
+ return data.gc_id
174
+ },
175
+ source: 'growthcode.io',
176
+ atype: 1,
177
+ getUidExt: function(data) {
178
+ const extendedData = pick(data, [
179
+ 'h1',
180
+ 'h2',
181
+ 'h3',
182
+ ]);
183
+ if (Object.keys(extendedData).length) {
184
+ return extendedData;
185
+ }
186
+ }
187
+ },
169
188
  }
170
189
  };
171
190
 
@@ -110,6 +110,12 @@ export const hadronIdSubmodule = {
110
110
  ajax(url, callbacks, undefined, {method: 'GET'});
111
111
  };
112
112
  return {callback: resp};
113
+ },
114
+ eids: {
115
+ 'hadronId': {
116
+ source: 'audigent.com',
117
+ atype: 1
118
+ },
113
119
  }
114
120
  };
115
121
 
@@ -108,7 +108,7 @@ export const id5IdSubmodule = {
108
108
  * @returns {IdResponse|undefined}
109
109
  */
110
110
  getId(submoduleConfig, consentData, cacheIdObj) {
111
- if (!hasRequiredConfig(submoduleConfig)) {
111
+ if (!validateConfig(submoduleConfig)) {
112
112
  return undefined;
113
113
  }
114
114
 
@@ -142,19 +142,31 @@ export const id5IdSubmodule = {
142
142
  * @return {(IdResponse|function(callback:function))} A response object that contains id and/or callback.
143
143
  */
144
144
  extendId(config, consentData, cacheIdObj) {
145
- hasRequiredConfig(config);
146
-
147
145
  if (!hasWriteConsentToLocalStorage(consentData)) {
148
146
  logInfo(LOG_PREFIX + 'No consent given for ID5 local storage writing, skipping nb increment.')
149
147
  return cacheIdObj;
150
148
  }
151
149
 
152
- const partnerId = (config && config.params && config.params.partner) || 0;
150
+ const partnerId = validateConfig(config) ? config.params.partner : 0;
153
151
  incrementNb(partnerId);
154
152
 
155
153
  logInfo(LOG_PREFIX + 'using cached ID', cacheIdObj);
156
154
  return cacheIdObj;
157
- }
155
+ },
156
+ eids: {
157
+ 'id5id': {
158
+ getValue: function(data) {
159
+ return data.uid
160
+ },
161
+ source: 'id5-sync.com',
162
+ atype: 1,
163
+ getUidExt: function(data) {
164
+ if (data.ext) {
165
+ return data.ext;
166
+ }
167
+ }
168
+ },
169
+ },
158
170
  };
159
171
 
160
172
  class IdFetchFlow {
@@ -293,9 +305,23 @@ class IdFetchFlow {
293
305
  }
294
306
  }
295
307
 
296
- function hasRequiredConfig(config) {
297
- if (!config || !config.params || !config.params.partner || typeof config.params.partner !== 'number') {
298
- logError(LOG_PREFIX + 'partner required to be defined as a number');
308
+ function validateConfig(config) {
309
+ if (!config || !config.params || !config.params.partner) {
310
+ logError(LOG_PREFIX + 'partner required to be defined');
311
+ return false;
312
+ }
313
+
314
+ const partner = config.params.partner
315
+ if (typeof partner === 'string' || partner instanceof String) {
316
+ let parsedPartnerId = parseInt(partner);
317
+ if (isNaN(parsedPartnerId) || parsedPartnerId < 0) {
318
+ logError(LOG_PREFIX + 'partner required to be a number or a String parsable to a positive integer');
319
+ return false;
320
+ } else {
321
+ config.params.partner = parsedPartnerId;
322
+ }
323
+ } else if (typeof partner !== 'number') {
324
+ logError(LOG_PREFIX + 'partner required to be a number or a String parsable to a positive integer');
299
325
  return false;
300
326
  }
301
327
 
@@ -79,6 +79,12 @@ export const identityLinkSubmodule = {
79
79
  };
80
80
 
81
81
  return { callback: resp };
82
+ },
83
+ eids: {
84
+ 'idl_env': {
85
+ source: 'liveramp.com',
86
+ atype: 3
87
+ },
82
88
  }
83
89
  };
84
90
  // return envelope from third party endpoint
@@ -57,6 +57,12 @@ export const idxIdSubmodule = {
57
57
  }
58
58
  }
59
59
  return undefined;
60
+ },
61
+ eids: {
62
+ 'idx': {
63
+ source: 'idx.lat',
64
+ atype: 1
65
+ },
60
66
  }
61
67
  };
62
68
  submodule('userId', idxIdSubmodule);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- import {deepAccess, deepSetValue, getAdUnitSizes, isFn, isPlainObject, logWarn} from '../src/utils.js';
3
+ import {deepAccess, deepSetValue, getAdUnitSizes, isFn, isPlainObject, logWarn, mergeDeep} from '../src/utils.js';
4
4
  import {registerBidder} from '../src/adapters/bidderFactory.js';
5
5
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
6
6
  import {includes} from '../src/polyfill.js';
@@ -8,7 +8,8 @@ import {config} from '../src/config.js';
8
8
 
9
9
  const BID_SCHEME = 'https://';
10
10
  const BID_DOMAIN = 'technoratimedia.com';
11
- const USER_SYNC_HOST = 'https://ad-cdn.technoratimedia.com';
11
+ const USER_SYNC_IFRAME_URL = 'https://ad-cdn.technoratimedia.com/html/usersync.html';
12
+ const USER_SYNC_PIXEL_URL = 'https://sync.technoratimedia.com/services';
12
13
  const VIDEO_PARAMS = [ 'minduration', 'maxduration', 'startdelay', 'placement', 'linearity', 'mimes', 'protocols', 'api' ];
13
14
  const BLOCKED_AD_SIZES = [
14
15
  '1x1',
@@ -38,11 +39,11 @@ export const spec = {
38
39
  return;
39
40
  }
40
41
  const refererInfo = bidderRequest.refererInfo;
41
- const openRtbBidRequest = {
42
+ // start with some defaults, overridden by anything set in ortb2, if provided.
43
+ const openRtbBidRequest = mergeDeep({
42
44
  id: bidderRequest.bidderRequestId,
43
45
  site: {
44
- // TODO: does the fallback make sense here?
45
- domain: refererInfo.domain || location.hostname,
46
+ domain: refererInfo.domain,
46
47
  page: refererInfo.page,
47
48
  ref: refererInfo.ref
48
49
  },
@@ -50,7 +51,7 @@ export const spec = {
50
51
  ua: navigator.userAgent
51
52
  },
52
53
  imp: []
53
- };
54
+ }, bidderRequest.ortb2 || {});
54
55
 
55
56
  const tmax = bidderRequest.timeout;
56
57
  if (tmax) {
@@ -101,9 +102,17 @@ export const spec = {
101
102
  }
102
103
  });
103
104
 
104
- // CCPA
105
- if (bidderRequest.uspConsent) {
106
- deepSetValue(openRtbBidRequest, 'regs.ext.us_privacy', bidderRequest.uspConsent);
105
+ // Move us_privacy from regs.ext to regs if there isn't already a us_privacy in regs
106
+ if (openRtbBidRequest.regs?.ext?.us_privacy && !openRtbBidRequest.regs?.us_privacy) {
107
+ deepSetValue(openRtbBidRequest, 'regs.us_privacy', openRtbBidRequest.regs.ext.us_privacy);
108
+ }
109
+
110
+ // Remove regs.ext.us_privacy
111
+ if (openRtbBidRequest.regs?.ext?.us_privacy) {
112
+ delete openRtbBidRequest.regs.ext.us_privacy;
113
+ if (Object.keys(openRtbBidRequest.regs.ext).length < 1) {
114
+ delete openRtbBidRequest.regs.ext;
115
+ }
107
116
  }
108
117
 
109
118
  // User ID
@@ -117,7 +126,7 @@ export const spec = {
117
126
  if (openRtbBidRequest.imp.length && seatId) {
118
127
  return {
119
128
  method: 'POST',
120
- url: `${BID_SCHEME}${seatId}.${BID_DOMAIN}/openrtb/bids/${seatId}?src=$$REPO_AND_VERSION$$`,
129
+ url: `${BID_SCHEME}${seatId}.${BID_DOMAIN}/openrtb/bids/${seatId}?src=pbjs%2F$prebid.version$`,
121
130
  data: openRtbBidRequest,
122
131
  options: {
123
132
  contentType: 'application/json',
@@ -294,16 +303,31 @@ export const spec = {
294
303
  }
295
304
  return bids;
296
305
  },
297
- getUserSyncs: function (syncOptions, serverResponses) {
306
+ getUserSyncs: function(syncOptions, serverResponses, gdprConsent, uspConsent, gppConsent) {
298
307
  const syncs = [];
308
+ const queryParams = ['src=pbjs%2F$prebid.version$'];
309
+ if (gdprConsent) {
310
+ queryParams.push(`gdpr=${Number(gdprConsent.gdprApplies && 1)}&consent=${encodeURIComponent(gdprConsent.consentString || '')}`);
311
+ }
312
+ if (uspConsent) {
313
+ queryParams.push('us_privacy=' + encodeURIComponent(uspConsent));
314
+ }
315
+ if (gppConsent) {
316
+ queryParams.push('gpp=' + encodeURIComponent(gppConsent.gppString || '') + '&gppsid=' + encodeURIComponent((gppConsent.applicableSections || []).join(',')));
317
+ }
318
+
299
319
  if (syncOptions.iframeEnabled) {
300
320
  syncs.push({
301
321
  type: 'iframe',
302
- url: `${USER_SYNC_HOST}/html/usersync.html?src=$$REPO_AND_VERSION$$`
322
+ url: `${USER_SYNC_IFRAME_URL}?${queryParams.join('&')}`
323
+ });
324
+ } else if (syncOptions.pixelEnabled) {
325
+ syncs.push({
326
+ type: 'pixel',
327
+ url: `${USER_SYNC_PIXEL_URL}?srv=cs&${queryParams.join('&')}`
303
328
  });
304
- } else {
305
- logWarn('IMDS: Please enable iframe based user sync.');
306
329
  }
330
+
307
331
  return syncs;
308
332
  }
309
333
  };
@@ -160,6 +160,16 @@ export const imuIdSubmodule = {
160
160
  imppid: localData.ppid
161
161
  }
162
162
  };
163
+ },
164
+ eids: {
165
+ 'imppid': {
166
+ source: 'ppid.intimatemerger.com',
167
+ atype: 1
168
+ },
169
+ 'imuid': {
170
+ source: 'intimatemerger.com',
171
+ atype: 1
172
+ },
163
173
  }
164
174
  };
165
175
 
@@ -193,6 +193,12 @@ export const intentIqIdSubmodule = {
193
193
  }
194
194
  };
195
195
  return { callback: resp };
196
+ },
197
+ eids: {
198
+ 'intentIqId': {
199
+ source: 'intentiq.com',
200
+ atype: 1
201
+ },
196
202
  }
197
203
  };
198
204
 
@@ -1,4 +1,4 @@
1
- import { logInfo } from '../src/utils.js';
1
+ import {logInfo} from '../src/utils.js';
2
2
  import {registerBidder} from '../src/adapters/bidderFactory.js';
3
3
  import {getStorageManager} from '../src/storageManager.js';
4
4
 
@@ -9,7 +9,7 @@ const CONSTANTS = {
9
9
  SYNC_ENDPOINT: 'https://k.r66net.com/GetUserSync',
10
10
  TIME_TO_LIVE: 300,
11
11
  DEFAULT_CURRENCY: 'EUR',
12
- PREBID_VERSION: 9,
12
+ PREBID_VERSION: 10,
13
13
  METHOD: 'GET',
14
14
  INVIBES_VENDOR_ID: 436,
15
15
  USERID_PROVIDERS: ['pubcid', 'pubProvidedId', 'uid2', 'zeotapIdPlus', 'id5id'],
@@ -116,7 +116,7 @@ function buildRequest(bidRequests, bidderRequest) {
116
116
  bidParamsJson.userId = userIdModel;
117
117
  }
118
118
  let data = {
119
- location: getDocumentLocation(topWin),
119
+ location: getDocumentLocation(bidderRequest),
120
120
  videoAdHtmlId: generateRandomId(),
121
121
  showFallback: currentQueryStringParams['advs'] === '0',
122
122
  ivbsCampIdsLocal: readFromLocalStorage('IvbsCampIdsLocal'),
@@ -371,8 +371,8 @@ function generateRandomId() {
371
371
  return (Math.round(Math.random() * 1e12)).toString(36).substring(0, 10);
372
372
  }
373
373
 
374
- function getDocumentLocation(topWin) {
375
- return topWin.location.href.substring(0, 300).split(/[?#]/)[0];
374
+ function getDocumentLocation(bidderRequest) {
375
+ return bidderRequest.refererInfo.page.substring(0, 300);
376
376
  }
377
377
 
378
378
  function getUserIds(bidUserId) {