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
@@ -276,7 +276,7 @@ describe('kargo adapter tests', function () {
276
276
  optOut: false,
277
277
  usp: '1---'
278
278
  },
279
- pageURL: window.location.href,
279
+ pageURL: 'https://www.prebid.org',
280
280
  prebidRawBidRequests: [
281
281
  {
282
282
  bidId: 1,
@@ -327,10 +327,19 @@ describe('kargo adapter tests', function () {
327
327
  if (excludeTdid) {
328
328
  delete clonedBids[0].userId.tdid;
329
329
  }
330
- var payload = { timeout: 200, uspConsent: '1---', foo: 'bar' };
330
+ var payload = {
331
+ timeout: 200,
332
+ uspConsent: '1---',
333
+ foo: 'bar',
334
+ refererInfo: {
335
+ page: 'https://www.prebid.org',
336
+ },
337
+ };
338
+
331
339
  if (gdpr) {
332
340
  payload['gdprConsent'] = gdpr
333
341
  }
342
+
334
343
  var request = spec.buildRequests(clonedBids, payload);
335
344
  expected.sessionId = getSessionId();
336
345
  sessionIds.push(expected.sessionId);
@@ -0,0 +1,232 @@
1
+ import { expect } from 'chai';
2
+ import { BANNER, VIDEO } from 'src/mediaTypes.js';
3
+ import { spec } from 'modules/lifestreetBidAdapter.js';
4
+
5
+ describe('lifestreetBidAdapter', function() {
6
+ let bidRequests;
7
+ let videoBidRequests;
8
+ let bidResponses;
9
+ let videoBidResponses;
10
+ beforeEach(function() {
11
+ bidRequests = [
12
+ {
13
+ bidder: 'lifestreet',
14
+ params: {
15
+ slot: 'slot166704',
16
+ adkey: '78c',
17
+ ad_size: '160x600'
18
+ },
19
+ mediaTypes: {
20
+ banner: {
21
+ sizes: [
22
+ [160, 600],
23
+ [300, 600]
24
+ ]
25
+ }
26
+ },
27
+ sizes: [
28
+ [160, 600],
29
+ [300, 600]
30
+ ]
31
+ }
32
+ ];
33
+
34
+ bidResponses = {
35
+ body: {
36
+ cpm: 0.1,
37
+ netRevenue: true,
38
+ content_type: 'display_flash',
39
+ width: 160,
40
+ currency: 'USD',
41
+ ttl: 86400,
42
+ content: '<iframe src=\'https://ads.lfstmedia.com/displayAd?__ads=ip37346-u0T8r2uJ8245jv6i2QE8Qu&adt=5748927953915945176&seq=2&plc=K73sUSWIH9WwpIQiGybtg8lYdYFld5NvswMmfGBMz6U&__df=true&clickUrl=https%3A%2F%2Fads.lfstmedia.com%2Fclick%2Fcmp15299%2F5748927953915945176%2F2%3F__ads%3Dip37346-u0T8r2uJ8245jv6i2QE8Qu%26adkey%3D6bd%26slot%3Dslot166704%26__stamp%3D1583331395140%26ad%3Dcrv197050%26_cx%3D%24%24CX%24%24%26_cy%3D%24%24CY%24%24%26_celt%3D%24%24ELT-ID%24%24%26redirectURL%3D\' width=\'160\' height=\'600\' frameBorder=\'0\' scrolling=\'no\' framespacing=\'0\' marginheight=\'0\' marginwidth=\'0\'><!--test--><\/iframe>\n',
43
+ creativeId: 7985076,
44
+ height: 600,
45
+ status: 1
46
+ }
47
+ };
48
+ videoBidRequests = [
49
+ {
50
+ bidder: 'lifestreet',
51
+ params: {
52
+ slot: 'slot1227631',
53
+ adkey: 'a98',
54
+ ad_size: '640x480'
55
+ },
56
+ mediaTypes: {
57
+ video: {
58
+ sizes: [
59
+ [640, 480],
60
+ ]
61
+ }
62
+ }
63
+ }
64
+ ]
65
+
66
+ videoBidResponses = {
67
+ body: {
68
+ cpm: 0.1,
69
+ netRevenue: true,
70
+ content_type: 'vast_3_0',
71
+ width: 640,
72
+ currency: 'USD',
73
+ ttl: 86400,
74
+ content: '<iframe src="https://ads.lfstmedia.com/displayAd?__ads=ip38770-u0T8r2uJ8245jv6i2QE8Qu&adt=7734389071973843496&seq=2&plc=QEw02HSSpFZCrGaMUP5rN01QQtwPM5iEI5EQzt1nV4E&__df=true&clickUrl=https%3A%2F%2Fads.lfstmedia.com%2Fclick%2Fcmp20228%2F7734389071973843496%2F2%3F__ads%3Dip38770-u0T8r2uJ8245jv6i2QE8Qu%26adkey%3Dcdc%26slot%3Dslot1227631%26__stamp%3D1583766419183%26ad%3Dcrv225652%26_cx%3D%24%24CX%24%24%26_cy%3D%24%24CY%24%24%26_celt%3D%24%24ELT-ID%24%24%26redirectURL%3D" width="640" height="480" frameBorder="0" scrolling="no" framespacing="0" marginheight="0" marginwidth="0"><!--test--><\/iframe>\n',
75
+ creativeId: 108323592,
76
+ height: 480,
77
+ status: 1
78
+ }
79
+ };
80
+ });
81
+ describe('implementation', function() {
82
+ describe('Bid validations', function() {
83
+ it('valid bid case', function() {
84
+ const validBid = {
85
+ bidder: 'lifestreet',
86
+ params: {
87
+ slot: 'slot166704',
88
+ adkey: '78c',
89
+ ad_size: '160x600'
90
+ }
91
+ };
92
+ expect(spec.isBidRequestValid(validBid)).to.equal(true);
93
+ });
94
+
95
+ it('invalid bid case', function() {
96
+ expect(spec.isBidRequestValid()).to.equal(false);
97
+ });
98
+
99
+ it('invalid bid case: slot not passed', function() {
100
+ var validBid = {
101
+ bidder: 'lifestreet',
102
+ params: {
103
+ adkey: '78c',
104
+ ad_size: '160x600'
105
+ }
106
+ };
107
+ expect(spec.isBidRequestValid(validBid)).to.equal(false);
108
+ });
109
+
110
+ it('invalid bid case: adkey not passed', function() {
111
+ const validBid = {
112
+ bidder: 'lifestreet',
113
+ params: {
114
+ slot: 'slot166704',
115
+ ad_size: '160x600'
116
+ }
117
+ };
118
+ expect(spec.isBidRequestValid(validBid)).to.equal(false);
119
+ });
120
+
121
+ it('invalid bid case: ad_size is not passed', function() {
122
+ const validBid = {
123
+ bidder: 'lifestreet',
124
+ params: {
125
+ slot: 'slot166704',
126
+ adkey: '78c'
127
+ }
128
+ };
129
+ expect(spec.isBidRequestValid(validBid)).to.equal(false);
130
+ });
131
+ });
132
+
133
+ describe('buildRequests spec method', function () {
134
+ it('method exists and is a function', function () {
135
+ expect(spec.buildRequests).to.exist.and.to.be.a('function');
136
+ });
137
+
138
+ it('should not return request when no bids are present', function () {
139
+ const [request] = spec.buildRequests([]);
140
+ expect(request).to.be.undefined;
141
+ });
142
+
143
+ it('should return an url and request method ', function () {
144
+ const [request] = spec.buildRequests(bidRequests);
145
+ expect(request.method).to.equal('GET');
146
+ expect(request.url).to.be.a('string');
147
+ });
148
+
149
+ it('should return an url that contains all required fields', function () {
150
+ const [request] = spec.buildRequests(bidRequests);
151
+ expect(request.url).to.have.string('adkey');
152
+ expect(request.url).to.have.string('slot');
153
+ expect(request.url).to.have.string('ad_size');
154
+ });
155
+
156
+ it('should add GDPR consent information to the request', function () {
157
+ let consentString = 'BOJ8RZsOJ8RZsABAB8AAAAAZ+A==';
158
+ let bidderRequest = {
159
+ bidderCode: 'lifestreet',
160
+ auctionId: '1d1a030790a875',
161
+ bidderRequestId: '22edbae2744bf6',
162
+ timeout: 3000,
163
+ gdprConsent: {
164
+ consentString: consentString,
165
+ gdprApplies: true
166
+ }
167
+ };
168
+ bidderRequest.bids = bidRequests;
169
+
170
+ const [request] = spec.buildRequests(bidRequests, bidderRequest);
171
+ expect(request.url).to.have.string('__gdpr=1');
172
+ expect(request.url).to.have.string(`__consent=${consentString}`);
173
+ });
174
+
175
+ it('should add US privacy string to request', function() {
176
+ let consentString = '1YA-';
177
+ let bidderRequest = {
178
+ bidderCode: 'lifestreet',
179
+ auctionId: '1d1a030790a875',
180
+ bidderRequestId: '22edbae2744bf6',
181
+ timeout: 3000,
182
+ uspConsent: consentString
183
+ };
184
+ bidderRequest.bids = bidRequests;
185
+
186
+ const [request] = spec.buildRequests(bidRequests, bidderRequest);
187
+ expect(request.url).to.have.string(`__us_privacy=${consentString}`);
188
+ });
189
+ });
190
+
191
+ describe('server response', function() {
192
+ it('should return valid proper values', function() {
193
+ const request = spec.buildRequests(bidRequests);
194
+ const response = spec.interpretResponse(bidResponses, request);
195
+ expect(response).to.be.an('array').with.length.above(0);
196
+ expect(response[0].cpm).to.equal(bidResponses.body.cpm);
197
+ expect(response[0].width).to.equal(bidResponses.body.width);
198
+ expect(response[0].height).to.equal(bidResponses.body.height);
199
+ expect(response[0].creativeId).to.equal(bidResponses.body.creativeId);
200
+ expect(response[0].currency).to.equal('USD');
201
+ expect(response[0].netRevenue).to.equal(true);
202
+ expect(response[0].ttl).to.equal(bidResponses.body.ttl);
203
+ });
204
+
205
+ it('should return proper mediaType for BANNER', function() {
206
+ const request = spec.buildRequests(bidRequests);
207
+ const [response] = spec.interpretResponse(bidResponses, request);
208
+ expect(response.mediaType).to.equal(BANNER);
209
+ });
210
+
211
+ it('should return proper mediaType for VIDEO', function() {
212
+ const request = spec.buildRequests(videoBidRequests);
213
+ const [response] = spec.interpretResponse(videoBidResponses, request);
214
+ expect(response.mediaType).to.equal(VIDEO);
215
+ });
216
+
217
+ it('should return a VAST XML for VIDEO', function() {
218
+ const request = spec.buildRequests(videoBidRequests);
219
+ const [response] = spec.interpretResponse(videoBidResponses, request);
220
+ expect(response.vastXml).to.be.a('string');
221
+ expect(response.vastXml).to.have.string('iframe');
222
+ });
223
+
224
+ it('should return an ad content for BANNER', function() {
225
+ const request = spec.buildRequests(bidRequests);
226
+ const [response] = spec.interpretResponse(bidResponses, request);
227
+ expect(response.ad).to.be.a('string');
228
+ expect(response.ad).to.have.string('iframe');
229
+ });
230
+ });
231
+ });
232
+ });
@@ -1,5 +1,5 @@
1
- import {expect} from 'chai';
2
- import {spec} from '../../../modules/limelightDigitalBidAdapter.js';
1
+ import { expect } from 'chai';
2
+ import { spec } from '../../../modules/limelightDigitalBidAdapter.js';
3
3
 
4
4
  describe('limelightDigitalAdapter', function () {
5
5
  const bid1 = {
@@ -29,7 +29,18 @@ describe('limelightDigitalAdapter', function () {
29
29
  }
30
30
  ]
31
31
  }
32
- ]
32
+ ],
33
+ schain: {
34
+ ver: '1.0',
35
+ complete: 1,
36
+ nodes: [
37
+ {
38
+ asi: 'example.com',
39
+ sid: '1',
40
+ hp: 1
41
+ }
42
+ ]
43
+ }
33
44
  }
34
45
  const bid2 = {
35
46
  bidId: '58ee9870c3164a',
@@ -53,7 +64,23 @@ describe('limelightDigitalAdapter', function () {
53
64
  }
54
65
  ]
55
66
  }
56
- ]
67
+ ],
68
+ schain: {
69
+ ver: '1.0',
70
+ complete: 1,
71
+ nodes: [
72
+ {
73
+ asi: 'example.com',
74
+ sid: '1',
75
+ hp: 1
76
+ },
77
+ {
78
+ asi: 'example1.com',
79
+ sid: '2',
80
+ hp: 1
81
+ }
82
+ ]
83
+ }
57
84
  }
58
85
  const bid3 = {
59
86
  bidId: '019645c7d69460',
@@ -81,7 +108,18 @@ describe('limelightDigitalAdapter', function () {
81
108
  }
82
109
  ]
83
110
  }
84
- ]
111
+ ],
112
+ schain: {
113
+ ver: '1.0',
114
+ complete: 1,
115
+ nodes: [
116
+ {
117
+ asi: 'example.com',
118
+ sid: '1',
119
+ hp: 1
120
+ }
121
+ ]
122
+ }
85
123
  }
86
124
  const bid4 = {
87
125
  bidId: '019645c7d69460',
@@ -107,7 +145,18 @@ describe('limelightDigitalAdapter', function () {
107
145
  }
108
146
  ]
109
147
  }
110
- ]
148
+ ],
149
+ schain: {
150
+ ver: '1.0',
151
+ complete: 1,
152
+ nodes: [
153
+ {
154
+ asi: 'example.com',
155
+ sid: '1',
156
+ hp: 1
157
+ }
158
+ ]
159
+ }
111
160
  }
112
161
 
113
162
  describe('buildRequests', function () {
@@ -146,7 +195,8 @@ describe('limelightDigitalAdapter', function () {
146
195
  'sizes',
147
196
  'transactionId',
148
197
  'publisherId',
149
- 'userIdAsEids'
198
+ 'userIdAsEids',
199
+ 'supplyChain'
150
200
  );
151
201
  expect(adUnit.id).to.be.a('number');
152
202
  expect(adUnit.bidId).to.be.a('string');
@@ -154,6 +204,7 @@ describe('limelightDigitalAdapter', function () {
154
204
  expect(adUnit.transactionId).to.be.a('string');
155
205
  expect(adUnit.sizes).to.be.an('array');
156
206
  expect(adUnit.userIdAsEids).to.be.an('array');
207
+ expect(adUnit.supplyChain).to.be.an('object');
157
208
  })
158
209
  })
159
210
  })
@@ -587,4 +638,5 @@ function validateAdUnit(adUnit, bid) {
587
638
  }));
588
639
  expect(adUnit.publisherId).to.equal(bid.params.publisherId);
589
640
  expect(adUnit.userIdAsEids).to.deep.equal(bid.userIdAsEids);
641
+ expect(adUnit.supplyChain).to.deep.equal(bid.schain);
590
642
  }
@@ -0,0 +1,125 @@
1
+ import { expect } from 'chai'
2
+ import { baseUrl, spec } from 'modules/mabidderBidAdapter.js'
3
+ import { newBidder } from 'src/adapters/bidderFactory.js'
4
+ import { BANNER } from '../../../src/mediaTypes.js';
5
+
6
+ describe('mabidderBidAdapter', () => {
7
+ const adapter = newBidder(spec)
8
+ const bidRequestBanner = {
9
+ 'bidId': '12345',
10
+ 'bidder': 'mabidder',
11
+ 'sizes': [[300, 250]],
12
+ 'mediaTypes': {
13
+ 'banner': {
14
+ 'sizes': [[300, 250]]
15
+ }
16
+ },
17
+ 'params': {
18
+ 'ppid': 'string1',
19
+ }
20
+
21
+ }
22
+
23
+ describe('inherited functions', () => {
24
+ it('exists and is a function', () => {
25
+ expect(adapter.callBids).to.exist.and.to.be.a('function')
26
+ })
27
+ })
28
+
29
+ describe('isBidRequestValid', () => {
30
+ it('should return true when required params are found', () => {
31
+ expect(spec.isBidRequestValid(bidRequestBanner)).to.equal(true)
32
+ })
33
+
34
+ it('should return false when required params are not found', () => {
35
+ let bid = Object.assign({}, bidRequestBanner)
36
+ const ppid = bid.params.ppid
37
+ delete bid.params.ppid
38
+ expect(spec.isBidRequestValid(bid)).to.equal(false)
39
+ bid.params.ppid = ppid
40
+
41
+ bid = Object.assign({}, bidRequestBanner)
42
+ const params = bidRequestBanner.params
43
+ delete bid.params
44
+ expect(spec.isBidRequestValid(bid)).to.equal(false)
45
+ bidRequestBanner.params = params
46
+ })
47
+ })
48
+
49
+ describe('buildRequests', () => {
50
+ const bidRequests = [bidRequestBanner]
51
+ const req = spec.buildRequests(bidRequests, {
52
+ auctionId: '123',
53
+ refererInfo: {
54
+ referer: 'http://test.com/path.html'
55
+ }
56
+ })
57
+
58
+ it('sends bid request to ENDPOINT via POST', () => {
59
+ expect(req.method).to.equal('POST')
60
+ expect(req.url.indexOf('https://')).to.equal(0)
61
+ expect(req.url).to.equal(baseUrl)
62
+ })
63
+
64
+ it('contains prebid version parameter', () => {
65
+ expect(req.data.v).to.equal($$PREBID_GLOBAL$$.version)
66
+ })
67
+
68
+ it('sends the correct bid parameters for banner', () => {
69
+ expect(req.data.bids[0].bidId).to.equal(bidRequestBanner.bidId)
70
+ expect(req.data.bids[0].ppid).to.equal(bidRequestBanner.params.ppid)
71
+ expect(req.data.bids[0].sizes[0].width).to.equal(bidRequestBanner.sizes[0][0])
72
+ expect(req.data.bids[0].sizes[0].height).to.equal(bidRequestBanner.sizes[0][1])
73
+ })
74
+
75
+ it('accepts an optional fpd parameter', () => {
76
+ expect(req.data.fpd).to.exist.and.to.be.a('Object')
77
+ })
78
+ })
79
+
80
+ describe('interpretResponse', () => {
81
+ it('handles banner request and should get correct bid response', () => {
82
+ const BIDDER_RESPONSE_BANNER = {
83
+ 'Responses': [{
84
+ 'width': 300,
85
+ 'height': 250,
86
+ 'creativeId': '123abc',
87
+ 'ad': '<!-- Creative -->',
88
+ 'cpm': 0.5,
89
+ 'requestId': 'abc123',
90
+ 'ttl': 60,
91
+ 'netRevenue': true,
92
+ 'currency': 'USD',
93
+ 'mediaType': BANNER,
94
+ 'meta': {
95
+ 'advertiserDomains': ['https://loblaws.ca']
96
+ }
97
+ }]
98
+ }
99
+ const results = spec.interpretResponse({ body: BIDDER_RESPONSE_BANNER }, {})
100
+ const response = results[0]
101
+ expect(results.length).to.equal(BIDDER_RESPONSE_BANNER.Responses.length)
102
+ expect(response).to.have.property('ad').equal('<!-- Creative -->')
103
+ expect(response).to.have.property('requestId').equal('abc123')
104
+ expect(response).to.have.property('cpm').equal(0.5)
105
+ expect(response).to.have.property('currency').equal('USD')
106
+ expect(response).to.have.property('width').equal(300)
107
+ expect(response).to.have.property('height').equal(250)
108
+ expect(response).to.have.property('ttl').equal(60)
109
+ expect(response).to.have.property('creativeId').equal('123abc')
110
+ expect(response).to.have.property('mediaType').equal(BANNER)
111
+ expect(response).to.have.property('meta')
112
+ expect(response.meta).to.have.property('advertiserDomains')
113
+ expect(response.meta.advertiserDomains).to.be.an('array')
114
+ expect(response.meta.advertiserDomains[0]).equal('https://loblaws.ca')
115
+ })
116
+
117
+ it('handles no bid response by returning empty array', () => {
118
+ let result = spec.interpretResponse({ body: undefined }, {})
119
+ expect(result).to.deep.equal([])
120
+
121
+ result = spec.interpretResponse({ body: '' }, {})
122
+ expect(result).to.deep.equal([])
123
+ })
124
+ })
125
+ })
@@ -0,0 +1,97 @@
1
+ import { expect } from 'chai';
2
+ import { spec } from 'modules/mediagoBidAdapter.js';
3
+
4
+ describe('mediago:BidAdapterTests', function () {
5
+ let bidRequestData = {
6
+ bidderCode: 'mediago',
7
+ auctionId: '7fae02a9-0195-472f-ba94-708d3bc2c0d9',
8
+ bidderRequestId: '4fec04e87ad785',
9
+ bids: [
10
+ {
11
+ bidder: 'mediago',
12
+ params: {
13
+ token: '85a6b01e41ac36d49744fad726e3655d',
14
+ bidfloor: 0.01,
15
+ },
16
+ mediaTypes: {
17
+ banner: {
18
+ sizes: [[300, 250]],
19
+ },
20
+ },
21
+ adUnitCode: 'regular_iframe',
22
+ transactionId: '7b26fdae-96e6-4c35-a18b-218dda11397d',
23
+ sizes: [[300, 250]],
24
+ bidId: '54d73f19c9d47a', // todo
25
+ bidderRequestId: '4fec04e87ad785', // todo
26
+ auctionId: '883a346a-6d62-4adb-a600-0f3a869061d1',
27
+ src: 'client',
28
+ bidRequestsCount: 1,
29
+ bidderRequestsCount: 1,
30
+ bidderWinsCount: 0,
31
+ },
32
+ ],
33
+ };
34
+ let request = [];
35
+
36
+ it('mediago:validate_pub_params', function () {
37
+ expect(
38
+ spec.isBidRequestValid({
39
+ bidder: 'mediago',
40
+ params: {
41
+ token: ['85a6b01e41ac36d49744fad726e3655d'],
42
+ },
43
+ })
44
+ ).to.equal(true);
45
+ });
46
+
47
+ it('mediago:validate_generated_params', function () {
48
+ request = spec.buildRequests(bidRequestData.bids, bidRequestData);
49
+ let req_data = JSON.parse(request.data);
50
+ expect(req_data.imp).to.have.lengthOf(1);
51
+ });
52
+
53
+ it('mediago:validate_response_params', function () {
54
+ let adm = "<link rel=\"stylesheet\" href=\"https://cdn.mediago.io/js/style/style_banner_300*250.css\"><div id=\"mgcontainer-99afea272c2b0e8626489674ddb7a0bb\" class=\"mediago-placement imgTopTitleBottom\" style=\"position:relative;width:298px;height:248px;overflow:hidden\"><a href=\"https://trace.mediago.io/api/bidder/track?tn=39934c2bda4debbe4c680be1dd02f5d3&price=djUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk&evt=102&rid=6e28cfaf115a354ea1ad8e1304d6d7b8&campaignid=1339145&impid=44-300x250-1&offerid=24054386&test=0&time=1660789795&cp=jZDh1xu6_QqJLlKVtCkiHIP_TER6gL9jeTrlHCBoxOM&clickid=44_6e28cfaf115a354ea1ad8e1304d6d7b8_44-300x250-1&acid=599&trackingid=99afea272c2b0e8626489674ddb7a0bb&uid=a865b9ae-fa9e-4c09-8204-2db99ac7c8f7&jt=2&url=oxZA2i2aUVY76Xy2t3HffaK_ZtBDsgFwFc_Nbnw-bz3yCxmoUyZvATKnFc9ZkUfT1eQizhtczCwDzjHwwwDgTehUnp1EwdY4g1LRcuOwlRpXnVTt3zPQdaVx5nVDw25by7lQ0q469LCv2eEFDTAv_FOuVT32WiOx_ArOIlxCnDGpjPLUNyxm3cTZFGOJn4B7&bm=2&la=en&cn=us&cid=3998296&info=Si3oM-qfCbw2iZRYs01BkUWyH6c5CQWHrA8CQLE0VHcXAcf4ljY9dyLzQ4vAlTWd6-j_ou4ySor3e70Ll7wlKiiauQKaUkZqNoTizHm73C4FK8DYJSTP3VkhJV8RzrYk&sid=128__110__1__12__28__38__163__96__58__24__47__99&sp=djUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk&scp=zK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg&acu=USD&scu=USD&sgcp=zK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg&gprice=djUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk&gcp=zK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg&ah=&pb=&de=wjh.popin.cc&cat=&iv=0\" target=\"_blank\" class=\"mediago-placement-track\" style=\"display: inline-block;\"><img alt=\"Ranger's spot giant lion - vet is shocked when looking at the ultrasound\" src=\"https://d2cli4kgl5uxre.cloudfront.net/ML/ff32b6f9b3bbc45c00b78b6674a2952e__scv1__300x175.png\" style=\"height:70%;width:100%;border-width:0;border:none;\"><h3 class=\"title\" style=\"font-size:16px;\">Ranger's spot giant lion - vet is shocked when looking at the ultrasound</h3></a><span class=\"source\"><a class=\"sourcename\" href=\"//www.mediago.io\" target=\"_blank\"><span>Ad</span> </a><a class=\"mgmgsrcnameadslabelurl\" href=\"//www.mediago.io/privacy\" target=\"_blank\"><span>soo-healthy</span></a></span></div>";
55
+ let temp = '%3Cscr';
56
+ temp += 'ipt%3E';
57
+ temp += '!function()%7B%22use%20strict%22%3Bfunction%20f(t)%7Breturn(f%3D%22function%22%3D%3Dtypeof%20Symbol%26%26%22symbol%22%3D%3Dtypeof%20Symbol.iterator%3Ffunction(t)%7Breturn%20typeof%20t%7D%3Afunction(t)%7Breturn%20t%26%26%22function%22%3D%3Dtypeof%20Symbol%26%26t.constructor%3D%3D%3DSymbol%26%26t!%3D%3DSymbol.prototype%3F%22symbol%22%3Atypeof%20t%7D)(t)%7Dfunction%20l(t)%7Bvar%20e%3D0%3Carguments.length%26%26void%200!%3D%3Dt%3Ft%3A%7B%7D%3Btry%7Be.random_t%3D(new%20Date).getTime()%2Cg(function(t)%7Bvar%20e%3D1%3Carguments.length%26%26void%200!%3D%3Darguments%5B1%5D%3Farguments%5B1%5D%3A%22%22%3Bif(%22object%22!%3D%3Df(t))return%20e%3Bvar%20n%3Dfunction(t)%7Bfor(var%20e%2Cn%3D%5B%5D%2Co%3D0%2Ci%3DObject.keys(t)%3Bo%3Ci.length%3Bo%2B%2B)e%3Di%5Bo%5D%2Cn.push(%22%22.concat(e%2C%22%3D%22).concat(t%5Be%5D))%3Breturn%20n%7D(t).join(%22%26%22)%2Co%3De.indexOf(%22%23%22)%2Ci%3De%2Ct%3D%22%22%3Breturn-1!%3D%3Do%26%26(i%3De.slice(0%2Co)%2Ct%3De.slice(o))%2Cn%26%26(i%26%26-1!%3D%3Di.indexOf(%22%3F%22)%3Fi%2B%3D%22%26%22%2Bn%3Ai%2B%3D%22%3F%22%2Bn)%2Ci%2Bt%7D(e%2C%22https%3A%2F%2Ftrace.mediago.io%2Fapi%2Flog%2Ftrack%22))%7Dcatch(t)%7B%7D%7Dfunction%20g(t%2Ce%2Cn)%7B(t%3Dt%3Ft.split(%22%3B%3B%3B%22)%3A%5B%5D).map(function(t)%7Btry%7B0%3C%3Dt.indexOf(%22%2Fapi%2Fbidder%2Ftrack%22)%26%26n%26%26(t%2B%3D%22%26inIframe%3D%22.concat(!(!self.frameElement%7C%7C%22IFRAME%22!%3Dself.frameElement.tagName)%7C%7Cwindow.frames.length!%3Dparent.frames.length%7C%7Cself!%3Dtop)%2Ct%2B%3D%22%26pos_x%3D%22.concat(n.left%2C%22%26pos_y%3D%22).concat(n.top%2C%22%26page_w%3D%22).concat(n.page_width%2C%22%26page_h%3D%22).concat(n.page_height))%7Dcatch(t)%7Bl(%7Btn%3As%2Cwinloss%3A1%2Cfe%3A2%2Cpos_err_c%3A1002%2Cpos_err_m%3At.toString()%7D)%7Dvar%20e%3Dnew%20Image%3Be.src%3Dt%2Ce.style.display%3D%22none%22%2Ce.style.visibility%3D%22hidden%22%2Ce.width%3D0%2Ce.height%3D0%2Cdocument.body.appendChild(e)%7D)%7Dvar%20d%3D%5B%22https%3A%2F%2Ftrace.mediago.io%2Fapi%2Fbidder%2Ftrack%3Ftn%3D39934c2bda4debbe4c680be1dd02f5d3%26price%3DdjUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk%26evt%3D101%26rid%3D6e28cfaf115a354ea1ad8e1304d6d7b8%26campaignid%3D1339145%26impid%3D44-300x250-1%26offerid%3D24054386%26test%3D0%26time%3D1660789795%26cp%3DjZDh1xu6_QqJLlKVtCkiHIP_TER6gL9jeTrlHCBoxOM%26acid%3D599%26trackingid%3D99afea272c2b0e8626489674ddb7a0bb%26uid%3Da865b9ae-fa9e-4c09-8204-2db99ac7c8f7%26bm%3D2%26la%3Den%26cn%3Dus%26cid%3D3998296%26info%3DSi3oM-qfCbw2iZRYs01BkUWyH6c5CQWHrA8CQLE0VHcXAcf4ljY9dyLzQ4vAlTWd6-j_ou4ySor3e70Ll7wlKiiauQKaUkZqNoTizHm73C4FK8DYJSTP3VkhJV8RzrYk%26sid%3D128__110__1__12__28__38__163__96__58__24__47__99%26sp%3DdjUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk%26scp%3DzK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg%26acu%3DUSD%26scu%3DUSD%26sgcp%3DzK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg%26gprice%3DdjUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk%26gcp%3DzK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg%26ah%3D%26de%3Dwjh.popin.cc%26iv%3D0%22%2C%22%24%7BITRACKER2%7D%22%2C%22%24%7BITRACKER3%7D%22%2C%22%24%7BITRACKER4%7D%22%2C%22%24%7BITRACKER5%7D%22%2C%22%24%7BITRACKER6%7D%22%5D%2Cp%3D%5B%22https%3A%2F%2Ftrace.mediago.io%2Fapi%2Fbidder%2Ftrack%3Ftn%3D39934c2bda4debbe4c680be1dd02f5d3%26price%3DdjUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk%26evt%3D104%26rid%3D6e28cfaf115a354ea1ad8e1304d6d7b8%26campaignid%3D1339145%26impid%3D44-300x250-1%26offerid%3D24054386%26test%3D0%26time%3D1660789795%26cp%3DjZDh1xu6_QqJLlKVtCkiHIP_TER6gL9jeTrlHCBoxOM%26acid%3D599%26trackingid%3D99afea272c2b0e8626489674ddb7a0bb%26uid%3Da865b9ae-fa9e-4c09-8204-2db99ac7c8f7%26sid%3D128__110__1__12__28__38__163__96__58__24__47__99%26format%3D%26crid%3Dff32b6f9b3bbc45c00b78b6674a2952e%26bm%3D2%26la%3Den%26cn%3Dus%26cid%3D3998296%26info%3DSi3oM-qfCbw2iZRYs01BkUWyH6c5CQWHrA8CQLE0VHcXAcf4ljY9dyLzQ4vAlTWd6-j_ou4ySor3e70Ll7wlKiiauQKaUkZqNoTizHm73C4FK8DYJSTP3VkhJV8RzrYk%26sp%3DdjUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk%26scp%3DzK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg%26acu%3DUSD%26scu%3DUSD%26sgcp%3DzK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg%26gprice%3DdjUJcggeuWWfbm28q4WXHdgMFkO28DrGw49FnubQ0Bk%26gcp%3DzK0DRYY1UV-syqSpmcMYBpOebtoQJV9ZEJT0JFqbTQg%26ah%3D%26de%3Dwjh.popin.cc%26iv%3D0%22%2C%22%24%7BVTRACKER2%7D%22%2C%22%24%7BVTRACKER3%7D%22%2C%22%24%7BVTRACKER4%7D%22%2C%22%24%7BVTRACKER5%7D%22%2C%22%24%7BVTRACKER6%7D%22%5D%2Cs%3D%22f9f2b1ef23fe2759c2cad0953029a94b%22%2Cn%3Ddocument.getElementById(%22mgcontainer-99afea272c2b0e8626489674ddb7a0bb%22)%3Bn%26%26function()%7Bvar%20a%3Dn.getElementsByClassName(%22mediago-placement-track%22)%3Bif(a%26%26a.length)%7Bvar%20t%2Ce%3Dfunction(t)%7Bvar%20e%2Cn%2Co%2Ci%2Cc%2Cr%3B%22object%22%3D%3D%3Df(r%3Da%5Bt%5D)%26%26(e%3Dfunction(t)%7Btry%7Bvar%20e%3Dt.getBoundingClientRect()%2Cn%3De%26%26e.top%7C%7C-1%2Co%3De%26%26e.left%7C%7C-1%2Ci%3Ddocument.body.scrollWidth%7C%7C-1%2Ce%3Ddocument.body.scrollHeight%7C%7C-1%3Breturn%7Btop%3An.toFixed(0)%2Cleft%3Ao.toFixed(0)%2Cpage_width%3Ai%2Cpage_height%3Ae%7D%7Dcatch(o)%7Breturn%20l(%7Btn%3As%2Cwinloss%3A1%2Cfe%3A2%2Cpos_err_c%3A1001%2Cpos_err_m%3Ao.toString()%7D)%2C%7Btop%3A%22-1%22%2Cleft%3A%22-1%22%2Cpage_width%3A%22-1%22%2Cpage_height%3A%22-1%22%7D%7D%7D(r)%2C(n%3Dd%5Bt%5D)%26%26g(n%2C0%2Ce)%2Co%3Dp%5Bt%5D%2Ci%3D!1%2C(c%3Dfunction()%7BsetTimeout(function()%7Bvar%20t%2Ce%3B!i%26%26(t%3Dr%2Ce%3Dwindow.innerHeight%7C%7Cdocument.documentElement.clientHeight%7C%7Cdocument.body.clientHeight%2C(t.getBoundingClientRect()%26%26t.getBoundingClientRect().top)%3C%3De-.75*(t.offsetHeight%7C%7Ct.clientHeight))%3F(i%3D!0%2Co%26%26g(o))%3Ac()%7D%2C500)%7D)())%7D%3Bfor(t%20in%20a)e(t)%7D%7D()%7D()';
58
+ temp += '%3B%3C%2Fscri';
59
+ temp += 'pt%3E';
60
+ adm += decodeURIComponent(temp);
61
+ let serverResponse = {
62
+ body: {
63
+ id: 'mgprebidjs_0b6572fc-ceba-418f-b6fd-33b41ad0ac8a',
64
+ seatbid: [
65
+ {
66
+ bid: [
67
+ {
68
+ id: '6e28cfaf115a354ea1ad8e1304d6d7b8',
69
+ impid: '1',
70
+ price: 0.087581,
71
+ adm: adm,
72
+ cid: '1339145',
73
+ crid: 'ff32b6f9b3bbc45c00b78b6674a2952e',
74
+ w: 300,
75
+ h: 250,
76
+ },
77
+ ],
78
+ },
79
+ ],
80
+ cur: 'USD',
81
+ },
82
+ };
83
+
84
+ let bids = spec.interpretResponse(serverResponse);
85
+ // console.log({
86
+ // bids
87
+ // });
88
+ expect(bids).to.have.lengthOf(1);
89
+
90
+ let bid = bids[0];
91
+
92
+ expect(bid.creativeId).to.equal('ff32b6f9b3bbc45c00b78b6674a2952e');
93
+ expect(bid.width).to.equal(300);
94
+ expect(bid.height).to.equal(250);
95
+ expect(bid.currency).to.equal('USD');
96
+ });
97
+ });
@@ -104,9 +104,9 @@ describe('nextMillenniumBidAdapterTests', function() {
104
104
  expect(JSON.parse(request[0].data).ext.nextMillennium.refresh_count).to.equal(3);
105
105
  });
106
106
 
107
- it('Check if ORTB was added', function() {
107
+ it('Check if domain was added', function() {
108
108
  const request = spec.buildRequests(bidRequestData)
109
- expect(JSON.parse(request[0].data).site.domain).to.equal('example.com')
109
+ expect(JSON.parse(request[0].data).site.domain).to.exist
110
110
  })
111
111
 
112
112
  it('Check if elOffsets was added', function() {
@@ -114,11 +114,6 @@ describe('nextMillenniumBidAdapterTests', function() {
114
114
  expect(JSON.parse(request[0].data).ext.nextMillennium.elOffsets).to.be.an('object')
115
115
  })
116
116
 
117
- it('Check if refferer was added', function() {
118
- const request = spec.buildRequests(bidRequestData)
119
- expect(JSON.parse(request[0].data).device.referrer).to.exist
120
- })
121
-
122
117
  it('Check if imp object was added', function() {
123
118
  const request = spec.buildRequests(bidRequestData)
124
119
  expect(JSON.parse(request[0].data).imp).to.be.an('array')