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
@@ -876,14 +876,15 @@ describe('adnuntiusBidAdapter', function () {
876
876
  config.setBidderConfig({
877
877
  bidders: ['adnuntius'],
878
878
  config: {
879
- useCookie: false
879
+ useCookie: false,
880
+ advertiserTransparency: true
880
881
  }
881
882
  });
882
883
 
883
884
  const request = config.runWithBidder('adnuntius', () => spec.buildRequests(bidderRequests, {}));
884
885
  expect(request.length).to.equal(1);
885
886
  expect(request[0]).to.have.property('url')
886
- expect(request[0].url).to.equal(ENDPOINT_URL_NOCOOKIE);
887
+ expect(request[0].url).to.equal(ENDPOINT_URL_NOCOOKIE + '&advertiserTransparency=true');
887
888
  });
888
889
  });
889
890
 
@@ -981,7 +982,9 @@ describe('adnuntiusBidAdapter', function () {
981
982
  config.setBidderConfig({
982
983
  bidders: ['adnuntius'],
983
984
  config: {
984
- maxDeals: 2
985
+ maxDeals: 2,
986
+ useCookie: 'ignore-this',
987
+ advertiserTransparency: 'ignore-this-as-well'
985
988
  }
986
989
  });
987
990
 
@@ -1,131 +1,256 @@
1
- import {expect} from 'chai';
2
- import {spec} from '../../../modules/adprimeBidAdapter.js';
3
- import { BANNER, VIDEO } from '../../../src/mediaTypes.js';
1
+ import { expect } from 'chai';
2
+ import { spec } from '../../../modules/adprimeBidAdapter.js';
3
+ import { BANNER, VIDEO, NATIVE } from '../../../src/mediaTypes.js';
4
+ import { getUniqueIdentifierStr } from '../../../src/utils.js';
4
5
 
5
- describe('AdprimebBidAdapter', function () {
6
- const bid = {
7
- bidId: '23fhj33i987f',
8
- bidder: 'adprime',
6
+ const bidder = 'adprime';
7
+
8
+ describe('AdprimeBidAdapter', function () {
9
+ const userIdAsEids = [{
10
+ source: 'test.org',
11
+ uids: [{
12
+ id: '01**********',
13
+ atype: 1,
14
+ ext: {
15
+ third: '01***********'
16
+ }
17
+ }]
18
+ }];
19
+ const bids = [
20
+ {
21
+ bidId: getUniqueIdentifierStr(),
22
+ bidder: bidder,
23
+ mediaTypes: {
24
+ [BANNER]: {
25
+ sizes: [[300, 250]]
26
+ }
27
+ },
28
+ params: {
29
+ placementId: 'testBanner'
30
+ },
31
+ userIdAsEids
32
+ },
33
+ {
34
+ bidId: getUniqueIdentifierStr(),
35
+ bidder: bidder,
36
+ mediaTypes: {
37
+ [VIDEO]: {
38
+ playerSize: [[300, 300]],
39
+ minduration: 5,
40
+ maxduration: 60
41
+ }
42
+ },
43
+ params: {
44
+ placementId: 'testVideo'
45
+ },
46
+ userIdAsEids
47
+ },
48
+ {
49
+ bidId: getUniqueIdentifierStr(),
50
+ bidder: bidder,
51
+ mediaTypes: {
52
+ [NATIVE]: {
53
+ native: {
54
+ title: {
55
+ required: true
56
+ },
57
+ body: {
58
+ required: true
59
+ },
60
+ icon: {
61
+ required: true,
62
+ size: [64, 64]
63
+ }
64
+ }
65
+ }
66
+ },
67
+ params: {
68
+ placementId: 'testNative'
69
+ },
70
+ userIdAsEids
71
+ }
72
+ ];
73
+
74
+ const invalidBid = {
75
+ bidId: getUniqueIdentifierStr(),
76
+ bidder: bidder,
9
77
  mediaTypes: {
10
- banner: {
11
- sizes: [[300, 250]],
78
+ [BANNER]: {
79
+ sizes: [[300, 250]]
12
80
  }
13
81
  },
14
82
  params: {
15
- placementId: 'testBanner'
83
+
16
84
  }
17
- };
85
+ }
18
86
 
19
87
  const bidderRequest = {
88
+ uspConsent: '1---',
89
+ gdprConsent: {
90
+ consentString: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
91
+ vendorData: {}
92
+ },
20
93
  refererInfo: {
21
- referer: 'test.com'
22
- }
94
+ referer: 'https://test.com',
95
+ page: 'https://test.com'
96
+ },
97
+ ortb2: {
98
+ device: {
99
+ w: 1512,
100
+ h: 982,
101
+ language: 'en-UK'
102
+ }
103
+ },
104
+ timeout: 500
23
105
  };
24
106
 
25
107
  describe('isBidRequestValid', function () {
26
- it('Should return true if there are bidId, params and placementId parameters present', function () {
27
- expect(spec.isBidRequestValid(bid)).to.be.true;
108
+ it('Should return true if there are bidId, params and key parameters present', function () {
109
+ expect(spec.isBidRequestValid(bids[0])).to.be.true;
28
110
  });
29
111
  it('Should return false if at least one of parameters is not present', function () {
30
- delete bid.params.placementId;
31
- expect(spec.isBidRequestValid(bid)).to.be.false;
112
+ expect(spec.isBidRequestValid(invalidBid)).to.be.false;
32
113
  });
33
114
  });
34
115
 
35
116
  describe('buildRequests', function () {
36
- let serverRequest = spec.buildRequests([bid], bidderRequest);
117
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
118
+
37
119
  it('Creates a ServerRequest object with method, URL and data', function () {
38
120
  expect(serverRequest).to.exist;
39
121
  expect(serverRequest.method).to.exist;
40
122
  expect(serverRequest.url).to.exist;
41
123
  expect(serverRequest.data).to.exist;
42
124
  });
125
+
43
126
  it('Returns POST method', function () {
44
127
  expect(serverRequest.method).to.equal('POST');
45
128
  });
129
+
46
130
  it('Returns valid URL', function () {
47
131
  expect(serverRequest.url).to.equal('https://delta.adprime.com/pbjs');
48
132
  });
49
- it('Returns valid data if array of bids is valid', function () {
133
+
134
+ it('Returns general data valid', function () {
50
135
  let data = serverRequest.data;
51
136
  expect(data).to.be.an('object');
52
- expect(data).to.have.all.keys('deviceWidth', 'deviceHeight', 'language', 'secure', 'host', 'page', 'placements');
137
+ expect(data).to.have.all.keys('deviceWidth',
138
+ 'deviceHeight',
139
+ 'language',
140
+ 'secure',
141
+ 'host',
142
+ 'page',
143
+ 'placements',
144
+ 'coppa',
145
+ 'ccpa',
146
+ 'gdpr',
147
+ 'tmax'
148
+ );
53
149
  expect(data.deviceWidth).to.be.a('number');
54
150
  expect(data.deviceHeight).to.be.a('number');
55
151
  expect(data.language).to.be.a('string');
56
152
  expect(data.secure).to.be.within(0, 1);
57
153
  expect(data.host).to.be.a('string');
58
154
  expect(data.page).to.be.a('string');
59
- expect(data.gdpr).to.not.exist;
60
- expect(data.ccpa).to.not.exist;
61
- let placement = data['placements'][0];
62
- expect(placement).to.have.keys('placementId', 'bidId', 'identeties', 'adFormat', 'sizes', 'hPlayer', 'wPlayer', 'schain', 'keywords', 'audiences', 'bidFloor');
63
- expect(placement.placementId).to.equal('testBanner');
64
- expect(placement.bidId).to.equal('23fhj33i987f');
65
- expect(placement.adFormat).to.equal(BANNER);
66
- expect(placement.schain).to.be.an('object');
155
+ expect(data.coppa).to.be.a('number');
156
+ expect(data.gdpr).to.be.a('object');
157
+ expect(data.ccpa).to.be.a('string');
158
+ expect(data.tmax).to.be.a('number');
159
+ expect(data.placements).to.have.lengthOf(3);
67
160
  });
68
161
 
69
- it('Returns valid data for mediatype video', function () {
70
- const playerSize = [300, 300];
71
- bid.mediaTypes = {};
72
- bid.mediaTypes[VIDEO] = {
73
- playerSize
74
- };
75
- serverRequest = spec.buildRequests([bid], bidderRequest);
76
- let data = serverRequest.data;
77
- expect(data).to.be.an('object');
78
- let placement = data['placements'][0];
79
- expect(placement).to.be.an('object');
80
- expect(placement.adFormat).to.equal(VIDEO);
81
- expect(placement.wPlayer).to.equal(playerSize[0]);
82
- expect(placement.hPlayer).to.equal(playerSize[1]);
162
+ it('Returns valid placements', function () {
163
+ const { placements } = serverRequest.data;
164
+
165
+ for (let i = 0, len = placements.length; i < len; i++) {
166
+ const placement = placements[i];
167
+ expect(placement.placementId).to.be.oneOf(['testBanner', 'testVideo', 'testNative']);
168
+ expect(placement.adFormat).to.be.oneOf([BANNER, VIDEO, NATIVE]);
169
+ expect(placement.bidId).to.be.a('string');
170
+ expect(placement.schain).to.be.an('object');
171
+ expect(placement.bidfloor).to.exist.and.to.equal(0);
172
+ expect(placement.type).to.exist.and.to.equal('publisher');
173
+ expect(placement.eids).to.exist.and.to.be.deep.equal(userIdAsEids);
174
+
175
+ if (placement.adFormat === BANNER) {
176
+ expect(placement.sizes).to.be.an('array');
177
+ }
178
+ switch (placement.adFormat) {
179
+ case BANNER:
180
+ expect(placement.sizes).to.be.an('array');
181
+ break;
182
+ case VIDEO:
183
+ expect(placement.wPlayer).to.be.an('number');
184
+ expect(placement.hPlayer).to.be.an('number');
185
+ expect(placement.keywords).to.be.an('array');
186
+ expect(placement.audiences).to.be.an('array');
187
+ expect(placement.minduration).to.be.an('number');
188
+ expect(placement.maxduration).to.be.an('number');
189
+ break;
190
+ case NATIVE:
191
+ expect(placement.native).to.be.an('object');
192
+ break;
193
+ }
194
+ }
83
195
  });
84
196
 
85
197
  it('Returns data with gdprConsent and without uspConsent', function () {
86
- bidderRequest.gdprConsent = 'test';
87
- serverRequest = spec.buildRequests([bid], bidderRequest);
198
+ delete bidderRequest.uspConsent;
199
+ serverRequest = spec.buildRequests(bids, bidderRequest);
88
200
  let data = serverRequest.data;
89
201
  expect(data.gdpr).to.exist;
90
- expect(data.gdpr).to.be.a('string');
91
- expect(data.gdpr).to.equal(bidderRequest.gdprConsent);
202
+ expect(data.gdpr).to.be.a('object');
203
+ expect(data.gdpr).to.have.property('consentString');
204
+ expect(data.gdpr).to.not.have.property('vendorData');
205
+ expect(data.gdpr.consentString).to.equal(bidderRequest.gdprConsent.consentString);
92
206
  expect(data.ccpa).to.not.exist;
93
207
  delete bidderRequest.gdprConsent;
94
208
  });
95
209
 
96
210
  it('Returns data with uspConsent and without gdprConsent', function () {
97
- bidderRequest.uspConsent = 'test';
98
- serverRequest = spec.buildRequests([bid], bidderRequest);
211
+ bidderRequest.uspConsent = '1---';
212
+ delete bidderRequest.gdprConsent;
213
+ serverRequest = spec.buildRequests(bids, bidderRequest);
99
214
  let data = serverRequest.data;
100
215
  expect(data.ccpa).to.exist;
101
216
  expect(data.ccpa).to.be.a('string');
102
217
  expect(data.ccpa).to.equal(bidderRequest.uspConsent);
103
218
  expect(data.gdpr).to.not.exist;
104
219
  });
220
+ });
221
+
222
+ describe('gpp consent', function () {
223
+ it('bidderRequest.gppConsent', () => {
224
+ bidderRequest.gppConsent = {
225
+ gppString: 'abc123',
226
+ applicableSections: [8]
227
+ };
105
228
 
106
- it('Returns empty data if no valid requests are passed', function () {
107
- serverRequest = spec.buildRequests([]);
229
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
108
230
  let data = serverRequest.data;
109
- expect(data.placements).to.be.an('array').that.is.empty;
110
- });
111
- });
112
- describe('buildRequests with user ids', function () {
113
- bid.userId = {}
114
- bid.userId.idl_env = 'idl_env123';
115
- let serverRequest = spec.buildRequests([bid], bidderRequest);
116
- it('Return bids with user identeties', function () {
231
+ expect(data).to.be.an('object');
232
+ expect(data).to.have.property('gpp');
233
+ expect(data).to.have.property('gpp_sid');
234
+
235
+ delete bidderRequest.gppConsent;
236
+ })
237
+
238
+ it('bidderRequest.ortb2.regs.gpp', () => {
239
+ bidderRequest.ortb2 = bidderRequest.ortb2 || {};
240
+ bidderRequest.ortb2.regs = bidderRequest.ortb2.regs || {};
241
+ bidderRequest.ortb2.regs.gpp = 'abc123';
242
+ bidderRequest.ortb2.regs.gpp_sid = [8];
243
+
244
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
117
245
  let data = serverRequest.data;
118
- let placements = data['placements'];
119
246
  expect(data).to.be.an('object');
120
- for (let i = 0; i < placements.length; i++) {
121
- let placement = placements[i];
122
- expect(placement).to.have.property('identeties')
123
- expect(placement.identeties).to.be.an('object')
124
- expect(placement.identeties).to.have.property('identityLink')
125
- expect(placement.identeties.identityLink).to.be.equal('idl_env123')
126
- }
127
- });
247
+ expect(data).to.have.property('gpp');
248
+ expect(data).to.have.property('gpp_sid');
249
+
250
+ bidderRequest.ortb2;
251
+ })
128
252
  });
253
+
129
254
  describe('interpretResponse', function () {
130
255
  it('Should interpret banner response', function () {
131
256
  const banner = {
@@ -141,7 +266,10 @@ describe('AdprimebBidAdapter', function () {
141
266
  netRevenue: true,
142
267
  currency: 'USD',
143
268
  dealId: '1',
144
- meta: {}
269
+ meta: {
270
+ advertiserDomains: ['google.com'],
271
+ advertiserId: 1234
272
+ }
145
273
  }]
146
274
  };
147
275
  let bannerResponses = spec.interpretResponse(banner);
@@ -149,15 +277,15 @@ describe('AdprimebBidAdapter', function () {
149
277
  let dataItem = bannerResponses[0];
150
278
  expect(dataItem).to.have.all.keys('requestId', 'cpm', 'width', 'height', 'ad', 'ttl', 'creativeId',
151
279
  'netRevenue', 'currency', 'dealId', 'mediaType', 'meta');
152
- expect(dataItem.requestId).to.equal('23fhj33i987f');
153
- expect(dataItem.cpm).to.equal(0.4);
154
- expect(dataItem.width).to.equal(300);
155
- expect(dataItem.height).to.equal(250);
156
- expect(dataItem.ad).to.equal('Test');
157
- expect(dataItem.ttl).to.equal(120);
158
- expect(dataItem.creativeId).to.equal('2');
280
+ expect(dataItem.requestId).to.equal(banner.body[0].requestId);
281
+ expect(dataItem.cpm).to.equal(banner.body[0].cpm);
282
+ expect(dataItem.width).to.equal(banner.body[0].width);
283
+ expect(dataItem.height).to.equal(banner.body[0].height);
284
+ expect(dataItem.ad).to.equal(banner.body[0].ad);
285
+ expect(dataItem.ttl).to.equal(banner.body[0].ttl);
286
+ expect(dataItem.creativeId).to.equal(banner.body[0].creativeId);
159
287
  expect(dataItem.netRevenue).to.be.true;
160
- expect(dataItem.currency).to.equal('USD');
288
+ expect(dataItem.currency).to.equal(banner.body[0].currency);
161
289
  expect(dataItem.meta).to.be.an('object').that.has.any.key('advertiserDomains');
162
290
  });
163
291
  it('Should interpret video response', function () {
@@ -172,7 +300,10 @@ describe('AdprimebBidAdapter', function () {
172
300
  netRevenue: true,
173
301
  currency: 'USD',
174
302
  dealId: '1',
175
- meta: {}
303
+ meta: {
304
+ advertiserDomains: ['google.com'],
305
+ advertiserId: 1234
306
+ }
176
307
  }]
177
308
  };
178
309
  let videoResponses = spec.interpretResponse(video);
@@ -206,7 +337,10 @@ describe('AdprimebBidAdapter', function () {
206
337
  creativeId: '2',
207
338
  netRevenue: true,
208
339
  currency: 'USD',
209
- meta: {}
340
+ meta: {
341
+ advertiserDomains: ['google.com'],
342
+ advertiserId: 1234
343
+ }
210
344
  }]
211
345
  };
212
346
  let nativeResponses = spec.interpretResponse(native);
@@ -293,6 +427,7 @@ describe('AdprimebBidAdapter', function () {
293
427
  expect(serverResponses).to.be.an('array').that.is.empty;
294
428
  });
295
429
  });
430
+
296
431
  describe('getUserSyncs', function() {
297
432
  it('Should return array of objects with proper sync config , include GDPR', function() {
298
433
  const syncData = spec.getUserSyncs({}, {}, {
@@ -317,5 +452,17 @@ describe('AdprimebBidAdapter', function () {
317
452
  expect(syncData[0].url).to.be.a('string')
318
453
  expect(syncData[0].url).to.equal('https://sync.adprime.com/image?pbjs=1&ccpa_consent=1---&coppa=0')
319
454
  });
455
+ it('Should return array of objects with proper sync config , include GPP', function() {
456
+ const syncData = spec.getUserSyncs({}, {}, {}, {}, {
457
+ gppString: 'abc123',
458
+ applicableSections: [8]
459
+ });
460
+ expect(syncData).to.be.an('array').which.is.not.empty;
461
+ expect(syncData[0]).to.be.an('object')
462
+ expect(syncData[0].type).to.be.a('string')
463
+ expect(syncData[0].type).to.equal('image')
464
+ expect(syncData[0].url).to.be.a('string')
465
+ expect(syncData[0].url).to.equal('https://sync.adprime.com/image?pbjs=1&gpp=abc123&gpp_sid=8&coppa=0')
466
+ });
320
467
  });
321
468
  });
@@ -3,9 +3,19 @@ import { spec } from '../../../modules/axisBidAdapter.js';
3
3
  import { BANNER, VIDEO, NATIVE } from '../../../src/mediaTypes.js';
4
4
  import { getUniqueIdentifierStr } from '../../../src/utils.js';
5
5
 
6
- const bidder = 'axis'
6
+ const bidder = 'axis';
7
7
 
8
8
  describe('AxisBidAdapter', function () {
9
+ const userIdAsEids = [{
10
+ source: 'test.org',
11
+ uids: [{
12
+ id: '01**********',
13
+ atype: 1,
14
+ ext: {
15
+ third: '01***********'
16
+ }
17
+ }]
18
+ }];
9
19
  const bids = [
10
20
  {
11
21
  bidId: getUniqueIdentifierStr(),
@@ -19,7 +29,8 @@ describe('AxisBidAdapter', function () {
19
29
  params: {
20
30
  integration: '000000',
21
31
  token: '000000'
22
- }
32
+ },
33
+ userIdAsEids
23
34
  },
24
35
  {
25
36
  bidId: getUniqueIdentifierStr(),
@@ -35,7 +46,8 @@ describe('AxisBidAdapter', function () {
35
46
  params: {
36
47
  integration: '000000',
37
48
  token: '000000'
38
- }
49
+ },
50
+ userIdAsEids
39
51
  },
40
52
  {
41
53
  bidId: getUniqueIdentifierStr(),
@@ -59,7 +71,8 @@ describe('AxisBidAdapter', function () {
59
71
  params: {
60
72
  integration: '000000',
61
73
  token: '000000'
62
- }
74
+ },
75
+ userIdAsEids
63
76
  }
64
77
  ];
65
78
 
@@ -78,15 +91,25 @@ describe('AxisBidAdapter', function () {
78
91
 
79
92
  const bidderRequest = {
80
93
  uspConsent: '1---',
81
- gdprConsent: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
94
+ gdprConsent: {
95
+ consentString: 'COvFyGBOvFyGBAbAAAENAPCAAOAAAAAAAAAAAEEUACCKAAA.IFoEUQQgAIQwgIwQABAEAAAAOIAACAIAAAAQAIAgEAACEAAAAAgAQBAAAAAAAGBAAgAAAAAAAFAAECAAAgAAQARAEQAAAAAJAAIAAgAAAYQEAAAQmAgBC3ZAYzUw',
96
+ vendorData: {}
97
+ },
82
98
  refererInfo: {
83
- referer: 'https://test.com'
99
+ referer: 'https://test.com',
100
+ page: 'https://test.com'
84
101
  },
85
102
  ortb2: {
86
103
  site: {
87
104
  cat: ['IAB24']
105
+ },
106
+ device: {
107
+ w: 1512,
108
+ h: 982,
109
+ language: 'en-UK'
88
110
  }
89
- }
111
+ },
112
+ timeout: 500
90
113
  };
91
114
 
92
115
  describe('isBidRequestValid', function () {
@@ -139,7 +162,7 @@ describe('AxisBidAdapter', function () {
139
162
  expect(data.host).to.be.a('string');
140
163
  expect(data.page).to.be.a('string');
141
164
  expect(data.coppa).to.be.a('number');
142
- expect(data.gdpr).to.be.a('string');
165
+ expect(data.gdpr).to.be.a('object');
143
166
  expect(data.ccpa).to.be.a('string');
144
167
  expect(data.tmax).to.be.a('number');
145
168
  expect(data.iabCat).to.have.lengthOf(1);
@@ -156,6 +179,7 @@ describe('AxisBidAdapter', function () {
156
179
  expect(placement.token).to.be.a('string');
157
180
  expect(placement.schain).to.be.an('object');
158
181
  expect(placement.bidfloor).to.exist.and.to.equal(0);
182
+ expect(placement.eids).to.exist.and.to.be.deep.equal(userIdAsEids);
159
183
 
160
184
  if (placement.adFormat === BANNER) {
161
185
  expect(placement.sizes).to.be.an('array');
@@ -183,8 +207,10 @@ describe('AxisBidAdapter', function () {
183
207
  serverRequest = spec.buildRequests(bids, bidderRequest);
184
208
  let data = serverRequest.data;
185
209
  expect(data.gdpr).to.exist;
186
- expect(data.gdpr).to.be.a('string');
187
- expect(data.gdpr).to.equal(bidderRequest.gdprConsent);
210
+ expect(data.gdpr).to.be.a('object');
211
+ expect(data.gdpr).to.have.property('consentString');
212
+ expect(data.gdpr).to.not.have.property('vendorData');
213
+ expect(data.gdpr.consentString).to.equal(bidderRequest.gdprConsent.consentString);
188
214
  expect(data.ccpa).to.not.exist;
189
215
  delete bidderRequest.gdprConsent;
190
216
  });
@@ -199,12 +225,38 @@ describe('AxisBidAdapter', function () {
199
225
  expect(data.ccpa).to.equal(bidderRequest.uspConsent);
200
226
  expect(data.gdpr).to.not.exist;
201
227
  });
228
+ });
202
229
 
203
- it('Returns empty data if no valid requests are passed', function () {
204
- serverRequest = spec.buildRequests([], bidderRequest);
230
+ describe('gpp consent', function () {
231
+ it('bidderRequest.gppConsent', () => {
232
+ bidderRequest.gppConsent = {
233
+ gppString: 'abc123',
234
+ applicableSections: [8]
235
+ };
236
+
237
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
205
238
  let data = serverRequest.data;
206
- expect(data.placements).to.be.an('array').that.is.empty;
207
- });
239
+ expect(data).to.be.an('object');
240
+ expect(data).to.have.property('gpp');
241
+ expect(data).to.have.property('gpp_sid');
242
+
243
+ delete bidderRequest.gppConsent;
244
+ })
245
+
246
+ it('bidderRequest.ortb2.regs.gpp', () => {
247
+ bidderRequest.ortb2 = bidderRequest.ortb2 || {};
248
+ bidderRequest.ortb2.regs = bidderRequest.ortb2.regs || {};
249
+ bidderRequest.ortb2.regs.gpp = 'abc123';
250
+ bidderRequest.ortb2.regs.gpp_sid = [8];
251
+
252
+ let serverRequest = spec.buildRequests(bids, bidderRequest);
253
+ let data = serverRequest.data;
254
+ expect(data).to.be.an('object');
255
+ expect(data).to.have.property('gpp');
256
+ expect(data).to.have.property('gpp_sid');
257
+
258
+ bidderRequest.ortb2;
259
+ })
208
260
  });
209
261
 
210
262
  describe('interpretResponse', function () {
@@ -410,5 +462,17 @@ describe('AxisBidAdapter', function () {
410
462
  expect(syncData[0].url).to.be.a('string')
411
463
  expect(syncData[0].url).to.equal('https://cs.axis-marketplace.com/image?pbjs=1&ccpa=1---&coppa=0')
412
464
  });
465
+ it('Should return array of objects with proper sync config , include GPP', function() {
466
+ const syncData = spec.getUserSyncs({}, {}, {}, {}, {
467
+ gppString: 'abc123',
468
+ applicableSections: [8]
469
+ });
470
+ expect(syncData).to.be.an('array').which.is.not.empty;
471
+ expect(syncData[0]).to.be.an('object')
472
+ expect(syncData[0].type).to.be.a('string')
473
+ expect(syncData[0].type).to.equal('image')
474
+ expect(syncData[0].url).to.be.a('string')
475
+ expect(syncData[0].url).to.equal('https://cs.axis-marketplace.com/image?pbjs=1&gpp=abc123&gpp_sid=8&coppa=0')
476
+ });
413
477
  });
414
478
  });