prebid.js 7.10.0 → 7.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE.md +16 -10
  2. package/.github/codeql/codeql-config.yml +4 -0
  3. package/.github/workflows/codeql-analysis.yml +73 -0
  4. package/.github/workflows/issue_tracker.yml +1 -1
  5. package/README.md +0 -2
  6. package/babelConfig.js +10 -4
  7. package/dist/33acrossBidAdapter.js +1 -1
  8. package/dist/acuityAdsBidAdapter.js +1 -0
  9. package/dist/adagioBidAdapter.js +1 -1
  10. package/dist/adbookpspBidAdapter.js +1 -1
  11. package/dist/adgenerationBidAdapter.js +1 -1
  12. package/dist/adkernelBidAdapter.js +1 -1
  13. package/dist/adrelevantisBidAdapter.js +1 -1
  14. package/dist/adriverBidAdapter.js +1 -1
  15. package/dist/adriverIdSystem.js +1 -1
  16. package/dist/adtelligentBidAdapter.js +1 -1
  17. package/dist/adtrgtmeBidAdapter.js +1 -0
  18. package/dist/adxcgBidAdapter.js +1 -1
  19. package/dist/adyoulikeBidAdapter.js +1 -1
  20. package/dist/ajaBidAdapter.js +1 -1
  21. package/dist/alkimiBidAdapter.js +1 -1
  22. package/dist/amxBidAdapter.js +1 -1
  23. package/dist/amxIdSystem.js +1 -1
  24. package/dist/aniviewBidAdapter.js +1 -1
  25. package/dist/aolBidAdapter.js +1 -1
  26. package/dist/appierAnalyticsAdapter.js +1 -1
  27. package/dist/appnexusBidAdapter.js +1 -1
  28. package/dist/asoBidAdapter.js +1 -1
  29. package/dist/audiencerunBidAdapter.js +1 -1
  30. package/dist/axonixBidAdapter.js +1 -1
  31. package/dist/beopBidAdapter.js +1 -1
  32. package/dist/betweenBidAdapter.js +1 -1
  33. package/dist/bidglassBidAdapter.js +1 -1
  34. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  35. package/dist/big-richmediaBidAdapter.js +1 -1
  36. package/dist/bluebillywigBidAdapter.js +1 -1
  37. package/dist/brandmetricsRtdProvider.js +1 -1
  38. package/dist/bridgewellBidAdapter.js +1 -1
  39. package/dist/brightMountainMediaBidAdapter.js +1 -1
  40. package/dist/browsiRtdProvider.js +1 -1
  41. package/dist/cleanioRtdProvider.js +1 -1
  42. package/dist/concertBidAdapter.js +1 -1
  43. package/dist/connectadBidAdapter.js +1 -1
  44. package/dist/consentManagement.js +1 -1
  45. package/dist/consentManagementUsp.js +1 -1
  46. package/dist/consumableBidAdapter.js +1 -1
  47. package/dist/conversantBidAdapter.js +1 -1
  48. package/dist/cpmstarBidAdapter.js +1 -1
  49. package/dist/craftBidAdapter.js +1 -1
  50. package/dist/criteoBidAdapter.js +1 -1
  51. package/dist/currency.js +1 -1
  52. package/dist/datawrkzBidAdapter.js +1 -0
  53. package/dist/debugging-standalone.js +1 -1
  54. package/dist/dfpAdServerVideo.js +1 -1
  55. package/dist/dgkeywordRtdProvider.js +1 -1
  56. package/dist/displayioBidAdapter.js +1 -3
  57. package/dist/dspxBidAdapter.js +1 -1
  58. package/dist/enrichmentFpdModule.js +1 -1
  59. package/dist/eplanningBidAdapter.js +1 -1
  60. package/dist/finativeBidAdapter.js +1 -1
  61. package/dist/glimpseBidAdapter.js +1 -1
  62. package/dist/gmosspBidAdapter.js +1 -1
  63. package/dist/goldbachBidAdapter.js +1 -1
  64. package/dist/gridBidAdapter.js +1 -1
  65. package/dist/gridNMBidAdapter.js +1 -1
  66. package/dist/gumgumBidAdapter.js +1 -1
  67. package/dist/h12mediaBidAdapter.js +1 -1
  68. package/dist/id5IdSystem.js +1 -1
  69. package/dist/imRtdProvider.js +1 -1
  70. package/dist/impactifyBidAdapter.js +1 -1
  71. package/dist/improvedigitalBidAdapter.js +1 -1
  72. package/dist/inmarBidAdapter.js +1 -1
  73. package/dist/insticatorBidAdapter.js +1 -1
  74. package/dist/ixBidAdapter.js +1 -1
  75. package/dist/jixieBidAdapter.js +1 -1
  76. package/dist/justpremiumBidAdapter.js +1 -1
  77. package/dist/kargoBidAdapter.js +1 -1
  78. package/dist/konduitAnalyticsAdapter.js +1 -1
  79. package/dist/kueezBidAdapter.js +1 -1
  80. package/dist/lassoBidAdapter.js +1 -1
  81. package/dist/lifestreetBidAdapter.js +1 -0
  82. package/dist/limelightDigitalBidAdapter.js +1 -1
  83. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  84. package/dist/logicadBidAdapter.js +1 -1
  85. package/dist/loglyliftBidAdapter.js +1 -1
  86. package/dist/mabidderBidAdapter.js +1 -0
  87. package/dist/malltvAnalyticsAdapter.js +1 -1
  88. package/dist/marsmediaBidAdapter.js +1 -1
  89. package/dist/mediafuseBidAdapter.js +1 -1
  90. package/dist/mediagoBidAdapter.js +1 -0
  91. package/dist/mediakeysBidAdapter.js +1 -1
  92. package/dist/mediasquareBidAdapter.js +1 -1
  93. package/dist/mgidBidAdapter.js +1 -1
  94. package/dist/minutemediaBidAdapter.js +1 -1
  95. package/dist/nextMillenniumBidAdapter.js +1 -1
  96. package/dist/not-for-prod/prebid.js +153 -147
  97. package/dist/oguryBidAdapter.js +1 -1
  98. package/dist/oneKeyIdSystem.js +1 -0
  99. package/dist/oneKeyRtdProvider.js +1 -0
  100. package/dist/onetagBidAdapter.js +1 -1
  101. package/dist/ooloAnalyticsAdapter.js +1 -1
  102. package/dist/openxAnalyticsAdapter.js +1 -1
  103. package/dist/outbrainBidAdapter.js +1 -1
  104. package/dist/parrableIdSystem.js +1 -1
  105. package/dist/permutiveRtdProvider.js +1 -1
  106. package/dist/pixfutureBidAdapter.js +1 -1
  107. package/dist/prebid-core.js +2 -2
  108. package/dist/publinkIdSystem.js +1 -1
  109. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  110. package/dist/pubmaticBidAdapter.js +1 -1
  111. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  112. package/dist/pxyzBidAdapter.js +1 -1
  113. package/dist/quantcastBidAdapter.js +1 -1
  114. package/dist/rasBidAdapter.js +1 -1
  115. package/dist/readpeakBidAdapter.js +1 -1
  116. package/dist/relaidoBidAdapter.js +1 -1
  117. package/dist/rhythmoneBidAdapter.js +1 -1
  118. package/dist/riseBidAdapter.js +1 -1
  119. package/dist/rtbhouseBidAdapter.js +1 -1
  120. package/dist/rubiconAnalyticsAdapter.js +1 -1
  121. package/dist/rubiconBidAdapter.js +1 -1
  122. package/dist/seedingAllianceBidAdapter.js +1 -1
  123. package/dist/seedtagBidAdapter.js +1 -1
  124. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  125. package/dist/sharethroughBidAdapter.js +1 -1
  126. package/dist/shinezBidAdapter.js +1 -1
  127. package/dist/smaatoBidAdapter.js +1 -1
  128. package/dist/smartadserverBidAdapter.js +1 -1
  129. package/dist/smartxBidAdapter.js +1 -1
  130. package/dist/smilewantedBidAdapter.js +1 -1
  131. package/dist/sonobiBidAdapter.js +1 -1
  132. package/dist/sovrnAnalyticsAdapter.js +1 -1
  133. package/dist/sovrnBidAdapter.js +1 -1
  134. package/dist/sspBCBidAdapter.js +1 -1
  135. package/dist/sublimeBidAdapter.js +1 -1
  136. package/dist/synacormediaBidAdapter.js +1 -1
  137. package/dist/tappxBidAdapter.js +1 -1
  138. package/dist/targetVideoBidAdapter.js +1 -1
  139. package/dist/teadsBidAdapter.js +1 -1
  140. package/dist/trionBidAdapter.js +1 -1
  141. package/dist/tripleliftBidAdapter.js +1 -1
  142. package/dist/trustpidSystem.js +1 -1
  143. package/dist/ttdBidAdapter.js +1 -1
  144. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  145. package/dist/underdogmediaBidAdapter.js +1 -1
  146. package/dist/undertoneBidAdapter.js +1 -1
  147. package/dist/userId.js +1 -1
  148. package/dist/vidazooBidAdapter.js +1 -1
  149. package/dist/videobyteBidAdapter.js +1 -1
  150. package/dist/viewability.js +1 -1
  151. package/dist/visxBidAdapter.js +1 -1
  152. package/dist/vuukleBidAdapter.js +1 -1
  153. package/dist/widespaceBidAdapter.js +1 -1
  154. package/dist/winrBidAdapter.js +1 -1
  155. package/dist/yahoosspBidAdapter.js +1 -1
  156. package/dist/yieldmoBidAdapter.js +1 -1
  157. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  158. package/dist/zeta_global_sspBidAdapter.js +1 -1
  159. package/integrationExamples/gpt/permutiveRtdProvider_example.html +1 -1
  160. package/karma.conf.maker.js +2 -13
  161. package/modules/.submodules.json +2 -0
  162. package/modules/acuityAdsBidAdapter.js +207 -0
  163. package/modules/acuityAdsBidAdapter.md +79 -0
  164. package/modules/adagioBidAdapter.js +2 -3
  165. package/modules/adgenerationBidAdapter.js +2 -2
  166. package/modules/adkernelBidAdapter.js +28 -12
  167. package/modules/admixerBidAdapter.js +1 -1
  168. package/modules/adnowBidAdapter.js +1 -1
  169. package/modules/adpod.js +1 -1
  170. package/modules/adrelevantisBidAdapter.js +2 -2
  171. package/modules/adriverBidAdapter.js +5 -12
  172. package/modules/adriverIdSystem.js +2 -1
  173. package/modules/adtargetBidAdapter.js +1 -1
  174. package/modules/adtelligentBidAdapter.js +6 -2
  175. package/modules/adtrgtmeBidAdapter.js +333 -0
  176. package/modules/adtrgtmeBidAdapter.md +69 -0
  177. package/modules/adtrueBidAdapter.js +1 -1
  178. package/modules/adxpremiumAnalyticsAdapter.js +1 -1
  179. package/modules/adyoulikeBidAdapter.js +1 -1
  180. package/modules/alkimiBidAdapter.js +2 -1
  181. package/modules/aniviewBidAdapter.js +1 -1
  182. package/modules/appnexusBidAdapter.js +13 -93
  183. package/modules/apstreamBidAdapter.js +2 -2
  184. package/modules/beopBidAdapter.js +4 -4
  185. package/modules/betweenBidAdapter.js +4 -4
  186. package/modules/bidwatchAnalyticsAdapter.js +112 -59
  187. package/modules/bizzclickBidAdapter.js +1 -1
  188. package/modules/brightMountainMediaBidAdapter.js +1 -1
  189. package/modules/browsiRtdProvider.js +24 -10
  190. package/modules/cleanmedianetBidAdapter.js +1 -1
  191. package/modules/consentManagement.js +1 -1
  192. package/modules/consentManagementUsp.js +1 -1
  193. package/modules/consumableBidAdapter.js +43 -3
  194. package/modules/cpmstarBidAdapter.js +23 -13
  195. package/modules/criteoBidAdapter.js +19 -13
  196. package/modules/currency.js +1 -0
  197. package/modules/cwireBidAdapter.js +1 -1
  198. package/modules/datablocksBidAdapter.js +1 -1
  199. package/modules/datawrkzBidAdapter.js +633 -0
  200. package/modules/datawrkzBidAdapter.md +160 -0
  201. package/modules/dfpAdServerVideo.js +2 -2
  202. package/modules/dgkeywordRtdProvider.js +10 -1
  203. package/modules/displayioBidAdapter.js +92 -97
  204. package/modules/dspxBidAdapter.js +1 -1
  205. package/modules/e_volutionBidAdapter.js +3 -3
  206. package/modules/ebdrBidAdapter.js +1 -1
  207. package/modules/emx_digitalBidAdapter.js +1 -1
  208. package/modules/enrichmentFpdModule.js +11 -0
  209. package/modules/fabrickIdSystem.js +2 -2
  210. package/modules/gamoshiBidAdapter.js +1 -1
  211. package/modules/getintentBidAdapter.js +1 -1
  212. package/modules/gjirafaBidAdapter.js +2 -2
  213. package/modules/goldbachBidAdapter.js +8 -8
  214. package/modules/gothamadsBidAdapter.js +2 -2
  215. package/modules/gumgumBidAdapter.js +3 -3
  216. package/modules/h12mediaBidAdapter.js +1 -1
  217. package/modules/id5AnalyticsAdapter.js +1 -1
  218. package/modules/id5IdSystem.js +160 -111
  219. package/modules/id5IdSystem.md +16 -14
  220. package/modules/imRtdProvider.js +20 -7
  221. package/modules/imRtdProvider.md +3 -1
  222. package/modules/impactifyBidAdapter.js +1 -1
  223. package/modules/improvedigitalBidAdapter.js +50 -28
  224. package/modules/inskinBidAdapter.js +1 -1
  225. package/modules/insticatorBidAdapter.js +1 -1
  226. package/modules/integr8BidAdapter.js +2 -2
  227. package/modules/intentIqIdSystem.js +2 -2
  228. package/modules/interactiveOffersBidAdapter.js +1 -1
  229. package/modules/iqmBidAdapter.js +1 -1
  230. package/modules/ixBidAdapter.js +21 -328
  231. package/modules/ixBidAdapter.md +1 -19
  232. package/modules/kargoBidAdapter.js +4 -5
  233. package/modules/krushmediaBidAdapter.js +2 -2
  234. package/modules/lassoBidAdapter.js +3 -3
  235. package/modules/lifestreetBidAdapter.js +143 -0
  236. package/modules/limelightDigitalBidAdapter.js +2 -1
  237. package/modules/livewrappedAnalyticsAdapter.js +3 -3
  238. package/modules/lkqdBidAdapter.js +3 -3
  239. package/modules/loganBidAdapter.js +2 -2
  240. package/modules/luponmediaBidAdapter.js +3 -3
  241. package/modules/mabidderBidAdapter.js +60 -0
  242. package/modules/mabidderBidAdapter.md +31 -0
  243. package/modules/malltvBidAdapter.js +2 -2
  244. package/modules/mediagoBidAdapter.js +462 -0
  245. package/modules/mediagoBidAdapter.md +34 -0
  246. package/modules/mediakeysBidAdapter.js +2 -2
  247. package/modules/mgidBidAdapter.js +2 -2
  248. package/modules/nextMillenniumBidAdapter.js +25 -6
  249. package/modules/nobidBidAdapter.js +2 -2
  250. package/modules/novatiqIdSystem.js +1 -1
  251. package/modules/oneKeyIdSystem.js +78 -0
  252. package/modules/oneKeyIdSystem.md +109 -0
  253. package/modules/oneKeyRtdProvider.js +98 -0
  254. package/modules/oneKeyRtdProvider.md +127 -0
  255. package/modules/open8BidAdapter.js +1 -1
  256. package/modules/openwebBidAdapter.js +1 -1
  257. package/modules/openxAnalyticsAdapter.js +5 -744
  258. package/modules/openxAnalyticsAdapter.md +4 -0
  259. package/modules/openxBidAdapter.js +3 -3
  260. package/modules/permutiveRtdProvider.js +55 -8
  261. package/modules/pixfutureBidAdapter.js +1 -1
  262. package/modules/prebidmanagerAnalyticsAdapter.js +1 -1
  263. package/modules/priceFloors.js +1 -1
  264. package/modules/pubmaticAnalyticsAdapter.js +1 -1
  265. package/modules/pubmaticBidAdapter.js +19 -1
  266. package/modules/pubwiseAnalyticsAdapter.js +1 -1
  267. package/modules/pubwiseBidAdapter.js +3 -3
  268. package/modules/pubxBidAdapter.js +1 -1
  269. package/modules/pubxaiAnalyticsAdapter.js +2 -2
  270. package/modules/quantcastIdSystem.js +1 -1
  271. package/modules/radsBidAdapter.js +1 -1
  272. package/modules/rasBidAdapter.js +8 -0
  273. package/modules/rasBidAdapter.md +14 -13
  274. package/modules/revcontentBidAdapter.js +1 -1
  275. package/modules/richaudienceBidAdapter.js +1 -1
  276. package/modules/rtbhouseBidAdapter.js +25 -1
  277. package/modules/schain.js +1 -1
  278. package/modules/seedtagBidAdapter.md +25 -56
  279. package/modules/showheroes-bsBidAdapter.js +1 -1
  280. package/modules/sizeMappingV2.js +1 -1
  281. package/modules/smaatoBidAdapter.js +2 -2
  282. package/modules/sonobiAnalyticsAdapter.js +1 -1
  283. package/modules/sonobiBidAdapter.js +4 -3
  284. package/modules/staqAnalyticsAdapter.js +1 -1
  285. package/modules/tappxBidAdapter.js +11 -2
  286. package/modules/targetVideoBidAdapter.js +1 -1
  287. package/modules/theAdxBidAdapter.js +2 -2
  288. package/modules/tpmnBidAdapter.js +1 -1
  289. package/modules/trionBidAdapter.js +2 -2
  290. package/modules/tripleliftBidAdapter.js +20 -1
  291. package/modules/trustpidSystem.js +6 -42
  292. package/modules/trustpidSystem.md +10 -10
  293. package/modules/underdogmediaBidAdapter.js +1 -1
  294. package/modules/userId/eids.js +26 -0
  295. package/modules/userId/userId.md +2 -2
  296. package/modules/vdoaiBidAdapter.js +1 -1
  297. package/modules/vidazooBidAdapter.js +7 -5
  298. package/modules/vidoomyBidAdapter.js +1 -1
  299. package/modules/viewability.js +14 -14
  300. package/modules/winrBidAdapter.js +1 -1
  301. package/modules/yahoosspBidAdapter.js +3 -3
  302. package/modules/yandexBidAdapter.js +1 -1
  303. package/modules/yieldmoBidAdapter.js +3 -3
  304. package/modules/yieldoneBidAdapter.js +2 -2
  305. package/modules/zeta_global_sspBidAdapter.js +24 -21
  306. package/package.json +3 -3
  307. package/src/Renderer.js +1 -1
  308. package/src/adloader.js +2 -1
  309. package/src/adserver.js +0 -56
  310. package/src/auction.js +60 -16
  311. package/src/bidfactory.js +1 -1
  312. package/src/native.js +75 -60
  313. package/src/refererDetection.js +12 -1
  314. package/src/sizeMapping.js +5 -7
  315. package/src/targeting.js +1 -1
  316. package/src/userSync.js +1 -1
  317. package/src/utils/promise.js +3 -1
  318. package/src/utils.js +27 -0
  319. package/src/video.js +5 -4
  320. package/src/videoCache.js +8 -2
  321. package/test/pages/instream.html +2 -2
  322. package/test/spec/modules/acuityAdsBidAdapter_spec.js +398 -0
  323. package/test/spec/modules/adagioBidAdapter_spec.js +2 -0
  324. package/test/spec/modules/adkernelBidAdapter_spec.js +11 -2
  325. package/test/spec/modules/adriverBidAdapter_spec.js +6 -13
  326. package/test/spec/modules/adriverIdSystem_spec.js +3 -8
  327. package/test/spec/modules/adtelligentBidAdapter_spec.js +2 -0
  328. package/test/spec/modules/adtrgtmeBidAdapter_spec.js +802 -0
  329. package/test/spec/modules/alkimiBidAdapter_spec.js +2 -1
  330. package/test/spec/modules/appnexusBidAdapter_spec.js +1 -0
  331. package/test/spec/modules/beopBidAdapter_spec.js +11 -0
  332. package/test/spec/modules/betweenBidAdapter_spec.js +17 -0
  333. package/test/spec/modules/bidwatchAnalyticsAdapter_spec.js +28 -12
  334. package/test/spec/modules/big-richmediaBidAdapter_spec.js +1 -0
  335. package/test/spec/modules/browsiRtdProvider_spec.js +40 -1
  336. package/test/spec/modules/consumableBidAdapter_spec.js +158 -0
  337. package/test/spec/modules/cpmstarBidAdapter_spec.js +1 -1
  338. package/test/spec/modules/criteoBidAdapter_spec.js +35 -26
  339. package/test/spec/modules/currency_spec.js +22 -0
  340. package/test/spec/modules/datawrkzBidAdapter_spec.js +656 -0
  341. package/test/spec/modules/dgkeywordRtdProvider_spec.js +1 -1
  342. package/test/spec/modules/displayioBidAdapter_spec.js +16 -52
  343. package/test/spec/modules/enrichmentFpdModule_spec.js +16 -1
  344. package/test/spec/modules/fpdModule_spec.js +2 -1
  345. package/test/spec/modules/id5IdSystem_spec.js +529 -172
  346. package/test/spec/modules/imRtdProvider_spec.js +10 -5
  347. package/test/spec/modules/improvedigitalBidAdapter_spec.js +9 -13
  348. package/test/spec/modules/ixBidAdapter_spec.js +216 -123
  349. package/test/spec/modules/kargoBidAdapter_spec.js +11 -2
  350. package/test/spec/modules/lifestreetBidAdapter_spec.js +232 -0
  351. package/test/spec/modules/limelightDigitalBidAdapter_spec.js +59 -7
  352. package/test/spec/modules/mabidderBidAdapter_spec.js +125 -0
  353. package/test/spec/modules/mediagoBidAdapter_spec.js +97 -0
  354. package/test/spec/modules/nextMillenniumBidAdapter_spec.js +2 -7
  355. package/test/spec/modules/oneKeyIdSystem_spec.js +107 -0
  356. package/test/spec/modules/oneKeyRtdProvider_spec.js +152 -0
  357. package/test/spec/modules/openxAnalyticsAdapter_spec.js +6 -638
  358. package/test/spec/modules/permutiveRtdProvider_spec.js +152 -2
  359. package/test/spec/modules/pubmaticBidAdapter_spec.js +69 -4
  360. package/test/spec/modules/rasBidAdapter_spec.js +2 -0
  361. package/test/spec/modules/tripleliftBidAdapter_spec.js +18 -0
  362. package/test/spec/modules/trustpidSystem_spec.js +27 -45
  363. package/test/spec/modules/vidazooBidAdapter_spec.js +36 -23
  364. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +59 -0
  365. package/test/spec/native_spec.js +257 -2
  366. package/test/spec/videoCache_spec.js +37 -7
@@ -0,0 +1,160 @@
1
+ # Overview
2
+
3
+ ```
4
+ Module Name: Datawrkz Bid Adapter
5
+ Module Type: Bidder Adapter
6
+ Maintainer: pubops@datawrkz.com
7
+ ```
8
+
9
+ # Description
10
+
11
+ Module that connects to Datawrkz's demand sources.
12
+ Datawrkz bid adapter supports Banner, Video (instream and outstream) and Native ad units.
13
+
14
+ # Bid Parameters
15
+
16
+ | Name | Scope | Type | Description | Example
17
+ | ---- | ----- | ---- | ----------- | -------
18
+ | `site_id` | required | String | Site id | "test_site_id"
19
+ | `deals` | optional | Array<Deal> | Array of deal objects | `[{id: "deal_1"},{id: "deal_2"}]`
20
+ | `bidfloor` | optional | Float | Minimum bid for this impression expressed in CPM | `0.5`
21
+ | `outstreamType` | optional | String | Type of outstream video to the played. Available options: inline, slider_top_left, slider_top_right, slider_bottom_left, slider_bottom_right, interstitial_close, and listicle | "inline"
22
+ | `outstreamConfig` | optional | Object | Configuration settings for outstream ad unit | `{ad_unit_audio: 1, show_player_close_button_after: 5, hide_player_control: 0}`
23
+
24
+ # Deal Object
25
+ | Name | Scope | Type | Description | Example
26
+ | ---- | ----- | ---- | ----------- | -------
27
+ | `id` | required | String | Deal id | "test_deal_id"
28
+
29
+ # outstreamConfig
30
+ | Name | Scope | Type | Description | Example
31
+ | ---- | ----- | ---- | ----------- | -------
32
+ | `ad_unit_audio` | optional | Integer | Set default audio option for the player. 0 to play audio on hover and 2 to mute | `0` or `2`
33
+ | `show_player_close_button_after` | optional | Integer | Show player close button after specified seconds | `5`
34
+ | `hide_player_control` | optional | Integer | Show/hide player controls. 0 to show player controls and 1 to hide | `1`
35
+
36
+ # Test Parameters
37
+ ```
38
+ var adUnits = [
39
+ // Banner adUnit
40
+ {
41
+ code: 'banner-div',
42
+ mediaTypes: {
43
+ banner: {
44
+ sizes: [[300, 250], [300,600]]
45
+ }
46
+ },
47
+ bids: [{
48
+ bidder: 'datawrkz',
49
+ params: {
50
+ site_id: 'site_id',
51
+ bidfloor: 0.5
52
+ }
53
+ }]
54
+ },
55
+ // Native adUnit
56
+ {
57
+ code: 'native-div',
58
+ sizes: [[1, 1]],
59
+ mediaTypes: {
60
+ native: {
61
+ title: {
62
+ required: true,
63
+ len: 80
64
+ },
65
+ image: {
66
+ required: true,
67
+ sizes: [300, 250]
68
+ },
69
+ icon: {
70
+ required: true,
71
+ sizes: [50, 50]
72
+ },
73
+ body: {
74
+ required: true,
75
+ len: 800
76
+ },
77
+ sponsoredBy: {
78
+ required: true
79
+ },
80
+ cta: {
81
+ required: true
82
+ }
83
+ }
84
+ },
85
+ bids: [{
86
+ bidder: 'datawrkz',
87
+ params: {
88
+ site_id: 'site_id',
89
+ bidfloor: 0.5
90
+ }
91
+ }]
92
+ },
93
+ // Video instream adUnit
94
+ {
95
+ code: 'video-instream',
96
+ sizes: [[640, 480]],
97
+ mediaTypes: {
98
+ video: {
99
+ playerSize: [[640, 480]],
100
+ context: 'instream',
101
+ api: [1, 2],
102
+ mimes: ["video/x-ms-wmv", "video/mp4"],
103
+ protocols: [1, 2, 3],
104
+ playbackmethod: [1, 2],
105
+ minduration: 20,
106
+ maxduration: 30,
107
+ startdelay: 5,
108
+ minbitrate: 300,
109
+ maxbitrate: 1500,
110
+ delivery: [2],
111
+ linearity: 1
112
+ },
113
+ },
114
+ bids: [{
115
+ bidder: 'datawrkz',
116
+ params: {
117
+ site_id: 'site_id',
118
+ bidfloor: 0.5
119
+ }
120
+ }]
121
+ },
122
+ // Video outstream adUnit
123
+ {
124
+ code: 'video-outstream',
125
+ sizes: [[300, 250]],
126
+ mediaTypes: {
127
+ video: {
128
+ playerSize: [[300, 250]],
129
+ context: 'outstream',
130
+ api: [1, 2],
131
+ mimes: ["video/mp4"],
132
+ protocols: [1, 2, 3],
133
+ playbackmethod: [1, 2],
134
+ minduration: 20,
135
+ maxduration: 30,
136
+ startdelay: 5,
137
+ minbitrate: 300,
138
+ maxbitrate: 1500,
139
+ delivery: [2],
140
+ linearity: 1
141
+ }
142
+ },
143
+ bids: [
144
+ {
145
+ bidder: 'datawrkz',
146
+ params: {
147
+ site_id: 'site_id',
148
+ bidfloor: 0.5,
149
+ outstreamType: 'slider_top_left', //Supported types : inline, slider_top_left, slider_top_right, slider_bottom_left, slider_bottom_right, interstitial_close, listicle
150
+ outstreamConfig: {
151
+ ad_unit_audio: 1, // 0: audio on hover, 2: always muted
152
+ show_player_close_button_after: 5, // show close button after 5 seconds
153
+ hide_player_control: 0 // 0 to show/ 1 to hide
154
+ }
155
+ }
156
+ }
157
+ ]
158
+ }
159
+ ];
160
+ ```
@@ -91,7 +91,7 @@ export function buildDfpVideoUrl(options) {
91
91
  };
92
92
 
93
93
  const urlSearchComponent = urlComponents.search;
94
- const urlSzParam = urlSearchComponent && urlSearchComponent.sz
94
+ const urlSzParam = urlSearchComponent && urlSearchComponent.sz;
95
95
  if (urlSzParam) {
96
96
  derivedParams.sz = urlSzParam + '|' + derivedParams.sz;
97
97
  }
@@ -186,7 +186,7 @@ export function buildAdpodVideoUrl({code, params, callback} = {}) {
186
186
  let initialValue = {
187
187
  [adpodUtils.TARGETING_KEY_PB_CAT_DUR]: undefined,
188
188
  [adpodUtils.TARGETING_KEY_CACHE_ID]: undefined
189
- }
189
+ };
190
190
  let customParams = {};
191
191
  if (targeting[code]) {
192
192
  customParams = targeting[code].reduce((acc, curValue) => {
@@ -25,6 +25,15 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
25
25
  const timeout = (moduleConfig && moduleConfig.params && moduleConfig.params.timeout && Number(moduleConfig.params.timeout) > 0) ? Number(moduleConfig.params.timeout) : PROFILE_TIMEOUT_MS;
26
26
  const url = (moduleConfig && moduleConfig.params && moduleConfig.params.url) ? moduleConfig.params.url : URL + encodeURIComponent(window.location.href);
27
27
  const adUnits = reqBidsConfigObj.adUnits || getGlobal().adUnits;
28
+ callback = (function(cb) {
29
+ let done = false;
30
+ return function () {
31
+ if (!done) {
32
+ done = true;
33
+ return cb.apply(this, arguments);
34
+ }
35
+ }
36
+ })(callback);
28
37
  let isFinish = false;
29
38
  logMessage('[dgkeyword sub module]', adUnits, timeout);
30
39
  let setKeywordTargetBidders = getTargetBidderOfDgKeywords(adUnits);
@@ -48,7 +57,7 @@ export function getDgKeywordsAndSet(reqBidsConfigObj, callback, moduleConfig, us
48
57
  keywords['opectx'] = res['t'];
49
58
  }
50
59
  if (Object.keys(keywords).length > 0) {
51
- const targetBidKeys = {}
60
+ const targetBidKeys = {};
52
61
  for (let bid of setKeywordTargetBidders) {
53
62
  // set keywords to params
54
63
  bid.params.keywords = keywords;
@@ -1,16 +1,16 @@
1
1
  import {registerBidder} from '../src/adapters/bidderFactory.js';
2
2
  import {BANNER, VIDEO} from '../src/mediaTypes.js';
3
+ import {Renderer} from '../src/Renderer.js';
4
+ import {getWindowFromDocument, logWarn} from '../src/utils.js';
3
5
 
4
- const BIDDER_VERSION = '1.0.0';
6
+ const ADAPTER_VERSION = '1.1.0';
5
7
  const BIDDER_CODE = 'displayio';
6
- const GVLID = 999;
7
8
  const BID_TTL = 300;
8
9
  const SUPPORTED_AD_TYPES = [BANNER, VIDEO];
9
10
  const DEFAULT_CURRENCY = 'USD';
10
11
 
11
12
  export const spec = {
12
13
  code: BIDDER_CODE,
13
- gvlid: GVLID,
14
14
  supportedMediaTypes: SUPPORTED_AD_TYPES,
15
15
  isBidRequestValid: function(bid) {
16
16
  return !!(bid.params && bid.params.placementId && bid.params.siteId &&
@@ -20,7 +20,7 @@ export const spec = {
20
20
  return bidRequests.map(bid => {
21
21
  let url = '//' + bid.params.adsSrvDomain + '/srv?method=getPlacement&app=' +
22
22
  bid.params.siteId + '&placement=' + bid.params.placementId;
23
- const data = this._getPayload(bid, bidderRequest);
23
+ const data = getPayload(bid, bidderRequest);
24
24
  return {
25
25
  method: 'POST',
26
26
  headers: {'Content-Type': 'application/json;charset=utf-8'},
@@ -42,117 +42,112 @@ export const spec = {
42
42
  height: adData.h,
43
43
  netRevenue: true,
44
44
  ttl: BID_TTL,
45
- creativeId: adData.adId || 0,
46
- currency: DEFAULT_CURRENCY,
45
+ creativeId: adData.adId || 1,
46
+ currency: adData.cur || DEFAULT_CURRENCY,
47
47
  referrer: data.data.ref,
48
- mediaType: ads[0].ad.subtype,
48
+ mediaType: ads[0].ad.subtype === 'videoVast' ? VIDEO : BANNER,
49
49
  ad: adData.markup,
50
- placement: data.placement,
50
+ adUnitCode: data.adUnitCode,
51
+ renderURL: data.renderURL,
51
52
  adData: adData
52
53
  };
53
- if (bidResponse.vastUrl === 'videoVast') {
54
- bidResponse.vastUrl = adData.videos[0].url
54
+
55
+ if (bidResponse.mediaType === VIDEO) {
56
+ bidResponse.vastUrl = adData.videos[0] && adData.videos[0].url
57
+ }
58
+
59
+ if (bidResponse.renderURL) {
60
+ bidResponse.renderer = newRenderer(bidResponse);
55
61
  }
56
62
  bidResponses.push(bidResponse);
57
63
  }
58
64
  return bidResponses;
59
- },
60
- _getPayload: function (bid, bidderRequest) {
61
- const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
62
- const userSession = 'us_web_xxxxxxxxxxxx'.replace(/[x]/g, c => {
63
- let r = Math.random() * 16 | 0;
64
- let v = c === 'x' ? r : (r & 0x3 | 0x8);
65
- return v.toString(16);
66
- });
67
- const { params } = bid;
68
- const { siteId, placementId } = params;
69
- const { refererInfo, uspConsent, gdprConsent } = bidderRequest;
70
- const mediation = {consent: '-1', gdpr: '-1'};
71
- if (gdprConsent) {
72
- if (gdprConsent.consentString !== undefined) {
73
- mediation.consent = gdprConsent.consentString;
74
- }
75
- if (gdprConsent.gdprApplies !== undefined) {
76
- mediation.gdpr = gdprConsent.gdprApplies ? '1' : '0';
77
- }
65
+ }
66
+ };
67
+
68
+ function getPayload (bid, bidderRequest) {
69
+ const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection;
70
+ const userSession = 'us_web_xxxxxxxxxxxx'.replace(/[x]/g, c => {
71
+ let r = Math.random() * 16 | 0;
72
+ let v = c === 'x' ? r : (r & 0x3 | 0x8);
73
+ return v.toString(16);
74
+ });
75
+ const { params, adUnitCode, bidId } = bid;
76
+ const { siteId, placementId, renderURL, pageCategory, keywords } = params;
77
+ const { refererInfo, uspConsent, gdprConsent } = bidderRequest;
78
+ const mediation = {consent: '-1', gdpr: '-1'};
79
+ if (gdprConsent && 'gdprApplies' in gdprConsent) {
80
+ if (gdprConsent.consentString !== undefined) {
81
+ mediation.consent = gdprConsent.consentString;
78
82
  }
79
- const payload = {
80
- userSession,
83
+ if (gdprConsent.gdprApplies !== undefined) {
84
+ mediation.gdpr = gdprConsent.gdprApplies ? '1' : '0';
85
+ }
86
+ }
87
+ return {
88
+ userSession,
89
+ data: {
90
+ id: bidId,
91
+ action: 'getPlacement',
92
+ app: siteId,
93
+ placement: placementId,
94
+ adUnitCode,
95
+ renderURL,
81
96
  data: {
82
- id: bid.bidId,
83
- action: 'getPlacement',
84
- app: siteId,
85
- placement: placementId,
86
- data: {
87
- pagecat: params.pageCategory ? params.pageCategory.split(',').map(k => k.trim()) : [],
88
- keywords: params.keywords ? params.keywords.split(',').map(k => k.trim()) : [],
89
- lang_content: document.documentElement.lang,
90
- lang: window.navigator.language,
91
- // TODO: are these the correct refererInfo values?
92
- domain: refererInfo.domain,
93
- page: refererInfo.page,
94
- ref: refererInfo.ref,
95
- userids: _getUserIDs(),
96
- geo: '',
97
- },
98
- complianceData: {
99
- child: '-1',
100
- us_privacy: uspConsent,
101
- dnt: window.navigator.doNotTrack,
102
- iabConsent: {},
103
- mediation: {
104
- consent: mediation.consent,
105
- gdpr: mediation.gdpr,
106
- }
107
- },
108
- integration: 'JS',
109
- omidpn: 'Displayio',
110
- mediationPlatform: 0,
111
- prebidVersion: BIDDER_VERSION,
112
- device: {
113
- w: window.screen.width,
114
- h: window.screen.height,
115
- connection_type: connection ? connection.effectiveType : '',
97
+ pagecat: pageCategory ? pageCategory.split(',').map(k => k.trim()) : [],
98
+ keywords: keywords ? keywords.split(',').map(k => k.trim()) : [],
99
+ lang_content: document.documentElement.lang,
100
+ lang: window.navigator.language,
101
+ domain: refererInfo.domain,
102
+ page: refererInfo.page,
103
+ ref: refererInfo.referer,
104
+ userids: bid.userIdAsEids || {},
105
+ geo: '',
106
+ },
107
+ complianceData: {
108
+ child: '-1',
109
+ us_privacy: uspConsent,
110
+ dnt: window.doNotTrack === '1' || window.navigator.doNotTrack === '1' || false,
111
+ iabConsent: {},
112
+ mediation: {
113
+ consent: mediation.consent,
114
+ gdpr: mediation.gdpr,
116
115
  }
116
+ },
117
+ integration: 'JS',
118
+ omidpn: 'Displayio',
119
+ mediationPlatform: 0,
120
+ prebidVersion: ADAPTER_VERSION,
121
+ device: {
122
+ w: window.screen.width,
123
+ h: window.screen.height,
124
+ connection_type: connection ? connection.effectiveType : '',
117
125
  }
118
126
  }
119
- if (navigator.permissions) {
120
- navigator.permissions.query({ name: 'geolocation' })
121
- .then((result) => {
122
- if (result.state === 'granted') {
123
- payload.data.data.geo = _getGeoData();
124
- }
125
- });
126
- }
127
- return payload
128
127
  }
129
- };
128
+ }
129
+
130
+ function newRenderer(bid) {
131
+ const renderer = Renderer.install({
132
+ id: bid.requestId,
133
+ url: bid.renderURL,
134
+ adUnitCode: bid.adUnitCode
135
+ });
130
136
 
131
- function _getUserIDs () {
132
- let ids = {};
133
137
  try {
134
- ids = window.owpbjs.getUserIdsAsEids();
135
- } catch (e) {}
136
- return ids;
138
+ renderer.setRender(webisRender);
139
+ } catch (err) {
140
+ logWarn('Prebid Error calling setRender on renderer', err);
141
+ }
142
+
143
+ return renderer;
137
144
  }
138
145
 
139
- async function _getGeoData () {
140
- let geoData = null;
141
- const getCurrentPosition = () => {
142
- return new Promise((resolve, reject) =>
143
- navigator.geolocation.getCurrentPosition(resolve, reject)
144
- );
145
- }
146
- try {
147
- const position = await getCurrentPosition();
148
- let {latitude, longitude, accuracy} = position.coords;
149
- geoData = {
150
- 'lat': latitude,
151
- 'lng': longitude,
152
- 'precision': accuracy
153
- };
154
- } catch (e) {}
155
- return geoData
146
+ function webisRender(bid, doc) {
147
+ bid.renderer.push(() => {
148
+ const win = getWindowFromDocument(doc) || window;
149
+ win.webis.init(bid.adData, bid.adUnitCode, bid.params);
150
+ })
156
151
  }
157
152
 
158
153
  registerBidder(spec);
@@ -99,7 +99,7 @@ export const spec = {
99
99
  method: 'GET',
100
100
  url: endpoint,
101
101
  data: objectToQueryString(payload),
102
- }
102
+ };
103
103
  });
104
104
  },
105
105
  interpretResponse: function(serverResponse, bidRequest) {
@@ -72,7 +72,7 @@ export const spec = {
72
72
  let location;
73
73
  // TODO: this odd try-catch block was copied in several adapters; it doesn't seem to be correct for cross-origin
74
74
  try {
75
- location = new URL(bidderRequest.refererInfo.page)
75
+ location = new URL(bidderRequest.refererInfo.page);
76
76
  winTop = window.top;
77
77
  } catch (e) {
78
78
  location = winTop.location;
@@ -93,7 +93,7 @@ export const spec = {
93
93
  request.ccpa = bidderRequest.uspConsent;
94
94
  }
95
95
  if (bidderRequest.gdprConsent) {
96
- request.gdpr = bidderRequest.gdprConsent
96
+ request.gdpr = bidderRequest.gdprConsent;
97
97
  }
98
98
  }
99
99
  const len = validBidRequests.length;
@@ -106,7 +106,7 @@ export const spec = {
106
106
  bidId: bid.bidId,
107
107
  bidfloor: getBidFloor(bid),
108
108
  eids: []
109
- }
109
+ };
110
110
 
111
111
  if (bid.userId) {
112
112
  getUserId(placement.eids, bid.userId.id5id, 'id5-sync.com');
@@ -31,7 +31,7 @@ export const spec = {
31
31
  h: whArr[1]
32
32
  },
33
33
  bidfloor: bidFloor
34
- })
34
+ });
35
35
  ebdrReq[bid.bidId] = {mediaTypes: _mediaTypes,
36
36
  w: whArr[0],
37
37
  h: whArr[1]
@@ -287,7 +287,7 @@ export const spec = {
287
287
  emxData = emxAdapter.getGdpr(bidderRequest, Object.assign({}, emxData));
288
288
  emxData = emxAdapter.getSupplyChain(bidderRequest, Object.assign({}, emxData));
289
289
  if (bidderRequest && bidderRequest.uspConsent) {
290
- emxData.us_privacy = bidderRequest.uspConsent
290
+ emxData.us_privacy = bidderRequest.uspConsent;
291
291
  }
292
292
 
293
293
  // adding eid support
@@ -124,6 +124,16 @@ function setKeywords() {
124
124
  if (keywords && keywords.content) mergeDeep(ortb2, { site: { keywords: keywords.content.replace(/\s/g, '') } });
125
125
  }
126
126
 
127
+ /**
128
+ * Checks the Global Privacy Control status, and if exists and is true, merges into regs.ext.gpc
129
+ */
130
+ function setGpc() {
131
+ const gpcValue = navigator.globalPrivacyControl;
132
+ if (gpcValue) {
133
+ mergeDeep(ortb2, { regs: { ext: { gpc: 1 } } })
134
+ }
135
+ }
136
+
127
137
  /**
128
138
  * Resets modules global ortb2 data
129
139
  */
@@ -135,6 +145,7 @@ function runEnrichments() {
135
145
  setDomain();
136
146
  setDimensions();
137
147
  setKeywords();
148
+ setGpc();
138
149
 
139
150
  return ortb2;
140
151
  }
@@ -70,7 +70,7 @@ export const fabrickIdSubmodule = {
70
70
  }
71
71
  }
72
72
  // pull off the trailing &
73
- url = url.slice(0, -1)
73
+ url = url.slice(0, -1);
74
74
  const referer = _getRefererInfo(configParams);
75
75
  const refs = new Map();
76
76
  _setReferrer(refs, referer.topmostLocation);
@@ -174,7 +174,7 @@ export function appendUrl(url, paramName, s, configParams) {
174
174
  s = s.substring(0, thisMaxRefLen - 2);
175
175
  }
176
176
  }
177
- return `${url}${s}`
177
+ return `${url}${s}`;
178
178
  } else {
179
179
  return url;
180
180
  }
@@ -259,7 +259,7 @@ export const spec = {
259
259
  let gdpr = gdprApplies ? 1 : 0;
260
260
 
261
261
  if (gdprApplies && gdprConsent.consentString) {
262
- consentString = encodeURIComponent(gdprConsent.consentString)
262
+ consentString = encodeURIComponent(gdprConsent.consentString);
263
263
  }
264
264
 
265
265
  if (uspConsent) {
@@ -97,7 +97,7 @@ export const spec = {
97
97
  return bids;
98
98
  }
99
99
 
100
- }
100
+ };
101
101
 
102
102
  function buildUrl(bid) {
103
103
  return 'https://' + BID_HOST + (bid.is_video ? BID_VIDEO_PATH : BID_BANNER_PATH);
@@ -74,7 +74,7 @@ export const spec = {
74
74
  placements: placements,
75
75
  contents: contents,
76
76
  data: data
77
- }
77
+ };
78
78
 
79
79
  return [{
80
80
  method: 'POST',
@@ -113,7 +113,7 @@ export const spec = {
113
113
  }
114
114
  return bidResponses;
115
115
  }
116
- }
116
+ };
117
117
 
118
118
  /**
119
119
  * Generate size param for bid request using sizes array
@@ -207,7 +207,7 @@ export const spec = {
207
207
  payload['iab_support'] = {
208
208
  omidpn: 'Appnexus',
209
209
  omidpv: '$prebid.version$'
210
- }
210
+ };
211
211
  }
212
212
 
213
213
  if (member > 0) {
@@ -215,7 +215,7 @@ export const spec = {
215
215
  }
216
216
 
217
217
  if (appDeviceObjBid) {
218
- payload.device = appDeviceObj
218
+ payload.device = appDeviceObj;
219
219
  }
220
220
  if (appIdObjBid) {
221
221
  payload.app = appIdObj;
@@ -246,7 +246,7 @@ export const spec = {
246
246
  }
247
247
 
248
248
  if (bidderRequest && bidderRequest.uspConsent) {
249
- payload.us_privacy = bidderRequest.uspConsent
249
+ payload.us_privacy = bidderRequest.uspConsent;
250
250
  }
251
251
 
252
252
  if (bidderRequest && bidderRequest.refererInfo) {
@@ -256,7 +256,7 @@ export const spec = {
256
256
  rd_top: bidderRequest.refererInfo.reachedTop,
257
257
  rd_ifs: bidderRequest.refererInfo.numIframes,
258
258
  rd_stk: bidderRequest.refererInfo.stack.map((url) => encodeURIComponent(url)).join(',')
259
- }
259
+ };
260
260
  payload.referrer_detection = refererinfo;
261
261
  }
262
262
 
@@ -441,7 +441,7 @@ export const spec = {
441
441
  reloadViewabilityScriptWithCorrectParameters(bid);
442
442
  }
443
443
  }
444
- }
444
+ };
445
445
 
446
446
  function isPopulatedArray(arr) {
447
447
  return !!(isArray(arr) && arr.length > 0);
@@ -459,7 +459,7 @@ function reloadViewabilityScriptWithCorrectParameters(bid) {
459
459
  if (viewJsPayload) {
460
460
  let prebidParams = 'pbjs_adid=' + bid.adId + ';pbjs_auc=' + bid.adUnitCode;
461
461
 
462
- let jsTrackerSrc = getViewabilityScriptUrlFromPayload(viewJsPayload)
462
+ let jsTrackerSrc = getViewabilityScriptUrlFromPayload(viewJsPayload);
463
463
 
464
464
  let newJsTrackerSrc = jsTrackerSrc.replace('dom_id=%native_dom_id%', prebidParams);
465
465
 
@@ -553,7 +553,7 @@ function formatRequest(payload, bidderRequest) {
553
553
  if (getParameterByName('apn_test').toUpperCase() === 'TRUE' || config.getConfig('apn_test') === true) {
554
554
  options.customHeaders = {
555
555
  'X-Is-Test': 1
556
- }
556
+ };
557
557
  }
558
558
 
559
559
  if (payload.tags.length > MAX_IMPS_PER_REQUEST) {
@@ -766,7 +766,7 @@ function bidToTag(bid) {
766
766
  tag.code = bid.params.invCode;
767
767
  }
768
768
  tag.allow_smaller_sizes = bid.params.allowSmallerSizes || false;
769
- tag.use_pmt_rule = bid.params.usePaymentRule || false
769
+ tag.use_pmt_rule = bid.params.usePaymentRule || false;
770
770
  tag.prebid = true;
771
771
  tag.disable_psa = true;
772
772
  let bidFloor = getBidFloor(bid);
@@ -139,7 +139,7 @@ export const spec = {
139
139
  * @return {Bid[]} An array of bids which were nested inside the server.
140
140
  */
141
141
  interpretResponse: (serverResponse) => {
142
- if (!serverResponse || !serverResponse.body) return []
142
+ if (!serverResponse || !serverResponse.body) return [];
143
143
  let GothamAdsResponse = serverResponse.body;
144
144
 
145
145
  let bids = [];
@@ -273,7 +273,7 @@ const addNativeParameters = bidRequest => {
273
273
  hmin = sizes[1];
274
274
  }
275
275
 
276
- asset[props.name] = {}
276
+ asset[props.name] = {};
277
277
 
278
278
  if (bidParams.len) asset[props.name]['len'] = bidParams.len;
279
279
  if (props.type) asset[props.name]['type'] = props.type;