prebid.js 9.1.0 → 9.3.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 (362) hide show
  1. package/browsers.json +3 -3
  2. package/dist/33acrossAnalyticsAdapter.js +1 -1
  3. package/dist/33acrossBidAdapter.js +1 -1
  4. package/dist/33acrossIdSystem.js +1 -1
  5. package/dist/BTBidAdapter.js +1 -1
  6. package/dist/acuityadsBidAdapter.js +1 -1
  7. package/dist/adagioAnalyticsAdapter.js +1 -1
  8. package/dist/adagioBidAdapter.js +1 -1
  9. package/dist/adagioRtdProvider.js +1 -1
  10. package/dist/adagioUtils.js +1 -0
  11. package/dist/addefendBidAdapter.js +1 -1
  12. package/dist/adgenerationBidAdapter.js +1 -1
  13. package/dist/adlooxRtdProvider.js +1 -1
  14. package/dist/admanBidAdapter.js +1 -1
  15. package/dist/adnuntiusBidAdapter.js +1 -1
  16. package/dist/adpod.js +1 -1
  17. package/dist/adprimeBidAdapter.js +1 -1
  18. package/dist/adqueryBidAdapter.js +1 -1
  19. package/dist/adrelevantisBidAdapter.js +1 -1
  20. package/dist/adstirBidAdapter.js +1 -1
  21. package/dist/adtrgtmeBidAdapter.js +1 -1
  22. package/dist/adxcgAnalyticsAdapter.js +1 -1
  23. package/dist/adxcgBidAdapter.js +1 -1
  24. package/dist/adyoulikeBidAdapter.js +1 -1
  25. package/dist/agmaAnalyticsAdapter.js +1 -1
  26. package/dist/ajaBidAdapter.js +1 -1
  27. package/dist/amxBidAdapter.js +1 -1
  28. package/dist/amxIdSystem.js +1 -1
  29. package/dist/appierAnalyticsAdapter.js +1 -1
  30. package/dist/appnexusBidAdapter.js +1 -1
  31. package/dist/appnexusUtils.js +1 -1
  32. package/dist/asoBidAdapter.js +1 -1
  33. package/dist/autoplayDetection.js +1 -1
  34. package/dist/axisBidAdapter.js +1 -1
  35. package/dist/axonixBidAdapter.js +1 -1
  36. package/dist/beyondmediaBidAdapter.js +1 -1
  37. package/dist/bidglassBidAdapter.js +1 -1
  38. package/dist/big-richmediaBidAdapter.js +1 -1
  39. package/dist/bliinkBidAdapter.js +1 -1
  40. package/dist/boldwinBidAdapter.js +1 -1
  41. package/dist/bridBidAdapter.js +1 -1
  42. package/dist/bridgewellBidAdapter.js +1 -1
  43. package/dist/brightMountainMediaBidAdapter.js +1 -1
  44. package/dist/carodaBidAdapter.js +1 -1
  45. package/dist/chtnwBidAdapter.js +1 -1
  46. package/dist/chunk-core.js +1 -1
  47. package/dist/compassBidAdapter.js +1 -1
  48. package/dist/concertBidAdapter.js +1 -1
  49. package/dist/connectadBidAdapter.js +1 -1
  50. package/dist/consentManagement.js +1 -0
  51. package/dist/consentManagementGpp.js +1 -1
  52. package/dist/consentManagementTcf.js +1 -1
  53. package/dist/consumableBidAdapter.js +1 -1
  54. package/dist/contentexchangeBidAdapter.js +1 -1
  55. package/dist/conversantAnalyticsAdapter.js +1 -1
  56. package/dist/conversantBidAdapter.js +1 -1
  57. package/dist/copper6sspBidAdapter.js +1 -0
  58. package/dist/craftBidAdapter.js +1 -1
  59. package/dist/criteoBidAdapter.js +1 -1
  60. package/dist/cwireBidAdapter.js +1 -1
  61. package/dist/dailymotionBidAdapter.js +1 -1
  62. package/dist/dependencies.json +96 -6
  63. package/dist/dspxBidAdapter.js +1 -1
  64. package/dist/dxkultureBidAdapter.js +1 -1
  65. package/dist/e_volutionBidAdapter.js +1 -1
  66. package/dist/emtvBidAdapter.js +1 -1
  67. package/dist/eplanningBidAdapter.js +1 -1
  68. package/dist/euidIdSystem.js +1 -1
  69. package/dist/exadsBidAdapter.js +1 -1
  70. package/dist/feedadBidAdapter.js +1 -1
  71. package/dist/finativeBidAdapter.js +1 -1
  72. package/dist/freewheel-sspBidAdapter.js +1 -1
  73. package/dist/globalsunBidAdapter.js +1 -1
  74. package/dist/gmosspBidAdapter.js +1 -1
  75. package/dist/goldbachBidAdapter.js +1 -1
  76. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  77. package/dist/greenbidsRtdProvider.js +1 -1
  78. package/dist/gridBidAdapter.js +1 -1
  79. package/dist/gumgumBidAdapter.js +1 -1
  80. package/dist/h12mediaBidAdapter.js +1 -1
  81. package/dist/hypelabBidAdapter.js +1 -1
  82. package/dist/id5AnalyticsAdapter.js +1 -1
  83. package/dist/id5IdSystem.js +1 -1
  84. package/dist/illuminBidAdapter.js +1 -1
  85. package/dist/imdsBidAdapter.js +1 -1
  86. package/dist/improvedigitalBidAdapter.js +1 -1
  87. package/dist/insticatorBidAdapter.js +1 -1
  88. package/dist/intentIqIdSystem.js +1 -1
  89. package/dist/iqzoneBidAdapter.js +1 -1
  90. package/dist/ixBidAdapter.js +1 -1
  91. package/dist/jixieBidAdapter.js +1 -1
  92. package/dist/justpremiumBidAdapter.js +1 -1
  93. package/dist/kargoBidAdapter.js +1 -1
  94. package/dist/kimberliteBidAdapter.js +1 -1
  95. package/dist/kiviadsBidAdapter.js +1 -1
  96. package/dist/konduitAnalyticsAdapter.js +1 -1
  97. package/dist/krushmediaBidAdapter.js +1 -1
  98. package/dist/kueezBidAdapter.js +1 -1
  99. package/dist/kueezRtbBidAdapter.js +1 -1
  100. package/dist/lassoBidAdapter.js +1 -1
  101. package/dist/lifestreetBidAdapter.js +1 -1
  102. package/dist/liveIntentIdSystem.js +1 -1
  103. package/dist/logicadBidAdapter.js +1 -1
  104. package/dist/loglyliftBidAdapter.js +1 -1
  105. package/dist/loyalBidAdapter.js +1 -1
  106. package/dist/luceadBidAdapter.js +1 -1
  107. package/dist/lunamediahbBidAdapter.js +1 -1
  108. package/dist/mabidderBidAdapter.js +1 -1
  109. package/dist/magniteAnalyticsAdapter.js +1 -1
  110. package/dist/malltvAnalyticsAdapter.js +1 -1
  111. package/dist/marsmediaBidAdapter.js +1 -1
  112. package/dist/mathildeadsBidAdapter.js +1 -1
  113. package/dist/mediafuseBidAdapter.js +1 -1
  114. package/dist/medianetAnalyticsAdapter.js +1 -1
  115. package/dist/medianetBidAdapter.js +1 -1
  116. package/dist/mediasquareBidAdapter.js +1 -1
  117. package/dist/mgidBidAdapter.js +1 -1
  118. package/dist/mgidXBidAdapter.js +1 -1
  119. package/dist/minutemediaBidAdapter.js +1 -1
  120. package/dist/missenaBidAdapter.js +1 -1
  121. package/dist/mobfoxpbBidAdapter.js +1 -1
  122. package/dist/mobianRtdProvider.js +1 -1
  123. package/dist/nexx360BidAdapter.js +1 -1
  124. package/dist/nobidAnalyticsAdapter.js +1 -1
  125. package/dist/nobidBidAdapter.js +1 -1
  126. package/dist/not-for-prod/prebid.js +211 -204
  127. package/dist/oguryBidAdapter.js +1 -1
  128. package/dist/onetagBidAdapter.js +1 -1
  129. package/dist/ooloAnalyticsAdapter.js +1 -1
  130. package/dist/openwebBidAdapter.js +1 -1
  131. package/dist/openxBidAdapter.js +1 -1
  132. package/dist/optidigitalBidAdapter.js +1 -1
  133. package/dist/orakiBidAdapter.js +1 -0
  134. package/dist/orbidderBidAdapter.js +1 -1
  135. package/dist/ortbConverter.js +1 -1
  136. package/dist/outbrainBidAdapter.js +1 -1
  137. package/dist/ozoneBidAdapter.js +1 -1
  138. package/dist/paapi.js +1 -1
  139. package/dist/pairIdSystem.js +1 -1
  140. package/dist/pgamsspBidAdapter.js +1 -1
  141. package/dist/pixfutureBidAdapter.js +1 -1
  142. package/dist/playdigoBidAdapter.js +1 -1
  143. package/dist/prebidServerBidAdapter.js +1 -1
  144. package/dist/pubCircleBidAdapter.js +1 -1
  145. package/dist/publinkIdSystem.js +1 -1
  146. package/dist/publirBidAdapter.js +1 -1
  147. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  148. package/dist/pubmaticBidAdapter.js +1 -1
  149. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  150. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  151. package/dist/pxyzBidAdapter.js +1 -1
  152. package/dist/qtBidAdapter.js +1 -1
  153. package/dist/quantcastBidAdapter.js +1 -1
  154. package/dist/raynRtdProvider.js +1 -1
  155. package/dist/readpeakBidAdapter.js +1 -1
  156. package/dist/relaidoBidAdapter.js +1 -1
  157. package/dist/retailspotBidAdapter.js +1 -1
  158. package/dist/rhythmoneBidAdapter.js +1 -1
  159. package/dist/riseBidAdapter.js +1 -1
  160. package/dist/rubiconBidAdapter.js +1 -1
  161. package/dist/seedingAllianceBidAdapter.js +1 -1
  162. package/dist/seedtagBidAdapter.js +1 -1
  163. package/dist/setupadBidAdapter.js +1 -1
  164. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  165. package/dist/sharethroughBidAdapter.js +1 -1
  166. package/dist/shinezBidAdapter.js +1 -1
  167. package/dist/shinezRtbBidAdapter.js +1 -1
  168. package/dist/smaatoBidAdapter.js +1 -1
  169. package/dist/smartadserverBidAdapter.js +1 -1
  170. package/dist/smartxBidAdapter.js +1 -1
  171. package/dist/smartyadsBidAdapter.js +1 -1
  172. package/dist/smartyadsUtils.js +1 -0
  173. package/dist/smartytechBidAdapter.js +1 -1
  174. package/dist/smilewantedBidAdapter.js +1 -1
  175. package/dist/snigelBidAdapter.js +1 -1
  176. package/dist/sonobiBidAdapter.js +1 -1
  177. package/dist/sovrnBidAdapter.js +1 -1
  178. package/dist/sspBCBidAdapter.js +1 -1
  179. package/dist/stnBidAdapter.js +1 -1
  180. package/dist/stvBidAdapter.js +1 -1
  181. package/dist/sublimeBidAdapter.js +1 -1
  182. package/dist/taboolaBidAdapter.js +1 -1
  183. package/dist/tagorasBidAdapter.js +1 -1
  184. package/dist/tappxBidAdapter.js +1 -1
  185. package/dist/targetVideoBidAdapter.js +1 -1
  186. package/dist/teadsBidAdapter.js +1 -1
  187. package/dist/teqblazeUtils.js +1 -0
  188. package/dist/terceptAnalyticsAdapter.js +1 -1
  189. package/dist/themoneytizerBidAdapter.js +1 -1
  190. package/dist/topicsFpdModule.js +1 -1
  191. package/dist/trionBidAdapter.js +1 -1
  192. package/dist/tripleliftBidAdapter.js +1 -1
  193. package/dist/ttdBidAdapter.js +1 -1
  194. package/dist/twistDigitalBidAdapter.js +1 -1
  195. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  196. package/dist/uid2IdSystem.js +1 -1
  197. package/dist/underdogmediaBidAdapter.js +1 -1
  198. package/dist/undertoneBidAdapter.js +1 -1
  199. package/dist/unrulyBidAdapter.js +1 -1
  200. package/dist/userId.js +1 -1
  201. package/dist/vidazooBidAdapter.js +1 -1
  202. package/dist/vidazooUtils.js +1 -0
  203. package/dist/videobyteBidAdapter.js +1 -1
  204. package/dist/visiblemeasuresBidAdapter.js +1 -1
  205. package/dist/visxBidAdapter.js +1 -1
  206. package/dist/vuukleBidAdapter.js +1 -1
  207. package/dist/widespaceBidAdapter.js +1 -1
  208. package/dist/winrBidAdapter.js +1 -1
  209. package/dist/yahooAdsBidAdapter.js +1 -1
  210. package/dist/yieldmoBidAdapter.js +1 -1
  211. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  212. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  213. package/integrationExamples/gpt/raynRtdProvider_example.html +1 -0
  214. package/libraries/adagioUtils/adagioUtils.js +35 -0
  215. package/libraries/appnexusUtils/anUtils.js +1 -0
  216. package/libraries/autoplayDetection/autoplay.js +8 -1
  217. package/libraries/consentManagement/cmUtils.js +38 -0
  218. package/libraries/ortbConverter/converter.js +1 -1
  219. package/libraries/smartyadsUtils/getAdUrlByRegion.js +32 -0
  220. package/libraries/teqblazeUtils/bidderUtils.js +253 -0
  221. package/libraries/vidazooUtils/bidderUtils.js +481 -0
  222. package/libraries/vidazooUtils/constants.js +7 -0
  223. package/modules/.submodules.json +1 -0
  224. package/modules/acuityadsBidAdapter.js +5 -203
  225. package/modules/adagioBidAdapter.js +1 -17
  226. package/modules/adagioRtdProvider.js +41 -51
  227. package/modules/adagioRtdProvider.md +1 -0
  228. package/modules/addefendBidAdapter.js +1 -2
  229. package/modules/adlooxRtdProvider.js +1 -1
  230. package/modules/admanBidAdapter.js +31 -188
  231. package/modules/adnuntiusBidAdapter.js +1 -0
  232. package/modules/adprimeBidAdapter.js +28 -165
  233. package/modules/adxcgAnalyticsAdapter.js +1 -2
  234. package/modules/axisBidAdapter.js +33 -165
  235. package/modules/beyondmediaBidAdapter.js +5 -189
  236. package/modules/bliinkBidAdapter.js +3 -31
  237. package/modules/boldwinBidAdapter.js +21 -159
  238. package/modules/ceeIdSystem.js +1 -1
  239. package/modules/compassBidAdapter.js +5 -198
  240. package/modules/consentManagementGpp.js +2 -38
  241. package/modules/consentManagementTcf.js +7 -38
  242. package/modules/contentexchangeBidAdapter.js +5 -200
  243. package/modules/conversantAnalyticsAdapter.js +1 -2
  244. package/modules/conversantBidAdapter.js +1 -0
  245. package/modules/copper6sspBidAdapter.js +19 -0
  246. package/modules/copper6sspBidAdapter.md +79 -0
  247. package/modules/criteoBidAdapter.js +10 -3
  248. package/modules/e_volutionBidAdapter.js +4 -186
  249. package/modules/emtvBidAdapter.js +5 -198
  250. package/modules/globalsunBidAdapter.js +5 -199
  251. package/modules/id5AnalyticsAdapter.js +1 -2
  252. package/modules/id5IdSystem.js +31 -2
  253. package/modules/id5IdSystem.md +67 -2
  254. package/modules/intentIqIdSystem.js +408 -50
  255. package/modules/intentIqIdSystem.md +92 -0
  256. package/modules/iqzoneBidAdapter.js +5 -224
  257. package/modules/kiviadsBidAdapter.js +5 -199
  258. package/modules/krushmediaBidAdapter.js +25 -143
  259. package/modules/liveIntentIdSystem.js +2 -2
  260. package/modules/loyalBidAdapter.js +4 -178
  261. package/modules/lunamediahbBidAdapter.js +5 -118
  262. package/modules/mabidderBidAdapter.js +1 -2
  263. package/modules/mathildeadsBidAdapter.js +5 -198
  264. package/modules/medianetAnalyticsAdapter.js +1 -2
  265. package/modules/medianetBidAdapter.js +1 -1
  266. package/modules/mgidXBidAdapter.js +14 -207
  267. package/modules/mobfoxpbBidAdapter.js +4 -135
  268. package/modules/mobianRtdProvider.js +2 -2
  269. package/modules/nobidAnalyticsAdapter.js +2 -3
  270. package/modules/orakiBidAdapter.js +19 -0
  271. package/modules/orakiBidAdapter.md +79 -0
  272. package/modules/orbidderBidAdapter.js +4 -2
  273. package/modules/ozoneBidAdapter.js +117 -58
  274. package/modules/paapi.js +2 -1
  275. package/modules/pairIdSystem.js +27 -10
  276. package/modules/pgamsspBidAdapter.js +5 -240
  277. package/modules/pixfutureBidAdapter.js +1 -2
  278. package/modules/playdigoBidAdapter.js +4 -186
  279. package/modules/prebidServerBidAdapter/index.js +10 -3
  280. package/modules/pubCircleBidAdapter.js +5 -218
  281. package/modules/pubmaticAnalyticsAdapter.js +21 -8
  282. package/modules/pubxaiAnalyticsAdapter.js +1 -5
  283. package/modules/qtBidAdapter.js +5 -224
  284. package/modules/raynRtdProvider.js +36 -3
  285. package/modules/seedtagBidAdapter.js +5 -0
  286. package/modules/setupadBidAdapter.js +58 -140
  287. package/modules/smartadserverBidAdapter.js +3 -0
  288. package/modules/smartyadsBidAdapter.js +6 -110
  289. package/modules/smartytechBidAdapter.js +7 -2
  290. package/modules/snigelBidAdapter.js +1 -2
  291. package/modules/tappxBidAdapter.js +1 -2
  292. package/modules/terceptAnalyticsAdapter.js +1 -2
  293. package/modules/topicsFpdModule.js +1 -1
  294. package/modules/twistDigitalBidAdapter.js +1 -12
  295. package/modules/uid2IdSystem.js +0 -1
  296. package/modules/uid2IdSystem_shared.js +0 -1
  297. package/modules/userId/index.js +31 -21
  298. package/modules/vidazooBidAdapter.js +26 -468
  299. package/modules/visiblemeasuresBidAdapter.js +5 -199
  300. package/modules/yahooAdsBidAdapter.js +4 -1
  301. package/modules/yuktamediaAnalyticsAdapter.js +1 -2
  302. package/package.json +1 -1
  303. package/src/auction.js +5 -63
  304. package/src/utils/focusTimeout.js +41 -0
  305. package/src/utils/ttlCollection.js +2 -1
  306. package/src/utils.js +42 -0
  307. package/src/videoCache.js +72 -0
  308. package/test/mocks/videoCacheStub.js +1 -1
  309. package/test/spec/auctionmanager_spec.js +16 -1
  310. package/test/spec/fpd/gdpr_spec.js +24 -2
  311. package/test/spec/libraries/teqblazeUtils/bidderUtils_spec.js +519 -0
  312. package/test/spec/modules/acuityadsBidAdapter_spec.js +79 -43
  313. package/test/spec/modules/adagioRtdProvider_spec.js +62 -1
  314. package/test/spec/modules/admanBidAdapter_spec.js +370 -247
  315. package/test/spec/modules/adnuntiusBidAdapter_spec.js +6 -3
  316. package/test/spec/modules/adprimeBidAdapter_spec.js +225 -78
  317. package/test/spec/modules/axisBidAdapter_spec.js +78 -14
  318. package/test/spec/modules/beyondmediaBidAdapter_spec.js +80 -18
  319. package/test/spec/modules/bliinkBidAdapter_spec.js +8 -2
  320. package/test/spec/modules/boldwinBidAdapter_spec.js +221 -75
  321. package/test/spec/modules/compassBidAdapter_spec.js +130 -16
  322. package/test/spec/modules/contentexchangeBidAdapter_spec.js +134 -21
  323. package/test/spec/modules/conversantAnalyticsAdapter_spec.js +1 -1
  324. package/test/spec/modules/conversantBidAdapter_spec.js +7 -0
  325. package/test/spec/modules/copper6sspBidAdapter_spec.js +514 -0
  326. package/test/spec/modules/e_volutionBidAdapter_spec.js +65 -3
  327. package/test/spec/modules/emtvBidAdapter_spec.js +131 -16
  328. package/test/spec/modules/globalsunBidAdapter_spec.js +130 -16
  329. package/test/spec/modules/id5IdSystem_spec.js +79 -3
  330. package/test/spec/modules/intentIqIdSystem_spec.js +264 -36
  331. package/test/spec/modules/iqzoneBidAdapter_spec.js +66 -12
  332. package/test/spec/modules/kiviadsBidAdapter_spec.js +131 -20
  333. package/test/spec/modules/krushmediaBidAdapter_spec.js +272 -90
  334. package/test/spec/modules/loyalBidAdapter_spec.js +114 -14
  335. package/test/spec/modules/lunamediahbBidAdapter_spec.js +221 -87
  336. package/test/spec/modules/mathildeadsBidAdapter_spec.js +87 -18
  337. package/test/spec/modules/mgidXBidAdapter_spec.js +11 -3
  338. package/test/spec/modules/mobfoxpbBidAdapter_spec.js +229 -91
  339. package/test/spec/modules/orakiBidAdapter_spec.js +510 -0
  340. package/test/spec/modules/ozoneBidAdapter_spec.js +192 -22
  341. package/test/spec/modules/paapi_spec.js +5 -5
  342. package/test/spec/modules/pgamsspBidAdapter_spec.js +83 -16
  343. package/test/spec/modules/playdigoBidAdapter_spec.js +38 -9
  344. package/test/spec/modules/prebidServerBidAdapter_spec.js +14 -0
  345. package/test/spec/modules/pubCircleBidAdapter_spec.js +82 -17
  346. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +52 -5
  347. package/test/spec/modules/qtBidAdapter_spec.js +15 -3
  348. package/test/spec/modules/raynRtdProvider_spec.js +25 -0
  349. package/test/spec/modules/seedtagBidAdapter_spec.js +29 -0
  350. package/test/spec/modules/setupadBidAdapter_spec.js +124 -97
  351. package/test/spec/modules/smartadserverBidAdapter_spec.js +7 -0
  352. package/test/spec/modules/smartyadsBidAdapter_spec.js +6 -83
  353. package/test/spec/modules/smartytechBidAdapter_spec.js +5 -1
  354. package/test/spec/modules/topicsFpdModule_spec.js +43 -59
  355. package/test/spec/modules/twistDigitalBidAdapter_spec.js +5 -3
  356. package/test/spec/modules/userId_spec.js +86 -47
  357. package/test/spec/modules/vidazooBidAdapter_spec.js +21 -23
  358. package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +130 -16
  359. package/test/spec/modules/yahooAdsBidAdapter_spec.js +1 -1
  360. package/test/spec/ortbConverter/converter_spec.js +7 -3
  361. package/test/spec/unit/utils/focusTimeout_spec.js +60 -0
  362. package/test/spec/videoCache_spec.js +56 -53
@@ -1,208 +1,51 @@
1
- import {registerBidder} from '../src/adapters/bidderFactory.js';
1
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
2
2
  import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
3
- import { isFn, deepAccess, logMessage } from '../src/utils.js';
4
- import {config} from '../src/config.js';
5
- import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
3
+ import { deepAccess } from '../src/utils.js';
4
+ import { config } from '../src/config.js';
5
+ import {
6
+ isBidRequestValid,
7
+ buildRequestsBase,
8
+ interpretResponse,
9
+ getUserSyncs,
10
+ buildPlacementProcessingFunction
11
+ } from '../libraries/teqblazeUtils/bidderUtils.js';
6
12
 
7
13
  const GVLID = 149;
8
14
  const BIDDER_CODE = 'adman';
9
15
  const AD_URL = 'https://pub.admanmedia.com/?c=o&m=multi';
10
- const URL_SYNC = 'https://sync.admanmedia.com';
16
+ const SYNC_URL = 'https://sync.admanmedia.com';
11
17
 
12
- function isBidResponseValid(bid) {
13
- if (!bid.requestId || !bid.cpm || !bid.creativeId ||
14
- !bid.ttl || !bid.currency) {
15
- return false;
16
- }
17
- switch (bid['mediaType']) {
18
- case BANNER:
19
- return Boolean(bid.width && bid.height && bid.ad);
20
- case VIDEO:
21
- return Boolean(bid.vastUrl);
22
- case NATIVE:
23
- return Boolean(bid.native && bid.native.title && bid.native.image && bid.native.impressionTrackers);
24
- default:
25
- return false;
26
- }
27
- }
18
+ const addCustomFieldsToPlacement = (bid, bidderRequest, placement) => {
19
+ placement.traffic = placement.adFormat;
28
20
 
29
- function getBidFloor(bid) {
30
- if (!isFn(bid.getFloor)) {
31
- return deepAccess(bid, 'params.bidfloor', 0);
21
+ if (placement.adFormat === VIDEO) {
22
+ placement.wPlayer = placement.playerSize?.[0]?.[0];
23
+ placement.hPlayer = placement.playerSize?.[0]?.[1];
32
24
  }
25
+ };
33
26
 
34
- try {
35
- const bidFloor = bid.getFloor({
36
- currency: 'USD',
37
- mediaType: '*',
38
- size: '*',
39
- });
40
- return bidFloor.floor;
41
- } catch (_) {
42
- return 0
43
- }
44
- }
27
+ const placementProcessingFunction = buildPlacementProcessingFunction({ addCustomFieldsToPlacement });
28
+
29
+ const buildRequests = (validBidRequests = [], bidderRequest = {}) => {
30
+ const request = buildRequestsBase({ adUrl: AD_URL, validBidRequests, bidderRequest, placementProcessingFunction });
31
+ const content = deepAccess(bidderRequest, 'ortb2.site.content', config.getAnyConfig('ortb2.site.content'));
45
32
 
46
- function getUserId(eids, id, source, uidExt) {
47
- if (id) {
48
- var uid = { id };
49
- if (uidExt) {
50
- uid.ext = uidExt;
51
- }
52
- eids.push({
53
- source,
54
- uids: [ uid ]
55
- });
33
+ if (content) {
34
+ request.data.content = content;
56
35
  }
57
- }
36
+
37
+ return request;
38
+ };
58
39
 
59
40
  export const spec = {
60
41
  code: BIDDER_CODE,
61
42
  gvlid: GVLID,
62
43
  supportedMediaTypes: [BANNER, VIDEO, NATIVE],
63
44
 
64
- isBidRequestValid: (bid) => {
65
- return Boolean(bid.bidId && bid.params && !isNaN(bid.params.placementId));
66
- },
67
-
68
- buildRequests: (validBidRequests = [], bidderRequest) => {
69
- // convert Native ORTB definition to old-style prebid native definition
70
- validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
71
- const content = deepAccess(bidderRequest, 'ortb2.site.content', config.getAnyConfig('ortb2.site.content'));
72
-
73
- let winTop = window;
74
- let location;
75
- // TODO: this odd try-catch block was copied in several adapters; it doesn't seem to be correct for cross-origin
76
- try {
77
- location = new URL(bidderRequest.refererInfo.page)
78
- winTop = window.top;
79
- } catch (e) {
80
- location = winTop.location;
81
- logMessage(e);
82
- };
83
- let placements = [];
84
- let request = {
85
- 'deviceWidth': winTop.screen.width,
86
- 'deviceHeight': winTop.screen.height,
87
- 'language': (navigator && navigator.language) ? navigator.language : '',
88
- 'secure': 1,
89
- 'host': location.host,
90
- 'page': location.pathname,
91
- 'placements': placements
92
- };
93
- request.language.indexOf('-') != -1 && (request.language = request.language.split('-')[0])
94
- if (bidderRequest) {
95
- if (bidderRequest.uspConsent) {
96
- request.ccpa = bidderRequest.uspConsent;
97
- }
98
- if (bidderRequest.gdprConsent) {
99
- request.gdpr = {
100
- consentString: bidderRequest.gdprConsent.consentString
101
- };
102
- }
103
- if (content) {
104
- request.content = content;
105
- }
106
- }
107
- const len = validBidRequests.length;
108
-
109
- for (let i = 0; i < len; i++) {
110
- const bid = validBidRequests[i];
111
- const { params, bidId, mediaTypes } = bid;
112
-
113
- const placement = {
114
- placementId: params.placementId,
115
- bidId,
116
- eids: [],
117
- bidFloor: getBidFloor(bid)
118
- }
119
-
120
- if (bid.transactionId) {
121
- placement.ext = placement.ext || {};
122
- placement.ext.tid = bid.transactionId;
123
- }
124
-
125
- if (bid.schain) {
126
- placement.schain = bid.schain;
127
- }
128
-
129
- if (bid.userId) {
130
- getUserId(placement.eids, bid.userId.uid2 && bid.userId.uid2.id, 'uidapi.com');
131
- getUserId(placement.eids, bid.userId.lotamePanoramaId, 'lotame.com');
132
- getUserId(placement.eids, bid.userId.idx, 'idx.lat');
133
- }
134
-
135
- if (mediaTypes?.[BANNER]) {
136
- placement.traffic = BANNER;
137
- placement.sizes = mediaTypes[BANNER].sizes;
138
- } else if (mediaTypes?.[VIDEO]) {
139
- placement.traffic = VIDEO;
140
- placement.playerSize = mediaTypes[VIDEO].playerSize;
141
- placement.minduration = mediaTypes[VIDEO].minduration;
142
- placement.maxduration = mediaTypes[VIDEO].maxduration;
143
- placement.mimes = mediaTypes[VIDEO].mimes;
144
- placement.protocols = mediaTypes[VIDEO].protocols;
145
- placement.startdelay = mediaTypes[VIDEO].startdelay;
146
- placement.placement = mediaTypes[VIDEO].placement;
147
- placement.plcmt = mediaTypes[VIDEO].plcmt;
148
- placement.skip = mediaTypes[VIDEO].skip;
149
- placement.skipafter = mediaTypes[VIDEO].skipafter;
150
- placement.minbitrate = mediaTypes[VIDEO].minbitrate;
151
- placement.maxbitrate = mediaTypes[VIDEO].maxbitrate;
152
- placement.delivery = mediaTypes[VIDEO].delivery;
153
- placement.playbackmethod = mediaTypes[VIDEO].playbackmethod;
154
- placement.api = mediaTypes[VIDEO].api;
155
- placement.linearity = mediaTypes[VIDEO].linearity;
156
- }
157
-
158
- placements.push(placement);
159
- }
160
-
161
- return {
162
- method: 'POST',
163
- url: AD_URL,
164
- data: request
165
- };
166
- },
167
-
168
- interpretResponse: (serverResponse) => {
169
- let response = [];
170
- serverResponse = serverResponse.body;
171
- for (let i = 0; i < serverResponse.length; i++) {
172
- let resItem = serverResponse[i];
173
- if (isBidResponseValid(resItem)) {
174
- const advertiserDomains = resItem.adomain && resItem.adomain.length ? resItem.adomain : [];
175
- resItem.meta = { ...resItem.meta, advertiserDomains };
176
-
177
- response.push(resItem);
178
- }
179
- }
180
- return response;
181
- },
182
-
183
- getUserSyncs: (syncOptions, serverResponses, gdprConsent, uspConsent) => {
184
- let syncType = syncOptions.iframeEnabled ? 'iframe' : 'image';
185
- let syncUrl = URL_SYNC + `/${syncType}?pbjs=1`;
186
- if (gdprConsent && gdprConsent.consentString) {
187
- if (typeof gdprConsent.gdprApplies === 'boolean') {
188
- syncUrl += `&gdpr=${Number(gdprConsent.gdprApplies)}&gdpr_consent=${gdprConsent.consentString}`;
189
- } else {
190
- syncUrl += `&gdpr=0&gdpr_consent=${gdprConsent.consentString}`;
191
- }
192
- }
193
- if (uspConsent && uspConsent.consentString) {
194
- syncUrl += `&ccpa_consent=${uspConsent.consentString}`;
195
- }
196
-
197
- const coppa = config.getConfig('coppa') ? 1 : 0;
198
- syncUrl += `&coppa=${coppa}`;
199
-
200
- return [{
201
- type: syncType,
202
- url: syncUrl
203
- }];
204
- }
205
-
45
+ isBidRequestValid: isBidRequestValid(['placementId']),
46
+ buildRequests,
47
+ interpretResponse,
48
+ getUserSyncs: getUserSyncs(SYNC_URL)
206
49
  };
207
50
 
208
51
  registerBidder(spec);
@@ -252,6 +252,7 @@ export const spec = {
252
252
 
253
253
  const bidderConfig = config.getConfig();
254
254
  if (bidderConfig.useCookie === false) queryParamsAndValues.push('noCookies=true');
255
+ if (bidderConfig.advertiserTransparency === true) queryParamsAndValues.push('advertiserTransparency=true');
255
256
  if (bidderConfig.maxDeals > 0) queryParamsAndValues.push('ds=' + Math.min(bidderConfig.maxDeals, MAXIMUM_DEALS_LIMIT));
256
257
 
257
258
  const bidRequests = {};
@@ -1,183 +1,46 @@
1
- import {registerBidder} from '../src/adapters/bidderFactory.js';
1
+ import { registerBidder } from '../src/adapters/bidderFactory.js';
2
2
  import { BANNER, NATIVE, VIDEO } from '../src/mediaTypes.js';
3
- import { isFn, deepAccess, logMessage } from '../src/utils.js';
4
- import { config } from '../src/config.js';
5
- import { convertOrtbRequestToProprietaryNative } from '../src/native.js';
6
- import {getAllOrtbKeywords} from '../libraries/keywords/keywords.js';
3
+ import { getAllOrtbKeywords } from '../libraries/keywords/keywords.js';
4
+ import {
5
+ isBidRequestValid,
6
+ buildRequestsBase,
7
+ interpretResponse,
8
+ getUserSyncs,
9
+ buildPlacementProcessingFunction
10
+ } from '../libraries/teqblazeUtils/bidderUtils.js';
7
11
 
8
12
  const BIDDER_CODE = 'adprime';
9
13
  const AD_URL = 'https://delta.adprime.com/pbjs';
10
14
  const SYNC_URL = 'https://sync.adprime.com';
11
15
 
12
- function isBidResponseValid(bid) {
13
- if (!bid.requestId || !bid.cpm || !bid.creativeId ||
14
- !bid.ttl || !bid.currency || !bid.meta) {
15
- return false;
16
+ const addCustomFieldsToPlacement = (bid, bidderRequest, placement) => {
17
+ if (placement.adFormat === VIDEO) {
18
+ placement.wPlayer = placement.playerSize?.[0]?.[0];
19
+ placement.hPlayer = placement.playerSize?.[0]?.[1];
16
20
  }
17
- switch (bid.mediaType) {
18
- case BANNER:
19
- return Boolean(bid.width && bid.height && bid.ad);
20
- case VIDEO:
21
- return Boolean(bid.vastUrl);
22
- case NATIVE:
23
- return Boolean(bid.native && bid.native.title && bid.native.image && bid.native.impressionTrackers);
24
- default:
25
- return false;
21
+ if (bid.userId && bid.userId.idl_env) {
22
+ placement.identeties = {};
23
+ placement.identeties.identityLink = bid.userId.idl_env;
26
24
  }
27
- }
28
25
 
29
- function getBidFloor(bid) {
30
- if (!isFn(bid.getFloor)) {
31
- return deepAccess(bid, 'params.bidfloor', 0);
32
- }
26
+ placement.keywords = getAllOrtbKeywords(bidderRequest.ortb2, bid.params.keywords);
27
+ placement.audiences = bid.params.audiences || [];
28
+ };
33
29
 
34
- try {
35
- const bidFloor = bid.getFloor({
36
- currency: 'USD',
37
- mediaType: '*',
38
- size: '*',
39
- });
40
- return bidFloor.floor;
41
- } catch (_) {
42
- return 0
43
- }
44
- }
30
+ const placementProcessingFunction = buildPlacementProcessingFunction({ addCustomFieldsToPlacement });
31
+
32
+ const buildRequests = (validBidRequests = [], bidderRequest = {}) => {
33
+ return buildRequestsBase({ adUrl: AD_URL, validBidRequests, bidderRequest, placementProcessingFunction });
34
+ };
45
35
 
46
36
  export const spec = {
47
37
  code: BIDDER_CODE,
48
38
  supportedMediaTypes: [BANNER, VIDEO, NATIVE],
49
39
 
50
- isBidRequestValid: (bid) => {
51
- return Boolean(bid.bidId && bid.params && bid.params.placementId);
52
- },
53
-
54
- buildRequests: (validBidRequests = [], bidderRequest) => {
55
- // convert Native ORTB definition to old-style prebid native definition
56
- validBidRequests = convertOrtbRequestToProprietaryNative(validBidRequests);
57
-
58
- let winTop = window;
59
- let location;
60
- // TODO: this odd try-catch block was copied in several adapters; it doesn't seem to be correct for cross-origin
61
- try {
62
- location = new URL(bidderRequest.refererInfo.page)
63
- winTop = window.top;
64
- } catch (e) {
65
- location = winTop.location;
66
- logMessage(e);
67
- };
68
- let placements = [];
69
- let request = {
70
- deviceWidth: winTop.screen.width,
71
- deviceHeight: winTop.screen.height,
72
- language: (navigator && navigator.language) ? navigator.language.split('-')[0] : '',
73
- secure: 1,
74
- host: location.host,
75
- page: location.pathname,
76
- placements: placements
77
- };
78
- if (bidderRequest) {
79
- if (bidderRequest.uspConsent) {
80
- request.ccpa = bidderRequest.uspConsent;
81
- }
82
- if (bidderRequest.gdprConsent) {
83
- request.gdpr = bidderRequest.gdprConsent
84
- }
85
- }
86
- const len = validBidRequests.length;
87
-
88
- for (let i = 0; i < len; i++) {
89
- let bid = validBidRequests[i];
90
- const { mediaTypes } = bid;
91
- const placement = {};
92
- let sizes
93
- let identeties = {}
94
- if (mediaTypes) {
95
- if (mediaTypes[BANNER] && mediaTypes[BANNER].sizes) {
96
- placement.adFormat = BANNER;
97
- sizes = mediaTypes[BANNER].sizes
98
- } else if (mediaTypes[VIDEO] && mediaTypes[VIDEO].playerSize) {
99
- placement.adFormat = VIDEO;
100
- sizes = mediaTypes[VIDEO].playerSize
101
- placement.minduration = mediaTypes[VIDEO].minduration;
102
- placement.maxduration = mediaTypes[VIDEO].maxduration;
103
- placement.mimes = mediaTypes[VIDEO].mimes;
104
- placement.protocols = mediaTypes[VIDEO].protocols;
105
- placement.startdelay = mediaTypes[VIDEO].startdelay;
106
- placement.placement = mediaTypes[VIDEO].placement;
107
- placement.skip = mediaTypes[VIDEO].skip;
108
- placement.skipafter = mediaTypes[VIDEO].skipafter;
109
- placement.minbitrate = mediaTypes[VIDEO].minbitrate;
110
- placement.maxbitrate = mediaTypes[VIDEO].maxbitrate;
111
- placement.delivery = mediaTypes[VIDEO].delivery;
112
- placement.playbackmethod = mediaTypes[VIDEO].playbackmethod;
113
- placement.api = mediaTypes[VIDEO].api;
114
- placement.linearity = mediaTypes[VIDEO].linearity;
115
- } else {
116
- placement.adFormat = NATIVE;
117
- placement.native = mediaTypes[NATIVE];
118
- }
119
- }
120
- if (bid.userId && bid.userId.idl_env) {
121
- identeties.identityLink = bid.userId.idl_env
122
- }
123
-
124
- placements.push({
125
- ...placement,
126
- placementId: bid.params.placementId,
127
- bidId: bid.bidId,
128
- sizes: sizes || [],
129
- wPlayer: sizes ? sizes[0] : 0,
130
- hPlayer: sizes ? sizes[1] : 0,
131
- schain: bid.schain || {},
132
- keywords: getAllOrtbKeywords(bidderRequest.ortb2, bid.params.keywords),
133
- audiences: bid.params.audiences || [],
134
- identeties,
135
- bidFloor: getBidFloor(bid)
136
- });
137
- }
138
- return {
139
- method: 'POST',
140
- url: AD_URL,
141
- data: request
142
- };
143
- },
144
-
145
- interpretResponse: (serverResponse) => {
146
- let response = [];
147
- for (let i = 0; i < serverResponse.body.length; i++) {
148
- let resItem = serverResponse.body[i];
149
- if (isBidResponseValid(resItem)) {
150
- const advertiserDomains = resItem.adomain && resItem.adomain.length ? resItem.adomain : [];
151
- resItem.meta = { ...resItem.meta, advertiserDomains };
152
-
153
- response.push(resItem);
154
- }
155
- }
156
- return response;
157
- },
158
-
159
- getUserSyncs: (syncOptions, serverResponses, gdprConsent, uspConsent) => {
160
- let syncType = syncOptions.iframeEnabled ? 'iframe' : 'image';
161
- let syncUrl = SYNC_URL + `/${syncType}?pbjs=1`;
162
- if (gdprConsent && gdprConsent.consentString) {
163
- if (typeof gdprConsent.gdprApplies === 'boolean') {
164
- syncUrl += `&gdpr=${Number(gdprConsent.gdprApplies)}&gdpr_consent=${gdprConsent.consentString}`;
165
- } else {
166
- syncUrl += `&gdpr=0&gdpr_consent=${gdprConsent.consentString}`;
167
- }
168
- }
169
- if (uspConsent && uspConsent.consentString) {
170
- syncUrl += `&ccpa_consent=${uspConsent.consentString}`;
171
- }
172
-
173
- const coppa = config.getConfig('coppa') ? 1 : 0;
174
- syncUrl += `&coppa=${coppa}`;
175
-
176
- return [{
177
- type: syncType,
178
- url: syncUrl
179
- }];
180
- }
40
+ isBidRequestValid: isBidRequestValid(['placementId']),
41
+ buildRequests,
42
+ interpretResponse,
43
+ getUserSyncs: getUserSyncs(SYNC_URL)
181
44
  };
182
45
 
183
46
  registerBidder(spec);
@@ -3,7 +3,6 @@ import { ajax } from '../src/ajax.js';
3
3
  import adapter from '../libraries/analyticsAdapter/AnalyticsAdapter.js';
4
4
  import adapterManager from '../src/adapterManager.js';
5
5
  import { EVENTS } from '../src/constants.js';
6
- import {getGlobal} from '../src/prebidGlobal.js';
7
6
 
8
7
  /**
9
8
  * Analytics adapter from adxcg.com
@@ -123,7 +122,7 @@ function send (data) {
123
122
  ats: adxcgAnalyticsAdapter.context.auctionTimestamp,
124
123
  aav: adxcgAnalyticsVersion,
125
124
  iob: intersectionObserverAvailable(window) ? '1' : '0',
126
- pbv: getGlobal().version,
125
+ pbv: '$prebid.version$',
127
126
  sz: window.screen.width + 'x' + window.screen.height
128
127
  }
129
128
  });