prebid.js 7.8.0 → 7.11.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 (483) hide show
  1. package/README.md +0 -2
  2. package/RELEASE_SCHEDULE.md +1 -1
  3. package/allowedModules.js +3 -0
  4. package/babelConfig.js +10 -4
  5. package/dist/33acrossBidAdapter.js +1 -1
  6. package/dist/adWMGAnalyticsAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adbookpspBidAdapter.js +1 -1
  10. package/dist/adgenerationBidAdapter.js +1 -1
  11. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  12. package/dist/adkernelBidAdapter.js +1 -1
  13. package/dist/adlooxAdServerVideo.js +1 -1
  14. package/dist/adlooxAnalyticsAdapter.js +1 -1
  15. package/dist/adlooxRtdProvider.js +1 -1
  16. package/dist/adnuntiusBidAdapter.js +1 -1
  17. package/dist/adomikAnalyticsAdapter.js +1 -1
  18. package/dist/adrelevantisBidAdapter.js +1 -1
  19. package/dist/adtelligentBidAdapter.js +1 -1
  20. package/dist/adtrgtmeBidAdapter.js +1 -0
  21. package/dist/adxcgAnalyticsAdapter.js +1 -1
  22. package/dist/adxcgBidAdapter.js +1 -1
  23. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  24. package/dist/adyoulikeBidAdapter.js +1 -1
  25. package/dist/ajaBidAdapter.js +1 -1
  26. package/dist/amxBidAdapter.js +1 -1
  27. package/dist/amxIdSystem.js +1 -1
  28. package/dist/analyticsAdapter.js +1 -0
  29. package/dist/andBeyondMediaBidAdapter.js +1 -0
  30. package/dist/aniviewBidAdapter.js +1 -1
  31. package/dist/appierAnalyticsAdapter.js +1 -1
  32. package/dist/appnexusBidAdapter.js +1 -1
  33. package/dist/asoBidAdapter.js +1 -1
  34. package/dist/atsAnalyticsAdapter.js +1 -1
  35. package/dist/audiencerunBidAdapter.js +1 -1
  36. package/dist/axonixBidAdapter.js +1 -1
  37. package/dist/bidglassBidAdapter.js +1 -1
  38. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  39. package/dist/big-richmediaBidAdapter.js +1 -1
  40. package/dist/bluebillywigBidAdapter.js +1 -1
  41. package/dist/boldwinBidAdapter.js +1 -1
  42. package/dist/bridgewellBidAdapter.js +1 -1
  43. package/dist/brightMountainMediaBidAdapter.js +1 -1
  44. package/dist/browsiRtdProvider.js +1 -1
  45. package/dist/byDataAnalyticsAdapter.js +1 -1
  46. package/dist/c1xBidAdapter.js +1 -0
  47. package/dist/cleanioRtdProvider.js +1 -1
  48. package/dist/concertAnalyticsAdapter.js +1 -1
  49. package/dist/concertBidAdapter.js +1 -1
  50. package/dist/connectadBidAdapter.js +1 -1
  51. package/dist/consentManagementUsp.js +1 -1
  52. package/dist/consumableBidAdapter.js +1 -1
  53. package/dist/conversantBidAdapter.js +1 -1
  54. package/dist/cpmstarBidAdapter.js +1 -1
  55. package/dist/craftBidAdapter.js +1 -1
  56. package/dist/criteoBidAdapter.js +1 -1
  57. package/dist/datablocksAnalyticsAdapter.js +1 -1
  58. package/dist/datawrkzBidAdapter.js +1 -0
  59. package/dist/debugging-standalone.js +1 -1
  60. package/dist/dependencies.json +171 -0
  61. package/dist/dspxBidAdapter.js +1 -1
  62. package/dist/eplanningAnalyticsAdapter.js +1 -1
  63. package/dist/eplanningBidAdapter.js +1 -1
  64. package/dist/finativeBidAdapter.js +1 -1
  65. package/dist/fintezaAnalyticsAdapter.js +1 -1
  66. package/dist/freewheel-sspBidAdapter.js +1 -1
  67. package/dist/getOrigin.js +1 -1
  68. package/dist/glimpseBidAdapter.js +1 -1
  69. package/dist/gmosspBidAdapter.js +1 -1
  70. package/dist/goldbachBidAdapter.js +1 -1
  71. package/dist/gridBidAdapter.js +1 -1
  72. package/dist/gridNMBidAdapter.js +1 -1
  73. package/dist/gumgumBidAdapter.js +1 -1
  74. package/dist/h12mediaBidAdapter.js +1 -1
  75. package/dist/hadronAnalyticsAdapter.js +1 -1
  76. package/dist/id5AnalyticsAdapter.js +1 -1
  77. package/dist/id5IdSystem.js +1 -1
  78. package/dist/impactifyBidAdapter.js +1 -1
  79. package/dist/improvedigitalBidAdapter.js +1 -1
  80. package/dist/imuIdSystem.js +1 -1
  81. package/dist/inmarBidAdapter.js +1 -1
  82. package/dist/insticatorBidAdapter.js +1 -1
  83. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  84. package/dist/ixBidAdapter.js +1 -1
  85. package/dist/jixieBidAdapter.js +1 -1
  86. package/dist/justpremiumBidAdapter.js +1 -1
  87. package/dist/kargoAnalyticsAdapter.js +1 -1
  88. package/dist/kargoBidAdapter.js +1 -1
  89. package/dist/konduitAnalyticsAdapter.js +1 -1
  90. package/dist/kueezBidAdapter.js +1 -1
  91. package/dist/lassoBidAdapter.js +1 -1
  92. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  93. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  94. package/dist/logicadBidAdapter.js +1 -1
  95. package/dist/loglyliftBidAdapter.js +1 -1
  96. package/dist/malltvAnalyticsAdapter.js +1 -1
  97. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  98. package/dist/marsmediaBidAdapter.js +1 -1
  99. package/dist/mediafuseBidAdapter.js +1 -1
  100. package/dist/mediakeysBidAdapter.js +1 -1
  101. package/dist/medianetAnalyticsAdapter.js +1 -1
  102. package/dist/mediasquareBidAdapter.js +1 -1
  103. package/dist/mgidBidAdapter.js +1 -1
  104. package/dist/minutemediaBidAdapter.js +1 -1
  105. package/dist/nextMillenniumBidAdapter.js +1 -1
  106. package/dist/nobidBidAdapter.js +1 -1
  107. package/dist/not-for-prod/prebid.js +182 -176
  108. package/dist/oguryBidAdapter.js +1 -1
  109. package/dist/onetagBidAdapter.js +1 -1
  110. package/dist/ooloAnalyticsAdapter.js +1 -1
  111. package/dist/openxAnalyticsAdapter.js +1 -1
  112. package/dist/openxBidAdapter.js +1 -1
  113. package/dist/openxOrtbBidAdapter.js +1 -1
  114. package/dist/optimonAnalyticsAdapter.js +1 -1
  115. package/dist/outbrainBidAdapter.js +1 -1
  116. package/dist/ozoneBidAdapter.js +1 -1
  117. package/dist/parrableIdSystem.js +1 -1
  118. package/dist/pianoDmpAnalyticsAdapter.js +1 -1
  119. package/dist/pixfutureBidAdapter.js +1 -1
  120. package/dist/prebid-core.js +1 -1
  121. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  122. package/dist/publinkIdSystem.js +1 -1
  123. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  124. package/dist/pubmaticBidAdapter.js +1 -1
  125. package/dist/pubperfAnalyticsAdapter.js +1 -1
  126. package/dist/pubstackAnalyticsAdapter.js +1 -1
  127. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  128. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  129. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  130. package/dist/pxyzBidAdapter.js +1 -1
  131. package/dist/quantcastBidAdapter.js +1 -1
  132. package/dist/readpeakBidAdapter.js +1 -1
  133. package/dist/realvuAnalyticsAdapter.js +1 -1
  134. package/dist/relaidoBidAdapter.js +1 -1
  135. package/dist/relevantAnalyticsAdapter.js +1 -1
  136. package/dist/rhythmoneBidAdapter.js +1 -1
  137. package/dist/riseBidAdapter.js +1 -1
  138. package/dist/rivrAnalyticsAdapter.js +1 -1
  139. package/dist/roxotAnalyticsAdapter.js +1 -1
  140. package/dist/rtbhouseBidAdapter.js +1 -1
  141. package/dist/rubiconAnalyticsAdapter.js +1 -1
  142. package/dist/rubiconBidAdapter.js +1 -1
  143. package/dist/scaleableAnalyticsAdapter.js +1 -1
  144. package/dist/seedingAllianceBidAdapter.js +1 -1
  145. package/dist/seedtagBidAdapter.js +1 -1
  146. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  147. package/dist/sharethroughBidAdapter.js +1 -1
  148. package/dist/shinezBidAdapter.js +1 -1
  149. package/dist/showheroes-bsBidAdapter.js +1 -1
  150. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  151. package/dist/smaatoBidAdapter.js +1 -1
  152. package/dist/smartadserverBidAdapter.js +1 -1
  153. package/dist/smartxBidAdapter.js +1 -1
  154. package/dist/smilewantedBidAdapter.js +1 -1
  155. package/dist/snigelBidAdapter.js +1 -0
  156. package/dist/sonobiAnalyticsAdapter.js +1 -1
  157. package/dist/sonobiBidAdapter.js +1 -1
  158. package/dist/sovrnAnalyticsAdapter.js +1 -1
  159. package/dist/sovrnBidAdapter.js +1 -1
  160. package/dist/sspBCBidAdapter.js +1 -1
  161. package/dist/staqAnalyticsAdapter.js +1 -1
  162. package/dist/sublimeBidAdapter.js +1 -1
  163. package/dist/synacormediaBidAdapter.js +1 -1
  164. package/dist/tappxBidAdapter.js +1 -1
  165. package/dist/targetVideoBidAdapter.js +1 -1
  166. package/dist/teadsBidAdapter.js +1 -1
  167. package/dist/terceptAnalyticsAdapter.js +1 -1
  168. package/dist/trionBidAdapter.js +1 -1
  169. package/dist/tripleliftBidAdapter.js +1 -1
  170. package/dist/trustpidSystem.js +1 -1
  171. package/dist/ttdBidAdapter.js +1 -1
  172. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  173. package/dist/underdogmediaBidAdapter.js +1 -1
  174. package/dist/undertoneBidAdapter.js +1 -1
  175. package/dist/userId.js +1 -1
  176. package/dist/vidazooBidAdapter.js +1 -1
  177. package/dist/videobyteBidAdapter.js +1 -1
  178. package/dist/visxBidAdapter.js +1 -1
  179. package/dist/vuukleBidAdapter.js +1 -1
  180. package/dist/widespaceBidAdapter.js +1 -1
  181. package/dist/winrBidAdapter.js +1 -1
  182. package/dist/yahoosspBidAdapter.js +1 -1
  183. package/dist/yieldmoBidAdapter.js +1 -1
  184. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  185. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  186. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  187. package/dist/zeta_global_sspBidAdapter.js +1 -1
  188. package/gulpHelpers.js +22 -55
  189. package/gulpfile.js +12 -5
  190. package/integrationExamples/gpt/1plusXRtdProviderExample.html +2 -4
  191. package/integrationExamples/gpt/airgridRtdProvider_example.html +1 -4
  192. package/integrationExamples/gpt/amp/remote.html +1 -1
  193. package/integrationExamples/gpt/blueconicRtdProvider_example.html +2 -4
  194. package/integrationExamples/gpt/hadronRtdProvider_example.html +1 -3
  195. package/integrationExamples/gpt/inskin_example.html +1 -3
  196. package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
  197. package/integrationExamples/gpt/prebidServer_example.html +1 -3
  198. package/integrationExamples/gpt/serverbidServer_example.html +1 -3
  199. package/integrationExamples/gpt/userId_example.html +1 -3
  200. package/integrationExamples/postbid/oas/postbid-config.js +5 -5
  201. package/karma.conf.maker.js +2 -13
  202. package/libraries/LIBRARIES.md +5 -0
  203. package/{src → libraries/analyticsAdapter}/AnalyticsAdapter.js +5 -6
  204. package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example.js +1 -1
  205. package/{src/adapters/analytics → libraries/analyticsAdapter/examples}/example2.js +1 -1
  206. package/modules/.submodules.json +0 -12
  207. package/modules/1plusXRtdProvider.js +1 -1
  208. package/modules/33acrossBidAdapter.js +3 -3
  209. package/modules/adWMGAnalyticsAdapter.js +1 -1
  210. package/modules/adagioAnalyticsAdapter.js +1 -1
  211. package/modules/adagioBidAdapter.js +3 -4
  212. package/modules/adgenerationBidAdapter.js +1 -1
  213. package/modules/adkernelAdnAnalyticsAdapter.js +1 -1
  214. package/modules/adkernelBidAdapter.js +2 -1
  215. package/modules/adlooxAnalyticsAdapter.js +1 -1
  216. package/modules/admixerBidAdapter.js +1 -1
  217. package/modules/adnowBidAdapter.js +1 -1
  218. package/modules/adnuntiusBidAdapter.js +3 -1
  219. package/modules/adomikAnalyticsAdapter.js +1 -1
  220. package/modules/adpod.js +1 -1
  221. package/modules/adrelevantisBidAdapter.js +2 -2
  222. package/modules/adriverBidAdapter.js +1 -1
  223. package/modules/adtargetBidAdapter.js +1 -1
  224. package/modules/adtelligentBidAdapter.js +4 -2
  225. package/modules/adtrgtmeBidAdapter.js +333 -0
  226. package/modules/adtrgtmeBidAdapter.md +69 -0
  227. package/modules/adtrueBidAdapter.js +1 -1
  228. package/modules/adxcgAnalyticsAdapter.js +1 -1
  229. package/modules/adxpremiumAnalyticsAdapter.js +2 -2
  230. package/modules/adyoulikeBidAdapter.js +12 -8
  231. package/modules/akamaiDapRtdProvider.js +2 -2
  232. package/modules/andBeyondMediaBidAdapter.js +202 -0
  233. package/modules/andBeyondMediaBidAdapter.md +79 -0
  234. package/modules/aniviewBidAdapter.js +2 -2
  235. package/modules/apacdexBidAdapter.js +3 -3
  236. package/modules/appierAnalyticsAdapter.js +1 -1
  237. package/modules/appnexusBidAdapter.js +9 -9
  238. package/modules/apstreamBidAdapter.js +2 -2
  239. package/modules/atsAnalyticsAdapter.js +1 -1
  240. package/modules/betweenBidAdapter.js +1 -1
  241. package/modules/bidwatchAnalyticsAdapter.js +71 -12
  242. package/modules/bizzclickBidAdapter.js +1 -1
  243. package/modules/bliinkBidAdapter.js +1 -1
  244. package/modules/boldwinBidAdapter.js +16 -7
  245. package/modules/boldwinBidAdapter.md +17 -0
  246. package/modules/brightMountainMediaBidAdapter.js +1 -1
  247. package/modules/browsiRtdProvider.js +26 -12
  248. package/modules/byDataAnalyticsAdapter.js +2 -2
  249. package/modules/c1xBidAdapter.js +209 -0
  250. package/modules/c1xBidAdapter.md +70 -0
  251. package/modules/cleanioRtdProvider.js +29 -0
  252. package/modules/cleanmedianetBidAdapter.js +1 -1
  253. package/modules/colossussspBidAdapter.js +2 -2
  254. package/modules/concertAnalyticsAdapter.js +1 -1
  255. package/modules/consentManagementUsp.js +2 -2
  256. package/modules/consumableBidAdapter.js +21 -3
  257. package/modules/cpmstarBidAdapter.js +23 -13
  258. package/modules/criteoBidAdapter.js +47 -5
  259. package/modules/cwireBidAdapter.js +1 -1
  260. package/modules/datablocksAnalyticsAdapter.js +1 -1
  261. package/modules/datablocksBidAdapter.js +1 -1
  262. package/modules/datawrkzBidAdapter.js +633 -0
  263. package/modules/datawrkzBidAdapter.md +160 -0
  264. package/modules/dfpAdServerVideo.js +2 -2
  265. package/modules/dgkeywordRtdProvider.js +1 -1
  266. package/modules/dspxBidAdapter.js +1 -1
  267. package/modules/e_volutionBidAdapter.js +3 -3
  268. package/modules/ebdrBidAdapter.js +1 -1
  269. package/modules/emx_digitalBidAdapter.js +1 -1
  270. package/modules/eplanningAnalyticsAdapter.js +1 -1
  271. package/modules/eplanningBidAdapter.js +3 -3
  272. package/modules/fabrickIdSystem.js +2 -2
  273. package/modules/fintezaAnalyticsAdapter.js +2 -2
  274. package/modules/freewheel-sspBidAdapter.js +1 -1
  275. package/modules/gamoshiBidAdapter.js +1 -1
  276. package/modules/getintentBidAdapter.js +1 -1
  277. package/modules/gjirafaBidAdapter.js +2 -2
  278. package/modules/goldbachBidAdapter.js +8 -8
  279. package/modules/gothamadsBidAdapter.js +2 -2
  280. package/modules/gridBidAdapter.js +1 -1
  281. package/modules/gridNMBidAdapter.js +1 -1
  282. package/modules/gumgumBidAdapter.js +3 -3
  283. package/modules/h12mediaBidAdapter.js +1 -1
  284. package/modules/hadronAnalyticsAdapter.js +3 -3
  285. package/modules/hadronRtdProvider.js +1 -1
  286. package/modules/id5AnalyticsAdapter.js +2 -2
  287. package/modules/impactifyBidAdapter.js +1 -1
  288. package/modules/improvedigitalBidAdapter.js +5 -2
  289. package/modules/imuIdSystem.js +40 -28
  290. package/modules/imuIdSystem.md +1 -0
  291. package/modules/inskinBidAdapter.js +1 -1
  292. package/modules/integr8BidAdapter.js +2 -2
  293. package/modules/intentIqIdSystem.js +2 -2
  294. package/modules/interactiveOffersBidAdapter.js +1 -1
  295. package/modules/invisiblyAnalyticsAdapter.js +1 -1
  296. package/modules/iqmBidAdapter.js +1 -1
  297. package/modules/ixBidAdapter.js +15 -15
  298. package/modules/kargoAnalyticsAdapter.js +1 -1
  299. package/modules/kargoBidAdapter.js +4 -5
  300. package/modules/konduitAnalyticsAdapter.js +1 -1
  301. package/modules/krushmediaBidAdapter.js +2 -2
  302. package/modules/kueezBidAdapter.js +2 -2
  303. package/modules/lassoBidAdapter.js +3 -3
  304. package/modules/livewrappedAnalyticsAdapter.js +4 -4
  305. package/modules/liveyieldAnalyticsAdapter.js +1 -1
  306. package/modules/lkqdBidAdapter.js +3 -3
  307. package/modules/loganBidAdapter.js +2 -2
  308. package/modules/luponmediaBidAdapter.js +3 -3
  309. package/modules/malltvAnalyticsAdapter.js +1 -1
  310. package/modules/malltvBidAdapter.js +2 -2
  311. package/modules/marsmediaAnalyticsAdapter.js +1 -1
  312. package/modules/mediafuseBidAdapter.js +8 -8
  313. package/modules/mediakeysBidAdapter.js +2 -2
  314. package/modules/medianetAnalyticsAdapter.js +1 -1
  315. package/modules/merkleIdSystem.js +2 -2
  316. package/modules/mgidBidAdapter.js +2 -2
  317. package/modules/microadBidAdapter.js +1 -1
  318. package/modules/mobfoxpbBidAdapter.js +2 -2
  319. package/modules/newspassidBidAdapter.js +1 -1
  320. package/modules/nextMillenniumBidAdapter.js +21 -2
  321. package/modules/nobidBidAdapter.js +3 -3
  322. package/modules/novatiqIdSystem.js +1 -1
  323. package/modules/oguryBidAdapter.js +1 -1
  324. package/modules/ooloAnalyticsAdapter.js +1 -1
  325. package/modules/open8BidAdapter.js +1 -1
  326. package/modules/openwebBidAdapter.js +1 -1
  327. package/modules/openxAnalyticsAdapter.js +6 -745
  328. package/modules/openxAnalyticsAdapter.md +4 -0
  329. package/modules/openxBidAdapter.js +3 -5
  330. package/modules/openxOrtbBidAdapter.js +8 -4
  331. package/modules/operaadsBidAdapter.js +1 -1
  332. package/modules/optimonAnalyticsAdapter.js +1 -1
  333. package/modules/ozoneBidAdapter.js +102 -271
  334. package/modules/ozoneBidAdapter.md +37 -0
  335. package/modules/pianoDmpAnalyticsAdapter.js +1 -1
  336. package/modules/pixfutureBidAdapter.js +1 -1
  337. package/modules/prebidServerBidAdapter/index.js +7 -7
  338. package/modules/prebidmanagerAnalyticsAdapter.js +2 -2
  339. package/modules/priceFloors.js +1 -1
  340. package/modules/pubmaticAnalyticsAdapter.js +2 -2
  341. package/modules/pubmaticBidAdapter.js +28 -8
  342. package/modules/pubperfAnalyticsAdapter.js +1 -1
  343. package/modules/pubstackAnalyticsAdapter.js +1 -1
  344. package/modules/pubwiseAnalyticsAdapter.js +2 -2
  345. package/modules/pubwiseBidAdapter.js +3 -3
  346. package/modules/pubxBidAdapter.js +1 -1
  347. package/modules/pubxaiAnalyticsAdapter.js +3 -3
  348. package/modules/pulsepointAnalyticsAdapter.js +1 -1
  349. package/modules/pulsepointBidAdapter.js +1 -1
  350. package/modules/quantcastIdSystem.js +1 -1
  351. package/modules/radsBidAdapter.js +1 -1
  352. package/modules/realvuAnalyticsAdapter.js +1 -1
  353. package/modules/relaidoBidAdapter.js +23 -18
  354. package/modules/relevantAnalyticsAdapter.js +1 -1
  355. package/modules/revcontentBidAdapter.js +1 -1
  356. package/modules/richaudienceBidAdapter.js +1 -1
  357. package/modules/riseBidAdapter.js +8 -5
  358. package/modules/riseBidAdapter.md +3 -1
  359. package/modules/rivrAnalyticsAdapter.js +1 -1
  360. package/modules/roxotAnalyticsAdapter.js +1 -1
  361. package/modules/rtbhouseBidAdapter.js +1 -1
  362. package/modules/rubiconAnalyticsAdapter.js +1 -1
  363. package/modules/rubiconBidAdapter.js +2 -2
  364. package/modules/scaleableAnalyticsAdapter.js +1 -1
  365. package/modules/schain.js +1 -1
  366. package/modules/sharethroughAnalyticsAdapter.js +1 -1
  367. package/modules/sharethroughBidAdapter.js +3 -3
  368. package/modules/shinezBidAdapter.js +2 -2
  369. package/modules/showheroes-bsBidAdapter.js +131 -49
  370. package/modules/showheroes-bsBidAdapter.md +49 -0
  371. package/modules/sigmoidAnalyticsAdapter.js +1 -1
  372. package/modules/sirdataRtdProvider.js +3 -3
  373. package/modules/sizeMappingV2.js +1 -1
  374. package/modules/smaatoBidAdapter.js +2 -2
  375. package/modules/smartxBidAdapter.js +2 -2
  376. package/modules/snigelBidAdapter.js +150 -0
  377. package/modules/snigelBidAdapter.md +46 -0
  378. package/modules/sonobiAnalyticsAdapter.js +2 -2
  379. package/modules/sonobiBidAdapter.js +3 -3
  380. package/modules/sovrnAnalyticsAdapter.js +1 -1
  381. package/modules/spotxBidAdapter.js +5 -5
  382. package/modules/sspBCBidAdapter.js +15 -18
  383. package/modules/staqAnalyticsAdapter.js +2 -2
  384. package/modules/synacormediaBidAdapter.js +1 -1
  385. package/modules/taboolaBidAdapter.js +1 -1
  386. package/modules/tappxBidAdapter.js +4 -4
  387. package/modules/targetVideoBidAdapter.js +1 -1
  388. package/modules/terceptAnalyticsAdapter.js +1 -1
  389. package/modules/theAdxBidAdapter.js +2 -2
  390. package/modules/tpmnBidAdapter.js +1 -1
  391. package/modules/trionBidAdapter.js +2 -2
  392. package/modules/tripleliftBidAdapter.js +46 -20
  393. package/modules/trustpidSystem.js +2 -2
  394. package/modules/ttdBidAdapter.js +41 -26
  395. package/modules/ttdBidAdapter.md +4 -10
  396. package/modules/ucfunnelAnalyticsAdapter.js +1 -1
  397. package/modules/underdogmediaBidAdapter.js +1 -1
  398. package/modules/userId/eids.js +5 -0
  399. package/modules/userId/index.js +11 -7
  400. package/modules/vdoaiBidAdapter.js +1 -1
  401. package/modules/vidazooBidAdapter.js +9 -5
  402. package/modules/videoheroesBidAdapter.js +1 -1
  403. package/modules/vidoomyBidAdapter.js +1 -1
  404. package/modules/visxBidAdapter.js +1 -1
  405. package/modules/vrtcalBidAdapter.js +1 -1
  406. package/modules/weboramaRtdProvider.js +3 -3
  407. package/modules/winrBidAdapter.js +1 -1
  408. package/modules/yahoosspBidAdapter.js +4 -3
  409. package/modules/yandexBidAdapter.js +1 -1
  410. package/modules/yieldmoBidAdapter.js +3 -3
  411. package/modules/yieldoneAnalyticsAdapter.js +1 -1
  412. package/modules/yieldoneBidAdapter.js +2 -2
  413. package/modules/yuktamediaAnalyticsAdapter.js +1 -1
  414. package/modules/zeta_global_sspAnalyticsAdapter.js +1 -1
  415. package/modules/zeta_global_sspBidAdapter.js +25 -22
  416. package/package.json +4 -3
  417. package/src/Renderer.js +1 -1
  418. package/src/adapterManager.js +3 -3
  419. package/src/adapters/bidderFactory.js +1 -0
  420. package/src/auction.js +2 -2
  421. package/src/bidfactory.js +1 -1
  422. package/src/config.js +7 -7
  423. package/src/native.js +53 -58
  424. package/src/sizeMapping.js +1 -1
  425. package/src/targeting.js +1 -1
  426. package/src/userSync.js +1 -1
  427. package/src/utils.js +1 -1
  428. package/test/mocks/analyticsStub.js +1 -1
  429. package/test/spec/AnalyticsAdapter_spec.js +1 -1
  430. package/test/spec/config_spec.js +4 -0
  431. package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
  432. package/test/spec/modules/adnuntiusBidAdapter_spec.js +7 -3
  433. package/test/spec/modules/adtelligentBidAdapter_spec.js +1 -0
  434. package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
  435. package/test/spec/modules/adyoulikeBidAdapter_spec.js +8 -3
  436. package/test/spec/modules/andBeyondMediaBidAdapter_spec.js +400 -0
  437. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +17 -1
  438. package/test/spec/modules/boldwinBidAdapter_spec.js +2 -1
  439. package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
  440. package/test/spec/modules/c1xBidAdapter_spec.js +189 -0
  441. package/test/spec/modules/cleanioRtdProvider_spec.js +23 -0
  442. package/test/spec/modules/concertAnalyticsAdapter_spec.js +2 -1
  443. package/test/spec/modules/consumableBidAdapter_spec.js +139 -0
  444. package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
  445. package/test/spec/modules/criteoBidAdapter_spec.js +169 -38
  446. package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
  447. package/test/spec/modules/eids_spec.js +32 -0
  448. package/test/spec/modules/eplanningAnalyticsAdapter_spec.js +2 -2
  449. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +2 -1
  450. package/test/spec/modules/improvedigitalBidAdapter_spec.js +4 -4
  451. package/test/spec/modules/imuIdSystem_spec.js +20 -4
  452. package/test/spec/modules/invisiblyAnalyticsAdapter_spec.js +8 -3
  453. package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
  454. package/test/spec/modules/konduitAnalyticsAdapter_spec.js +2 -1
  455. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +17 -0
  456. package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
  457. package/test/spec/modules/openxOrtbBidAdapter_spec.js +32 -1
  458. package/test/spec/modules/optimonAnalyticsAdapter_spec.js +2 -1
  459. package/test/spec/modules/ozoneBidAdapter_spec.js +367 -511
  460. package/test/spec/modules/pianoDmpAnalyticsAdapter_spec.js +4 -0
  461. package/test/spec/modules/prebidmanagerAnalyticsAdapter_spec.js +2 -1
  462. package/test/spec/modules/pubmaticBidAdapter_spec.js +111 -5
  463. package/test/spec/modules/pubperfAnalyticsAdapter_spec.js +2 -1
  464. package/test/spec/modules/pubstackAnalyticsAdapter_spec.js +2 -1
  465. package/test/spec/modules/pubwiseAnalyticsAdapter_spec.js +3 -3
  466. package/test/spec/modules/relaidoBidAdapter_spec.js +40 -33
  467. package/test/spec/modules/riseBidAdapter_spec.js +17 -0
  468. package/test/spec/modules/sharethroughBidAdapter_spec.js +10 -1
  469. package/test/spec/modules/showheroes-bsBidAdapter_spec.js +173 -2
  470. package/test/spec/modules/sigmoidAnalyticsAdapter_spec.js +1 -1
  471. package/test/spec/modules/snigelBidAdapter_spec.js +296 -0
  472. package/test/spec/modules/sovrnAnalyticsAdapter_spec.js +2 -1
  473. package/test/spec/modules/sspBCBidAdapter_spec.js +2 -2
  474. package/test/spec/modules/tripleliftBidAdapter_spec.js +378 -10
  475. package/test/spec/modules/ttdBidAdapter_spec.js +113 -34
  476. package/test/spec/modules/userId_spec.js +38 -2
  477. package/test/spec/modules/vidazooBidAdapter_spec.js +39 -24
  478. package/test/spec/modules/yahoosspBidAdapter_spec.js +13 -0
  479. package/test/spec/modules/yieldoneAnalyticsAdapter_spec.js +5 -1
  480. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +61 -2
  481. package/test/spec/native_spec.js +96 -0
  482. package/test/spec/unit/core/bidderFactory_spec.js +27 -2
  483. package/webpack.conf.js +47 -11
@@ -17,8 +17,7 @@ describe('ttdBidAdapter', function () {
17
17
  'params': {
18
18
  'supplySourceId': 'supplier',
19
19
  'publisherId': '22222222',
20
- 'placementId': 'some-PlacementId_1',
21
- 'siteId': 'testSiteId'
20
+ 'placementId': 'some-PlacementId_1'
22
21
  },
23
22
  'mediaTypes': {
24
23
  'banner': {
@@ -57,27 +56,20 @@ describe('ttdBidAdapter', function () {
57
56
  expect(spec.isBidRequestValid(bid)).to.equal(false);
58
57
  });
59
58
 
60
- it('should return false when siteId not passed', function () {
61
- let bid = makeBid();
62
- delete bid.params.siteId;
63
- expect(spec.isBidRequestValid(bid)).to.equal(false);
64
- });
65
-
66
- it('should return false when siteId is longer than 50 characters', function () {
67
- let bid = makeBid();
68
- bid.params.siteId = '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'
69
- expect(spec.isBidRequestValid(bid)).to.equal(false);
70
- });
71
-
72
- it('should return false when placementId not passed', function () {
59
+ it('should return true if placementId is not passed and gpid is passed', function () {
73
60
  let bid = makeBid();
74
61
  delete bid.params.placementId;
75
- expect(spec.isBidRequestValid(bid)).to.equal(false);
62
+ bid.ortb2Imp = {
63
+ ext: {
64
+ gpid: '/1111/home#header'
65
+ }
66
+ }
67
+ expect(spec.isBidRequestValid(bid)).to.equal(true);
76
68
  });
77
69
 
78
- it('should return false when the placementId is longer than 128 characters', function () {
70
+ it('should return false if neither placementId nor gpid is passed', function () {
79
71
  let bid = makeBid();
80
- bid.params.placementId = '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'; // 130 characters
72
+ delete bid.params.placementId;
81
73
  expect(spec.isBidRequestValid(bid)).to.equal(false);
82
74
  });
83
75
 
@@ -103,7 +95,6 @@ describe('ttdBidAdapter', function () {
103
95
  'params': {
104
96
  'supplySourceId': 'supplier',
105
97
  'publisherId': '22222222',
106
- 'siteId': 'testSiteId123',
107
98
  'placementId': 'somePlacementId'
108
99
  },
109
100
  'mediaTypes': {
@@ -187,17 +178,21 @@ describe('ttdBidAdapter', function () {
187
178
  'params': {
188
179
  'supplySourceId': 'supplier',
189
180
  'publisherId': '13144370',
190
- 'placementId': '1gaa015',
191
- 'siteId': 'testSiteId123'
181
+ 'placementId': '1gaa015'
192
182
  },
193
183
  'mediaTypes': {
194
184
  'banner': {
195
185
  'sizes': [[300, 250], [300, 600]]
196
186
  }
197
187
  },
188
+ 'ortb2Imp': {
189
+ 'ext': {
190
+ 'tid': '8651474f-58b1-4368-b812-84f8c937a099',
191
+ }
192
+ },
198
193
  'sizes': [[300, 250], [300, 600]],
194
+ 'transactionId': '1111474f-58b1-4368-b812-84f8c937a099',
199
195
  'adUnitCode': 'div-gpt-ad-1460505748561-0',
200
- 'transactionId': '8651474f-58b1-4368-b812-84f8c937a099',
201
196
  'bidId': '243310435309b5',
202
197
  'bidderRequestId': '18084284054531',
203
198
  'auctionId': 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
@@ -240,16 +235,49 @@ describe('ttdBidAdapter', function () {
240
235
  expect(url).to.equal('https://direct.adsrvr.org/bid/bidder/supplier');
241
236
  });
242
237
 
243
- it('sends publisher id, site id, and placement id', function () {
238
+ it('sends publisher id', function () {
244
239
  const requestBody = testBuildRequests(baseBannerBidRequests, baseBidderRequest).data;
245
240
  expect(requestBody.site).to.be.not.null;
246
241
  expect(requestBody.site.publisher).to.be.not.null;
247
- expect(requestBody.imp[0].tagid).to.be.not.null;
248
242
  expect(requestBody.site.publisher.id).to.equal(baseBannerBidRequests[0].params.publisherId);
249
- expect(requestBody.site.id).to.equal(baseBannerBidRequests[0].params.siteId);
243
+ });
244
+
245
+ it('sends placement id in tagid', function () {
246
+ const requestBody = testBuildRequests(baseBannerBidRequests, baseBidderRequest).data;
250
247
  expect(requestBody.imp[0].tagid).to.equal(baseBannerBidRequests[0].params.placementId);
251
248
  });
252
249
 
250
+ it('sends gpid in tagid if present', function () {
251
+ let clonedBannerRequests = deepClone(baseBannerBidRequests);
252
+ const gpid = '/1111/home#header';
253
+ clonedBannerRequests[0].ortb2Imp = {
254
+ ext: {
255
+ gpid: gpid
256
+ }
257
+ };
258
+ const requestBody = testBuildRequests(clonedBannerRequests, baseBidderRequest).data;
259
+ expect(requestBody.imp[0].tagid).to.equal(gpid);
260
+ });
261
+
262
+ it('sends gpid in ext.gpid if present', function () {
263
+ let clonedBannerRequests = deepClone(baseBannerBidRequests);
264
+ const gpid = '/1111/home#header';
265
+ clonedBannerRequests[0].ortb2Imp = {
266
+ ext: {
267
+ gpid: gpid
268
+ }
269
+ };
270
+ const requestBody = testBuildRequests(clonedBannerRequests, baseBidderRequest).data;
271
+ expect(requestBody.imp[0].ext).to.be.not.null;
272
+ expect(requestBody.imp[0].ext.gpid).to.equal(gpid);
273
+ });
274
+
275
+ it('sends transaction id in source.tid', function () {
276
+ const requestBody = testBuildRequests(baseBannerBidRequests, baseBidderRequest).data;
277
+ expect(requestBody.source).to.be.not.null;
278
+ expect(requestBody.source.tid).to.equal('1111474f-58b1-4368-b812-84f8c937a099');
279
+ });
280
+
253
281
  it('includes the ad size in the bid request', function () {
254
282
  const requestBody = testBuildRequests(baseBannerBidRequests, baseBidderRequest).data;
255
283
  expect(requestBody.imp[0].banner.format[0].w).to.equal(300);
@@ -283,18 +311,44 @@ describe('ttdBidAdapter', function () {
283
311
  });
284
312
 
285
313
  it('sets keywords properly if sent', function () {
286
- let clonedBannerRequests = deepClone(baseBannerBidRequests);
287
-
288
314
  const ortb2 = {
289
315
  site: {
290
316
  keywords: 'highViewability, clothing, holiday shopping'
291
317
  }
292
318
  };
293
- const requestBody = testBuildRequests(clonedBannerRequests, {...baseBidderRequest, ortb2}).data;
319
+ const requestBody = testBuildRequests(baseBannerBidRequests, {...baseBidderRequest, ortb2}).data;
294
320
  config.resetConfig();
295
321
  expect(requestBody.ext.ttdprebid.keywords).to.deep.equal(['highViewability', 'clothing', 'holiday shopping']);
296
322
  });
297
323
 
324
+ it('sets bcat properly if sent', function () {
325
+ const ortb2 = {
326
+ bcat: ['IAB1-1', 'IAB2-9']
327
+ };
328
+ const requestBody = testBuildRequests(baseBannerBidRequests, {...baseBidderRequest, ortb2}).data;
329
+ config.resetConfig();
330
+ expect(requestBody.bcat).to.deep.equal(['IAB1-1', 'IAB2-9']);
331
+ });
332
+
333
+ it('sets badv properly if sent', function () {
334
+ const ortb2 = {
335
+ badv: ['adv1.com', 'adv2.com']
336
+ };
337
+ const requestBody = testBuildRequests(baseBannerBidRequests, {...baseBidderRequest, ortb2}).data;
338
+ config.resetConfig();
339
+ expect(requestBody.badv).to.deep.equal(['adv1.com', 'adv2.com']);
340
+ });
341
+
342
+ it('sets battr properly if present', function () {
343
+ let clonedBannerRequests = deepClone(baseBannerBidRequests);
344
+ const battr = [1, 2, 3];
345
+ clonedBannerRequests[0].ortb2Imp = {
346
+ battr: battr
347
+ };
348
+ const requestBody = testBuildRequests(clonedBannerRequests, baseBidderRequest).data;
349
+ expect(requestBody.imp[0].banner.battr).to.equal(battr);
350
+ });
351
+
298
352
  it('sets ext properly', function () {
299
353
  let clonedBannerRequests = deepClone(baseBannerBidRequests);
300
354
 
@@ -442,9 +496,14 @@ describe('ttdBidAdapter', function () {
442
496
  'sizes': [[300, 250], [300, 600]]
443
497
  }
444
498
  },
499
+ 'ortb2Imp': {
500
+ 'ext': {
501
+ 'tid': '8651474f-58b1-4368-b812-84f8c937a099',
502
+ }
503
+ },
445
504
  'sizes': [[300, 250], [300, 600]],
505
+ 'transactionId': '1111474f-58b1-4368-b812-84f8c937a099',
446
506
  'adUnitCode': 'div-gpt-ad-1460505748561-0',
447
- 'transactionId': '8651474f-58b1-4368-b812-84f8c937a099',
448
507
  'bidId': 'small',
449
508
  'bidderRequestId': '18084284054531',
450
509
  'auctionId': 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
@@ -454,17 +513,21 @@ describe('ttdBidAdapter', function () {
454
513
  'bidder': 'ttd',
455
514
  'params': {
456
515
  'publisherId': '13144370',
457
- 'placementId': 'top',
458
- 'siteId': 'testSite123'
516
+ 'placementId': 'top'
459
517
  },
460
518
  'mediaTypes': {
461
519
  'banner': {
462
520
  'sizes': [[728, 90]]
463
521
  }
464
522
  },
523
+ 'ortb2Imp': {
524
+ 'ext': {
525
+ 'tid': '12345678-58b1-4368-b812-84f8c937a099',
526
+ }
527
+ },
465
528
  'sizes': [[728, 90]],
466
- 'adUnitCode': 'div-gpt-ad-91515710-0',
467
529
  'transactionId': '825c1228-ca8c-4657-b40f-2df500621527',
530
+ 'adUnitCode': 'div-gpt-ad-91515710-0',
468
531
  'bidId': 'large',
469
532
  'bidderRequestId': '18084284054531',
470
533
  'auctionId': 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
@@ -493,6 +556,12 @@ describe('ttdBidAdapter', function () {
493
556
  it('sends multiple impressions', function () {
494
557
  const requestBody = testBuildRequests(baseBannerMultipleBidRequests, baseBidderRequest).data;
495
558
  expect(requestBody.imp.length).to.equal(2);
559
+ expect(requestBody.source).to.be.not.null;
560
+ expect(requestBody.source.tid).to.equal('1111474f-58b1-4368-b812-84f8c937a099');
561
+ expect(requestBody.imp[0].ext).to.be.not.null;
562
+ expect(requestBody.imp[0].ext.tid).to.equal('8651474f-58b1-4368-b812-84f8c937a099');
563
+ expect(requestBody.imp[1].ext).to.be.not.null;
564
+ expect(requestBody.imp[1].ext.tid).to.equal('12345678-58b1-4368-b812-84f8c937a099');
496
565
  });
497
566
 
498
567
  it('sends the right tag ids for each ad unit', function () {
@@ -547,8 +616,13 @@ describe('ttdBidAdapter', function () {
547
616
  'sizes': [[300, 250], [300, 600]]
548
617
  }
549
618
  },
619
+ 'ortb2Imp': {
620
+ 'ext': {
621
+ 'tid': '8651474f-58b1-4368-b812-84f8c937a099',
622
+ }
623
+ },
624
+ 'transactionId': '1111474f-58b1-4368-b812-84f8c937a099',
550
625
  'adUnitCode': 'div-gpt-ad-1460505748561-0',
551
- 'transactionId': '8651474f-58b1-4368-b812-84f8c937a099',
552
626
  'bidId': '243310435309b5',
553
627
  'bidderRequestId': '18084284054531',
554
628
  'auctionId': 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
@@ -607,8 +681,13 @@ describe('ttdBidAdapter', function () {
607
681
  'maxduration': 30
608
682
  }
609
683
  },
684
+ 'ortb2Imp': {
685
+ 'ext': {
686
+ 'tid': '8651474f-58b1-4368-b812-84f8c937a099',
687
+ }
688
+ },
689
+ 'transactionId': '1111474f-58b1-4368-b812-84f8c937a099',
610
690
  'adUnitCode': 'div-gpt-ad-1460505748561-0',
611
- 'transactionId': '8651474f-58b1-4368-b812-84f8c937a099',
612
691
  'bidId': '243310435309b5',
613
692
  'bidderRequestId': '18084284054531',
614
693
  'auctionId': 'e7b34fa3-8654-424e-8c49-03e509e53d8c',
@@ -46,6 +46,7 @@ import {deepintentDpesSubmodule} from 'modules/deepintentDpesIdSystem.js';
46
46
  import {amxIdSubmodule} from '../../../modules/amxIdSystem.js';
47
47
  import {kinessoIdSubmodule} from 'modules/kinessoIdSystem.js';
48
48
  import {adqueryIdSubmodule} from 'modules/adqueryIdSystem.js';
49
+ import {imuIdSubmodule} from 'modules/imuIdSystem.js';
49
50
  import * as mockGpt from '../integration/faker/googletag.js';
50
51
  import 'src/prebid.js';
51
52
  import {hook} from '../../../src/hook.js';
@@ -402,7 +403,7 @@ describe('User ID', function () {
402
403
  it('should set googletag ppid correctly', function () {
403
404
  let adUnits = [getAdUnitMock()];
404
405
  init(config);
405
- setSubmoduleRegistry([amxIdSubmodule, sharedIdSystemSubmodule, identityLinkSubmodule]);
406
+ setSubmoduleRegistry([amxIdSubmodule, sharedIdSystemSubmodule, identityLinkSubmodule, imuIdSubmodule]);
406
407
 
407
408
  config.setConfig({
408
409
  userSync: {
@@ -411,6 +412,7 @@ describe('User ID', function () {
411
412
  { name: 'amxId', value: {'amxId': 'amx-id-value-amx-id-value-amx-id-value'} },
412
413
  { name: 'pubCommonId', value: {'pubcid': 'pubCommon-id-value-pubCommon-id-value'} },
413
414
  { name: 'identityLink', value: {'idl_env': 'identityLink-id-value-identityLink-id-value'} },
415
+ { name: 'imuid', value: {'imppid': 'imppid-value-imppid-value-imppid-value'} },
414
416
  ]
415
417
  }
416
418
  });
@@ -422,6 +424,27 @@ describe('User ID', function () {
422
424
  });
423
425
  });
424
426
 
427
+ it('should set googletag ppid correctly for imuIdSubmodule', function () {
428
+ let adUnits = [getAdUnitMock()];
429
+ init(config);
430
+ setSubmoduleRegistry([imuIdSubmodule]);
431
+
432
+ config.setConfig({
433
+ userSync: {
434
+ ppid: 'ppid.intimatemerger.com',
435
+ userIds: [
436
+ { name: 'imuid', value: {'imppid': 'imppid-value-imppid-value-imppid-value'} },
437
+ ]
438
+ }
439
+ });
440
+ // before ppid should not be set
441
+ expect(window.googletag._ppid).to.equal(undefined);
442
+ return expectImmediateBidHook(() => {}, {adUnits}).then(() => {
443
+ // ppid should have been set without dashes and stuff
444
+ expect(window.googletag._ppid).to.equal('imppidvalueimppidvalueimppidvalue');
445
+ });
446
+ });
447
+
425
448
  it('should log a warning if PPID too big or small', function () {
426
449
  let adUnits = [getAdUnitMock()];
427
450
 
@@ -516,9 +539,22 @@ describe('User ID', function () {
516
539
  clearStack().then(() => {
517
540
  // simulate init complete
518
541
  mockIdCallback.callArg(0, {id: {MOCKID: '1111'}});
519
- })
542
+ });
520
543
  });
521
544
 
545
+ it('should continue the auction when init fails', (done) => {
546
+ startInit();
547
+ requestBidsHook(() => {
548
+ done();
549
+ },
550
+ {adUnits: [getAdUnitMock()]},
551
+ {
552
+ delay: delay(),
553
+ getIds: () => Promise.reject(new Error())
554
+ }
555
+ );
556
+ })
557
+
522
558
  it('should not get stuck when init fails', () => {
523
559
  const err = new Error();
524
560
  mockIdCallback.callsFake(() => { throw err; });
@@ -1,4 +1,4 @@
1
- import { expect } from 'chai';
1
+ import {expect} from 'chai';
2
2
  import {
3
3
  spec as adapter,
4
4
  SUPPORTED_ID_SYSTEMS,
@@ -15,8 +15,8 @@ import {
15
15
  getVidazooSessionId,
16
16
  } from 'modules/vidazooBidAdapter.js';
17
17
  import * as utils from 'src/utils.js';
18
- import { version } from 'package.json';
19
- import { useFakeTimers } from 'sinon';
18
+ import {version} from 'package.json';
19
+ import {useFakeTimers} from 'sinon';
20
20
 
21
21
  const SUB_DOMAIN = 'openrtb';
22
22
 
@@ -48,12 +48,14 @@ const BIDDER_REQUEST = {
48
48
  },
49
49
  'uspConsent': 'consent_string',
50
50
  'refererInfo': {
51
- 'page': 'https://www.greatsite.com'
51
+ 'page': 'https://www.greatsite.com',
52
+ 'ref': 'https://www.somereferrer.com'
52
53
  }
53
54
  };
54
55
 
55
56
  const SERVER_RESPONSE = {
56
57
  body: {
58
+ cid: 'testcid123',
57
59
  results: [{
58
60
  'ad': '<iframe>console.log("hello world")</iframe>',
59
61
  'price': 0.8,
@@ -83,7 +85,7 @@ const REQUEST = {
83
85
 
84
86
  function getTopWindowQueryParams() {
85
87
  try {
86
- const parsedUrl = utils.parseUrl(window.top.document.URL, { decodeSearchAsString: true });
88
+ const parsedUrl = utils.parseUrl(window.top.document.URL, {decodeSearchAsString: true});
87
89
  return parsedUrl.search;
88
90
  } catch (e) {
89
91
  return '';
@@ -168,6 +170,7 @@ describe('VidazooBidAdapter', function () {
168
170
  usPrivacy: 'consent_string',
169
171
  sizes: ['300x250', '300x600'],
170
172
  url: 'https%3A%2F%2Fwww.greatsite.com',
173
+ referrer: 'https://www.somereferrer.com',
171
174
  cb: 1000,
172
175
  bidFloor: 0.1,
173
176
  bidId: '2d52001cabd527',
@@ -194,19 +197,27 @@ describe('VidazooBidAdapter', function () {
194
197
  });
195
198
  describe('getUserSyncs', function () {
196
199
  it('should have valid user sync with iframeEnabled', function () {
197
- const result = adapter.getUserSyncs({ iframeEnabled: true }, [SERVER_RESPONSE]);
200
+ const result = adapter.getUserSyncs({iframeEnabled: true}, [SERVER_RESPONSE]);
198
201
 
199
202
  expect(result).to.deep.equal([{
200
203
  type: 'iframe',
201
- url: 'https://prebid.cootlogix.com/api/sync/iframe/?gdpr=0&gdpr_consent=&us_privacy='
204
+ url: 'https://sync.cootlogix.com/api/sync/iframe/?cid=testcid123&gdpr=0&gdpr_consent=&us_privacy='
205
+ }]);
206
+ });
207
+
208
+ it('should have valid user sync with cid on response', function () {
209
+ const result = adapter.getUserSyncs({iframeEnabled: true}, [SERVER_RESPONSE]);
210
+ expect(result).to.deep.equal([{
211
+ type: 'iframe',
212
+ url: 'https://sync.cootlogix.com/api/sync/iframe/?cid=testcid123&gdpr=0&gdpr_consent=&us_privacy='
202
213
  }]);
203
214
  });
204
215
 
205
216
  it('should have valid user sync with pixelEnabled', function () {
206
- const result = adapter.getUserSyncs({ pixelEnabled: true }, [SERVER_RESPONSE]);
217
+ const result = adapter.getUserSyncs({pixelEnabled: true}, [SERVER_RESPONSE]);
207
218
 
208
219
  expect(result).to.deep.equal([{
209
- 'url': 'https://prebid.cootlogix.com/api/sync/image/?gdpr=0&gdpr_consent=&us_privacy=',
220
+ 'url': 'https://sync.cootlogix.com/api/sync/image/?cid=testcid123&gdpr=0&gdpr_consent=&us_privacy=',
210
221
  'type': 'image'
211
222
  }]);
212
223
  })
@@ -219,12 +230,12 @@ describe('VidazooBidAdapter', function () {
219
230
  });
220
231
 
221
232
  it('should return empty array when there is no ad', function () {
222
- const responses = adapter.interpretResponse({ price: 1, ad: '' });
233
+ const responses = adapter.interpretResponse({price: 1, ad: ''});
223
234
  expect(responses).to.be.empty;
224
235
  });
225
236
 
226
237
  it('should return empty array when there is no price', function () {
227
- const responses = adapter.interpretResponse({ price: null, ad: 'great ad' });
238
+ const responses = adapter.interpretResponse({price: null, ad: 'great ad'});
228
239
  expect(responses).to.be.empty;
229
240
  });
230
241
 
@@ -263,10 +274,14 @@ describe('VidazooBidAdapter', function () {
263
274
 
264
275
  const userId = (function () {
265
276
  switch (idSystemProvider) {
266
- case 'lipb': return { lipbid: id };
267
- case 'parrableId': return { eid: id };
268
- case 'id5id': return { uid: id };
269
- default: return id;
277
+ case 'lipb':
278
+ return {lipbid: id};
279
+ case 'parrableId':
280
+ return {eid: id};
281
+ case 'id5id':
282
+ return {uid: id};
283
+ default:
284
+ return id;
270
285
  }
271
286
  })();
272
287
 
@@ -283,18 +298,18 @@ describe('VidazooBidAdapter', function () {
283
298
 
284
299
  describe('alternate param names extractors', function () {
285
300
  it('should return undefined when param not supported', function () {
286
- const cid = extractCID({ 'c_id': '1' });
287
- const pid = extractPID({ 'p_id': '1' });
288
- const subDomain = extractSubDomain({ 'sub_domain': 'prebid' });
301
+ const cid = extractCID({'c_id': '1'});
302
+ const pid = extractPID({'p_id': '1'});
303
+ const subDomain = extractSubDomain({'sub_domain': 'prebid'});
289
304
  expect(cid).to.be.undefined;
290
305
  expect(pid).to.be.undefined;
291
306
  expect(subDomain).to.be.undefined;
292
307
  });
293
308
 
294
309
  it('should return value when param supported', function () {
295
- const cid = extractCID({ 'cID': '1' });
296
- const pid = extractPID({ 'Pid': '2' });
297
- const subDomain = extractSubDomain({ 'subDOMAIN': 'prebid' });
310
+ const cid = extractCID({'cID': '1'});
311
+ const pid = extractPID({'Pid': '2'});
312
+ const subDomain = extractSubDomain({'subDOMAIN': 'prebid'});
298
313
  expect(cid).to.be.equal('1');
299
314
  expect(pid).to.be.equal('2');
300
315
  expect(subDomain).to.be.equal('prebid');
@@ -407,7 +422,7 @@ describe('VidazooBidAdapter', function () {
407
422
  now
408
423
  });
409
424
  setStorageItem('myKey', 2020);
410
- const { value, created } = getStorageItem('myKey');
425
+ const {value, created} = getStorageItem('myKey');
411
426
  expect(created).to.be.equal(now);
412
427
  expect(value).to.be.equal(2020);
413
428
  expect(typeof value).to.be.equal('number');
@@ -423,8 +438,8 @@ describe('VidazooBidAdapter', function () {
423
438
  });
424
439
 
425
440
  it('should parse JSON value', function () {
426
- const data = JSON.stringify({ event: 'send' });
427
- const { event } = tryParseJSON(data);
441
+ const data = JSON.stringify({event: 'send'});
442
+ const {event} = tryParseJSON(data);
428
443
  expect(event).to.be.equal('send');
429
444
  });
430
445
 
@@ -334,6 +334,19 @@ describe('YahooSSP Bid Adapter:', () => {
334
334
  });
335
335
 
336
336
  describe('Schain module support:', () => {
337
+ it('should not include schain data when schain array is empty', function () {
338
+ const { bidRequest, validBidRequests, bidderRequest } = generateBuildRequestMock({});
339
+ const globalSchain = {
340
+ ver: '1.0',
341
+ complete: 1,
342
+ nodes: []
343
+ };
344
+ bidRequest.schain = globalSchain;
345
+ const data = spec.buildRequests(validBidRequests, bidderRequest)[0].data;
346
+ const schain = data.source.ext.schain;
347
+ expect(schain).to.be.undefined;
348
+ });
349
+
337
350
  it('should send Global or Bidder specific schain', function () {
338
351
  const { bidRequest, validBidRequests, bidderRequest } = generateBuildRequestMock({});
339
352
  const globalSchain = {
@@ -269,7 +269,11 @@ describe('Yieldone Prebid Analytic', function () {
269
269
  setTimeout(function() {
270
270
  events.emit(constants.EVENTS.BID_WON, winner);
271
271
 
272
- sinon.assert.callCount(sendStatStub, 2);
272
+ sinon.assert.callCount(sendStatStub, 2)
273
+ const billableEventIndex = yieldoneAnalytics.eventsStorage[auctionId].events.findIndex(event => event.eventType === constants.EVENTS.BILLABLE_EVENT);
274
+ if (billableEventIndex > -1) {
275
+ yieldoneAnalytics.eventsStorage[auctionId].events.splice(billableEventIndex, 1);
276
+ }
273
277
  expect(yieldoneAnalytics.eventsStorage[auctionId]).to.deep.equal(wonExpectedResult);
274
278
 
275
279
  delete yieldoneAnalytics.eventsStorage[auctionId];
@@ -44,6 +44,48 @@ describe('Zeta Ssp Bid Adapter', function () {
44
44
  test: 1
45
45
  };
46
46
 
47
+ const multiImpRequest = [
48
+ {
49
+ bidId: 12345,
50
+ auctionId: 67890,
51
+ mediaTypes: {
52
+ banner: {
53
+ sizes: [[300, 250]],
54
+ }
55
+ },
56
+ refererInfo: {
57
+ page: 'http://www.zetaglobal.com/page?param=value',
58
+ domain: 'www.zetaglobal.com',
59
+ },
60
+ gdprConsent: {
61
+ gdprApplies: 1,
62
+ consentString: 'consentString'
63
+ },
64
+ uspConsent: 'someCCPAString',
65
+ params: params,
66
+ userIdAsEids: eids
67
+ }, {
68
+ bidId: 54321,
69
+ auctionId: 67890,
70
+ mediaTypes: {
71
+ banner: {
72
+ sizes: [[600, 400]],
73
+ }
74
+ },
75
+ refererInfo: {
76
+ page: 'http://www.zetaglobal.com/page?param=value',
77
+ domain: 'www.zetaglobal.com',
78
+ },
79
+ gdprConsent: {
80
+ gdprApplies: 1,
81
+ consentString: 'consentString'
82
+ },
83
+ uspConsent: 'someCCPAString',
84
+ params: params,
85
+ userIdAsEids: eids
86
+ }
87
+ ];
88
+
47
89
  const bannerRequest = [{
48
90
  bidId: 12345,
49
91
  auctionId: 67890,
@@ -271,7 +313,7 @@ describe('Zeta Ssp Bid Adapter', function () {
271
313
  it('Test required params in banner request', function () {
272
314
  const request = spec.buildRequests(bannerRequest, bannerRequest[0]);
273
315
  const payload = JSON.parse(request.data);
274
- expect(request.url).to.eql('https://ssp.disqus.com/bid?shortname=test_shortname');
316
+ expect(request.url).to.eql('https://ssp.disqus.com/bid/prebid?shortname=test_shortname');
275
317
  expect(payload.ext.sid).to.eql('publisherId');
276
318
  expect(payload.ext.tags.someTag).to.eql(444);
277
319
  expect(payload.ext.tags.shortname).to.be.undefined;
@@ -280,9 +322,26 @@ describe('Zeta Ssp Bid Adapter', function () {
280
322
  it('Test required params in video request', function () {
281
323
  const request = spec.buildRequests(videoRequest, videoRequest[0]);
282
324
  const payload = JSON.parse(request.data);
283
- expect(request.url).to.eql('https://ssp.disqus.com/bid?shortname=test_shortname');
325
+ expect(request.url).to.eql('https://ssp.disqus.com/bid/prebid?shortname=test_shortname');
284
326
  expect(payload.ext.sid).to.eql('publisherId');
285
327
  expect(payload.ext.tags.someTag).to.eql(444);
286
328
  expect(payload.ext.tags.shortname).to.be.undefined;
287
329
  });
330
+
331
+ it('Test multi imp', function () {
332
+ const request = spec.buildRequests(multiImpRequest, multiImpRequest[0]);
333
+ const payload = JSON.parse(request.data);
334
+ expect(request.url).to.eql('https://ssp.disqus.com/bid/prebid?shortname=test_shortname');
335
+
336
+ expect(payload.imp.length).to.eql(2);
337
+
338
+ expect(payload.imp[0].id).to.eql(12345);
339
+ expect(payload.imp[1].id).to.eql(54321);
340
+
341
+ expect(payload.imp[0].banner.w).to.eql(300);
342
+ expect(payload.imp[0].banner.h).to.eql(250);
343
+
344
+ expect(payload.imp[1].banner.w).to.eql(600);
345
+ expect(payload.imp[1].banner.h).to.eql(400);
346
+ });
288
347
  });