prebid.js 7.10.0 → 7.13.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 (366) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE.md +16 -10
  2. package/.github/codeql/codeql-config.yml +4 -0
  3. package/.github/workflows/codeql-analysis.yml +73 -0
  4. package/.github/workflows/issue_tracker.yml +1 -1
  5. package/README.md +0 -2
  6. package/babelConfig.js +10 -4
  7. package/dist/33acrossBidAdapter.js +1 -1
  8. package/dist/acuityAdsBidAdapter.js +1 -0
  9. package/dist/adagioBidAdapter.js +1 -1
  10. package/dist/adbookpspBidAdapter.js +1 -1
  11. package/dist/adgenerationBidAdapter.js +1 -1
  12. package/dist/adkernelBidAdapter.js +1 -1
  13. package/dist/adrelevantisBidAdapter.js +1 -1
  14. package/dist/adriverBidAdapter.js +1 -1
  15. package/dist/adriverIdSystem.js +1 -1
  16. package/dist/adtelligentBidAdapter.js +1 -1
  17. package/dist/adtrgtmeBidAdapter.js +1 -0
  18. package/dist/adxcgBidAdapter.js +1 -1
  19. package/dist/adyoulikeBidAdapter.js +1 -1
  20. package/dist/ajaBidAdapter.js +1 -1
  21. package/dist/alkimiBidAdapter.js +1 -1
  22. package/dist/amxBidAdapter.js +1 -1
  23. package/dist/amxIdSystem.js +1 -1
  24. package/dist/aniviewBidAdapter.js +1 -1
  25. package/dist/aolBidAdapter.js +1 -1
  26. package/dist/appierAnalyticsAdapter.js +1 -1
  27. package/dist/appnexusBidAdapter.js +1 -1
  28. package/dist/asoBidAdapter.js +1 -1
  29. package/dist/audiencerunBidAdapter.js +1 -1
  30. package/dist/axonixBidAdapter.js +1 -1
  31. package/dist/beopBidAdapter.js +1 -1
  32. package/dist/betweenBidAdapter.js +1 -1
  33. package/dist/bidglassBidAdapter.js +1 -1
  34. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  35. package/dist/big-richmediaBidAdapter.js +1 -1
  36. package/dist/bluebillywigBidAdapter.js +1 -1
  37. package/dist/brandmetricsRtdProvider.js +1 -1
  38. package/dist/bridgewellBidAdapter.js +1 -1
  39. package/dist/brightMountainMediaBidAdapter.js +1 -1
  40. package/dist/browsiRtdProvider.js +1 -1
  41. package/dist/cleanioRtdProvider.js +1 -1
  42. package/dist/concertBidAdapter.js +1 -1
  43. package/dist/connectadBidAdapter.js +1 -1
  44. package/dist/consentManagement.js +1 -1
  45. package/dist/consentManagementUsp.js +1 -1
  46. package/dist/consumableBidAdapter.js +1 -1
  47. package/dist/conversantBidAdapter.js +1 -1
  48. package/dist/cpmstarBidAdapter.js +1 -1
  49. package/dist/craftBidAdapter.js +1 -1
  50. package/dist/criteoBidAdapter.js +1 -1
  51. package/dist/currency.js +1 -1
  52. package/dist/datawrkzBidAdapter.js +1 -0
  53. package/dist/debugging-standalone.js +1 -1
  54. package/dist/dfpAdServerVideo.js +1 -1
  55. package/dist/dgkeywordRtdProvider.js +1 -1
  56. package/dist/displayioBidAdapter.js +1 -3
  57. package/dist/dspxBidAdapter.js +1 -1
  58. package/dist/enrichmentFpdModule.js +1 -1
  59. package/dist/eplanningBidAdapter.js +1 -1
  60. package/dist/finativeBidAdapter.js +1 -1
  61. package/dist/glimpseBidAdapter.js +1 -1
  62. package/dist/gmosspBidAdapter.js +1 -1
  63. package/dist/goldbachBidAdapter.js +1 -1
  64. package/dist/gridBidAdapter.js +1 -1
  65. package/dist/gridNMBidAdapter.js +1 -1
  66. package/dist/gumgumBidAdapter.js +1 -1
  67. package/dist/h12mediaBidAdapter.js +1 -1
  68. package/dist/id5IdSystem.js +1 -1
  69. package/dist/imRtdProvider.js +1 -1
  70. package/dist/impactifyBidAdapter.js +1 -1
  71. package/dist/improvedigitalBidAdapter.js +1 -1
  72. package/dist/inmarBidAdapter.js +1 -1
  73. package/dist/insticatorBidAdapter.js +1 -1
  74. package/dist/ixBidAdapter.js +1 -1
  75. package/dist/jixieBidAdapter.js +1 -1
  76. package/dist/justpremiumBidAdapter.js +1 -1
  77. package/dist/kargoBidAdapter.js +1 -1
  78. package/dist/konduitAnalyticsAdapter.js +1 -1
  79. package/dist/kueezBidAdapter.js +1 -1
  80. package/dist/lassoBidAdapter.js +1 -1
  81. package/dist/lifestreetBidAdapter.js +1 -0
  82. package/dist/limelightDigitalBidAdapter.js +1 -1
  83. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  84. package/dist/logicadBidAdapter.js +1 -1
  85. package/dist/loglyliftBidAdapter.js +1 -1
  86. package/dist/mabidderBidAdapter.js +1 -0
  87. package/dist/malltvAnalyticsAdapter.js +1 -1
  88. package/dist/marsmediaBidAdapter.js +1 -1
  89. package/dist/mediafuseBidAdapter.js +1 -1
  90. package/dist/mediagoBidAdapter.js +1 -0
  91. package/dist/mediakeysBidAdapter.js +1 -1
  92. package/dist/mediasquareBidAdapter.js +1 -1
  93. package/dist/mgidBidAdapter.js +1 -1
  94. package/dist/minutemediaBidAdapter.js +1 -1
  95. package/dist/nextMillenniumBidAdapter.js +1 -1
  96. package/dist/not-for-prod/prebid.js +153 -147
  97. package/dist/oguryBidAdapter.js +1 -1
  98. package/dist/oneKeyIdSystem.js +1 -0
  99. package/dist/oneKeyRtdProvider.js +1 -0
  100. package/dist/onetagBidAdapter.js +1 -1
  101. package/dist/ooloAnalyticsAdapter.js +1 -1
  102. package/dist/openxAnalyticsAdapter.js +1 -1
  103. package/dist/outbrainBidAdapter.js +1 -1
  104. package/dist/parrableIdSystem.js +1 -1
  105. package/dist/permutiveRtdProvider.js +1 -1
  106. package/dist/pixfutureBidAdapter.js +1 -1
  107. package/dist/prebid-core.js +2 -2
  108. package/dist/publinkIdSystem.js +1 -1
  109. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  110. package/dist/pubmaticBidAdapter.js +1 -1
  111. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  112. package/dist/pxyzBidAdapter.js +1 -1
  113. package/dist/quantcastBidAdapter.js +1 -1
  114. package/dist/rasBidAdapter.js +1 -1
  115. package/dist/readpeakBidAdapter.js +1 -1
  116. package/dist/relaidoBidAdapter.js +1 -1
  117. package/dist/rhythmoneBidAdapter.js +1 -1
  118. package/dist/riseBidAdapter.js +1 -1
  119. package/dist/rtbhouseBidAdapter.js +1 -1
  120. package/dist/rubiconAnalyticsAdapter.js +1 -1
  121. package/dist/rubiconBidAdapter.js +1 -1
  122. package/dist/seedingAllianceBidAdapter.js +1 -1
  123. package/dist/seedtagBidAdapter.js +1 -1
  124. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  125. package/dist/sharethroughBidAdapter.js +1 -1
  126. package/dist/shinezBidAdapter.js +1 -1
  127. package/dist/smaatoBidAdapter.js +1 -1
  128. package/dist/smartadserverBidAdapter.js +1 -1
  129. package/dist/smartxBidAdapter.js +1 -1
  130. package/dist/smilewantedBidAdapter.js +1 -1
  131. package/dist/sonobiBidAdapter.js +1 -1
  132. package/dist/sovrnAnalyticsAdapter.js +1 -1
  133. package/dist/sovrnBidAdapter.js +1 -1
  134. package/dist/sspBCBidAdapter.js +1 -1
  135. package/dist/sublimeBidAdapter.js +1 -1
  136. package/dist/synacormediaBidAdapter.js +1 -1
  137. package/dist/tappxBidAdapter.js +1 -1
  138. package/dist/targetVideoBidAdapter.js +1 -1
  139. package/dist/teadsBidAdapter.js +1 -1
  140. package/dist/trionBidAdapter.js +1 -1
  141. package/dist/tripleliftBidAdapter.js +1 -1
  142. package/dist/trustpidSystem.js +1 -1
  143. package/dist/ttdBidAdapter.js +1 -1
  144. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  145. package/dist/underdogmediaBidAdapter.js +1 -1
  146. package/dist/undertoneBidAdapter.js +1 -1
  147. package/dist/userId.js +1 -1
  148. package/dist/vidazooBidAdapter.js +1 -1
  149. package/dist/videobyteBidAdapter.js +1 -1
  150. package/dist/viewability.js +1 -1
  151. package/dist/visxBidAdapter.js +1 -1
  152. package/dist/vuukleBidAdapter.js +1 -1
  153. package/dist/widespaceBidAdapter.js +1 -1
  154. package/dist/winrBidAdapter.js +1 -1
  155. package/dist/yahoosspBidAdapter.js +1 -1
  156. package/dist/yieldmoBidAdapter.js +1 -1
  157. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  158. package/dist/zeta_global_sspBidAdapter.js +1 -1
  159. package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
  160. package/karma.conf.maker.js +2 -13
  161. package/modules/.submodules.json +2 -0
  162. package/modules/acuityAdsBidAdapter.js +207 -0
  163. package/modules/acuityAdsBidAdapter.md +79 -0
  164. package/modules/adagioBidAdapter.js +2 -3
  165. package/modules/adgenerationBidAdapter.js +2 -2
  166. package/modules/adkernelBidAdapter.js +28 -12
  167. package/modules/admixerBidAdapter.js +1 -1
  168. package/modules/adnowBidAdapter.js +1 -1
  169. package/modules/adpod.js +1 -1
  170. package/modules/adrelevantisBidAdapter.js +2 -2
  171. package/modules/adriverBidAdapter.js +5 -12
  172. package/modules/adriverIdSystem.js +2 -1
  173. package/modules/adtargetBidAdapter.js +1 -1
  174. package/modules/adtelligentBidAdapter.js +6 -2
  175. package/modules/adtrgtmeBidAdapter.js +333 -0
  176. package/modules/adtrgtmeBidAdapter.md +69 -0
  177. package/modules/adtrueBidAdapter.js +1 -1
  178. package/modules/adxpremiumAnalyticsAdapter.js +1 -1
  179. package/modules/adyoulikeBidAdapter.js +1 -1
  180. package/modules/alkimiBidAdapter.js +2 -1
  181. package/modules/aniviewBidAdapter.js +1 -1
  182. package/modules/appnexusBidAdapter.js +13 -93
  183. package/modules/apstreamBidAdapter.js +2 -2
  184. package/modules/beopBidAdapter.js +4 -4
  185. package/modules/betweenBidAdapter.js +4 -4
  186. package/modules/bidwatchAnalyticsAdapter.js +112 -59
  187. package/modules/bizzclickBidAdapter.js +1 -1
  188. package/modules/brightMountainMediaBidAdapter.js +1 -1
  189. package/modules/browsiRtdProvider.js +24 -10
  190. package/modules/cleanmedianetBidAdapter.js +1 -1
  191. package/modules/consentManagement.js +1 -1
  192. package/modules/consentManagementUsp.js +1 -1
  193. package/modules/consumableBidAdapter.js +43 -3
  194. package/modules/cpmstarBidAdapter.js +23 -13
  195. package/modules/criteoBidAdapter.js +19 -13
  196. package/modules/currency.js +1 -0
  197. package/modules/cwireBidAdapter.js +1 -1
  198. package/modules/datablocksBidAdapter.js +1 -1
  199. package/modules/datawrkzBidAdapter.js +633 -0
  200. package/modules/datawrkzBidAdapter.md +160 -0
  201. package/modules/dfpAdServerVideo.js +2 -2
  202. package/modules/dgkeywordRtdProvider.js +10 -1
  203. package/modules/displayioBidAdapter.js +92 -97
  204. package/modules/dspxBidAdapter.js +1 -1
  205. package/modules/e_volutionBidAdapter.js +3 -3
  206. package/modules/ebdrBidAdapter.js +1 -1
  207. package/modules/emx_digitalBidAdapter.js +1 -1
  208. package/modules/enrichmentFpdModule.js +11 -0
  209. package/modules/fabrickIdSystem.js +2 -2
  210. package/modules/gamoshiBidAdapter.js +1 -1
  211. package/modules/getintentBidAdapter.js +1 -1
  212. package/modules/gjirafaBidAdapter.js +2 -2
  213. package/modules/goldbachBidAdapter.js +8 -8
  214. package/modules/gothamadsBidAdapter.js +2 -2
  215. package/modules/gumgumBidAdapter.js +3 -3
  216. package/modules/h12mediaBidAdapter.js +1 -1
  217. package/modules/id5AnalyticsAdapter.js +1 -1
  218. package/modules/id5IdSystem.js +160 -111
  219. package/modules/id5IdSystem.md +16 -14
  220. package/modules/imRtdProvider.js +20 -7
  221. package/modules/imRtdProvider.md +3 -1
  222. package/modules/impactifyBidAdapter.js +1 -1
  223. package/modules/improvedigitalBidAdapter.js +50 -28
  224. package/modules/inskinBidAdapter.js +1 -1
  225. package/modules/insticatorBidAdapter.js +1 -1
  226. package/modules/integr8BidAdapter.js +2 -2
  227. package/modules/intentIqIdSystem.js +2 -2
  228. package/modules/interactiveOffersBidAdapter.js +1 -1
  229. package/modules/iqmBidAdapter.js +1 -1
  230. package/modules/ixBidAdapter.js +21 -328
  231. package/modules/ixBidAdapter.md +1 -19
  232. package/modules/kargoBidAdapter.js +4 -5
  233. package/modules/krushmediaBidAdapter.js +2 -2
  234. package/modules/lassoBidAdapter.js +3 -3
  235. package/modules/lifestreetBidAdapter.js +143 -0
  236. package/modules/limelightDigitalBidAdapter.js +2 -1
  237. package/modules/livewrappedAnalyticsAdapter.js +3 -3
  238. package/modules/lkqdBidAdapter.js +3 -3
  239. package/modules/loganBidAdapter.js +2 -2
  240. package/modules/luponmediaBidAdapter.js +3 -3
  241. package/modules/mabidderBidAdapter.js +60 -0
  242. package/modules/mabidderBidAdapter.md +31 -0
  243. package/modules/malltvBidAdapter.js +2 -2
  244. package/modules/mediagoBidAdapter.js +462 -0
  245. package/modules/mediagoBidAdapter.md +34 -0
  246. package/modules/mediakeysBidAdapter.js +2 -2
  247. package/modules/mgidBidAdapter.js +2 -2
  248. package/modules/nextMillenniumBidAdapter.js +25 -6
  249. package/modules/nobidBidAdapter.js +2 -2
  250. package/modules/novatiqIdSystem.js +1 -1
  251. package/modules/oneKeyIdSystem.js +78 -0
  252. package/modules/oneKeyIdSystem.md +109 -0
  253. package/modules/oneKeyRtdProvider.js +98 -0
  254. package/modules/oneKeyRtdProvider.md +127 -0
  255. package/modules/open8BidAdapter.js +1 -1
  256. package/modules/openwebBidAdapter.js +1 -1
  257. package/modules/openxAnalyticsAdapter.js +5 -744
  258. package/modules/openxAnalyticsAdapter.md +4 -0
  259. package/modules/openxBidAdapter.js +3 -3
  260. package/modules/permutiveRtdProvider.js +55 -8
  261. package/modules/pixfutureBidAdapter.js +1 -1
  262. package/modules/prebidmanagerAnalyticsAdapter.js +1 -1
  263. package/modules/priceFloors.js +1 -1
  264. package/modules/pubmaticAnalyticsAdapter.js +1 -1
  265. package/modules/pubmaticBidAdapter.js +19 -1
  266. package/modules/pubwiseAnalyticsAdapter.js +1 -1
  267. package/modules/pubwiseBidAdapter.js +3 -3
  268. package/modules/pubxBidAdapter.js +1 -1
  269. package/modules/pubxaiAnalyticsAdapter.js +2 -2
  270. package/modules/quantcastIdSystem.js +1 -1
  271. package/modules/radsBidAdapter.js +1 -1
  272. package/modules/rasBidAdapter.js +8 -0
  273. package/modules/rasBidAdapter.md +14 -13
  274. package/modules/revcontentBidAdapter.js +1 -1
  275. package/modules/richaudienceBidAdapter.js +1 -1
  276. package/modules/rtbhouseBidAdapter.js +25 -1
  277. package/modules/schain.js +1 -1
  278. package/modules/seedtagBidAdapter.md +25 -56
  279. package/modules/showheroes-bsBidAdapter.js +1 -1
  280. package/modules/sizeMappingV2.js +1 -1
  281. package/modules/smaatoBidAdapter.js +2 -2
  282. package/modules/sonobiAnalyticsAdapter.js +1 -1
  283. package/modules/sonobiBidAdapter.js +4 -3
  284. package/modules/staqAnalyticsAdapter.js +1 -1
  285. package/modules/tappxBidAdapter.js +11 -2
  286. package/modules/targetVideoBidAdapter.js +1 -1
  287. package/modules/theAdxBidAdapter.js +2 -2
  288. package/modules/tpmnBidAdapter.js +1 -1
  289. package/modules/trionBidAdapter.js +2 -2
  290. package/modules/tripleliftBidAdapter.js +20 -1
  291. package/modules/trustpidSystem.js +6 -42
  292. package/modules/trustpidSystem.md +10 -10
  293. package/modules/underdogmediaBidAdapter.js +1 -1
  294. package/modules/userId/eids.js +26 -0
  295. package/modules/userId/userId.md +2 -2
  296. package/modules/vdoaiBidAdapter.js +1 -1
  297. package/modules/vidazooBidAdapter.js +7 -5
  298. package/modules/vidoomyBidAdapter.js +1 -1
  299. package/modules/viewability.js +14 -14
  300. package/modules/winrBidAdapter.js +1 -1
  301. package/modules/yahoosspBidAdapter.js +3 -3
  302. package/modules/yandexBidAdapter.js +1 -1
  303. package/modules/yieldmoBidAdapter.js +3 -3
  304. package/modules/yieldoneBidAdapter.js +2 -2
  305. package/modules/zeta_global_sspBidAdapter.js +24 -21
  306. package/package.json +3 -3
  307. package/src/Renderer.js +1 -1
  308. package/src/adloader.js +2 -1
  309. package/src/adserver.js +0 -56
  310. package/src/auction.js +60 -16
  311. package/src/bidfactory.js +1 -1
  312. package/src/native.js +75 -60
  313. package/src/refererDetection.js +12 -1
  314. package/src/sizeMapping.js +5 -7
  315. package/src/targeting.js +1 -1
  316. package/src/userSync.js +1 -1
  317. package/src/utils/promise.js +3 -1
  318. package/src/utils.js +27 -0
  319. package/src/video.js +5 -4
  320. package/src/videoCache.js +8 -2
  321. package/test/pages/instream.html +2 -2
  322. package/test/spec/modules/acuityAdsBidAdapter_spec.js +398 -0
  323. package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
  324. package/test/spec/modules/adkernelBidAdapter_spec.js +11 -2
  325. package/test/spec/modules/adriverBidAdapter_spec.js +6 -13
  326. package/test/spec/modules/adriverIdSystem_spec.js +3 -8
  327. package/test/spec/modules/adtelligentBidAdapter_spec.js +2 -0
  328. package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
  329. package/test/spec/modules/alkimiBidAdapter_spec.js +2 -1
  330. package/test/spec/modules/appnexusBidAdapter_spec.js +1 -0
  331. package/test/spec/modules/beopBidAdapter_spec.js +11 -0
  332. package/test/spec/modules/betweenBidAdapter_spec.js +17 -0
  333. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +28 -12
  334. package/test/spec/modules/big-richmediaBidAdapter_spec.js +1 -0
  335. package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
  336. package/test/spec/modules/consumableBidAdapter_spec.js +158 -0
  337. package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
  338. package/test/spec/modules/criteoBidAdapter_spec.js +35 -26
  339. package/test/spec/modules/currency_spec.js +22 -0
  340. package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
  341. package/test/spec/modules/dgkeywordRtdProvider_spec.js +1 -1
  342. package/test/spec/modules/displayioBidAdapter_spec.js +16 -52
  343. package/test/spec/modules/enrichmentFpdModule_spec.js +16 -1
  344. package/test/spec/modules/fpdModule_spec.js +2 -1
  345. package/test/spec/modules/id5IdSystem_spec.js +529 -172
  346. package/test/spec/modules/imRtdProvider_spec.js +10 -5
  347. package/test/spec/modules/improvedigitalBidAdapter_spec.js +9 -13
  348. package/test/spec/modules/ixBidAdapter_spec.js +216 -123
  349. package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
  350. package/test/spec/modules/lifestreetBidAdapter_spec.js +232 -0
  351. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +59 -7
  352. package/test/spec/modules/mabidderBidAdapter_spec.js +125 -0
  353. package/test/spec/modules/mediagoBidAdapter_spec.js +97 -0
  354. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +2 -7
  355. package/test/spec/modules/oneKeyIdSystem_spec.js +107 -0
  356. package/test/spec/modules/oneKeyRtdProvider_spec.js +152 -0
  357. package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
  358. package/test/spec/modules/permutiveRtdProvider_spec.js +152 -2
  359. package/test/spec/modules/pubmaticBidAdapter_spec.js +69 -4
  360. package/test/spec/modules/rasBidAdapter_spec.js +2 -0
  361. package/test/spec/modules/tripleliftBidAdapter_spec.js +18 -0
  362. package/test/spec/modules/trustpidSystem_spec.js +27 -45
  363. package/test/spec/modules/vidazooBidAdapter_spec.js +36 -23
  364. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +59 -0
  365. package/test/spec/native_spec.js +257 -2
  366. package/test/spec/videoCache_spec.js +37 -7
@@ -295,9 +295,9 @@ function buildOneRequest(validBidRequests, bidderRequest) {
295
295
  if (
296
296
  ((bannerMediaType.sizes[0].indexOf(480) >= 0) && (bannerMediaType.sizes[0].indexOf(320) >= 0)) ||
297
297
  ((bannerMediaType.sizes[0].indexOf(768) >= 0) && (bannerMediaType.sizes[0].indexOf(1024) >= 0))) {
298
- banner.pos = 7
298
+ banner.pos = 7;
299
299
  } else {
300
- banner.pos = 4
300
+ banner.pos = 4;
301
301
  }
302
302
 
303
303
  banner.api = api;
@@ -484,9 +484,18 @@ export function _getHostInfo(validBidRequests) {
484
484
 
485
485
  domainInfo.domain = hostParam.split('/', 1)[0];
486
486
 
487
+ let regexHostParamHttps = new RegExp(`^https:\/\/`);
488
+ let regexHostParamHttp = new RegExp(`^http:\/\/`);
489
+
487
490
  let regexNewEndpoints = new RegExp(`^(vz.*|zz.*)\\.[a-z]{3}\\.tappx\\.com$`, 'i');
488
491
  let regexClassicEndpoints = new RegExp(`^([a-z]{3}|testing)\\.[a-z]{3}\\.tappx\\.com$`, 'i');
489
492
 
493
+ if (regexHostParamHttps.test(hostParam)) {
494
+ hostParam = hostParam.replace('https://', '');
495
+ } else if (regexHostParamHttp.test(hostParam)) {
496
+ hostParam = hostParam.replace('http://', '');
497
+ }
498
+
490
499
  if (regexNewEndpoints.test(domainInfo.domain)) {
491
500
  domainInfo.newEndpoint = true;
492
501
  domainInfo.endpoint = domainInfo.domain.split('.', 1)[0]
@@ -132,7 +132,7 @@ function createVideoTag(bid) {
132
132
  tag.ad_types = [VIDEO];
133
133
  tag.uuid = bid.bidId;
134
134
  tag.allow_smaller_sizes = false;
135
- tag.use_pmt_rule = false
135
+ tag.use_pmt_rule = false;
136
136
  tag.prebid = true;
137
137
  tag.disable_psa = true;
138
138
  tag.hb_source = 1;
@@ -206,7 +206,7 @@ export const spec = {
206
206
  let bidWidth = nullify(bid.w);
207
207
  let bidHeight = nullify(bid.h);
208
208
 
209
- let creative = null
209
+ let creative = null;
210
210
  let videoXml = null;
211
211
  let mediaType = null;
212
212
  let native = null;
@@ -389,7 +389,7 @@ let extractValidSize = (bidRequest, bidderRequest) => {
389
389
  requestedSizes = mediaTypes.video.sizes;
390
390
  }
391
391
  } else if (!isEmpty(bidRequest.sizes)) {
392
- requestedSizes = bidRequest.sizes
392
+ requestedSizes = bidRequest.sizes;
393
393
  }
394
394
 
395
395
  // Ensure the size array is normalized
@@ -87,7 +87,7 @@ export const spec = {
87
87
  syncArr.push({
88
88
  type: 'iframe',
89
89
  url: IFRAMESYNC + policyParam
90
- })
90
+ });
91
91
  } else {
92
92
  syncArr.push({
93
93
  type: 'image',
@@ -53,7 +53,7 @@ export const spec = {
53
53
  bid.currency = result.currency;
54
54
  bid.netRevenue = result.netRevenue;
55
55
  if (result.adomain) {
56
- bid.meta = {advertiserDomains: result.adomain}
56
+ bid.meta = {advertiserDomains: result.adomain};
57
57
  }
58
58
  bidResponses.push(bid);
59
59
  }
@@ -125,7 +125,7 @@ function buildTrionUrlParams(bid, bidderRequest) {
125
125
  intT = getStorageData(BASE_KEY + 'int_t');
126
126
  }
127
127
  if (intT) {
128
- setStorageData(BASE_KEY + 'int_t', intT)
128
+ setStorageData(BASE_KEY + 'int_t', intT);
129
129
  }
130
130
  setStorageData(BASE_KEY + 'lps', pubId + ':' + sectionId);
131
131
  var trionUrl = '';
@@ -139,7 +139,8 @@ function _buildPostBody(bidRequests, bidderRequest) {
139
139
  ...getUnifiedIdEids([bidRequests[0]]),
140
140
  ...getIdentityLinkEids([bidRequests[0]]),
141
141
  ...getCriteoEids([bidRequests[0]]),
142
- ...getPubCommonEids([bidRequests[0]])
142
+ ...getPubCommonEids([bidRequests[0]]),
143
+ ...getUniversalEids(bidRequests[0])
143
144
  ];
144
145
 
145
146
  if (eids.length > 0) {
@@ -312,6 +313,24 @@ function getPubCommonEids(bidRequest) {
312
313
  return getEids(bidRequest, 'pubcid', 'pubcid.org', 'pubcid');
313
314
  }
314
315
 
316
+ function getUniversalEids(bidRequest) {
317
+ let common = ['adserver.org', 'liveramp.com', 'criteo.com', 'pubcid.org'];
318
+ let eids = [];
319
+ if (bidRequest.userIdAsEids) {
320
+ bidRequest.userIdAsEids.forEach(id => {
321
+ try {
322
+ if (common.indexOf(id.source) === -1) {
323
+ let uids = id.uids.map(uid => ({ id: uid.id, ext: { rtiPartner: id.source } }));
324
+ eids.push({ source: id.source, uids });
325
+ }
326
+ } catch (err) {
327
+ logWarn(`Triplelift: Error attempting to add ${id} to bid request`, err);
328
+ }
329
+ });
330
+ }
331
+ return eids;
332
+ }
333
+
315
334
  function getEids(bidRequest, type, source, rtiPartner) {
316
335
  return bidRequest
317
336
  .map(getUserId(type)) // bids -> userIds of a certain type
@@ -10,7 +10,6 @@ import { getStorageManager } from '../src/storageManager.js';
10
10
 
11
11
  const MODULE_NAME = 'trustpid';
12
12
  const LOG_PREFIX = 'Trustpid module'
13
- let mnoAcronym = '';
14
13
  let mnoDomain = '';
15
14
 
16
15
  export const storage = getStorageManager({gvlid: null, moduleName: MODULE_NAME});
@@ -30,7 +29,6 @@ function messageHandler(event) {
30
29
  let domainURL = URL[1].split('/');
31
30
  mnoDomain = domainURL[0];
32
31
  logInfo(`${LOG_PREFIX}: Message handler set domain to ${mnoDomain}`);
33
- getDomainAcronym(mnoDomain);
34
32
  }
35
33
  }
36
34
  } catch (e) {
@@ -38,27 +36,13 @@ function messageHandler(event) {
38
36
  }
39
37
  }
40
38
 
41
- /**
42
- * Properly sets the trustpid acronym depending on the domain value.
43
- * @param domain
44
- */
45
- function getDomainAcronym(domain) {
46
- const prefix = '-';
47
- const acronym = window.FC_CONF?.TELCO_ACRONYM?.[domain];
48
- if (!acronym) {
49
- logInfo(`${LOG_PREFIX}: No acronym found for domain: ${domain}`);
50
- return;
51
- }
52
- mnoAcronym = prefix + acronym;
53
- }
54
-
55
39
  // Set a listener to handle the iframe response message.
56
40
  window.addEventListener('message', messageHandler, false);
57
41
 
58
42
  /**
59
- * Get the "umid" from html5 local storage to make it available to the UserId module.
43
+ * Get the "atid" from html5 local storage to make it available to the UserId module.
60
44
  * @param config
61
- * @returns {{trustpid: (*|string), acr: (string)}}
45
+ * @returns {{trustpid: (*|string)}}
62
46
  */
63
47
  function getTrustpidFromStorage() {
64
48
  // Get the domain either from localStorage or global
@@ -69,28 +53,9 @@ function getTrustpidFromStorage() {
69
53
  logInfo(`${LOG_PREFIX}: Local storage domain not found, returning null`);
70
54
  return {
71
55
  trustpid: null,
72
- acr: null,
73
56
  };
74
57
  }
75
58
 
76
- // Get the acronym from global
77
- let acronym = mnoAcronym;
78
- // if acronym is empty, but "domain" is available, get the acronym from domain
79
- if (!acronym) {
80
- getDomainAcronym(domain);
81
- acronym = mnoAcronym;
82
- }
83
-
84
- logInfo(`${LOG_PREFIX}: Domain acronym found: ${acronym}`);
85
-
86
- // Domain is correct in both local storage and idGraph, but no acronym is existing for the domain
87
- if (!acronym) {
88
- return {
89
- trustpid: null,
90
- acr: null
91
- }
92
- }
93
-
94
59
  let fcIdConnectObject;
95
60
  let fcIdConnectData = JSON.parse(storage.getDataFromLocalStorage('fcIdConnectData'));
96
61
  logInfo(`${LOG_PREFIX}: Local storage fcIdConnectData: ${JSON.stringify(fcIdConnectData)}`);
@@ -106,10 +71,9 @@ function getTrustpidFromStorage() {
106
71
  logInfo(`${LOG_PREFIX}: Local storage fcIdConnectObject for domain: ${JSON.stringify(fcIdConnectObject)}`);
107
72
 
108
73
  return {
109
- trustpid: (fcIdConnectObject && fcIdConnectObject.umid)
110
- ? fcIdConnectObject.umid
74
+ trustpid: (fcIdConnectObject && fcIdConnectObject.atid)
75
+ ? fcIdConnectObject.atid
111
76
  : null,
112
- acr: acronym,
113
77
  };
114
78
  }
115
79
 
@@ -138,7 +102,7 @@ export const trustpidSubmodule = {
138
102
  const data = getTrustpidFromStorage();
139
103
  if (data.trustpid) {
140
104
  logInfo(`${LOG_PREFIX}: Local storage ID value ${JSON.stringify(data)}`);
141
- return {id: {trustpid: data.trustpid + data.acr}};
105
+ return {id: {trustpid: data.trustpid}};
142
106
  } else {
143
107
  if (!config) {
144
108
  config = {};
@@ -165,7 +129,7 @@ export const trustpidSubmodule = {
165
129
  }, delayStep);
166
130
  }
167
131
  } else {
168
- const dataToReturn = { trustpid: data.trustpid + data.acr };
132
+ const dataToReturn = { trustpid: data.trustpid };
169
133
  logInfo(`${LOG_PREFIX}: Returning ID value data of ${JSON.stringify(dataToReturn)}`);
170
134
  callback(dataToReturn);
171
135
  }
@@ -10,13 +10,13 @@ gulp build --modules=userId,adfBidAdapter,ixBidAdapter,prebidServerBidAdapter,tr
10
10
 
11
11
  ## Parameter Descriptions
12
12
 
13
- | Params under userSync.userIds[] | Type | Description | Example |
14
- | --- | --- | --- | --- |
15
- | name | String | The name of the module | `"trustpid"` |
16
- | params | Object | Object with configuration parameters for trustpid User Id submodule | - |
17
- | params.maxDelayTime | Integer | Max amount of time (in seconds) before looking into storage for data | 2500 |
18
- | bidders | Array of Strings | An array of bidder codes to which this user ID may be sent. Currently required and supporting AdformOpenRTB | [`"adf"`, `"adformPBS"`, `"ix"`] |
19
- | storage | Object | Local storage configuration object | - |
20
- | storage.type | String | Type of the storage that would be used to store user ID. Must be `"html5"` to utilise HTML5 local storage. | `"html5"` |
21
- | storage.name | String | The name of the key in local storage where the user ID will be stored. | `"trustpid"` |
22
- | storage.expires | Integer | How long (in days) the user ID information will be stored. For safety reasons, this information is required.| `1` |
13
+ | Params under userSync.userIds[] | Type | Description | Example |
14
+ | ------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------ | -------------------------------- |
15
+ | name | String | The name of the module | `"trustpid"` |
16
+ | params | Object | Object with configuration parameters for trustpid User Id submodule | - |
17
+ | params.maxDelayTime | Integer | Max amount of time (in seconds) before looking into storage for data | 2500 |
18
+ | bidders | Array of Strings | An array of bidder codes to which this user ID may be sent. Currently required and supporting AdformOpenRTB | [`"adf"`, `"adformPBS"`, `"ix"`] |
19
+ | storage | Object | Local storage configuration object | - |
20
+ | storage.type | String | Type of the storage that would be used to store user ID. Must be `"html5"` to utilise HTML5 local storage. | `"html5"` |
21
+ | storage.name | String | The name of the key in local storage where the user ID will be stored. | `"trustpid"` |
22
+ | storage.expires | Integer | How long (in days) the user ID information will be stored. For safety reasons, this information is required. | `1` |
@@ -98,7 +98,7 @@ export const spec = {
98
98
  }
99
99
 
100
100
  var sizeNotFound = true;
101
- const bidParamSizes = bidParam.mediaTypes && bidParam.mediaTypes.banner && bidParam.mediaTypes.banner.sizes ? bidParam.mediaTypes.banner.sizes : bidParam.sizes
101
+ const bidParamSizes = bidParam.mediaTypes && bidParam.mediaTypes.banner && bidParam.mediaTypes.banner.sizes ? bidParam.mediaTypes.banner.sizes : bidParam.sizes;
102
102
  parseSizesInput(bidParamSizes).forEach(size => {
103
103
  if (size === mid.width + 'x' + mid.height) {
104
104
  sizeNotFound = false;
@@ -330,6 +330,32 @@ export const USER_IDS_CONFIG = {
330
330
  'cpexId': {
331
331
  source: 'czechadid.cz',
332
332
  atype: 1
333
+ },
334
+
335
+ // OneKey Data
336
+ 'oneKeyData': {
337
+ getValue: function(data) {
338
+ if (data && Array.isArray(data.identifiers) && data.identifiers[0]) {
339
+ return data.identifiers[0].value;
340
+ }
341
+ },
342
+ source: 'paf',
343
+ atype: 1,
344
+ getEidExt: function(data) {
345
+ if (data && data.preferences) {
346
+ return {preferences: data.preferences};
347
+ }
348
+ },
349
+ getUidExt: function(data) {
350
+ if (data && Array.isArray(data.identifiers) && data.identifiers[0]) {
351
+ const id = data.identifiers[0];
352
+ return {
353
+ version: id.version,
354
+ type: id.type,
355
+ source: id.source
356
+ };
357
+ }
358
+ }
333
359
  }
334
360
  };
335
361
 
@@ -151,7 +151,7 @@ pbjs.setConfig({
151
151
  },
152
152
  {
153
153
  name: "dacId"
154
- },
154
+ },
155
155
  {
156
156
  name: "gravitompId"
157
157
  }
@@ -372,4 +372,4 @@ pbjs.setConfig({
372
372
  syncDelay: 5000
373
373
  }
374
374
  });
375
- ```
375
+ ```
@@ -102,7 +102,7 @@ export const spec = {
102
102
  if (response.adDomain) {
103
103
  bidResponse.meta = {
104
104
  advertiserDomains: response.adDomain
105
- }
105
+ };
106
106
  }
107
107
  bidResponses.push(bidResponse);
108
108
  }
@@ -1,4 +1,4 @@
1
- import { _each, deepAccess, parseSizesInput, parseUrl } from '../src/utils.js';
1
+ import {_each, deepAccess, parseSizesInput, parseUrl, uniques} from '../src/utils.js';
2
2
  import { registerBidder } from '../src/adapters/bidderFactory.js';
3
3
  import { BANNER } from '../src/mediaTypes.js';
4
4
  import { getStorageManager } from '../src/storageManager.js';
@@ -97,7 +97,7 @@ function buildRequest(bid, topWindowUrl, sizes, bidderRequest) {
97
97
  }
98
98
  }
99
99
  if (bidderRequest.uspConsent) {
100
- data.usPrivacy = bidderRequest.uspConsent
100
+ data.usPrivacy = bidderRequest.uspConsent;
101
101
  }
102
102
 
103
103
  const dto = {
@@ -191,17 +191,19 @@ function getUserSyncs(syncOptions, responses, gdprConsent = {}, uspConsent = '')
191
191
  let syncs = [];
192
192
  const { iframeEnabled, pixelEnabled } = syncOptions;
193
193
  const { gdprApplies, consentString = '' } = gdprConsent;
194
- const params = `?gdpr=${gdprApplies ? 1 : 0}&gdpr_consent=${encodeURIComponent(consentString || '')}&us_privacy=${encodeURIComponent(uspConsent || '')}`
194
+
195
+ const cidArr = responses.filter(resp => deepAccess(resp, 'body.cid')).map(resp => resp.body.cid).filter(uniques);
196
+ const params = `?cid=${encodeURIComponent(cidArr.join(','))}&gdpr=${gdprApplies ? 1 : 0}&gdpr_consent=${encodeURIComponent(consentString || '')}&us_privacy=${encodeURIComponent(uspConsent || '')}`
195
197
  if (iframeEnabled) {
196
198
  syncs.push({
197
199
  type: 'iframe',
198
- url: `https://prebid.cootlogix.com/api/sync/iframe/${params}`
200
+ url: `https://sync.cootlogix.com/api/sync/iframe/${params}`
199
201
  });
200
202
  }
201
203
  if (pixelEnabled) {
202
204
  syncs.push({
203
205
  type: 'image',
204
- url: `https://prebid.cootlogix.com/api/sync/image/${params}`
206
+ url: `https://sync.cootlogix.com/api/sync/image/${params}`
205
207
  });
206
208
  }
207
209
  return syncs;
@@ -110,7 +110,7 @@ const buildRequests = (validBidRequests, bidderRequest) => {
110
110
  method: 'GET',
111
111
  url: ENDPOINT,
112
112
  data: queryParams
113
- }
113
+ };
114
114
  });
115
115
  return serverRequests;
116
116
  };
@@ -13,7 +13,7 @@ export function init() {
13
13
  listenMessagesFromCreative();
14
14
  }
15
15
 
16
- const observers = {};
16
+ const observers = new Map();
17
17
 
18
18
  function isValid(vid, element, tracker, criteria) {
19
19
  if (!element) {
@@ -36,7 +36,7 @@ function isValid(vid, element, tracker, criteria) {
36
36
  return false;
37
37
  }
38
38
 
39
- if (!vid || observers[vid]) {
39
+ if (!vid || observers.has(vid)) {
40
40
  logWarn(`${MODULE_NAME}: must provide an unregistered vid`, vid);
41
41
  return false;
42
42
  }
@@ -46,7 +46,7 @@ function isValid(vid, element, tracker, criteria) {
46
46
 
47
47
  function stopObserving(observer, vid, element) {
48
48
  observer.unobserve(element);
49
- observers[vid].done = true;
49
+ observers.get(vid).done = true;
50
50
  }
51
51
 
52
52
  function fireViewabilityTracker(element, tracker) {
@@ -96,21 +96,21 @@ export function startMeasurement(vid, element, tracker, criteria) {
96
96
  viewable = entries[0].isIntersecting;
97
97
 
98
98
  if (viewable) {
99
- observers[vid].timeoutId = window.setTimeout(() => {
99
+ observers.get(vid).timeoutId = window.setTimeout(() => {
100
100
  viewabilityCriteriaMet(observer, vid, element, tracker);
101
101
  }, criteria.timeInView);
102
- } else if (observers[vid].timeoutId) {
103
- window.clearTimeout(observers[vid].timeoutId);
102
+ } else if (observers.get(vid).timeoutId) {
103
+ window.clearTimeout(observers.get(vid).timeoutId);
104
104
  }
105
105
  };
106
106
 
107
107
  observer = new IntersectionObserver(stateChange, options);
108
- observers[vid] = {
108
+ observers.set(vid, {
109
109
  observer: observer,
110
110
  element: element,
111
111
  timeoutId: null,
112
112
  done: false,
113
- };
113
+ });
114
114
 
115
115
  observer.observe(element);
116
116
 
@@ -122,19 +122,19 @@ export function startMeasurement(vid, element, tracker, criteria) {
122
122
  * @param {string} vid unique viewability identifier
123
123
  */
124
124
  export function stopMeasurement(vid) {
125
- if (!vid || !observers[vid]) {
125
+ if (!vid || !observers.has(vid)) {
126
126
  logWarn(`${MODULE_NAME}: must provide a registered vid`, vid);
127
127
  return;
128
128
  }
129
129
 
130
- observers[vid].observer.unobserve(observers[vid].element);
131
- if (observers[vid].timeoutId) {
132
- window.clearTimeout(observers[vid].timeoutId);
130
+ observers.get(vid).observer.unobserve(observers.get(vid).element);
131
+ if (observers.get(vid).timeoutId) {
132
+ window.clearTimeout(observers.get(vid).timeoutId);
133
133
  }
134
134
 
135
135
  // allow the observer under this vid to be created again
136
- if (!observers[vid].done) {
137
- delete observers[vid];
136
+ if (!observers.get(vid).done) {
137
+ observers.delete(vid);
138
138
  }
139
139
  }
140
140
 
@@ -208,7 +208,7 @@ export const spec = {
208
208
  }
209
209
 
210
210
  if (appDeviceObjBid) {
211
- payload.device = appDeviceObj
211
+ payload.device = appDeviceObj;
212
212
  }
213
213
  if (appIdObjBid) {
214
214
  payload.app = appIdObj;
@@ -408,7 +408,7 @@ function appendFirstPartyData(outBoundBidRequest, bid) {
408
408
  newDataObject = validateAppendObject('object', allowedContentDataObjectKeys, dataObject, newDataObject);
409
409
  outBoundBidRequest.site.content.data = [];
410
410
  outBoundBidRequest.site.content.data.push(newDataObject);
411
- })
411
+ });
412
412
  };
413
413
  };
414
414
 
@@ -428,7 +428,7 @@ function appendFirstPartyData(outBoundBidRequest, bid) {
428
428
  }
429
429
  };
430
430
  outBoundBidRequest.app.content.data.push(newDataObject);
431
- })
431
+ });
432
432
  };
433
433
  };
434
434
 
@@ -488,7 +488,7 @@ function generateServerRequest({payload, requestOptions, bidderRequest}) {
488
488
 
489
489
  function createRenderer(bidderRequest, bidResponse) {
490
490
  const renderer = Renderer.install({
491
- url: 'https://cdn.vidible.tv/prod/hb-outstream-renderer/renderer.js',
491
+ url: 'https://s.yimg.com/kp/prebid-outstream-renderer/renderer.js',
492
492
  loaded: false,
493
493
  adUnitCode: bidderRequest.adUnitCode
494
494
  })
@@ -65,7 +65,7 @@ export const spec = {
65
65
  withCredentials,
66
66
  },
67
67
  bidRequest,
68
- }
68
+ };
69
69
  });
70
70
  },
71
71
 
@@ -531,13 +531,13 @@ function validateVideoParams(bid) {
531
531
  error += ' when ' + conditionStr;
532
532
  }
533
533
  throw new Error(error);
534
- }
534
+ };
535
535
 
536
536
  const paramInvalid = (paramStr, value, expectedStr) => {
537
537
  expectedStr = expectedStr ? ', expected: ' + expectedStr : '';
538
538
  value = JSON.stringify(value);
539
539
  throw new Error(`"${paramStr}"=${value} is invalid${expectedStr}`);
540
- }
540
+ };
541
541
 
542
542
  const isDefined = val => typeof val !== 'undefined';
543
543
  const validate = (fieldPath, validateCb, errorCb, errorCbParam) => {
@@ -563,7 +563,7 @@ function validateVideoParams(bid) {
563
563
  }
564
564
  return value;
565
565
  }
566
- }
566
+ };
567
567
 
568
568
  try {
569
569
  validate('video.context', val => !isEmpty(val), paramRequired);
@@ -90,7 +90,7 @@ export const spec = {
90
90
  method: 'GET',
91
91
  url: ENDPOINT_URL,
92
92
  data: payload,
93
- }
93
+ };
94
94
  });
95
95
  },
96
96
  interpretResponse: function(serverResponse, bidRequest) {
@@ -212,7 +212,7 @@ function getMediaType(bidRequest, enabledOldFormat = true) {
212
212
  }
213
213
 
214
214
  if (hasBannerType && hasVideoType) {
215
- const playerParams = deepAccess(bidRequest, 'params.playerParams')
215
+ const playerParams = deepAccess(bidRequest, 'params.playerParams');
216
216
  if (playerParams) {
217
217
  return VIDEO;
218
218
  } else {
@@ -69,31 +69,34 @@ export const spec = {
69
69
  */
70
70
  buildRequests: function (validBidRequests, bidderRequest) {
71
71
  const secure = 1; // treat all requests as secure
72
- const request = validBidRequests[0];
73
- const params = request.params;
74
- const impData = {
75
- id: request.bidId,
76
- secure: secure
77
- };
78
- if (request.mediaTypes) {
79
- for (const mediaType in request.mediaTypes) {
80
- switch (mediaType) {
81
- case BANNER:
82
- impData.banner = buildBanner(request);
83
- break;
84
- case VIDEO:
85
- impData.video = buildVideo(request);
86
- break;
72
+ const params = validBidRequests[0].params;
73
+ const imps = validBidRequests.map(request => {
74
+ const impData = {
75
+ id: request.bidId,
76
+ secure: secure
77
+ };
78
+ if (request.mediaTypes) {
79
+ for (const mediaType in request.mediaTypes) {
80
+ switch (mediaType) {
81
+ case BANNER:
82
+ impData.banner = buildBanner(request);
83
+ break;
84
+ case VIDEO:
85
+ impData.video = buildVideo(request);
86
+ break;
87
+ }
87
88
  }
88
89
  }
89
- }
90
- if (!impData.banner && !impData.video) {
91
- impData.banner = buildBanner(request);
92
- }
90
+ if (!impData.banner && !impData.video) {
91
+ impData.banner = buildBanner(request);
92
+ }
93
+ return impData;
94
+ });
95
+
93
96
  let payload = {
94
97
  id: bidderRequest.auctionId,
95
98
  cur: [DEFAULT_CUR],
96
- imp: [impData],
99
+ imp: imps,
97
100
  site: params.site ? params.site : {},
98
101
  device: {...(bidderRequest.ortb2?.device || {}), ...params.device},
99
102
  user: params.user ? params.user : {},
@@ -126,7 +129,7 @@ export const spec = {
126
129
  deepSetValue(payload, 'regs.ext.us_privacy', bidderRequest.uspConsent);
127
130
  }
128
131
 
129
- provideEids(request, payload);
132
+ provideEids(validBidRequests[0], payload);
130
133
  const url = params.shortname ? ENDPOINT_URL.concat('?shortname=', params.shortname) : ENDPOINT_URL;
131
134
  return {
132
135
  method: 'POST',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prebid.js",
3
- "version": "7.10.0",
3
+ "version": "7.13.0",
4
4
  "description": "Header Bidding Management Library",
5
5
  "main": "src/prebid.js",
6
6
  "scripts": {
@@ -35,7 +35,6 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@babel/eslint-parser": "^7.16.5",
38
- "@jsdevtools/coverage-istanbul-loader": "^3.0.3",
39
38
  "@wdio/browserstack-service": "^7.16.0",
40
39
  "@wdio/cli": "^7.5.2",
41
40
  "@wdio/concise-reporter": "^7.5.2",
@@ -46,6 +45,7 @@
46
45
  "ajv": "6.12.3",
47
46
  "assert": "^2.0.0",
48
47
  "babel-loader": "^8.0.5",
48
+ "babel-plugin-istanbul": "^6.1.1",
49
49
  "babel-register": "^6.26.0",
50
50
  "body-parser": "^1.19.0",
51
51
  "chai": "^4.2.0",
@@ -114,9 +114,9 @@
114
114
  },
115
115
  "dependencies": {
116
116
  "@babel/core": "^7.16.7",
117
+ "@babel/plugin-transform-runtime": "^7.18.9",
117
118
  "@babel/preset-env": "^7.16.8",
118
119
  "@babel/runtime": "^7.18.9",
119
- "@babel/plugin-transform-runtime": "^7.18.9",
120
120
  "core-js": "^3.13.0",
121
121
  "core-js-pure": "^3.13.0",
122
122
  "criteo-direct-rsa-validate": "^1.1.0",
package/src/Renderer.js CHANGED
@@ -60,7 +60,7 @@ export function Renderer(options) {
60
60
  this.cmd.unshift(runRender) // should render run first ?
61
61
  loadExternalScript(url, moduleCode, this.callback, this.documentContext);
62
62
  }
63
- }.bind(this) // bind the function to this object to avoid 'this' errors
63
+ }.bind(this); // bind the function to this object to avoid 'this' errors
64
64
  }
65
65
 
66
66
  Renderer.install = function({ url, config, id, callback, loaded, adUnitCode, renderNow }) {
package/src/adloader.js CHANGED
@@ -18,7 +18,8 @@ const _approvedLoadExternalJSList = [
18
18
  'ftrackId',
19
19
  'inskin',
20
20
  'hadron',
21
- 'medianet'
21
+ 'medianet',
22
+ 'improvedigital'
22
23
  ]
23
24
 
24
25
  /**