prebid.js 5.14.0 → 5.18.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 (397) hide show
  1. package/.devcontainer/Dockerfile +11 -0
  2. package/.devcontainer/devcontainer.json +27 -0
  3. package/.devcontainer/postCreate.sh +6 -0
  4. package/allowedModules.js +2 -1
  5. package/integrationExamples/gpt/afpExample.html +242 -0
  6. package/integrationExamples/gpt/afpGamExample.html +152 -0
  7. package/integrationExamples/gpt/weboramaRtdProvider_example.html +126 -0
  8. package/modules/.submodules.json +29 -27
  9. package/modules/33acrossBidAdapter.js +23 -20
  10. package/modules/a4gBidAdapter.js +3 -3
  11. package/modules/ablidaBidAdapter.js +2 -2
  12. package/modules/adWMGBidAdapter.js +4 -4
  13. package/modules/adagioAnalyticsAdapter.js +4 -4
  14. package/modules/adagioBidAdapter.js +85 -82
  15. package/modules/adbookpspBidAdapter.js +56 -54
  16. package/modules/adfBidAdapter.js +24 -16
  17. package/modules/adgenerationBidAdapter.js +42 -18
  18. package/modules/adhashBidAdapter.js +105 -0
  19. package/modules/adhashBidAdapter.md +1 -1
  20. package/modules/adkernelAdnAnalyticsAdapter.js +6 -6
  21. package/modules/adkernelAdnBidAdapter.js +23 -23
  22. package/modules/adkernelBidAdapter.js +49 -44
  23. package/modules/adlooxAdServerVideo.js +26 -26
  24. package/modules/adlooxAnalyticsAdapter.js +38 -35
  25. package/modules/adlooxRtdProvider.js +49 -46
  26. package/modules/admanBidAdapter.js +4 -4
  27. package/modules/admixerBidAdapter.js +13 -2
  28. package/modules/admixerIdSystem.js +4 -4
  29. package/modules/adnowBidAdapter.js +4 -4
  30. package/modules/adnuntiusBidAdapter.js +6 -5
  31. package/modules/adoceanBidAdapter.js +10 -10
  32. package/modules/adpartnerBidAdapter.js +3 -3
  33. package/modules/adpod.js +45 -42
  34. package/modules/adprimeBidAdapter.js +4 -4
  35. package/modules/adqueryBidAdapter.js +204 -0
  36. package/modules/adqueryBidAdapter.md +32 -0
  37. package/modules/adrelevantisBidAdapter.js +30 -27
  38. package/modules/adriverBidAdapter.js +13 -13
  39. package/modules/adtargetBidAdapter.js +24 -24
  40. package/modules/adtelligentBidAdapter.js +29 -29
  41. package/modules/adtrueBidAdapter.js +35 -35
  42. package/modules/aduptechBidAdapter.js +10 -10
  43. package/modules/advangelistsBidAdapter.js +14 -14
  44. package/modules/adxcgAnalyticsAdapter.js +5 -5
  45. package/modules/adxcgBidAdapter.js +56 -56
  46. package/modules/adxpremiumAnalyticsAdapter.js +17 -17
  47. package/modules/adyoulikeBidAdapter.js +11 -11
  48. package/modules/afpBidAdapter.js +166 -0
  49. package/modules/afpBidAdapter.md +348 -0
  50. package/modules/ajaBidAdapter.js +12 -12
  51. package/modules/akamaiDAPIdSystem.js +9 -9
  52. package/modules/aniviewBidAdapter.js +2 -2
  53. package/modules/aolBidAdapter.js +15 -14
  54. package/modules/apacdexBidAdapter.js +16 -16
  55. package/modules/appnexusBidAdapter.js +59 -59
  56. package/modules/apstreamBidAdapter.js +5 -5
  57. package/modules/asoBidAdapter.js +30 -30
  58. package/modules/astraoneBidAdapter.js +2 -2
  59. package/modules/atsAnalyticsAdapter.js +35 -30
  60. package/modules/audiencerunBidAdapter.js +15 -15
  61. package/modules/automatadBidAdapter.js +2 -2
  62. package/modules/axonixBidAdapter.js +7 -7
  63. package/modules/beachfrontBidAdapter.js +23 -23
  64. package/modules/beopBidAdapter.js +22 -22
  65. package/modules/bidViewabilityIO.js +7 -7
  66. package/modules/bidglassBidAdapter.js +8 -8
  67. package/modules/bidscubeBidAdapter.js +3 -3
  68. package/modules/bizzclickBidAdapter.js +10 -10
  69. package/modules/bliinkBidAdapter.js +58 -32
  70. package/modules/bliinkBidAdapter.md +29 -6
  71. package/modules/bluebillywigBidAdapter.js +30 -30
  72. package/modules/boldwinBidAdapter.js +4 -4
  73. package/modules/braveBidAdapter.js +5 -5
  74. package/modules/bridgewellBidAdapter.js +5 -5
  75. package/modules/brightMountainMediaBidAdapter.js +10 -10
  76. package/modules/brightcomBidAdapter.js +18 -18
  77. package/modules/britepoolIdSystem.js +7 -7
  78. package/modules/browsiRtdProvider.js +8 -8
  79. package/modules/bucksenseBidAdapter.js +9 -9
  80. package/modules/buzzoolaBidAdapter.js +4 -4
  81. package/modules/byDataAnalyticsAdapter.js +12 -12
  82. package/modules/ccxBidAdapter.js +38 -38
  83. package/modules/cleanmedianetBidAdapter.js +9 -9
  84. package/modules/clickforceBidAdapter.js +4 -4
  85. package/modules/cointrafficBidAdapter.js +4 -4
  86. package/modules/coinzillaBidAdapter.js +2 -2
  87. package/modules/colossussspBidAdapter.js +7 -3
  88. package/modules/concertAnalyticsAdapter.js +3 -3
  89. package/modules/concertBidAdapter.js +16 -17
  90. package/modules/connectadBidAdapter.js +13 -13
  91. package/modules/consentManagement.js +29 -28
  92. package/modules/consentManagementUsp.js +14 -14
  93. package/modules/consumableBidAdapter.js +3 -3
  94. package/modules/contentexchangeBidAdapter.js +5 -5
  95. package/modules/conversantBidAdapter.js +32 -31
  96. package/modules/cpmstarBidAdapter.js +8 -9
  97. package/modules/craftBidAdapter.js +10 -10
  98. package/modules/criteoBidAdapter.js +16 -16
  99. package/modules/criteoIdSystem.js +5 -5
  100. package/modules/currency.js +18 -18
  101. package/modules/cwireBidAdapter.js +272 -0
  102. package/modules/cwireBidAdapter.md +43 -0
  103. package/modules/datablocksBidAdapter.js +12 -12
  104. package/modules/deepintentBidAdapter.js +13 -13
  105. package/modules/dgkeywordRtdProvider.js +10 -11
  106. package/modules/districtmDMXBidAdapter.js +15 -15
  107. package/modules/dmdIdSystem.js +5 -5
  108. package/modules/docereeBidAdapter.js +9 -9
  109. package/modules/dspxBidAdapter.js +5 -5
  110. package/modules/ebdrBidAdapter.js +9 -9
  111. package/modules/emx_digitalBidAdapter.js +23 -23
  112. package/modules/enrichmentFpdModule.js +10 -9
  113. package/modules/eplanningAnalyticsAdapter.js +2 -2
  114. package/modules/eplanningBidAdapter.js +10 -10
  115. package/modules/etargetBidAdapter.js +4 -4
  116. package/modules/express.js +9 -10
  117. package/modules/fabrickIdSystem.js +6 -6
  118. package/modules/feedadBidAdapter.js +5 -5
  119. package/modules/fintezaAnalyticsAdapter.js +4 -4
  120. package/modules/flocIdSystem.js +5 -5
  121. package/modules/fluctBidAdapter.js +6 -5
  122. package/modules/freewheel-sspBidAdapter.js +6 -6
  123. package/modules/gamoshiBidAdapter.js +22 -22
  124. package/modules/gdprEnforcement.js +13 -14
  125. package/modules/getintentBidAdapter.js +3 -4
  126. package/modules/glimpseBidAdapter.js +160 -48
  127. package/modules/glimpseBidAdapter.md +11 -74
  128. package/modules/gmosspBidAdapter.js +17 -17
  129. package/modules/gnetBidAdapter.js +5 -5
  130. package/modules/googleAnalyticsAdapter.js +6 -6
  131. package/modules/gothamadsBidAdapter.js +9 -9
  132. package/modules/gptPreAuction.js +7 -7
  133. package/modules/gridBidAdapter.js +15 -16
  134. package/modules/gridNMBidAdapter.js +214 -63
  135. package/modules/growadvertisingBidAdapter.js +7 -8
  136. package/modules/gumgumBidAdapter.js +19 -13
  137. package/modules/h12mediaBidAdapter.js +12 -12
  138. package/modules/haloIdSystem.js +8 -8
  139. package/modules/hybridBidAdapter.js +7 -7
  140. package/modules/iasRtdProvider.js +79 -63
  141. package/modules/id5IdSystem.js +24 -24
  142. package/modules/idImportLibrary.js +35 -35
  143. package/modules/idxIdSystem.js +3 -3
  144. package/modules/impactifyBidAdapter.js +10 -10
  145. package/modules/improvedigitalBidAdapter.js +36 -36
  146. package/modules/imuIdSystem.js +6 -6
  147. package/modules/inmarBidAdapter.js +2 -2
  148. package/modules/innityBidAdapter.js +3 -3
  149. package/modules/inskinBidAdapter.js +14 -2
  150. package/modules/inskinBidAdapter.md +5 -4
  151. package/modules/instreamTracking.js +5 -5
  152. package/modules/integr8BidAdapter.js +4 -4
  153. package/modules/intentIqIdSystem.js +7 -7
  154. package/modules/interactiveOffersBidAdapter.js +5 -5
  155. package/modules/invibesBidAdapter.js +53 -19
  156. package/modules/invisiblyAnalyticsAdapter.js +5 -5
  157. package/modules/iqmBidAdapter.js +19 -19
  158. package/modules/iqzoneBidAdapter.js +5 -5
  159. package/modules/ixBidAdapter.js +73 -73
  160. package/modules/jixieBidAdapter.js +6 -6
  161. package/modules/justpremiumBidAdapter.js +5 -1
  162. package/modules/kargoBidAdapter.js +16 -9
  163. package/modules/kargoBidAdapter.md +20 -0
  164. package/modules/kinessoIdSystem.js +8 -8
  165. package/modules/koblerBidAdapter.js +12 -12
  166. package/modules/konduitAnalyticsAdapter.js +4 -4
  167. package/modules/konduitWrapper.js +14 -14
  168. package/modules/krushmediaBidAdapter.js +4 -4
  169. package/modules/kubientBidAdapter.js +5 -5
  170. package/modules/limelightDigitalBidAdapter.js +4 -4
  171. package/modules/liveIntentIdSystem.js +4 -5
  172. package/modules/livewrappedAnalyticsAdapter.js +27 -15
  173. package/modules/livewrappedBidAdapter.js +7 -7
  174. package/modules/liveyieldAnalyticsAdapter.js +13 -13
  175. package/modules/lockerdomeBidAdapter.js +2 -2
  176. package/modules/loganBidAdapter.js +4 -4
  177. package/modules/lotamePanoramaIdSystem.js +13 -13
  178. package/modules/lunamediahbBidAdapter.js +2 -2
  179. package/modules/madvertiseBidAdapter.js +3 -3
  180. package/modules/marsmediaBidAdapter.js +26 -26
  181. package/modules/mathildeadsBidAdapter.js +5 -5
  182. package/modules/mediaforceBidAdapter.js +11 -11
  183. package/modules/mediakeysBidAdapter.js +444 -53
  184. package/modules/mediakeysBidAdapter.md +108 -0
  185. package/modules/medianetAnalyticsAdapter.js +48 -125
  186. package/modules/medianetBidAdapter.js +38 -33
  187. package/modules/medianetRtdProvider.js +7 -7
  188. package/modules/merkleIdSystem.js +19 -19
  189. package/modules/mgidBidAdapter.js +50 -50
  190. package/modules/microadBidAdapter.js +3 -3
  191. package/modules/multibid/index.js +15 -13
  192. package/modules/mwOpenLinkIdSystem.js +7 -7
  193. package/modules/mytargetBidAdapter.js +112 -0
  194. package/modules/nativoBidAdapter.js +46 -31
  195. package/modules/nativoBidAdapter.md +0 -1
  196. package/modules/naveggIdSystem.js +3 -3
  197. package/modules/nextMillenniumBidAdapter.js +6 -6
  198. package/modules/nextrollBidAdapter.js +375 -0
  199. package/modules/nobidBidAdapter.js +12 -11
  200. package/modules/novatiqIdSystem.js +8 -8
  201. package/modules/oguryBidAdapter.js +22 -6
  202. package/modules/oneVideoBidAdapter.js +20 -20
  203. package/modules/onomagicBidAdapter.js +16 -16
  204. package/modules/ooloAnalyticsAdapter.js +13 -13
  205. package/modules/openwebBidAdapter.js +26 -26
  206. package/modules/openxAnalyticsAdapter.js +33 -33
  207. package/modules/openxBidAdapter.js +29 -29
  208. package/modules/operaadsBidAdapter.js +53 -53
  209. package/modules/optimeraRtdProvider.js +9 -9
  210. package/modules/optoutBidAdapter.js +3 -3
  211. package/modules/orbidderBidAdapter.js +3 -3
  212. package/modules/outbrainBidAdapter.js +13 -13
  213. package/modules/ozoneBidAdapter.js +131 -131
  214. package/modules/padsquadBidAdapter.js +4 -4
  215. package/modules/parrableIdSystem.js +17 -17
  216. package/modules/pixfutureBidAdapter.js +45 -25
  217. package/modules/pixfutureBidAdapter.md +127 -0
  218. package/modules/prebidServerBidAdapter/index.js +109 -105
  219. package/modules/prebidmanagerAnalyticsAdapter.js +7 -7
  220. package/modules/priceFloors.js +47 -47
  221. package/modules/proxistoreBidAdapter.js +6 -8
  222. package/modules/pubCommonId.js +11 -11
  223. package/modules/pubProvidedIdSystem.js +3 -3
  224. package/modules/publinkIdSystem.js +23 -7
  225. package/modules/publinkIdSystem.md +7 -2
  226. package/modules/pubmaticAnalyticsAdapter.js +16 -16
  227. package/modules/pubmaticBidAdapter.js +109 -93
  228. package/modules/pubmaticBidAdapter.md +1 -1
  229. package/modules/pubperfAnalyticsAdapter.js +3 -3
  230. package/modules/pubwiseAnalyticsAdapter.js +6 -6
  231. package/modules/pubwiseBidAdapter.js +23 -23
  232. package/modules/pubxBidAdapter.js +2 -2
  233. package/modules/pubxaiAnalyticsAdapter.js +7 -7
  234. package/modules/pulsepointBidAdapter.js +13 -13
  235. package/modules/pxyzBidAdapter.js +7 -7
  236. package/modules/quantcastBidAdapter.js +16 -16
  237. package/modules/radsBidAdapter.js +5 -5
  238. package/modules/realvuAnalyticsAdapter.js +5 -7
  239. package/modules/reconciliationRtdProvider.js +6 -6
  240. package/modules/relaidoBidAdapter.js +44 -38
  241. package/modules/resetdigitalBidAdapter.js +3 -4
  242. package/modules/revcontentBidAdapter.js +9 -9
  243. package/modules/rhythmoneBidAdapter.js +17 -16
  244. package/modules/richaudienceBidAdapter.js +9 -9
  245. package/modules/riseBidAdapter.js +26 -26
  246. package/modules/riseBidAdapter.md +1 -3
  247. package/modules/roxotAnalyticsAdapter.js +14 -14
  248. package/modules/rtbhouseBidAdapter.js +7 -7
  249. package/modules/rtbsapeBidAdapter.js +3 -4
  250. package/modules/rtdModule/index.js +3 -3
  251. package/modules/rubiconAnalyticsAdapter.js +82 -82
  252. package/modules/rubiconBidAdapter.js +72 -68
  253. package/modules/scaleableAnalyticsAdapter.js +2 -2
  254. package/modules/seedingAllianceBidAdapter.js +231 -0
  255. package/modules/seedtagBidAdapter.js +10 -10
  256. package/modules/sharedIdSystem.js +11 -11
  257. package/modules/sharethroughAnalyticsAdapter.js +8 -8
  258. package/modules/sharethroughBidAdapter.js +20 -27
  259. package/modules/showheroes-bsBidAdapter.js +23 -23
  260. package/modules/sigmoidAnalyticsAdapter.js +4 -5
  261. package/modules/sirdataRtdProvider.js +34 -34
  262. package/modules/sizeMappingV2.js +39 -39
  263. package/modules/slimcutBidAdapter.js +121 -0
  264. package/modules/smaatoBidAdapter.js +44 -44
  265. package/modules/smartadserverBidAdapter.js +7 -7
  266. package/modules/smartxBidAdapter.js +72 -72
  267. package/modules/smartyadsBidAdapter.js +2 -2
  268. package/modules/smilewantedBidAdapter.js +6 -6
  269. package/modules/sonobiAnalyticsAdapter.js +23 -23
  270. package/modules/sortableAnalyticsAdapter.js +5 -5
  271. package/modules/sortableBidAdapter.js +28 -28
  272. package/modules/sovrnAnalyticsAdapter.js +5 -5
  273. package/modules/sovrnBidAdapter.js +22 -22
  274. package/modules/spotxBidAdapter.js +97 -83
  275. package/modules/sspBCBidAdapter.js +216 -21
  276. package/modules/sspBCBidAdapter.md +1 -1
  277. package/modules/staqAnalyticsAdapter.js +9 -9
  278. package/modules/stroeerCoreBidAdapter.js +16 -16
  279. package/modules/sublimeBidAdapter.js +6 -6
  280. package/modules/talkadsBidAdapter.js +129 -0
  281. package/modules/talkadsBidAdapter.md +60 -0
  282. package/modules/tapadIdSystem.js +3 -3
  283. package/modules/tappxBidAdapter.js +63 -64
  284. package/modules/teadsBidAdapter.js +20 -20
  285. package/modules/telariaBidAdapter.js +17 -17
  286. package/modules/temedyaBidAdapter.js +4 -4
  287. package/modules/terceptAnalyticsAdapter.js +4 -4
  288. package/modules/theAdxBidAdapter.js +16 -16
  289. package/modules/timeoutRtdProvider.js +15 -15
  290. package/modules/tpmnBidAdapter.js +3 -3
  291. package/modules/trionBidAdapter.js +15 -15
  292. package/modules/tripleliftBidAdapter.js +27 -24
  293. package/modules/truereachBidAdapter.js +4 -4
  294. package/modules/trustxBidAdapter.js +22 -18
  295. package/modules/ucfunnelBidAdapter.js +3 -3
  296. package/modules/uid2IdSystem.js +6 -6
  297. package/modules/underdogmediaBidAdapter.js +4 -4
  298. package/modules/unicornBidAdapter.js +15 -15
  299. package/modules/unifiedIdSystem.js +4 -4
  300. package/modules/unrulyBidAdapter.js +16 -16
  301. package/modules/userId/eids.js +9 -9
  302. package/modules/userId/index.js +37 -35
  303. package/modules/validationFpdModule/index.js +15 -15
  304. package/modules/vdoaiBidAdapter.js +2 -2
  305. package/modules/verizonMediaIdSystem.js +5 -5
  306. package/modules/vidazooBidAdapter.js +5 -5
  307. package/modules/videobyteBidAdapter.js +24 -24
  308. package/modules/videoreachBidAdapter.js +7 -7
  309. package/modules/vidoomyBidAdapter.js +105 -22
  310. package/modules/viewdeosDXBidAdapter.js +17 -17
  311. package/modules/visxBidAdapter.js +21 -29
  312. package/modules/voxBidAdapter.js +7 -7
  313. package/modules/vuukleBidAdapter.js +2 -2
  314. package/modules/waardexBidAdapter.js +26 -26
  315. package/modules/weboramaRtdProvider.js +174 -0
  316. package/modules/weboramaRtdProvider.md +70 -0
  317. package/modules/winrBidAdapter.js +27 -27
  318. package/modules/wipesBidAdapter.js +2 -2
  319. package/modules/yahoosspBidAdapter.js +637 -0
  320. package/modules/yahoosspBidAdapter.md +795 -0
  321. package/modules/yieldlabBidAdapter.js +57 -12
  322. package/modules/yieldlabBidAdapter.md +16 -1
  323. package/modules/yieldliftBidAdapter.js +9 -9
  324. package/modules/yieldmoBidAdapter.js +64 -50
  325. package/modules/yieldoneAnalyticsAdapter.js +6 -6
  326. package/modules/yieldoneBidAdapter.js +11 -11
  327. package/modules/yuktamediaAnalyticsAdapter.js +15 -15
  328. package/modules/zeotapIdPlusIdSystem.js +2 -2
  329. package/modules/zetaBidAdapter.js +6 -6
  330. package/modules/zeta_global_sspBidAdapter.js +14 -14
  331. package/package.json +1 -1
  332. package/src/AnalyticsAdapter.js +6 -6
  333. package/src/Renderer.js +10 -8
  334. package/src/adapterManager.js +45 -42
  335. package/src/adloader.js +6 -6
  336. package/src/ajax.js +8 -9
  337. package/src/auction.js +26 -23
  338. package/src/bidfactory.js +2 -2
  339. package/src/config.js +52 -50
  340. package/src/cpmBucketManager.js +2 -2
  341. package/src/prebid.js +85 -81
  342. package/src/storageManager.js +5 -5
  343. package/src/targeting.js +25 -26
  344. package/src/userSync.js +35 -22
  345. package/src/videoCache.js +2 -2
  346. package/test/.eslintrc.js +2 -1
  347. package/test/spec/modules/adfBidAdapter_spec.js +55 -0
  348. package/test/spec/modules/adgenerationBidAdapter_spec.js +121 -50
  349. package/test/spec/modules/adhashBidAdapter_spec.js +155 -0
  350. package/test/spec/modules/adnuntiusBidAdapter_spec.js +68 -0
  351. package/test/spec/modules/adqueryBidAdapter_spec.js +185 -0
  352. package/test/spec/modules/afpBidAdapter_spec.js +306 -0
  353. package/test/spec/modules/atsAnalyticsAdapter_spec.js +37 -2
  354. package/test/spec/modules/bliinkBidAdapter_spec.js +87 -36
  355. package/test/spec/modules/colossussspBidAdapter_spec.js +14 -6
  356. package/test/spec/modules/cwireBidAdapter_spec.js +246 -0
  357. package/test/spec/modules/eplanningBidAdapter_spec.js +3 -3
  358. package/test/spec/modules/glimpseBidAdapter_spec.js +302 -204
  359. package/test/spec/modules/gridBidAdapter_spec.js +38 -2
  360. package/test/spec/modules/gridNMBidAdapter_spec.js +121 -47
  361. package/test/spec/modules/gumgumBidAdapter_spec.js +27 -6
  362. package/test/spec/modules/iasRtdProvider_spec.js +71 -6
  363. package/test/spec/modules/inskinBidAdapter_spec.js +10 -1
  364. package/test/spec/modules/invibesBidAdapter_spec.js +114 -2
  365. package/test/spec/modules/justpremiumBidAdapter_spec.js +16 -2
  366. package/test/spec/modules/livewrappedAnalyticsAdapter_spec.js +33 -7
  367. package/test/spec/modules/mediakeysBidAdapter_spec.js +406 -51
  368. package/test/spec/modules/medianetAnalyticsAdapter_spec.js +39 -7
  369. package/test/spec/modules/medianetBidAdapter_spec.js +62 -1
  370. package/test/spec/modules/mytargetBidAdapter_spec.js +199 -0
  371. package/test/spec/modules/nativoBidAdapter_spec.js +50 -3
  372. package/test/spec/modules/nextrollBidAdapter_spec.js +290 -0
  373. package/test/spec/modules/nobidBidAdapter_spec.js +65 -1
  374. package/test/spec/modules/oguryBidAdapter_spec.js +120 -7
  375. package/test/spec/modules/publinkIdSystem_spec.js +42 -12
  376. package/test/spec/modules/pubmaticBidAdapter_spec.js +217 -1
  377. package/test/spec/modules/relaidoBidAdapter_spec.js +21 -20
  378. package/test/spec/modules/rubiconAnalyticsAdapter_spec.js +100 -81
  379. package/test/spec/modules/rubiconAnalyticsSchema.json +5 -2
  380. package/test/spec/modules/seedingAllianceAdapter_spec.js +186 -0
  381. package/test/spec/modules/sharethroughBidAdapter_spec.js +156 -136
  382. package/test/spec/modules/slimcutBidAdapter_spec.js +200 -0
  383. package/test/spec/modules/spotxBidAdapter_spec.js +36 -0
  384. package/test/spec/modules/sspBCBidAdapter_spec.js +210 -62
  385. package/test/spec/modules/talkadsBidAdapter_spec.js +231 -0
  386. package/test/spec/modules/tappxBidAdapter_spec.js +39 -3
  387. package/test/spec/modules/tripleliftBidAdapter_spec.js +2 -0
  388. package/test/spec/modules/trustxBidAdapter_spec.js +35 -2
  389. package/test/spec/modules/unicornBidAdapter_spec.js +4 -4
  390. package/test/spec/modules/visxBidAdapter_spec.js +48 -4
  391. package/test/spec/modules/weboramaRtdProvider_spec.js +288 -0
  392. package/test/spec/modules/yahoosspBidAdapter_spec.js +1332 -0
  393. package/test/spec/modules/yieldlabBidAdapter_spec.js +65 -1
  394. package/test/spec/modules/yieldmoBidAdapter_spec.js +30 -9
  395. package/test/spec/unit/pbjs_api_spec.js +4 -0
  396. package/test/spec/userSync_spec.js +30 -2
  397. package/modules/turktelekomBidAdapter.md +0 -49
@@ -1,9 +1,9 @@
1
+ import { generateUUID, mergeDeep, deepAccess, parseUrl, logError, pick, isEmpty, logWarn, debugTurnedOn, parseQS, getWindowLocation, isAdUnitCodeMatchingSlot, isNumber, isGptPubadsDefined, _each, deepSetValue } from '../src/utils.js';
1
2
  import adapter from '../src/AnalyticsAdapter.js';
2
3
  import adapterManager from '../src/adapterManager.js';
3
4
  import CONSTANTS from '../src/constants.json';
4
5
  import { ajax } from '../src/ajax.js';
5
6
  import { config } from '../src/config.js';
6
- import * as utils from '../src/utils.js';
7
7
  import { getGlobal } from '../src/prebidGlobal.js';
8
8
  import { getStorageManager } from '../src/storageManager.js';
9
9
 
@@ -43,7 +43,7 @@ const {
43
43
  } = CONSTANTS;
44
44
 
45
45
  let serverConfig;
46
- config.getConfig('s2sConfig', ({s2sConfig}) => {
46
+ config.getConfig('s2sConfig', ({ s2sConfig }) => {
47
47
  serverConfig = s2sConfig;
48
48
  });
49
49
 
@@ -60,23 +60,23 @@ const cache = {
60
60
  const BID_REJECTED_IPF = 'rejected-ipf';
61
61
 
62
62
  export let rubiConf = {
63
- pvid: utils.generateUUID().slice(0, 8),
63
+ pvid: generateUUID().slice(0, 8),
64
64
  analyticsEventDelay: 0
65
65
  };
66
66
  // we are saving these as global to this module so that if a pub accidentally overwrites the entire
67
67
  // rubicon object, then we do not lose other data
68
68
  config.getConfig('rubicon', config => {
69
- utils.mergeDeep(rubiConf, config.rubicon);
70
- if (utils.deepAccess(config, 'rubicon.updatePageView') === true) {
71
- rubiConf.pvid = utils.generateUUID().slice(0, 8)
69
+ mergeDeep(rubiConf, config.rubicon);
70
+ if (deepAccess(config, 'rubicon.updatePageView') === true) {
71
+ rubiConf.pvid = generateUUID().slice(0, 8)
72
72
  }
73
73
  });
74
74
 
75
75
  export function getHostNameFromReferer(referer) {
76
76
  try {
77
- rubiconAdapter.referrerHostname = utils.parseUrl(referer, {noDecodeWholeURL: true}).hostname;
77
+ rubiconAdapter.referrerHostname = parseUrl(referer, { noDecodeWholeURL: true }).hostname;
78
78
  } catch (e) {
79
- utils.logError('Rubicon Analytics: Unable to parse hostname from supplied url: ', referer, e);
79
+ logError('Rubicon Analytics: Unable to parse hostname from supplied url: ', referer, e);
80
80
  rubiconAdapter.referrerHostname = '';
81
81
  }
82
82
  return rubiconAdapter.referrerHostname
@@ -117,10 +117,10 @@ function formatSource(src) {
117
117
 
118
118
  function sendMessage(auctionId, bidWonId, trigger) {
119
119
  function formatBid(bid) {
120
- return utils.pick(bid, [
120
+ return pick(bid, [
121
121
  'bidder',
122
122
  'bidderDetail',
123
- 'bidId', bidId => utils.deepAccess(bid, 'bidResponse.pbsBidId') || utils.deepAccess(bid, 'bidResponse.seatBidId') || bidId,
123
+ 'bidId', bidId => deepAccess(bid, 'bidResponse.pbsBidId') || deepAccess(bid, 'bidResponse.seatBidId') || bidId,
124
124
  'status',
125
125
  'error',
126
126
  'source', (source, bid) => {
@@ -133,7 +133,7 @@ function sendMessage(auctionId, bidWonId, trigger) {
133
133
  'clientLatencyMillis',
134
134
  'serverLatencyMillis',
135
135
  'params',
136
- 'bidResponse', bidResponse => bidResponse ? utils.pick(bidResponse, [
136
+ 'bidResponse', bidResponse => bidResponse ? pick(bidResponse, [
137
137
  'bidPriceUSD',
138
138
  'dealId',
139
139
  'dimensions',
@@ -146,13 +146,13 @@ function sendMessage(auctionId, bidWonId, trigger) {
146
146
  ]);
147
147
  }
148
148
  function formatBidWon(bid) {
149
- return Object.assign(formatBid(bid), utils.pick(bid.adUnit, [
149
+ return Object.assign(formatBid(bid), pick(bid.adUnit, [
150
150
  'adUnitCode',
151
151
  'transactionId',
152
152
  'videoAdFormat', () => bid.videoAdFormat,
153
153
  'mediaTypes'
154
154
  ]), {
155
- adserverTargeting: !utils.isEmpty(cache.targeting[bid.adUnit.adUnitCode]) ? stringProperties(cache.targeting[bid.adUnit.adUnitCode]) : undefined,
155
+ adserverTargeting: !isEmpty(cache.targeting[bid.adUnit.adUnitCode]) ? stringProperties(cache.targeting[bid.adUnit.adUnitCode]) : undefined,
156
156
  bidwonStatus: 'success', // hard-coded for now
157
157
  accountId,
158
158
  siteId: bid.siteId,
@@ -187,13 +187,13 @@ function sendMessage(auctionId, bidWonId, trigger) {
187
187
  let bid = auctionCache.bids[bidId];
188
188
  let adUnit = adUnits[bid.adUnit.adUnitCode];
189
189
  if (!adUnit) {
190
- adUnit = adUnits[bid.adUnit.adUnitCode] = utils.pick(bid.adUnit, [
190
+ adUnit = adUnits[bid.adUnit.adUnitCode] = pick(bid.adUnit, [
191
191
  'adUnitCode',
192
192
  'transactionId',
193
193
  'mediaTypes',
194
194
  'dimensions',
195
- 'adserverTargeting', () => !utils.isEmpty(cache.targeting[bid.adUnit.adUnitCode]) ? stringProperties(cache.targeting[bid.adUnit.adUnitCode]) : undefined,
196
- 'gam', gam => !utils.isEmpty(gam) ? gam : undefined,
195
+ 'adserverTargeting', () => !isEmpty(cache.targeting[bid.adUnit.adUnitCode]) ? stringProperties(cache.targeting[bid.adUnit.adUnitCode]) : undefined,
196
+ 'gam', gam => !isEmpty(gam) ? gam : undefined,
197
197
  'pbAdSlot',
198
198
  'pattern'
199
199
  ]);
@@ -203,10 +203,10 @@ function sendMessage(auctionId, bidWonId, trigger) {
203
203
 
204
204
  // Add site and zone id if not there and if we found a rubicon bidder
205
205
  if ((!adUnit.siteId || !adUnit.zoneId) && rubiconAliases.indexOf(bid.bidder) !== -1) {
206
- if (utils.deepAccess(bid, 'params.accountId') == accountId) {
206
+ if (deepAccess(bid, 'params.accountId') == accountId) {
207
207
  adUnit.accountId = parseInt(accountId);
208
- adUnit.siteId = parseInt(utils.deepAccess(bid, 'params.siteId'));
209
- adUnit.zoneId = parseInt(utils.deepAccess(bid, 'params.zoneId'));
208
+ adUnit.siteId = parseInt(deepAccess(bid, 'params.siteId'));
209
+ adUnit.zoneId = parseInt(deepAccess(bid, 'params.zoneId'));
210
210
  }
211
211
  }
212
212
 
@@ -229,7 +229,7 @@ function sendMessage(auctionId, bidWonId, trigger) {
229
229
  // This allows the bidWon events to have these params even in the case of a delayed render
230
230
  Object.keys(auctionCache.bids).forEach(function (bidId) {
231
231
  let adCode = auctionCache.bids[bidId].adUnit.adUnitCode;
232
- Object.assign(auctionCache.bids[bidId], utils.pick(adUnitMap[adCode], ['accountId', 'siteId', 'zoneId']));
232
+ Object.assign(auctionCache.bids[bidId], pick(adUnitMap[adCode], ['accountId', 'siteId', 'zoneId']));
233
233
  });
234
234
 
235
235
  let auction = {
@@ -243,20 +243,20 @@ function sendMessage(auctionId, bidWonId, trigger) {
243
243
  // pick our of top level floor data we want to send!
244
244
  if (auctionCache.floorData) {
245
245
  if (auctionCache.floorData.location === 'noData') {
246
- auction.floors = utils.pick(auctionCache.floorData, [
246
+ auction.floors = pick(auctionCache.floorData, [
247
247
  'location',
248
248
  'fetchStatus',
249
249
  'floorProvider as provider'
250
250
  ]);
251
251
  } else {
252
- auction.floors = utils.pick(auctionCache.floorData, [
252
+ auction.floors = pick(auctionCache.floorData, [
253
253
  'location',
254
254
  'modelVersion as modelName',
255
255
  'modelWeight',
256
256
  'modelTimestamp',
257
257
  'skipped',
258
- 'enforcement', () => utils.deepAccess(auctionCache.floorData, 'enforcements.enforceJS'),
259
- 'dealsEnforced', () => utils.deepAccess(auctionCache.floorData, 'enforcements.floorDeals'),
258
+ 'enforcement', () => deepAccess(auctionCache.floorData, 'enforcements.enforceJS'),
259
+ 'dealsEnforced', () => deepAccess(auctionCache.floorData, 'enforcements.floorDeals'),
260
260
  'skipRate',
261
261
  'fetchStatus',
262
262
  'floorMin',
@@ -267,7 +267,7 @@ function sendMessage(auctionId, bidWonId, trigger) {
267
267
 
268
268
  // gather gdpr info
269
269
  if (auctionCache.gdprConsent) {
270
- auction.gdpr = utils.pick(auctionCache.gdprConsent, [
270
+ auction.gdpr = pick(auctionCache.gdprConsent, [
271
271
  'gdprApplies as applies',
272
272
  'consentString',
273
273
  'apiVersion as version'
@@ -276,13 +276,13 @@ function sendMessage(auctionId, bidWonId, trigger) {
276
276
 
277
277
  // gather session info
278
278
  if (auctionCache.session) {
279
- message.session = utils.pick(auctionCache.session, [
279
+ message.session = pick(auctionCache.session, [
280
280
  'id',
281
281
  'pvid',
282
282
  'start',
283
283
  'expires'
284
284
  ]);
285
- if (!utils.isEmpty(auctionCache.session.fpkvs)) {
285
+ if (!isEmpty(auctionCache.session.fpkvs)) {
286
286
  message.fpkvs = Object.keys(auctionCache.session.fpkvs).map(key => {
287
287
  return { key, value: auctionCache.session.fpkvs[key] };
288
288
  });
@@ -294,7 +294,7 @@ function sendMessage(auctionId, bidWonId, trigger) {
294
294
  }
295
295
 
296
296
  if (auctionCache.userIds.length) {
297
- auction.user = {ids: auctionCache.userIds};
297
+ auction.user = { ids: auctionCache.userIds };
298
298
  }
299
299
 
300
300
  message.auctions = [auction];
@@ -329,14 +329,14 @@ function sendMessage(auctionId, bidWonId, trigger) {
329
329
  }
330
330
 
331
331
  function adUnitIsOnlyInstream(adUnit) {
332
- return adUnit.mediaTypes && Object.keys(adUnit.mediaTypes).length === 1 && utils.deepAccess(adUnit, 'mediaTypes.video.context') === 'instream';
332
+ return adUnit.mediaTypes && Object.keys(adUnit.mediaTypes).length === 1 && deepAccess(adUnit, 'mediaTypes.video.context') === 'instream';
333
333
  }
334
334
 
335
335
  function getBidPrice(bid) {
336
336
  // get the cpm from bidResponse
337
337
  let cpm;
338
338
  let currency;
339
- if (bid.status === BID_REJECTED && utils.deepAccess(bid, 'floorData.cpmAfterAdjustments')) {
339
+ if (bid.status === BID_REJECTED && deepAccess(bid, 'floorData.cpmAfterAdjustments')) {
340
340
  // if bid was rejected and bid.floorData.cpmAfterAdjustments use it
341
341
  cpm = bid.floorData.cpmAfterAdjustments;
342
342
  currency = bid.floorData.floorCurrency;
@@ -356,7 +356,7 @@ function getBidPrice(bid) {
356
356
  try {
357
357
  return Number(prebidGlobal.convertCurrency(cpm, currency, 'USD'));
358
358
  } catch (err) {
359
- utils.logWarn('Rubicon Analytics Adapter: Could not determine the bidPriceUSD of the bid ', bid);
359
+ logWarn('Rubicon Analytics Adapter: Could not determine the bidPriceUSD of the bid ', bid);
360
360
  }
361
361
  }
362
362
 
@@ -367,7 +367,7 @@ export function parseBidResponse(bid, previousBidResponse, auctionFloorData) {
367
367
  if (previousBidResponse && previousBidResponse.bidPriceUSD > responsePrice) {
368
368
  return previousBidResponse;
369
369
  }
370
- return utils.pick(bid, [
370
+ return pick(bid, [
371
371
  'bidPriceUSD', () => responsePrice,
372
372
  'dealId',
373
373
  'status',
@@ -375,16 +375,16 @@ export function parseBidResponse(bid, previousBidResponse, auctionFloorData) {
375
375
  'dimensions', () => {
376
376
  const width = bid.width || bid.playerWidth;
377
377
  const height = bid.height || bid.playerHeight;
378
- return (width && height) ? {width, height} : undefined;
378
+ return (width && height) ? { width, height } : undefined;
379
379
  },
380
380
  // Handling use case where pbs sends back 0 or '0' bidIds
381
- 'pbsBidId', pbsBidId => pbsBidId == 0 ? utils.generateUUID() : pbsBidId,
382
- 'seatBidId', seatBidId => seatBidId == 0 ? utils.generateUUID() : seatBidId,
383
- 'floorValue', () => utils.deepAccess(bid, 'floorData.floorValue'),
384
- 'floorRuleValue', () => utils.deepAccess(bid, 'floorData.floorRuleValue'),
385
- 'floorRule', () => utils.debugTurnedOn() ? utils.deepAccess(bid, 'floorData.floorRule') : undefined,
381
+ 'pbsBidId', pbsBidId => pbsBidId == 0 ? generateUUID() : pbsBidId,
382
+ 'seatBidId', seatBidId => seatBidId == 0 ? generateUUID() : seatBidId,
383
+ 'floorValue', () => deepAccess(bid, 'floorData.floorValue'),
384
+ 'floorRuleValue', () => deepAccess(bid, 'floorData.floorRuleValue'),
385
+ 'floorRule', () => debugTurnedOn() ? deepAccess(bid, 'floorData.floorRule') : undefined,
386
386
  'adomains', () => {
387
- let adomains = utils.deepAccess(bid, 'meta.advertiserDomains');
387
+ let adomains = deepAccess(bid, 'meta.advertiserDomains');
388
388
  return Array.isArray(adomains) && adomains.length > 0 ? adomains.slice(0, 10) : undefined
389
389
  }
390
390
  ]);
@@ -397,7 +397,7 @@ function getUtmParams() {
397
397
  let search;
398
398
 
399
399
  try {
400
- search = utils.parseQS(utils.getWindowLocation().search);
400
+ search = parseQS(getWindowLocation().search);
401
401
  } catch (e) {
402
402
  search = {};
403
403
  }
@@ -445,7 +445,7 @@ function getRpaCookie() {
445
445
  try {
446
446
  return JSON.parse(window.atob(encodedCookie));
447
447
  } catch (e) {
448
- utils.logError(`Rubicon Analytics: Unable to decode ${COOKIE_NAME} value: `, e);
448
+ logError(`Rubicon Analytics: Unable to decode ${COOKIE_NAME} value: `, e);
449
449
  }
450
450
  }
451
451
  return {};
@@ -455,7 +455,7 @@ function setRpaCookie(decodedCookie) {
455
455
  try {
456
456
  storage.setDataInLocalStorage(COOKIE_NAME, window.btoa(JSON.stringify(decodedCookie)));
457
457
  } catch (e) {
458
- utils.logError(`Rubicon Analytics: Unable to encode ${COOKIE_NAME} value: `, e);
458
+ logError(`Rubicon Analytics: Unable to encode ${COOKIE_NAME} value: `, e);
459
459
  }
460
460
  }
461
461
 
@@ -468,7 +468,7 @@ function updateRpaCookie() {
468
468
  decodedRpaCookie.expires < currentTime
469
469
  ) {
470
470
  decodedRpaCookie = {
471
- id: utils.generateUUID(),
471
+ id: generateUUID(),
472
472
  start: currentTime,
473
473
  expires: currentTime + END_EXPIRE_TIME, // six hours later,
474
474
  }
@@ -476,7 +476,7 @@ function updateRpaCookie() {
476
476
  // possible that decodedRpaCookie is undefined, and if it is, we probably are blocked by storage or some other exception
477
477
  if (Object.keys(decodedRpaCookie).length) {
478
478
  decodedRpaCookie.lastSeen = currentTime;
479
- decodedRpaCookie.fpkvs = {...decodedRpaCookie.fpkvs, ...getFpkvs()};
479
+ decodedRpaCookie.fpkvs = { ...decodedRpaCookie.fpkvs, ...getFpkvs() };
480
480
  decodedRpaCookie.pvid = rubiConf.pvid;
481
481
  setRpaCookie(decodedRpaCookie)
482
482
  }
@@ -485,7 +485,7 @@ function updateRpaCookie() {
485
485
 
486
486
  function subscribeToGamSlots() {
487
487
  window.googletag.pubads().addEventListener('slotRenderEnded', event => {
488
- const isMatchingAdSlot = utils.isAdUnitCodeMatchingSlot(event.slot);
488
+ const isMatchingAdSlot = isAdUnitCodeMatchingSlot(event.slot);
489
489
  // loop through auctions and adUnits and mark the info
490
490
  Object.keys(cache.auctions).forEach(auctionId => {
491
491
  (Object.keys(cache.auctions[auctionId].bids) || []).forEach(bidId => {
@@ -495,12 +495,12 @@ function subscribeToGamSlots() {
495
495
  // mark this adUnit as having been rendered by gam
496
496
  cache.auctions[auctionId].gamHasRendered[bid.adUnit.adUnitCode] = true;
497
497
 
498
- bid.adUnit.gam = utils.pick(event, [
498
+ bid.adUnit.gam = pick(event, [
499
499
  // these come in as `null` from Gpt, which when stringified does not get removed
500
500
  // so set explicitly to undefined when not a number
501
- 'advertiserId', advertiserId => utils.isNumber(advertiserId) ? advertiserId : undefined,
502
- 'creativeId', creativeId => utils.isNumber(event.sourceAgnosticCreativeId) ? event.sourceAgnosticCreativeId : utils.isNumber(creativeId) ? creativeId : undefined,
503
- 'lineItemId', lineItemId => utils.isNumber(event.sourceAgnosticLineItemId) ? event.sourceAgnosticLineItemId : utils.isNumber(lineItemId) ? lineItemId : undefined,
501
+ 'advertiserId', advertiserId => isNumber(advertiserId) ? advertiserId : undefined,
502
+ 'creativeId', creativeId => isNumber(event.sourceAgnosticCreativeId) ? event.sourceAgnosticCreativeId : isNumber(creativeId) ? creativeId : undefined,
503
+ 'lineItemId', lineItemId => isNumber(event.sourceAgnosticLineItemId) ? event.sourceAgnosticLineItemId : isNumber(lineItemId) ? lineItemId : undefined,
504
504
  'adSlot', () => event.slot.getAdUnitPath(),
505
505
  'isSlotEmpty', () => event.isEmpty || undefined
506
506
  ]);
@@ -520,7 +520,7 @@ function subscribeToGamSlots() {
520
520
  });
521
521
  }
522
522
 
523
- let baseAdapter = adapter({analyticsType: 'endpoint'});
523
+ let baseAdapter = adapter({ analyticsType: 'endpoint' });
524
524
  let rubiconAdapter = Object.assign({}, baseAdapter, {
525
525
  MODULE_INITIALIZED_TIME: Date.now(),
526
526
  referrerHostname: '',
@@ -535,7 +535,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
535
535
  if (config.options.endpoint) {
536
536
  this.getUrl = () => config.options.endpoint;
537
537
  } else {
538
- utils.logError('required endpoint missing from rubicon analytics');
538
+ logError('required endpoint missing from rubicon analytics');
539
539
  error = true;
540
540
  }
541
541
  if (typeof config.options.sampling !== 'undefined') {
@@ -543,7 +543,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
543
543
  }
544
544
  if (typeof config.options.samplingFactor !== 'undefined') {
545
545
  if (typeof config.options.sampling !== 'undefined') {
546
- utils.logWarn('Both options.samplingFactor and options.sampling enabled in rubicon analytics, defaulting to samplingFactor');
546
+ logWarn('Both options.samplingFactor and options.sampling enabled in rubicon analytics, defaulting to samplingFactor');
547
547
  }
548
548
  samplingFactor = parseFloat(config.options.samplingFactor);
549
549
  config.options.sampling = 1 / samplingFactor;
@@ -553,10 +553,10 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
553
553
  let validSamplingFactors = [1, 10, 20, 40, 100];
554
554
  if (validSamplingFactors.indexOf(samplingFactor) === -1) {
555
555
  error = true;
556
- utils.logError('invalid samplingFactor for rubicon analytics: ' + samplingFactor + ', must be one of ' + validSamplingFactors.join(', '));
556
+ logError('invalid samplingFactor for rubicon analytics: ' + samplingFactor + ', must be one of ' + validSamplingFactors.join(', '));
557
557
  } else if (!accountId) {
558
558
  error = true;
559
- utils.logError('required accountId missing for rubicon analytics');
559
+ logError('required accountId missing for rubicon analytics');
560
560
  }
561
561
 
562
562
  if (!error) {
@@ -570,38 +570,38 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
570
570
  cache.gpt.registered = false;
571
571
  baseAdapter.disableAnalytics.apply(this, arguments);
572
572
  },
573
- track({eventType, args}) {
573
+ track({ eventType, args }) {
574
574
  switch (eventType) {
575
575
  case AUCTION_INIT:
576
576
  // set the rubicon aliases
577
577
  setRubiconAliases(adapterManager.aliasRegistry);
578
- let cacheEntry = utils.pick(args, [
578
+ let cacheEntry = pick(args, [
579
579
  'timestamp',
580
580
  'timeout'
581
581
  ]);
582
582
  cacheEntry.bids = {};
583
583
  cacheEntry.bidsWon = {};
584
584
  cacheEntry.gamHasRendered = {};
585
- cacheEntry.referrer = utils.deepAccess(args, 'bidderRequests.0.refererInfo.referer');
586
- const floorData = utils.deepAccess(args, 'bidderRequests.0.bids.0.floorData');
585
+ cacheEntry.referrer = deepAccess(args, 'bidderRequests.0.refererInfo.referer');
586
+ const floorData = deepAccess(args, 'bidderRequests.0.bids.0.floorData');
587
587
  if (floorData) {
588
- cacheEntry.floorData = {...floorData};
588
+ cacheEntry.floorData = { ...floorData };
589
589
  }
590
- cacheEntry.gdprConsent = utils.deepAccess(args, 'bidderRequests.0.gdprConsent');
590
+ cacheEntry.gdprConsent = deepAccess(args, 'bidderRequests.0.gdprConsent');
591
591
  cacheEntry.session = storage.localStorageIsEnabled() && updateRpaCookie();
592
- cacheEntry.userIds = Object.keys(utils.deepAccess(args, 'bidderRequests.0.bids.0.userId', {})).map(id => {
593
- return {provider: id, hasId: true}
592
+ cacheEntry.userIds = Object.keys(deepAccess(args, 'bidderRequests.0.bids.0.userId', {})).map(id => {
593
+ return { provider: id, hasId: true }
594
594
  });
595
595
  cache.auctions[args.auctionId] = cacheEntry;
596
596
  // register to listen to gpt events if not done yet
597
- if (!cache.gpt.registered && utils.isGptPubadsDefined()) {
597
+ if (!cache.gpt.registered && isGptPubadsDefined()) {
598
598
  subscribeToGamSlots();
599
599
  cache.gpt.registered = true;
600
600
  } else if (!cache.gpt.registered) {
601
601
  cache.gpt.registered = true;
602
602
  window.googletag = window.googletag || {};
603
603
  window.googletag.cmd = window.googletag.cmd || [];
604
- window.googletag.cmd.push(function() {
604
+ window.googletag.cmd.push(function () {
605
605
  subscribeToGamSlots();
606
606
  });
607
607
  }
@@ -615,7 +615,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
615
615
  cache.auctions[args.auctionId].gamHasRendered[bid.adUnitCode] = false;
616
616
  }
617
617
 
618
- memo[bid.bidId] = utils.pick(bid, [
618
+ memo[bid.bidId] = pick(bid, [
619
619
  'bidder', bidder => bidder.toLowerCase(),
620
620
  'bidId',
621
621
  'status', () => 'no-bid', // default a bid to no-bid until response is recieved or bid is timed out
@@ -624,7 +624,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
624
624
  switch (bid.bidder) {
625
625
  // specify bidder params we want here
626
626
  case 'rubicon':
627
- return utils.pick(params, [
627
+ return pick(params, [
628
628
  'accountId',
629
629
  'siteId',
630
630
  'zoneId'
@@ -640,9 +640,9 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
640
640
  204: 'mid-roll',
641
641
  205: 'post-roll',
642
642
  207: 'vertical'
643
- })[utils.deepAccess(bid, 'params.video.size_id')];
643
+ })[deepAccess(bid, 'params.video.size_id')];
644
644
  } else {
645
- let startdelay = parseInt(utils.deepAccess(bid, 'params.video.startdelay'), 10);
645
+ let startdelay = parseInt(deepAccess(bid, 'params.video.startdelay'), 10);
646
646
  if (!isNaN(startdelay)) {
647
647
  if (startdelay > 0) {
648
648
  return 'mid-roll';
@@ -655,7 +655,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
655
655
  }
656
656
  }
657
657
  },
658
- 'adUnit', () => utils.pick(bid, [
658
+ 'adUnit', () => pick(bid, [
659
659
  'adUnitCode',
660
660
  'transactionId',
661
661
  'sizes as dimensions', sizes => sizes.map(sizeToDimensions),
@@ -669,7 +669,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
669
669
  if (typeof types === 'object') {
670
670
  if (!bid.sizes) {
671
671
  bid.dimensions = [];
672
- utils._each(types, (type) =>
672
+ _each(types, (type) =>
673
673
  bid.dimensions = bid.dimensions.concat(
674
674
  type.sizes.map(sizeToDimensions)
675
675
  )
@@ -680,12 +680,12 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
680
680
  return ['banner'];
681
681
  },
682
682
  'gam', () => {
683
- if (utils.deepAccess(bid, 'ortb2Imp.ext.data.adserver.name') === 'gam') {
684
- return {adSlot: bid.ortb2Imp.ext.data.adserver.adslot}
683
+ if (deepAccess(bid, 'ortb2Imp.ext.data.adserver.name') === 'gam') {
684
+ return { adSlot: bid.ortb2Imp.ext.data.adserver.adslot }
685
685
  }
686
686
  },
687
- 'pbAdSlot', () => utils.deepAccess(bid, 'ortb2Imp.ext.data.pbadslot'),
688
- 'pattern', () => utils.deepAccess(bid, 'ortb2Imp.ext.data.aupname')
687
+ 'pbAdSlot', () => deepAccess(bid, 'ortb2Imp.ext.data.pbadslot'),
688
+ 'pattern', () => deepAccess(bid, 'ortb2Imp.ext.data.aupname')
689
689
  ])
690
690
  ]);
691
691
  return memo;
@@ -695,22 +695,22 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
695
695
  let auctionEntry = cache.auctions[args.auctionId];
696
696
 
697
697
  if (!auctionEntry.bids[args.requestId] && args.originalRequestId) {
698
- auctionEntry.bids[args.requestId] = {...auctionEntry.bids[args.originalRequestId]};
698
+ auctionEntry.bids[args.requestId] = { ...auctionEntry.bids[args.originalRequestId] };
699
699
  auctionEntry.bids[args.requestId].bidId = args.requestId;
700
700
  auctionEntry.bids[args.requestId].bidderDetail = args.targetingBidder;
701
701
  }
702
702
 
703
703
  let bid = auctionEntry.bids[args.requestId];
704
704
  // If floor resolved gptSlot but we have not yet, then update the adUnit to have the adSlot name
705
- if (!utils.deepAccess(bid, 'adUnit.gam.adSlot') && utils.deepAccess(args, 'floorData.matchedFields.gptSlot')) {
706
- utils.deepSetValue(bid, 'adUnit.gam.adSlot', args.floorData.matchedFields.gptSlot);
705
+ if (!deepAccess(bid, 'adUnit.gam.adSlot') && deepAccess(args, 'floorData.matchedFields.gptSlot')) {
706
+ deepSetValue(bid, 'adUnit.gam.adSlot', args.floorData.matchedFields.gptSlot);
707
707
  }
708
708
  // if we have not set enforcements yet set it
709
- if (!utils.deepAccess(auctionEntry, 'floorData.enforcements') && utils.deepAccess(args, 'floorData.enforcements')) {
710
- auctionEntry.floorData.enforcements = {...args.floorData.enforcements};
709
+ if (!deepAccess(auctionEntry, 'floorData.enforcements') && deepAccess(args, 'floorData.enforcements')) {
710
+ auctionEntry.floorData.enforcements = { ...args.floorData.enforcements };
711
711
  }
712
712
  if (!bid) {
713
- utils.logError('Rubicon Anlytics Adapter Error: Could not find associated bid request for bid response with requestId: ', args.requestId);
713
+ logError('Rubicon Anlytics Adapter Error: Could not find associated bid request for bid response with requestId: ', args.requestId);
714
714
  break;
715
715
  }
716
716
  bid.source = formatSource(bid.source || args.source);
@@ -733,7 +733,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
733
733
  bid.bidResponse = parseBidResponse(args, bid.bidResponse);
734
734
  break;
735
735
  case BIDDER_DONE:
736
- const serverError = utils.deepAccess(args, 'serverErrors.0');
736
+ const serverError = deepAccess(args, 'serverErrors.0');
737
737
  const serverResponseTimeMs = args.serverResponseTimeMs;
738
738
  args.bids.forEach(bid => {
739
739
  let cachedBid = cache.auctions[bid.auctionId].bids[bid.bidId || bid.requestId];
@@ -803,7 +803,7 @@ let rubiconAdapter = Object.assign({}, baseAdapter, {
803
803
  bid.status = 'error';
804
804
  bid.error = {
805
805
  code: 'timeout-error',
806
- message: 'marked by prebid.js as timeout' // will help us diff if timeout was set by PBS or PBJS
806
+ description: 'prebid.js timeout' // will help us diff if timeout was set by PBS or PBJS
807
807
  };
808
808
  }
809
809
  });