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
@@ -6,6 +6,7 @@ import { newBidder } from 'src/adapters/bidderFactory.js';
6
6
  describe('Adyoulike Adapter', function () {
7
7
  const canonicalUrl = 'https://canonical.url/?t=%26';
8
8
  const referrerUrl = 'http://referrer.url/?param=value';
9
+ const pageUrl = 'http://page.url/?param=value';
9
10
  const domain = 'domain:123';
10
11
  const defaultDC = 'hb-api';
11
12
  const consentString = 'BOJ8RZsOJ8RZsABAB8AAAAAZ+A==';
@@ -17,7 +18,8 @@ describe('Adyoulike Adapter', function () {
17
18
  consentString: consentString,
18
19
  gdprApplies: true
19
20
  },
20
- refererInfo: {location: referrerUrl, canonicalUrl, domain}
21
+ refererInfo: {location: referrerUrl, canonicalUrl, domain},
22
+ ortb2: {site: {page: pageUrl, ref: referrerUrl}}
21
23
  };
22
24
  const bidRequestWithEmptyPlacement = [
23
25
  {
@@ -601,7 +603,8 @@ describe('Adyoulike Adapter', function () {
601
603
  expect(request.method).to.equal('POST');
602
604
  expect(request.url).to.contains('CanonicalUrl=' + encodeURIComponent(canonicalUrl));
603
605
  expect(request.url).to.contains('RefererUrl=' + encodeURIComponent(referrerUrl));
604
- expect(request.url).to.contains('PublisherDomain=' + encodeURIComponent(domain));
606
+ expect(request.url).to.contains('PageUrl=' + encodeURIComponent(pageUrl));
607
+ expect(request.url).to.contains('PageReferrer=' + encodeURIComponent(referrerUrl));
605
608
 
606
609
  expect(payload.Version).to.equal('1.0');
607
610
  expect(payload.Bids['bid_id_0'].PlacementID).to.be.equal('placement_0');
@@ -698,12 +701,14 @@ describe('Adyoulike Adapter', function () {
698
701
  expect(request.method).to.equal('POST');
699
702
  expect(request.url).to.contains('CanonicalUrl=' + encodeURIComponent(canonicalUrl));
700
703
  expect(request.url).to.contains('RefererUrl=' + encodeURIComponent(referrerUrl));
701
- expect(request.url).to.contains('PublisherDomain=' + encodeURIComponent(domain));
704
+ expect(request.url).to.contains('PageUrl=' + encodeURIComponent(pageUrl));
705
+ expect(request.url).to.contains('PageReferrer=' + encodeURIComponent(referrerUrl));
702
706
 
703
707
  expect(payload.Version).to.equal('1.0');
704
708
  expect(payload.Bids['bid_id_0'].PlacementID).to.be.equal('placement_0');
705
709
  expect(payload.PageRefreshed).to.equal(false);
706
710
  expect(payload.Bids['bid_id_0'].TransactionID).to.be.equal('bid_id_0_transaction_id');
711
+ expect(payload.ortb2).to.deep.equal({site: {page: pageUrl, ref: referrerUrl}});
707
712
  });
708
713
 
709
714
  it('sends bid request to endpoint with single placement without canonical', function () {
@@ -0,0 +1,400 @@
1
+ import { expect } from 'chai';
2
+ import { spec } from '../../../modules/andBeyondMediaBidAdapter.js';
3
+ import { BANNER, VIDEO, NATIVE } from '../../../src/mediaTypes.js';
4
+ import { getUniqueIdentifierStr } from '../../../src/utils.js';
5
+
6
+ const bidder = 'beyondmedia'
7
+
8
+ describe('AndBeyondMediaBidAdapter', function () {
9
+ const bids = [
10
+ {
11
+ bidId: getUniqueIdentifierStr(),
12
+ bidder: bidder,
13
+ mediaTypes: {
14
+ [BANNER]: {
15
+ sizes: [[300, 250]]
16
+ }
17
+ },
18
+ params: {
19
+ placementId: 'testBanner',
20
+ }
21
+ },
22
+ {
23
+ bidId: getUniqueIdentifierStr(),
24
+ bidder: bidder,
25
+ mediaTypes: {
26
+ [VIDEO]: {
27
+ playerSize: [[300, 300]],
28
+ minduration: 5,
29
+ maxduration: 60
30
+ }
31
+ },
32
+ params: {
33
+ placementId: 'testVideo',
34
+ }
35
+ },
36
+ {
37
+ bidId: getUniqueIdentifierStr(),
38
+ bidder: bidder,
39
+ mediaTypes: {
40
+ [NATIVE]: {
41
+ native: {
42
+ title: {
43
+ required: true
44
+ },
45
+ body: {
46
+ required: true
47
+ },
48
+ icon: {
49
+ required: true,
50
+ size: [64, 64]
51
+ }
52
+ }
53
+ }
54
+ },
55
+ params: {
56
+ placementId: 'testNative',
57
+ }
58
+ }
59
+ ];
60
+
61
+ const invalidBid = {
62
+ bidId: getUniqueIdentifierStr(),
63
+ bidder: bidder,
64
+ mediaTypes: {
65
+ [BANNER]: {
66
+ sizes: [[300, 250]]
67
+ }
68
+ },
69
+ params: {
70
+
71
+ }
72
+ }
73
+
74
+ const bidderRequest = {
75
+ uspConsent: '1---',
76
+ gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
77
+ refererInfo: {
78
+ referer: 'https://test.com'
79
+ }
80
+ };
81
+
82
+ describe('isBidRequestValid', function () {
83
+ it('Should return true if there are bidId, params and key parameters present', function () {
84
+ expect(spec.isBidRequestValid(bids[0])).to.be.true;
85
+ expect(spec.isBidRequestValid(bids[1])).to.be.true;
86
+ expect(spec.isBidRequestValid(bids[2])).to.be.true;
87
+ });
88
+ it('Should return false if at least one of parameters is not present', function () {
89
+ expect(spec.isBidRequestValid(invalidBid)).to.be.false;
90
+ });
91
+ });
92
+
93
+ describe('buildRequests', function () {
94
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
95
+
96
+ it('Creates a ServerRequest object with method, URL and data', function () {
97
+ expect(serverRequest).to.exist;
98
+ expect(serverRequest.method).to.exist;
99
+ expect(serverRequest.url).to.exist;
100
+ expect(serverRequest.data).to.exist;
101
+ });
102
+
103
+ it('Returns POST method', function () {
104
+ expect(serverRequest.method).to.equal('POST');
105
+ });
106
+
107
+ it('Returns valid URL', function () {
108
+ expect(serverRequest.url).to.equal('https://backend.andbeyond.media/pbjs');
109
+ });
110
+
111
+ it('Returns general data valid', function () {
112
+ let data = serverRequest.data;
113
+ expect(data).to.be.an('object');
114
+ expect(data).to.have.all.keys('deviceWidth',
115
+ 'deviceHeight',
116
+ 'language',
117
+ 'secure',
118
+ 'host',
119
+ 'page',
120
+ 'placements',
121
+ 'coppa',
122
+ 'ccpa',
123
+ 'gdpr',
124
+ 'tmax'
125
+ );
126
+ expect(data.deviceWidth).to.be.a('number');
127
+ expect(data.deviceHeight).to.be.a('number');
128
+ expect(data.language).to.be.a('string');
129
+ expect(data.secure).to.be.within(0, 1);
130
+ expect(data.host).to.be.a('string');
131
+ expect(data.page).to.be.a('string');
132
+ expect(data.coppa).to.be.a('number');
133
+ expect(data.gdpr).to.be.a('string');
134
+ expect(data.ccpa).to.be.a('string');
135
+ expect(data.tmax).to.be.a('number');
136
+ expect(data.placements).to.have.lengthOf(3);
137
+ });
138
+
139
+ it('Returns valid placements', function () {
140
+ const { placements } = serverRequest.data;
141
+ for (let i = 0, len = placements.length; i < len; i++) {
142
+ const placement = placements[i];
143
+ expect(placement.placementId).to.be.oneOf(['testBanner', 'testVideo', 'testNative']);
144
+ expect(placement.adFormat).to.be.oneOf([BANNER, VIDEO, NATIVE]);
145
+ expect(placement.bidId).to.be.a('string');
146
+ expect(placement.schain).to.be.an('object');
147
+ expect(placement.bidfloor).to.exist.and.to.equal(0);
148
+ expect(placement.type).to.exist.and.to.equal('publisher');
149
+
150
+ if (placement.adFormat === BANNER) {
151
+ expect(placement.sizes).to.be.an('array');
152
+ }
153
+ switch (placement.adFormat) {
154
+ case BANNER:
155
+ expect(placement.sizes).to.be.an('array');
156
+ break;
157
+ case VIDEO:
158
+ expect(placement.playerSize).to.be.an('array');
159
+ expect(placement.minduration).to.be.an('number');
160
+ expect(placement.maxduration).to.be.an('number');
161
+ break;
162
+ case NATIVE:
163
+ expect(placement.native).to.be.an('object');
164
+ break;
165
+ }
166
+ }
167
+ });
168
+
169
+ it('Returns data with gdprConsent and without uspConsent', function () {
170
+ delete bidderRequest.uspConsent;
171
+ serverRequest = spec.buildRequests(bids, bidderRequest);
172
+ let data = serverRequest.data;
173
+ expect(data.gdpr).to.exist;
174
+ expect(data.gdpr).to.be.a('string');
175
+ expect(data.gdpr).to.equal(bidderRequest.gdprConsent);
176
+ expect(data.ccpa).to.not.exist;
177
+ delete bidderRequest.gdprConsent;
178
+ });
179
+
180
+ it('Returns data with uspConsent and without gdprConsent', function () {
181
+ bidderRequest.uspConsent = '1---';
182
+ delete bidderRequest.gdprConsent;
183
+ serverRequest = spec.buildRequests(bids, bidderRequest);
184
+ let data = serverRequest.data;
185
+ expect(data.ccpa).to.exist;
186
+ expect(data.ccpa).to.be.a('string');
187
+ expect(data.ccpa).to.equal(bidderRequest.uspConsent);
188
+ expect(data.gdpr).to.not.exist;
189
+ });
190
+
191
+ it('Returns empty data if no valid requests are passed', function () {
192
+ serverRequest = spec.buildRequests([], bidderRequest);
193
+ let data = serverRequest.data;
194
+ expect(data.placements).to.be.an('array').that.is.empty;
195
+ });
196
+ });
197
+
198
+ describe('interpretResponse', function () {
199
+ it('Should interpret banner response', function () {
200
+ const banner = {
201
+ body: [{
202
+ mediaType: 'banner',
203
+ width: 300,
204
+ height: 250,
205
+ cpm: 0.4,
206
+ ad: 'Test',
207
+ requestId: '23fhj33i987f',
208
+ ttl: 120,
209
+ creativeId: '2',
210
+ netRevenue: true,
211
+ currency: 'USD',
212
+ dealId: '1',
213
+ meta: {
214
+ advertiserDomains: ['google.com'],
215
+ advertiserId: 1234
216
+ }
217
+ }]
218
+ };
219
+ let bannerResponses = spec.interpretResponse(banner);
220
+ expect(bannerResponses).to.be.an('array').that.is.not.empty;
221
+ let dataItem = bannerResponses[0];
222
+ expect(dataItem).to.have.all.keys('requestId', 'cpm', 'width', 'height', 'ad', 'ttl', 'creativeId',
223
+ 'netRevenue', 'currency', 'dealId', 'mediaType', 'meta');
224
+ expect(dataItem.requestId).to.equal(banner.body[0].requestId);
225
+ expect(dataItem.cpm).to.equal(banner.body[0].cpm);
226
+ expect(dataItem.width).to.equal(banner.body[0].width);
227
+ expect(dataItem.height).to.equal(banner.body[0].height);
228
+ expect(dataItem.ad).to.equal(banner.body[0].ad);
229
+ expect(dataItem.ttl).to.equal(banner.body[0].ttl);
230
+ expect(dataItem.creativeId).to.equal(banner.body[0].creativeId);
231
+ expect(dataItem.netRevenue).to.be.true;
232
+ expect(dataItem.currency).to.equal(banner.body[0].currency);
233
+ expect(dataItem.meta).to.be.an('object').that.has.any.key('advertiserDomains');
234
+ });
235
+ it('Should interpret video response', function () {
236
+ const video = {
237
+ body: [{
238
+ vastUrl: 'test.com',
239
+ mediaType: 'video',
240
+ cpm: 0.5,
241
+ requestId: '23fhj33i987f',
242
+ ttl: 120,
243
+ creativeId: '2',
244
+ netRevenue: true,
245
+ currency: 'USD',
246
+ dealId: '1',
247
+ meta: {
248
+ advertiserDomains: ['google.com'],
249
+ advertiserId: 1234
250
+ }
251
+ }]
252
+ };
253
+ let videoResponses = spec.interpretResponse(video);
254
+ expect(videoResponses).to.be.an('array').that.is.not.empty;
255
+
256
+ let dataItem = videoResponses[0];
257
+ expect(dataItem).to.have.all.keys('requestId', 'cpm', 'vastUrl', 'ttl', 'creativeId',
258
+ 'netRevenue', 'currency', 'dealId', 'mediaType', 'meta');
259
+ expect(dataItem.requestId).to.equal('23fhj33i987f');
260
+ expect(dataItem.cpm).to.equal(0.5);
261
+ expect(dataItem.vastUrl).to.equal('test.com');
262
+ expect(dataItem.ttl).to.equal(120);
263
+ expect(dataItem.creativeId).to.equal('2');
264
+ expect(dataItem.netRevenue).to.be.true;
265
+ expect(dataItem.currency).to.equal('USD');
266
+ expect(dataItem.meta).to.be.an('object').that.has.any.key('advertiserDomains');
267
+ });
268
+ it('Should interpret native response', function () {
269
+ const native = {
270
+ body: [{
271
+ mediaType: 'native',
272
+ native: {
273
+ clickUrl: 'test.com',
274
+ title: 'Test',
275
+ image: 'test.com',
276
+ impressionTrackers: ['test.com'],
277
+ },
278
+ ttl: 120,
279
+ cpm: 0.4,
280
+ requestId: '23fhj33i987f',
281
+ creativeId: '2',
282
+ netRevenue: true,
283
+ currency: 'USD',
284
+ meta: {
285
+ advertiserDomains: ['google.com'],
286
+ advertiserId: 1234
287
+ }
288
+ }]
289
+ };
290
+ let nativeResponses = spec.interpretResponse(native);
291
+ expect(nativeResponses).to.be.an('array').that.is.not.empty;
292
+
293
+ let dataItem = nativeResponses[0];
294
+ expect(dataItem).to.have.keys('requestId', 'cpm', 'ttl', 'creativeId', 'netRevenue', 'currency', 'mediaType', 'native', 'meta');
295
+ expect(dataItem.native).to.have.keys('clickUrl', 'impressionTrackers', 'title', 'image')
296
+ expect(dataItem.requestId).to.equal('23fhj33i987f');
297
+ expect(dataItem.cpm).to.equal(0.4);
298
+ expect(dataItem.native.clickUrl).to.equal('test.com');
299
+ expect(dataItem.native.title).to.equal('Test');
300
+ expect(dataItem.native.image).to.equal('test.com');
301
+ expect(dataItem.native.impressionTrackers).to.be.an('array').that.is.not.empty;
302
+ expect(dataItem.native.impressionTrackers[0]).to.equal('test.com');
303
+ expect(dataItem.ttl).to.equal(120);
304
+ expect(dataItem.creativeId).to.equal('2');
305
+ expect(dataItem.netRevenue).to.be.true;
306
+ expect(dataItem.currency).to.equal('USD');
307
+ expect(dataItem.meta).to.be.an('object').that.has.any.key('advertiserDomains');
308
+ });
309
+ it('Should return an empty array if invalid banner response is passed', function () {
310
+ const invBanner = {
311
+ body: [{
312
+ width: 300,
313
+ cpm: 0.4,
314
+ ad: 'Test',
315
+ requestId: '23fhj33i987f',
316
+ ttl: 120,
317
+ creativeId: '2',
318
+ netRevenue: true,
319
+ currency: 'USD',
320
+ dealId: '1'
321
+ }]
322
+ };
323
+
324
+ let serverResponses = spec.interpretResponse(invBanner);
325
+ expect(serverResponses).to.be.an('array').that.is.empty;
326
+ });
327
+ it('Should return an empty array if invalid video response is passed', function () {
328
+ const invVideo = {
329
+ body: [{
330
+ mediaType: 'video',
331
+ cpm: 0.5,
332
+ requestId: '23fhj33i987f',
333
+ ttl: 120,
334
+ creativeId: '2',
335
+ netRevenue: true,
336
+ currency: 'USD',
337
+ dealId: '1'
338
+ }]
339
+ };
340
+ let serverResponses = spec.interpretResponse(invVideo);
341
+ expect(serverResponses).to.be.an('array').that.is.empty;
342
+ });
343
+ it('Should return an empty array if invalid native response is passed', function () {
344
+ const invNative = {
345
+ body: [{
346
+ mediaType: 'native',
347
+ clickUrl: 'test.com',
348
+ title: 'Test',
349
+ impressionTrackers: ['test.com'],
350
+ ttl: 120,
351
+ requestId: '23fhj33i987f',
352
+ creativeId: '2',
353
+ netRevenue: true,
354
+ currency: 'USD',
355
+ }]
356
+ };
357
+ let serverResponses = spec.interpretResponse(invNative);
358
+ expect(serverResponses).to.be.an('array').that.is.empty;
359
+ });
360
+ it('Should return an empty array if invalid response is passed', function () {
361
+ const invalid = {
362
+ body: [{
363
+ ttl: 120,
364
+ creativeId: '2',
365
+ netRevenue: true,
366
+ currency: 'USD',
367
+ dealId: '1'
368
+ }]
369
+ };
370
+ let serverResponses = spec.interpretResponse(invalid);
371
+ expect(serverResponses).to.be.an('array').that.is.empty;
372
+ });
373
+ });
374
+
375
+ describe('getUserSyncs', function() {
376
+ it('Should return array of objects with proper sync config , include GDPR', function() {
377
+ const syncData = spec.getUserSyncs({}, {}, {
378
+ consentString: 'ALL',
379
+ gdprApplies: true,
380
+ }, {});
381
+ expect(syncData).to.be.an('array').which.is.not.empty;
382
+ expect(syncData[0]).to.be.an('object')
383
+ expect(syncData[0].type).to.be.a('string')
384
+ expect(syncData[0].type).to.equal('image')
385
+ expect(syncData[0].url).to.be.a('string')
386
+ expect(syncData[0].url).to.equal('https://cookies.andbeyond.media/image?pbjs=1&gdpr=1&gdpr_consent=ALL&coppa=0')
387
+ });
388
+ it('Should return array of objects with proper sync config , include CCPA', function() {
389
+ const syncData = spec.getUserSyncs({}, {}, {}, {
390
+ consentString: '1---'
391
+ });
392
+ expect(syncData).to.be.an('array').which.is.not.empty;
393
+ expect(syncData[0]).to.be.an('object')
394
+ expect(syncData[0].type).to.be.a('string')
395
+ expect(syncData[0].type).to.equal('image')
396
+ expect(syncData[0].url).to.be.a('string')
397
+ expect(syncData[0].url).to.equal('https://cookies.andbeyond.media/image?pbjs=1&ccpa_consent=1---&coppa=0')
398
+ });
399
+ });
400
+ });
@@ -106,7 +106,8 @@ describe('BidWatch Analytics', function () {
106
106
  'gdprConsent': {
107
107
  'consentString': 'CONSENT',
108
108
  'gdprApplies': true,
109
- 'apiVersion': 2
109
+ 'apiVersion': 2,
110
+ 'vendorData': 'a lot of borring stuff',
110
111
  },
111
112
  'start': 1647424261189
112
113
  },
@@ -281,7 +282,22 @@ describe('BidWatch Analytics', function () {
281
282
  });
282
283
  events.emit(constants.EVENTS.BID_TIMEOUT, bidTimeout);
283
284
  events.emit(constants.EVENTS.AUCTION_END, auctionEnd);
285
+ expect(server.requests.length).to.equal(1);
286
+ let message = JSON.parse(server.requests[0].requestBody);
287
+ expect(message).to.have.property('auctionEnd').exist;
288
+ expect(message.auctionEnd).to.have.lengthOf(1);
289
+ expect(message.auctionEnd[0]).to.have.property('bidsReceived').and.to.have.lengthOf(1);
290
+ expect(message.auctionEnd[0].bidsReceived[0]).to.have.property('ad');
291
+ expect(message.auctionEnd[0].bidsReceived[0].ad).to.equal('emptied');
292
+ expect(message.auctionEnd[0]).to.have.property('bidderRequests').and.to.have.lengthOf(1);
293
+ expect(message.auctionEnd[0].bidderRequests[0]).to.have.property('gdprConsent');
294
+ expect(message.auctionEnd[0].bidderRequests[0].gdprConsent).to.have.property('vendorData');
295
+ expect(message.auctionEnd[0].bidderRequests[0].gdprConsent.vendorData).to.equal('emptied');
284
296
  events.emit(constants.EVENTS.BID_WON, bidWon);
297
+ expect(server.requests.length).to.equal(2);
298
+ message = JSON.parse(server.requests[1].requestBody);
299
+ expect(message).to.have.property('ad').and.to.equal('emptied');
300
+ expect(message).to.have.property('cpmIncrement').and.to.equal(27.4276);
285
301
  sinon.assert.callCount(bidwatchAnalytics.track, 3);
286
302
  });
287
303
  });
@@ -59,11 +59,12 @@ describe('BoldwinBidAdapter', function () {
59
59
  expect(data.gdpr).to.not.exist;
60
60
  expect(data.ccpa).to.not.exist;
61
61
  let placement = data['placements'][0];
62
- expect(placement).to.have.keys('placementId', 'bidId', 'adFormat', 'sizes', 'hPlayer', 'wPlayer', 'schain', 'bidFloor');
62
+ expect(placement).to.have.keys('placementId', 'bidId', 'adFormat', 'sizes', 'hPlayer', 'wPlayer', 'schain', 'bidFloor', 'type');
63
63
  expect(placement.placementId).to.equal('testBanner');
64
64
  expect(placement.bidId).to.equal('23fhj33i987f');
65
65
  expect(placement.adFormat).to.equal(BANNER);
66
66
  expect(placement.schain).to.be.an('object');
67
+ expect(placement.type).to.exist.and.to.equal('publisher');
67
68
  });
68
69
 
69
70
  it('Returns valid data for mediatype video', function () {
@@ -3,6 +3,7 @@ import {makeSlot} from '../integration/faker/googletag.js';
3
3
  import * as utils from '../../../src/utils'
4
4
  import * as events from '../../../src/events';
5
5
  import * as sinon from 'sinon';
6
+ import {sendPageviewEvent} from '../../../modules/browsiRtdProvider.js';
6
7
 
7
8
  describe('browsi Real time data sub module', function () {
8
9
  const conf = {
@@ -160,7 +161,19 @@ describe('browsi Real time data sub module', function () {
160
161
  })
161
162
  })
162
163
 
163
- describe('should emit billable event', function () {
164
+ describe('should emit ad request billable event', function () {
165
+ before(() => {
166
+ const data = {
167
+ p: {
168
+ 'adUnit1': {ps: {0: 0.234}},
169
+ 'adUnit2': {ps: {0: 0.134}}},
170
+ kn: 'bv',
171
+ pmd: undefined,
172
+ bet: 'AD_REQUEST'
173
+ };
174
+ browsiRTD.setData(data);
175
+ })
176
+
164
177
  beforeEach(() => {
165
178
  eventsEmitSpy.resetHistory();
166
179
  })
@@ -232,4 +245,30 @@ describe('browsi Real time data sub module', function () {
232
245
  expect(callArguments).to.eql(expectedCall);
233
246
  })
234
247
  })
248
+
249
+ describe('should emit pageveiw billable event', function () {
250
+ beforeEach(() => {
251
+ eventsEmitSpy.resetHistory();
252
+ })
253
+ it('should send event if type is correct', function () {
254
+ sendPageviewEvent('PAGEVIEW')
255
+
256
+ const expectedCall = {
257
+ vendor: 'browsi',
258
+ type: 'pageview',
259
+ }
260
+
261
+ expect(eventsEmitSpy.callCount).to.equal(1);
262
+ const callArguments = eventsEmitSpy.getCalls()[0].args[1];
263
+ // billing id is random, we can't check its value
264
+ delete callArguments['billingId'];
265
+ expect(callArguments).to.eql(expectedCall);
266
+ })
267
+ it('should not send event if type is incorrect', function () {
268
+ sendPageviewEvent('AD_REQUEST');
269
+ sendPageviewEvent('INACTIVE');
270
+ sendPageviewEvent(undefined);
271
+ expect(eventsEmitSpy.callCount).to.equal(0);
272
+ })
273
+ })
235
274
  });