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
@@ -939,7 +939,7 @@ function parseSizes(bid, mediaType) {
939
939
  } else if (typeof deepAccess(bid, 'mediaTypes.banner.sizes') !== 'undefined') {
940
940
  sizes = mapSizes(bid.mediaTypes.banner.sizes);
941
941
  } else if (Array.isArray(bid.sizes) && bid.sizes.length > 0) {
942
- sizes = mapSizes(bid.sizes)
942
+ sizes = mapSizes(bid.sizes);
943
943
  } else {
944
944
  logWarn('Rubicon: no sizes are setup or found');
945
945
  }
@@ -1045,7 +1045,7 @@ function applyFPD(bidRequest, mediaType, data) {
1045
1045
  let val = validate(obj, key, name);
1046
1046
  let loc = (MAP[key] && isParent) ? `${MAP[key]}` : (key === 'data') ? `${MAP[name]}iab` : `${MAP[name]}${key}`;
1047
1047
  data[loc] = (data[loc]) ? data[loc].concat(',', val) : val;
1048
- }
1048
+ };
1049
1049
 
1050
1050
  if (mediaType === BANNER) {
1051
1051
  ['site', 'user'].forEach(name => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { ajax } from '../src/ajax.js';
4
4
  import CONSTANTS from '../src/constants.json';
5
- import adapter from '../src/AnalyticsAdapter.js';
5
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
6
6
  import adapterManager from '../src/adapterManager.js';
7
7
  import { logMessage } from '../src/utils.js';
8
8
 
package/modules/schain.js CHANGED
@@ -19,7 +19,7 @@ _each(MODE, mode => MODES.push(mode));
19
19
 
20
20
  // validate the supply chain object
21
21
  export function isSchainObjectValid(schainObject, returnOnError) {
22
- let failPrefix = 'Detected something wrong within an schain config:'
22
+ let failPrefix = 'Detected something wrong within an schain config:';
23
23
  let failMsg = '';
24
24
 
25
25
  function appendFailMsg(msg) {
@@ -1,5 +1,5 @@
1
1
  import { tryAppendQueryString } from '../src/utils.js';
2
- import adapter from '../src/AnalyticsAdapter.js';
2
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
3
3
  import adapterManager from '../src/adapterManager.js';
4
4
 
5
5
  const emptyUrl = '';
@@ -4,7 +4,7 @@ import { config } from '../src/config.js';
4
4
  import { BANNER, VIDEO } from '../src/mediaTypes.js';
5
5
  import { createEidsArray } from './userId/eids.js';
6
6
 
7
- const VERSION = '4.1.1';
7
+ const VERSION = '4.2.0';
8
8
  const BIDDER_CODE = 'sharethrough';
9
9
  const SUPPLY_ID = 'WYu2BXv1';
10
10
 
@@ -58,8 +58,8 @@ export const sharethroughAdapterSpec = {
58
58
  schain: bidRequests[0].schain,
59
59
  },
60
60
  },
61
- bcat: deepAccess(bidderRequest.ortb2Imp, 'bcat') || bidRequests[0].params.bcat || [],
62
- badv: bidRequests[0].params.badv || [],
61
+ bcat: deepAccess(bidderRequest.ortb2, 'bcat') || bidRequests[0].params.bcat || [],
62
+ badv: deepAccess(bidderRequest.ortb2, 'badv') || bidRequests[0].params.badv || [],
63
63
  test: 0,
64
64
  };
65
65
 
@@ -382,7 +382,7 @@ function generateGeneralParams(generalObject, bidderRequest) {
382
382
  ua: navigator.userAgent,
383
383
  session_id: getBidIdParameter('auctionId', generalObject),
384
384
  tmax: timeout
385
- }
385
+ };
386
386
 
387
387
  const userIdsParam = getBidIdParameter('userId', generalObject);
388
388
  if (userIdsParam) {
@@ -431,5 +431,5 @@ function generateGeneralParams(generalObject, bidderRequest) {
431
431
  generalParams.page_url = generalParams.page_url || config.getConfig('pageUrl') || deepAccess(window, 'location.href');
432
432
  }
433
433
 
434
- return generalParams
434
+ return generalParams;
435
435
  }
@@ -1,4 +1,11 @@
1
- import { deepAccess, getBidIdParameter, getWindowTop, logError } from '../src/utils.js';
1
+ import {
2
+ deepAccess,
3
+ getBidIdParameter,
4
+ getWindowTop,
5
+ triggerPixel,
6
+ logInfo,
7
+ logError
8
+ } from '../src/utils.js';
2
9
  import { config } from '../src/config.js';
3
10
  import { Renderer } from '../src/Renderer.js';
4
11
  import { registerBidder } from '../src/adapters/bidderFactory.js';
@@ -7,6 +14,7 @@ import { loadExternalScript } from '../src/adloader.js';
7
14
 
8
15
  const PROD_ENDPOINT = 'https://bs.showheroes.com/api/v1/bid';
9
16
  const STAGE_ENDPOINT = 'https://bid-service.stage.showheroes.com/api/v1/bid';
17
+ const VIRALIZE_ENDPOINT = 'https://ads.viralize.tv/prebid-sh/';
10
18
  const PROD_PUBLISHER_TAG = 'https://static.showheroes.com/publishertag.js';
11
19
  const STAGE_PUBLISHER_TAG = 'https://pubtag.stage.showheroes.com/publishertag.js';
12
20
  const PROD_VL = 'https://video-library.showheroes.com';
@@ -26,12 +34,13 @@ export const spec = {
26
34
  aliases: ['showheroesBs'],
27
35
  supportedMediaTypes: [VIDEO, BANNER],
28
36
  isBidRequestValid: function(bid) {
29
- return !!bid.params.playerId;
37
+ return !!bid.params.playerId || !!bid.params.unitId;
30
38
  },
31
39
  buildRequests: function(validBidRequests, bidderRequest) {
32
40
  let adUnits = [];
33
- const pageURL = validBidRequests[0].params.contentPageUrl || bidderRequest.refererInfo.page;
41
+ const pageURL = validBidRequests[0].params.contentPageUrl || bidderRequest.refererInfo.referer;
34
42
  const isStage = !!validBidRequests[0].params.stage;
43
+ const isViralize = !!validBidRequests[0].params.unitId;
35
44
  const isOutstream = deepAccess(validBidRequests[0], 'mediaTypes.video.context') === 'outstream';
36
45
  const isCustomRender = deepAccess(validBidRequests[0], 'params.outstreamOptions.customRender');
37
46
  const isNodeRender = deepAccess(validBidRequests[0], 'params.outstreamOptions.slot') || deepAccess(validBidRequests[0], 'params.outstreamOptions.iframe');
@@ -40,12 +49,19 @@ export const spec = {
40
49
  const isBanner = !!validBidRequests[0].mediaTypes.banner || (isOutstream && !(isCustomRender || isNativeRender || isNodeRender));
41
50
  const defaultSchain = validBidRequests[0].schain || {};
42
51
 
52
+ const consentData = bidderRequest.gdprConsent || {};
53
+ const gdprConsent = {
54
+ apiVersion: consentData.apiVersion || 2,
55
+ gdprApplies: consentData.gdprApplies || 0,
56
+ consentString: consentData.consentString || '',
57
+ }
58
+
43
59
  validBidRequests.forEach((bid) => {
44
60
  const videoSizes = getVideoSizes(bid);
45
61
  const bannerSizes = getBannerSizes(bid);
46
62
  const vpaidMode = getBidIdParameter('vpaidMode', bid.params);
47
63
 
48
- const makeBids = (type, size) => {
64
+ const makeBids = (type, size, isViralize) => {
49
65
  let context = '';
50
66
  let streamType = 2;
51
67
 
@@ -61,53 +77,79 @@ export const spec = {
61
77
  }
62
78
  }
63
79
 
64
- const consentData = bidderRequest.gdprConsent || {};
65
-
66
- const gdprConsent = {
67
- apiVersion: consentData.apiVersion || 2,
68
- gdprApplies: consentData.gdprApplies || 0,
69
- consentString: consentData.consentString || '',
70
- }
71
-
72
- return {
80
+ let rBid = {
73
81
  type: streamType,
74
82
  adUnitCode: bid.adUnitCode,
75
83
  bidId: bid.bidId,
76
- mediaType: type,
77
84
  context: context,
78
- playerId: getBidIdParameter('playerId', bid.params),
79
85
  auctionId: bidderRequest.auctionId,
80
86
  bidderCode: BIDDER_CODE,
81
- gdprConsent: gdprConsent,
82
87
  start: +new Date(),
83
88
  timeout: 3000,
84
- size: {
85
- width: size[0],
86
- height: size[1]
87
- },
88
89
  params: bid.params,
89
- schain: bid.schain || defaultSchain,
90
+ schain: bid.schain || defaultSchain
90
91
  };
92
+
93
+ if (isViralize) {
94
+ rBid.unitId = getBidIdParameter('unitId', bid.params);
95
+ rBid.sizes = size;
96
+ rBid.mediaTypes = {
97
+ [type]: {'context': context}
98
+ };
99
+ } else {
100
+ rBid.playerId = getBidIdParameter('playerId', bid.params);
101
+ rBid.mediaType = type;
102
+ rBid.size = {
103
+ width: size[0],
104
+ height: size[1]
105
+ };
106
+ rBid.gdprConsent = gdprConsent;
107
+ }
108
+
109
+ return rBid;
91
110
  };
92
111
 
93
- videoSizes.forEach((size) => {
94
- adUnits.push(makeBids(VIDEO, size));
95
- });
112
+ if (isViralize) {
113
+ if (videoSizes && videoSizes[0]) {
114
+ adUnits.push(makeBids(VIDEO, videoSizes, isViralize));
115
+ }
116
+ if (bannerSizes && bannerSizes[0]) {
117
+ adUnits.push(makeBids(BANNER, bannerSizes, isViralize));
118
+ }
119
+ } else {
120
+ videoSizes.forEach((size) => {
121
+ adUnits.push(makeBids(VIDEO, size));
122
+ });
96
123
 
97
- bannerSizes.forEach((size) => {
98
- adUnits.push(makeBids(BANNER, size));
99
- });
124
+ bannerSizes.forEach((size) => {
125
+ adUnits.push(makeBids(BANNER, size));
126
+ });
127
+ }
100
128
  });
101
129
 
102
- return {
103
- url: isStage ? STAGE_ENDPOINT : PROD_ENDPOINT,
104
- method: 'POST',
105
- options: {contentType: 'application/json', accept: 'application/json'},
106
- data: {
130
+ let endpointUrl;
131
+ let data;
132
+
133
+ const QA = validBidRequests[0].params.qa || {};
134
+
135
+ if (isViralize) {
136
+ endpointUrl = VIRALIZE_ENDPOINT;
137
+ data = {
138
+ 'bidRequests': adUnits,
139
+ 'context': {
140
+ 'gdprConsent': gdprConsent,
141
+ 'schain': defaultSchain,
142
+ 'pageURL': QA.pageURL || encodeURIComponent(pageURL)
143
+ }
144
+ }
145
+ } else {
146
+ endpointUrl = isStage ? STAGE_ENDPOINT : PROD_ENDPOINT;
147
+
148
+ data = {
107
149
  'user': [],
108
150
  'meta': {
109
151
  'adapterVersion': 2,
110
- 'pageURL': encodeURIComponent(pageURL),
152
+ 'pageURL': QA.pageURL || encodeURIComponent(pageURL),
111
153
  'vastCacheEnabled': (!!config.getConfig('cache') && !isBanner && !outstreamOptions) || false,
112
154
  'isDesktop': getWindowTop().document.documentElement.clientWidth > 700,
113
155
  'xmlAndTag': !!(isOutstream && isCustomRender) || false,
@@ -116,6 +158,13 @@ export const spec = {
116
158
  'requests': adUnits,
117
159
  'debug': validBidRequests[0].params.debug || false,
118
160
  }
161
+ }
162
+
163
+ return {
164
+ url: QA.endpoint || endpointUrl,
165
+ method: 'POST',
166
+ options: {contentType: 'application/json', accept: 'application/json'},
167
+ data: data
119
168
  };
120
169
  },
121
170
  interpretResponse: function(response, request) {
@@ -149,33 +198,53 @@ export const spec = {
149
198
  }
150
199
  return syncs;
151
200
  },
201
+
202
+ onBidWon(bid) {
203
+ if (bid.callbacks) {
204
+ triggerPixel(bid.callbacks.won);
205
+ }
206
+ logInfo(
207
+ `Showheroes adapter won the auction. Bid id: ${bid.bidId || bid.requestId}`
208
+ );
209
+ },
152
210
  };
153
211
 
154
212
  function createBids(bidRes, reqData) {
155
- if (bidRes && (!Array.isArray(bidRes.bids) || bidRes.bids.length < 1)) {
213
+ if (!bidRes) {
214
+ return [];
215
+ }
216
+ const responseBids = bidRes.bids || bidRes.bidResponses;
217
+ if (!Array.isArray(responseBids) || responseBids.length < 1) {
156
218
  return [];
157
219
  }
158
220
 
159
221
  const bids = [];
160
222
  const bidMap = {};
161
- (reqData.requests || []).forEach((bid) => {
223
+ (reqData.requests || reqData.bidRequests || []).forEach((bid) => {
162
224
  bidMap[bid.bidId] = bid;
163
225
  });
164
226
 
165
- bidRes.bids.forEach(function (bid) {
166
- const reqBid = bidMap[bid.bidId];
227
+ responseBids.forEach(function (bid) {
228
+ const requestId = bid.bidId || bid.requestId;
229
+ const reqBid = bidMap[requestId];
167
230
  const currentBidParams = reqBid.params;
231
+ const isViralize = !!reqBid.params.unitId;
232
+ const size = {
233
+ width: bid.width || bid.size.width,
234
+ height: bid.height || bid.size.height
235
+ };
236
+
168
237
  let bidUnit = {};
169
238
  bidUnit.cpm = bid.cpm;
170
- bidUnit.requestId = bid.bidId;
239
+ bidUnit.requestId = requestId;
171
240
  bidUnit.adUnitCode = reqBid.adUnitCode;
172
241
  bidUnit.currency = bid.currency;
173
242
  bidUnit.mediaType = bid.mediaType || VIDEO;
174
243
  bidUnit.ttl = TTL;
175
- bidUnit.creativeId = 'c_' + bid.bidId;
244
+ bidUnit.creativeId = 'c_' + requestId;
176
245
  bidUnit.netRevenue = true;
177
- bidUnit.width = bid.size.width;
178
- bidUnit.height = bid.size.height;
246
+ bidUnit.width = size.width;
247
+ bidUnit.height = size.height;
179
248
  bidUnit.meta = {
180
249
  advertiserDomains: bid.adomain || []
181
250
  };
@@ -185,24 +254,26 @@ function createBids(bidRes, reqData) {
185
254
  content: bid.vastXml,
186
255
  };
187
256
  }
188
- if (bid.vastTag) {
189
- bidUnit.vastUrl = bid.vastTag;
257
+ if (bid.vastTag || bid.vastUrl) {
258
+ bidUnit.vastUrl = bid.vastTag || bid.vastUrl;
190
259
  }
191
260
  if (bid.mediaType === BANNER) {
192
261
  bidUnit.ad = getBannerHtml(bid, reqBid, reqData);
193
262
  } else if (bid.context === 'outstream') {
194
263
  const renderer = Renderer.install({
195
- id: bid.bidId,
264
+ id: requestId,
196
265
  url: 'https://static.showheroes.com/renderer.js',
197
266
  adUnitCode: reqBid.adUnitCode,
198
267
  config: {
199
268
  playerId: reqBid.playerId,
200
- width: bid.size.width,
201
- height: bid.size.height,
269
+ width: size.width,
270
+ height: size.height,
202
271
  vastUrl: bid.vastTag,
203
272
  vastXml: bid.vastXml,
273
+ ad: bid.ad,
204
274
  debug: reqData.debug,
205
- isStage: !!reqData.meta.stage,
275
+ isStage: reqData.meta && !!reqData.meta.stage,
276
+ isViralize: isViralize,
206
277
  customRender: getBidIdParameter('customRender', currentBidParams.outstreamOptions),
207
278
  slot: getBidIdParameter('slot', currentBidParams.outstreamOptions),
208
279
  iframe: getBidIdParameter('iframe', currentBidParams.outstreamOptions),
@@ -218,7 +289,12 @@ function createBids(bidRes, reqData) {
218
289
  }
219
290
 
220
291
  function outstreamRender(bid) {
221
- const embedCode = createOutstreamEmbedCode(bid);
292
+ let embedCode;
293
+ if (bid.renderer.config.isViralize) {
294
+ embedCode = createOutstreamEmbedCodeV2(bid);
295
+ } else {
296
+ embedCode = createOutstreamEmbedCode(bid);
297
+ }
222
298
  if (typeof bid.renderer.config.customRender === 'function') {
223
299
  bid.renderer.config.customRender(bid, embedCode);
224
300
  } else {
@@ -238,7 +314,7 @@ function outstreamRender(bid) {
238
314
  logError('[ShowHeroes][renderer] Error: spot not found');
239
315
  }
240
316
  } catch (err) {
241
- logError('[ShowHeroes][renderer] Error:' + err.message)
317
+ logError('[ShowHeroes][renderer] Error:' + err.message);
242
318
  }
243
319
  }
244
320
  }
@@ -266,6 +342,12 @@ function createOutstreamEmbedCode(bid) {
266
342
  return fragment;
267
343
  }
268
344
 
345
+ function createOutstreamEmbedCodeV2(bid) {
346
+ const range = document.createRange();
347
+ range.selectNode(document.getElementsByTagName('body')[0]);
348
+ return range.createContextualFragment(getBidIdParameter('ad', bid.renderer.config));
349
+ }
350
+
269
351
  function getBannerHtml (bid, reqBid, reqData) {
270
352
  const isStage = !!reqData.meta.stage;
271
353
  const urls = getEnvURLs(isStage);
@@ -125,3 +125,52 @@ Module that connects to ShowHeroes demand source to fetch bids.
125
125
  }
126
126
  ];
127
127
  ```
128
+
129
+ # Test Parameters (V2)
130
+ ```
131
+ var adUnits = [
132
+ {
133
+ code: 'video',
134
+ mediaTypes: {
135
+ video: {
136
+ playerSize: [640, 480],
137
+ context: 'instream',
138
+ }
139
+ },
140
+ bids: [
141
+ {
142
+ bidder: "showheroes-bs",
143
+ params: {
144
+ unitId: 'AACBWAcof-611K4U',
145
+ vpaidMode: true // by default is 'false'
146
+ }
147
+ }
148
+ ]
149
+ },
150
+ {
151
+ code: 'video',
152
+ mediaTypes: {
153
+ video: {
154
+ playerSize: [640, 480],
155
+ context: 'outstream',
156
+ }
157
+ },
158
+ bids: [
159
+ {
160
+ bidder: "showheroes-bs",
161
+ params: {
162
+ unitId: 'AACBTwsZVANd9NlB',
163
+
164
+ outstreamOptions: {
165
+ // Required for the outstream renderer to exact node, one of
166
+ iframe: 'iframe_id',
167
+ // or
168
+ slot: 'slot_id'
169
+ }
170
+ }
171
+ }
172
+ ]
173
+ }
174
+ ];
175
+ ```
176
+
@@ -1,7 +1,7 @@
1
1
  /* Sigmoid Analytics Adapter for prebid.js v1.1.0-pre
2
2
  Updated : 2018-03-28 */
3
3
  import {includes} from '../src/polyfill.js';
4
- import adapter from '../src/AnalyticsAdapter.js';
4
+ import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
5
5
  import CONSTANTS from '../src/constants.json';
6
6
  import adapterManager from '../src/adapterManager.js';
7
7
  import {getStorageManager} from '../src/storageManager.js';
@@ -200,7 +200,7 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
200
200
  if (typeof n.setTargeting !== 'undefined' && sirdataMergedList && sirdataMergedList.length > 0) {
201
201
  n.setTargeting('sd_rtd', sirdataMergedList);
202
202
  }
203
- })
203
+ });
204
204
  } catch (e) {
205
205
  logError(e);
206
206
  }
@@ -224,7 +224,7 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
224
224
  curationData = {'segments': [], 'categories': []};
225
225
  sirdataMergedList = [];
226
226
 
227
- let minScore = (indexFound && moduleConfig.params.bidders[bidderIndex].hasOwnProperty('contextualMinRelevancyScore') ? moduleConfig.params.bidders[bidderIndex].contextualMinRelevancyScore : globalMinScore)
227
+ let minScore = (indexFound && moduleConfig.params.bidders[bidderIndex].hasOwnProperty('contextualMinRelevancyScore') ? moduleConfig.params.bidders[bidderIndex].contextualMinRelevancyScore : globalMinScore);
228
228
 
229
229
  if (!biddersParamsExist || (indexFound && (!moduleConfig.params.bidders[bidderIndex].hasOwnProperty('adUnitCodes') || moduleConfig.params.bidders[bidderIndex].adUnitCodes.indexOf(adUnit.code) !== -1))) {
230
230
  switch (bid.bidder) {
@@ -476,7 +476,7 @@ export function addSegmentData(reqBids, data, moduleConfig, onDone) {
476
476
  }
477
477
  }
478
478
  } catch (e) {
479
- logError(e)
479
+ logError(e);
480
480
  }
481
481
  })
482
482
  });
@@ -98,7 +98,7 @@ export function checkAdUnitSetupHook(adUnits) {
98
98
  */
99
99
  if (!isArrayOfNums(config.minViewPort, 2)) {
100
100
  logError(`Ad unit ${adUnitCode}: Invalid declaration of 'minViewPort' in 'mediaTypes.${mediaType}.sizeConfig[${index}]'. ${conditionalLogMessages[mediaType]}`);
101
- isValid = false
101
+ isValid = false;
102
102
  return;
103
103
  }
104
104
  /*
@@ -63,7 +63,7 @@ const buildOpenRtbBidRequest = (bidRequest, bidderRequest) => {
63
63
  if (deepAccess(bidRequest, 'params.app')) {
64
64
  const geo = deepAccess(bidRequest, 'params.app.geo');
65
65
  deepSetValue(requestTemplate, 'device.geo', geo);
66
- const ifa = deepAccess(bidRequest, 'params.app.ifa')
66
+ const ifa = deepAccess(bidRequest, 'params.app.ifa');
67
67
  deepSetValue(requestTemplate, 'device.ifa', ifa);
68
68
  }
69
69
 
@@ -210,7 +210,7 @@ export const spec = {
210
210
  }
211
211
  };
212
212
 
213
- const videoContext = deepAccess(JSON.parse(bidRequest.data).imp[0], 'video.ext.context')
213
+ const videoContext = deepAccess(JSON.parse(bidRequest.data).imp[0], 'video.ext.context');
214
214
  if (videoContext === ADPOD) {
215
215
  resultingBid.vastXml = bid.adm;
216
216
  resultingBid.mediaType = VIDEO;
@@ -221,7 +221,7 @@ export const spec = {
221
221
  name: provider,
222
222
  value: targetingstring,
223
223
  }
224
- })
224
+ });
225
225
  }
226
226
  }
227
227
 
@@ -230,7 +230,7 @@ export const spec = {
230
230
  requestPayload.user = {
231
231
  ext: userExt,
232
232
  data: targetingarr
233
- }
233
+ };
234
234
  }
235
235
 
236
236
  return {
@@ -0,0 +1,150 @@
1
+ import {config} from '../src/config.js';
2
+ import {registerBidder} from '../src/adapters/bidderFactory.js';
3
+ import {BANNER} from '../src/mediaTypes.js';
4
+ import {deepAccess, isArray, isFn, isPlainObject} from '../src/utils.js';
5
+ import {hasPurpose1Consent} from '../src/utils/gpdr.js';
6
+
7
+ const BIDDER_CODE = 'snigel';
8
+ const GVLID = 1076;
9
+ const DEFAULT_URL = 'https://adserv.snigelweb.com/bp/v1/prebid';
10
+ const DEFAULT_TTL = 60;
11
+ const DEFAULT_CURRENCIES = ['USD'];
12
+ const FLOOR_MATCH_ALL_SIZES = '*';
13
+
14
+ const getConfig = config.getConfig;
15
+
16
+ export const spec = {
17
+ code: BIDDER_CODE,
18
+ gvlid: GVLID,
19
+ supportedMediaTypes: [BANNER],
20
+
21
+ isBidRequestValid: function (bidRequest) {
22
+ return !!bidRequest.params.placement;
23
+ },
24
+
25
+ buildRequests: function (bidRequests, bidderRequest) {
26
+ const gdprApplies = deepAccess(bidderRequest, 'gdprConsent.gdprApplies');
27
+ return {
28
+ method: 'POST',
29
+ url: getEndpoint(),
30
+ data: JSON.stringify({
31
+ id: bidderRequest.bidderRequestId,
32
+ cur: getCurrencies(),
33
+ test: getTestFlag(),
34
+ devw: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
35
+ devh: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight,
36
+ version: $$PREBID_GLOBAL$$.version,
37
+ gdprApplies: gdprApplies,
38
+ gdprConsentString: gdprApplies === true ? deepAccess(bidderRequest, 'gdprConsent.consentString') : undefined,
39
+ gdprConsentProv: gdprApplies === true ? deepAccess(bidderRequest, 'gdprConsent.addtlConsent') : undefined,
40
+ uspConsent: deepAccess(bidderRequest, 'uspConsent'),
41
+ coppa: getConfig('coppa'),
42
+ eids: deepAccess(bidRequests, '0.userIdAsEids'),
43
+ schain: deepAccess(bidRequests, '0.schain'),
44
+ page: getPage(bidderRequest),
45
+ placements: bidRequests.map((r) => {
46
+ return {
47
+ uuid: r.bidId,
48
+ name: r.params.placement,
49
+ sizes: r.sizes,
50
+ floor: getPriceFloor(r, BANNER, FLOOR_MATCH_ALL_SIZES),
51
+ };
52
+ }),
53
+ }),
54
+ bidderRequest,
55
+ };
56
+ },
57
+
58
+ interpretResponse: function (serverResponse) {
59
+ if (!serverResponse.body || !serverResponse.body.bids) {
60
+ return [];
61
+ }
62
+
63
+ return serverResponse.body.bids.map((bid) => {
64
+ return {
65
+ requestId: bid.uuid,
66
+ cpm: bid.price,
67
+ creativeId: bid.crid,
68
+ currency: serverResponse.body.cur,
69
+ width: bid.width,
70
+ height: bid.height,
71
+ ad: bid.ad,
72
+ netRevenue: true,
73
+ ttl: bid.ttl || DEFAULT_TTL,
74
+ meta: bid.meta,
75
+ };
76
+ });
77
+ },
78
+
79
+ getUserSyncs: function (syncOptions, responses, gdprConsent, uspConsent) {
80
+ const syncUrl = getSyncUrl(responses || []);
81
+ if (syncUrl && syncOptions.iframeEnabled && hasSyncConsent(gdprConsent, uspConsent)) {
82
+ return [{type: 'iframe', url: getSyncEndpoint(syncUrl, gdprConsent)}];
83
+ }
84
+ },
85
+ };
86
+
87
+ registerBidder(spec);
88
+
89
+ function getPage(bidderRequest) {
90
+ return (
91
+ getConfig(`${BIDDER_CODE}.page`) || deepAccess(bidderRequest, 'refererInfo.canonicalUrl') || window.location.href
92
+ );
93
+ }
94
+
95
+ function getEndpoint() {
96
+ return getConfig(`${BIDDER_CODE}.url`) || DEFAULT_URL;
97
+ }
98
+
99
+ function getTestFlag() {
100
+ return getConfig(`${BIDDER_CODE}.test`) === true;
101
+ }
102
+
103
+ function getCurrencies() {
104
+ const currencyOverrides = getConfig(`${BIDDER_CODE}.cur`);
105
+ if (currencyOverrides !== undefined && (!isArray(currencyOverrides) || currencyOverrides.length === 0)) {
106
+ throw Error('Currency override must be an array with at least one currency');
107
+ }
108
+ return currencyOverrides || DEFAULT_CURRENCIES;
109
+ }
110
+
111
+ function getFloorCurrency() {
112
+ return getConfig(`${BIDDER_CODE}.floorCur`) || getCurrencies()[0];
113
+ }
114
+
115
+ function getPriceFloor(bidRequest, mediaType, size) {
116
+ if (isFn(bidRequest.getFloor)) {
117
+ const cur = getFloorCurrency();
118
+ const floorInfo = bidRequest.getFloor({
119
+ currency: cur,
120
+ mediaType: mediaType,
121
+ size: size,
122
+ });
123
+ if (isPlainObject(floorInfo) && !isNaN(floorInfo.floor)) {
124
+ return {
125
+ cur: floorInfo.currency || cur,
126
+ value: floorInfo.floor,
127
+ };
128
+ }
129
+ }
130
+ }
131
+
132
+ function hasSyncConsent(gdprConsent, uspConsent) {
133
+ if (gdprConsent?.gdprApplies && !hasPurpose1Consent(gdprConsent)) {
134
+ return false;
135
+ } else if (uspConsent && uspConsent[1] === 'Y' && uspConsent[2] === 'Y') {
136
+ return false;
137
+ } else {
138
+ return true;
139
+ }
140
+ }
141
+
142
+ function getSyncUrl(responses) {
143
+ return getConfig(`${BIDDER_CODE}.syncUrl`) || deepAccess(responses[0], 'body.syncUrl');
144
+ }
145
+
146
+ function getSyncEndpoint(url, gdprConsent) {
147
+ return `${url}?gdpr=${gdprConsent?.gdprApplies ? 1 : 0}&gdpr_consent=${encodeURIComponent(
148
+ gdprConsent?.consentString || ''
149
+ )}`;
150
+ }