prebid.js 7.44.0 → 7.46.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 (309) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/acuityAdsBidAdapter.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adgenerationBidAdapter.js +1 -1
  7. package/dist/admaticBidAdapter.js +1 -1
  8. package/dist/adnuntiusBidAdapter.js +1 -1
  9. package/dist/adrelevantisBidAdapter.js +1 -1
  10. package/dist/adtrgtmeBidAdapter.js +1 -1
  11. package/dist/adxcgBidAdapter.js +1 -1
  12. package/dist/adyoulikeBidAdapter.js +1 -1
  13. package/dist/ajaBidAdapter.js +1 -1
  14. package/dist/amxBidAdapter.js +1 -1
  15. package/dist/amxIdSystem.js +1 -1
  16. package/dist/appierAnalyticsAdapter.js +1 -1
  17. package/dist/appnexusBidAdapter.js +1 -1
  18. package/dist/appushBidAdapter.js +1 -1
  19. package/dist/asoBidAdapter.js +1 -1
  20. package/dist/axonixBidAdapter.js +1 -1
  21. package/dist/beyondmediaBidAdapter.js +1 -1
  22. package/dist/bidglassBidAdapter.js +1 -1
  23. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  24. package/dist/big-richmediaBidAdapter.js +1 -1
  25. package/dist/braveBidAdapter.js +1 -1
  26. package/dist/bridgewellBidAdapter.js +1 -1
  27. package/dist/brightMountainMediaBidAdapter.js +1 -1
  28. package/dist/brightcomBidAdapter.js +1 -1
  29. package/dist/brightcomSSPBidAdapter.js +1 -1
  30. package/dist/carodaBidAdapter.js +1 -1
  31. package/dist/chtnwBidAdapter.js +1 -1
  32. package/dist/coinzillaBidAdapter.js +1 -1
  33. package/dist/compassBidAdapter.js +1 -1
  34. package/dist/concertBidAdapter.js +1 -1
  35. package/dist/connectIdSystem.js +1 -1
  36. package/dist/connectadBidAdapter.js +1 -1
  37. package/dist/consumableBidAdapter.js +1 -1
  38. package/dist/contentexchangeBidAdapter.js +1 -1
  39. package/dist/conversantAnalyticsAdapter.js +1 -1
  40. package/dist/conversantBidAdapter.js +1 -1
  41. package/dist/craftBidAdapter.js +1 -1
  42. package/dist/criteoBidAdapter.js +1 -1
  43. package/dist/cwireBidAdapter.js +1 -1
  44. package/dist/debugging-standalone.js +1 -1
  45. package/dist/dependencies.json +15 -0
  46. package/dist/domainOverrideToRootDomain.js +1 -0
  47. package/dist/dspxBidAdapter.js +1 -1
  48. package/dist/eplanningBidAdapter.js +1 -1
  49. package/dist/eskimiBidAdapter.js +1 -0
  50. package/dist/feedadBidAdapter.js +1 -1
  51. package/dist/finativeBidAdapter.js +1 -1
  52. package/dist/freewheel-sspBidAdapter.js +1 -1
  53. package/dist/glimpseBidAdapter.js +1 -1
  54. package/dist/globalsunBidAdapter.js +1 -1
  55. package/dist/gmosspBidAdapter.js +1 -1
  56. package/dist/goldbachBidAdapter.js +1 -1
  57. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  58. package/dist/gridBidAdapter.js +1 -1
  59. package/dist/growthCodeIdSystem.js +1 -1
  60. package/dist/gumgumBidAdapter.js +1 -1
  61. package/dist/h12mediaBidAdapter.js +1 -1
  62. package/dist/id5IdSystem.js +1 -1
  63. package/dist/improvedigitalBidAdapter.js +1 -1
  64. package/dist/inmarBidAdapter.js +1 -1
  65. package/dist/insticatorBidAdapter.js +1 -1
  66. package/dist/iqzoneBidAdapter.js +1 -1
  67. package/dist/ivsBidAdapter.js +1 -0
  68. package/dist/ixBidAdapter.js +1 -1
  69. package/dist/justpremiumBidAdapter.js +1 -1
  70. package/dist/jwplayerVideoProvider.js +1 -1
  71. package/dist/kargoBidAdapter.js +1 -1
  72. package/dist/koblerBidAdapter.js +1 -1
  73. package/dist/konduitAnalyticsAdapter.js +1 -1
  74. package/dist/kueezBidAdapter.js +1 -1
  75. package/dist/kueezRtbBidAdapter.js +1 -1
  76. package/dist/kulturemediaBidAdapter.js +1 -1
  77. package/dist/lassoBidAdapter.js +1 -1
  78. package/dist/lifestreetBidAdapter.js +1 -1
  79. package/dist/liveIntentIdSystem.js +1 -1
  80. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  81. package/dist/logicadBidAdapter.js +1 -1
  82. package/dist/loglyliftBidAdapter.js +1 -1
  83. package/dist/luponmediaBidAdapter.js +1 -1
  84. package/dist/magniteAnalyticsAdapter.js +1 -1
  85. package/dist/malltvAnalyticsAdapter.js +1 -1
  86. package/dist/marsmediaBidAdapter.js +1 -1
  87. package/dist/mathildeadsBidAdapter.js +1 -1
  88. package/dist/mediafuseBidAdapter.js +1 -1
  89. package/dist/medianetBidAdapter.js +1 -1
  90. package/dist/mediasquareBidAdapter.js +1 -1
  91. package/dist/mgidBidAdapter.js +1 -1
  92. package/dist/minutemediaBidAdapter.js +1 -1
  93. package/dist/minutemediaplusBidAdapter.js +1 -1
  94. package/dist/nativoBidAdapter.js +1 -1
  95. package/dist/neuwoRtdProvider.js +1 -1
  96. package/dist/nexx360BidAdapter.js +1 -1
  97. package/dist/not-for-prod/prebid.js +165 -162
  98. package/dist/oguryBidAdapter.js +1 -1
  99. package/dist/onetagBidAdapter.js +1 -1
  100. package/dist/onomagicBidAdapter.js +1 -1
  101. package/dist/ooloAnalyticsAdapter.js +1 -1
  102. package/dist/openxBidAdapter.js +1 -1
  103. package/dist/openxOrtbBidAdapter.js +1 -1
  104. package/dist/operaadsBidAdapter.js +1 -1
  105. package/dist/optidigitalBidAdapter.js +1 -1
  106. package/dist/ortbConverter.js +1 -1
  107. package/dist/outbrainBidAdapter.js +1 -1
  108. package/dist/pairIdSystem.js +1 -0
  109. package/dist/parrableIdSystem.js +1 -1
  110. package/dist/pixfutureBidAdapter.js +1 -1
  111. package/dist/prebid-core.js +1 -1
  112. package/dist/publinkIdSystem.js +1 -1
  113. package/dist/pubmaticBidAdapter.js +1 -1
  114. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  115. package/dist/pubxBidAdapter.js +1 -1
  116. package/dist/pxyzBidAdapter.js +1 -1
  117. package/dist/quantcastBidAdapter.js +1 -1
  118. package/dist/readpeakBidAdapter.js +1 -1
  119. package/dist/relaidoBidAdapter.js +1 -1
  120. package/dist/rhythmoneBidAdapter.js +1 -1
  121. package/dist/riseBidAdapter.js +1 -1
  122. package/dist/rubiconAnalyticsAdapter.js +1 -1
  123. package/dist/rubiconBidAdapter.js +1 -1
  124. package/dist/seedingAllianceBidAdapter.js +1 -1
  125. package/dist/seedtagBidAdapter.js +1 -1
  126. package/dist/sharedIdSystem.js +1 -1
  127. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  128. package/dist/sharethroughBidAdapter.js +1 -1
  129. package/dist/shinezBidAdapter.js +1 -1
  130. package/dist/smaatoBidAdapter.js +1 -1
  131. package/dist/smartadserverBidAdapter.js +1 -1
  132. package/dist/smarthubBidAdapter.js +1 -1
  133. package/dist/smartxBidAdapter.js +1 -1
  134. package/dist/smilewantedBidAdapter.js +1 -1
  135. package/dist/sonobiBidAdapter.js +1 -1
  136. package/dist/sovrnAnalyticsAdapter.js +1 -1
  137. package/dist/sovrnBidAdapter.js +1 -1
  138. package/dist/sspBCBidAdapter.js +1 -1
  139. package/dist/stvBidAdapter.js +1 -1
  140. package/dist/sublimeBidAdapter.js +1 -1
  141. package/dist/synacormediaBidAdapter.js +1 -1
  142. package/dist/targetVideoBidAdapter.js +1 -1
  143. package/dist/teadsBidAdapter.js +1 -1
  144. package/dist/trionBidAdapter.js +1 -1
  145. package/dist/tripleliftBidAdapter.js +1 -1
  146. package/dist/truereachBidAdapter.js +1 -1
  147. package/dist/ttdBidAdapter.js +1 -1
  148. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  149. package/dist/uid2IdSystem.js +1 -1
  150. package/dist/underdogmediaBidAdapter.js +1 -1
  151. package/dist/undertoneBidAdapter.js +1 -1
  152. package/dist/userId.js +1 -1
  153. package/dist/vidazooBidAdapter.js +1 -1
  154. package/dist/videobyteBidAdapter.js +1 -1
  155. package/dist/videoheroesBidAdapter.js +1 -1
  156. package/dist/vidoomyBidAdapter.js +1 -1
  157. package/dist/visiblemeasuresBidAdapter.js +1 -1
  158. package/dist/visxBidAdapter.js +1 -1
  159. package/dist/vrtcalBidAdapter.js +1 -1
  160. package/dist/vuukleBidAdapter.js +1 -1
  161. package/dist/widespaceBidAdapter.js +1 -1
  162. package/dist/winrBidAdapter.js +1 -1
  163. package/dist/yahoosspBidAdapter.js +1 -1
  164. package/dist/yieldmoBidAdapter.js +1 -1
  165. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  166. package/dist/yieldoneBidAdapter.js +1 -1
  167. package/integrationExamples/gpt/fledge_example.html +103 -0
  168. package/integrationExamples/gpt/prebidServer_fledge_example.html +111 -0
  169. package/libraries/domainOverrideToRootDomain/index.js +39 -0
  170. package/libraries/ortbConverter/processors/video.js +1 -0
  171. package/modules/acuityAdsBidAdapter.js +1 -1
  172. package/modules/admaticBidAdapter.js +7 -2
  173. package/modules/adnuntiusBidAdapter.js +3 -1
  174. package/modules/amxBidAdapter.js +1 -1
  175. package/modules/amxIdSystem.js +23 -20
  176. package/modules/amxIdSystem.md +7 -7
  177. package/modules/appnexusBidAdapter.js +108 -102
  178. package/modules/appushBidAdapter.js +1 -1
  179. package/modules/beyondmediaBidAdapter.js +1 -1
  180. package/modules/bidwatchAnalyticsAdapter.js +2 -0
  181. package/modules/braveBidAdapter.js +1 -1
  182. package/modules/brightcomBidAdapter.js +1 -1
  183. package/modules/brightcomSSPBidAdapter.js +1 -1
  184. package/modules/coinzillaBidAdapter.js +1 -2
  185. package/modules/compassBidAdapter.js +1 -1
  186. package/modules/connectIdSystem.js +96 -21
  187. package/modules/connectIdSystem.md +6 -5
  188. package/modules/contentexchangeBidAdapter.js +1 -1
  189. package/modules/conversantBidAdapter.js +3 -0
  190. package/modules/criteoBidAdapter.js +5 -1
  191. package/modules/eskimiBidAdapter.js +72 -0
  192. package/modules/eskimiBidAdapter.md +34 -0
  193. package/modules/freewheel-sspBidAdapter.js +8 -0
  194. package/modules/glimpseBidAdapter.js +1 -2
  195. package/modules/globalsunBidAdapter.js +1 -1
  196. package/modules/gridBidAdapter.js +43 -20
  197. package/modules/growthCodeIdSystem.js +18 -15
  198. package/modules/gumgumBidAdapter.js +1 -1
  199. package/modules/iqzoneBidAdapter.js +1 -1
  200. package/modules/ivsBidAdapter.js +85 -0
  201. package/modules/ivsBidAdapter.md +34 -0
  202. package/modules/ixBidAdapter.js +72 -105
  203. package/modules/jwplayerVideoProvider.js +25 -32
  204. package/modules/kargoBidAdapter.js +473 -246
  205. package/modules/koblerBidAdapter.js +1 -2
  206. package/modules/kueezBidAdapter.js +1 -1
  207. package/modules/kueezRtbBidAdapter.js +16 -4
  208. package/modules/liveIntentIdSystem.js +8 -0
  209. package/modules/luponmediaBidAdapter.js +1 -1
  210. package/modules/magniteAnalyticsAdapter.js +76 -3
  211. package/modules/mathildeadsBidAdapter.js +1 -1
  212. package/modules/medianetBidAdapter.js +1 -1
  213. package/modules/mediasquareBidAdapter.js +2 -1
  214. package/modules/mgidBidAdapter.js +178 -26
  215. package/modules/minutemediaBidAdapter.js +1 -1
  216. package/modules/minutemediaplusBidAdapter.js +16 -4
  217. package/modules/nativoBidAdapter.js +110 -21
  218. package/modules/neuwoRtdProvider.js +0 -2
  219. package/modules/oguryBidAdapter.js +3 -2
  220. package/modules/onomagicBidAdapter.js +1 -2
  221. package/modules/openxBidAdapter.js +192 -563
  222. package/modules/openxBidAdapter.md +22 -20
  223. package/modules/openxOrtbBidAdapter.js +13 -11
  224. package/modules/openxOrtbBidAdapter.md +5 -3
  225. package/modules/operaadsBidAdapter.js +1 -1
  226. package/modules/pairIdSystem.js +79 -0
  227. package/modules/pubmaticBidAdapter.js +13 -10
  228. package/modules/pubxBidAdapter.js +5 -2
  229. package/modules/riseBidAdapter.js +1 -1
  230. package/modules/sharedIdSystem.js +4 -27
  231. package/modules/sharethroughBidAdapter.js +1 -1
  232. package/modules/shinezBidAdapter.js +1 -1
  233. package/modules/smarthubBidAdapter.js +1 -1
  234. package/modules/synacormediaBidAdapter.js +1 -3
  235. package/modules/truereachBidAdapter.js +1 -2
  236. package/modules/userId/eids.js +24 -0
  237. package/modules/userId/eids.md +16 -0
  238. package/modules/videoheroesBidAdapter.js +1 -1
  239. package/modules/vidoomyBidAdapter.js +33 -4
  240. package/modules/visiblemeasuresBidAdapter.js +1 -1
  241. package/modules/vrtcalBidAdapter.js +1 -1
  242. package/modules/yieldmoBidAdapter.js +15 -5
  243. package/modules/yieldoneBidAdapter.js +1 -1
  244. package/package.json +1 -1
  245. package/src/Renderer.js +2 -1
  246. package/src/config.js +78 -127
  247. package/src/native.js +5 -1
  248. package/test/spec/auctionmanager_spec.js +2 -2
  249. package/test/spec/libraries/domainOverrideToRootDomain/index_spec.js +77 -0
  250. package/test/spec/modules/1plusXRtdProvider_spec.js +8 -7
  251. package/test/spec/modules/acuityAdsBidAdapter_spec.js +2 -1
  252. package/test/spec/modules/adagioBidAdapter_spec.js +0 -25
  253. package/test/spec/modules/admaticBidAdapter_spec.js +1 -1
  254. package/test/spec/modules/adnuntiusBidAdapter_spec.js +2 -1
  255. package/test/spec/modules/amxIdSystem_spec.js +13 -26
  256. package/test/spec/modules/appnexusBidAdapter_spec.js +464 -448
  257. package/test/spec/modules/appushBidAdapter_spec.js +2 -1
  258. package/test/spec/modules/axonixBidAdapter_spec.js +0 -27
  259. package/test/spec/modules/beyondmediaBidAdapter_spec.js +2 -1
  260. package/test/spec/modules/big-richmediaBidAdapter_spec.js +68 -64
  261. package/test/spec/modules/compassBidAdapter_spec.js +2 -1
  262. package/test/spec/modules/connectIdSystem_spec.js +420 -242
  263. package/test/spec/modules/contentexchangeBidAdapter_spec.js +2 -1
  264. package/test/spec/modules/conversantBidAdapter_spec.js +1 -0
  265. package/test/spec/modules/criteoBidAdapter_spec.js +33 -1
  266. package/test/spec/modules/eids_spec.js +30 -0
  267. package/test/spec/modules/eskimiBidAdapter_spec.js +155 -0
  268. package/test/spec/modules/freewheel-sspBidAdapter_spec.js +37 -0
  269. package/test/spec/modules/globalsunBidAdapter_spec.js +2 -1
  270. package/test/spec/modules/gridBidAdapter_spec.js +8 -0
  271. package/test/spec/modules/iqzoneBidAdapter_spec.js +2 -1
  272. package/test/spec/modules/ivsBidAdapter_spec.js +197 -0
  273. package/test/spec/modules/ixBidAdapter_spec.js +141 -71
  274. package/test/spec/modules/kargoBidAdapter_spec.js +297 -140
  275. package/test/spec/modules/koblerBidAdapter_spec.js +0 -20
  276. package/test/spec/modules/kueezRtbBidAdapter_spec.js +22 -2
  277. package/test/spec/modules/liveIntentIdSystem_spec.js +10 -0
  278. package/test/spec/modules/luponmediaBidAdapter_spec.js +1 -1
  279. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +129 -1
  280. package/test/spec/modules/mathildeadsBidAdapter_spec.js +2 -1
  281. package/test/spec/modules/mgidBidAdapter_spec.js +184 -36
  282. package/test/spec/modules/minutemediaplusBidAdapter_spec.js +22 -2
  283. package/test/spec/modules/nativoBidAdapter_spec.js +101 -0
  284. package/test/spec/modules/neuwoRtdProvider_spec.js +0 -1
  285. package/test/spec/modules/oguryBidAdapter_spec.js +19 -4
  286. package/test/spec/modules/ooloAnalyticsAdapter_spec.js +1 -1
  287. package/test/spec/modules/openxBidAdapter_spec.js +1157 -1936
  288. package/test/spec/modules/openxOrtbBidAdapter_spec.js +12 -39
  289. package/test/spec/modules/pairIdSystem_spec.js +68 -0
  290. package/test/spec/modules/pubCommonId_spec.js +0 -17
  291. package/test/spec/modules/pubmaticBidAdapter_spec.js +868 -867
  292. package/test/spec/modules/pubxBidAdapter_spec.js +10 -2
  293. package/test/spec/modules/realvuAnalyticsAdapter_spec.js +0 -5
  294. package/test/spec/modules/sharedIdSystem_spec.js +0 -46
  295. package/test/spec/modules/sharethroughBidAdapter_spec.js +2 -1
  296. package/test/spec/modules/smarthubBidAdapter_spec.js +2 -1
  297. package/test/spec/modules/synacormediaBidAdapter_spec.js +0 -26
  298. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +17 -4
  299. package/test/spec/modules/vidoomyBidAdapter_spec.js +58 -0
  300. package/test/spec/modules/visiblemeasuresBidAdapter_spec.js +2 -1
  301. package/test/spec/modules/vrtcalBidAdapter_spec.js +3 -2
  302. package/test/spec/modules/yieldmoBidAdapter_spec.js +19 -1
  303. package/test/spec/renderer_spec.js +1 -2
  304. package/test/spec/unit/pbjs_api_spec.js +19 -3
  305. package/test/test_index.js +13 -3
  306. package/dist/gridNMBidAdapter.js +0 -1
  307. package/modules/gridNMBidAdapter.js +0 -422
  308. package/modules/gridNMBidAdapter.md +0 -39
  309. package/test/spec/modules/gridNMBidAdapter_spec.js +0 -636
@@ -35,7 +35,7 @@ describe('kargo adapter tests', function () {
35
35
  });
36
36
 
37
37
  describe('build request', function() {
38
- var bids, undefinedCurrency, noAdServerCurrency, cookies = [], localStorageItems = [], sessionIds = [], requestCount = 0;
38
+ var bids, undefinedCurrency, noAdServerCurrency, nonUSDAdServerCurrency, cookies = [], localStorageItems = [], sessionIds = [], requestCount = 0;
39
39
 
40
40
  beforeEach(function () {
41
41
  $$PREBID_GLOBAL$$.bidderSettings = {
@@ -45,6 +45,7 @@ describe('kargo adapter tests', function () {
45
45
  };
46
46
  undefinedCurrency = false;
47
47
  noAdServerCurrency = false;
48
+ nonUSDAdServerCurrency = false;
48
49
  sandbox.stub(config, 'getConfig').callsFake(function(key) {
49
50
  if (key === 'currency') {
50
51
  if (undefinedCurrency) {
@@ -53,6 +54,9 @@ describe('kargo adapter tests', function () {
53
54
  if (noAdServerCurrency) {
54
55
  return {};
55
56
  }
57
+ if (nonUSDAdServerCurrency) {
58
+ return {adServerCurrency: 'EUR'};
59
+ }
56
60
  return {adServerCurrency: 'USD'};
57
61
  }
58
62
  if (key === 'debug') return true;
@@ -63,13 +67,45 @@ describe('kargo adapter tests', function () {
63
67
  bids = [
64
68
  {
65
69
  params: {
66
- placementId: 'foo'
70
+ placementId: 'foo',
71
+ socialCanvas: {
72
+ segments: ['segment_1', 'segment_2', 'segment_3'],
73
+ url: 'https://socan.url'
74
+ }
67
75
  },
68
- bidId: 1,
76
+ auctionId: '1234098',
77
+ bidId: '1',
78
+ adUnitCode: '101',
79
+ transactionId: '10101',
80
+ sizes: [[320, 50], [300, 250], [300, 600]],
81
+ mediaTypes: {
82
+ banner: {
83
+ sizes: [[320, 50], [300, 50]]
84
+ }
85
+ },
86
+ bidRequestsCount: 1,
87
+ bidderRequestsCount: 2,
88
+ bidderWinsCount: 3,
69
89
  userId: {
70
- tdid: 'fake-tdid'
90
+ tdid: 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c'
91
+ },
92
+ userIdAsEids: [
93
+ {
94
+ 'source': 'adserver.org',
95
+ 'uids': [
96
+ {
97
+ 'id': 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c',
98
+ 'atype': 1,
99
+ 'ext': {
100
+ 'rtiPartner': 'TDID'
101
+ }
102
+ }
103
+ ]
104
+ }
105
+ ],
106
+ floorData: {
107
+ floorMin: 1
71
108
  },
72
- sizes: [[320, 50], [300, 250], [300, 600]],
73
109
  ortb2: {
74
110
  device: {
75
111
  sua: {
@@ -91,25 +127,76 @@ describe('kargo adapter tests', function () {
91
127
  version: [ '99', '0', '0', '0' ]
92
128
  }
93
129
  ],
94
- mobile: 0,
95
- model: ''
130
+ mobile: 1,
131
+ model: 'model',
132
+ source: 1,
96
133
  }
97
134
  }
135
+ },
136
+ ortb2Imp: {
137
+ ext: {
138
+ data: {
139
+ adServer: {
140
+ name: 'gam',
141
+ adSlot: '/22558409563,18834096/dfy_mobile_adhesion'
142
+ },
143
+ pbAdSlot: '/22558409563,18834096/dfy_mobile_adhesion'
144
+ },
145
+ gpid: '/22558409563,18834096/dfy_mobile_adhesion'
146
+ }
98
147
  }
99
148
  },
100
149
  {
101
150
  params: {
102
151
  placementId: 'bar'
103
152
  },
104
- bidId: 2,
105
- sizes: [[320, 50], [300, 250], [300, 600]]
153
+ bidId: '2',
154
+ adUnitCode: '202',
155
+ transactionId: '20202',
156
+ sizes: [[320, 50], [300, 250], [300, 600]],
157
+ mediaTypes: {
158
+ video: {
159
+ sizes: [[320, 50], [300, 50]]
160
+ }
161
+ },
162
+ bidRequestsCount: 0,
163
+ bidderRequestsCount: 0,
164
+ bidderWinsCount: 0,
165
+ ortb2Imp: {
166
+ ext: {
167
+ data: {
168
+ adServer: {
169
+ name: 'gam',
170
+ adSlot: '/22558409563,18834096/dfy_mobile_adhesion'
171
+ },
172
+ pbAdSlot: '/22558409563,18834096/dfy_mobile_adhesion'
173
+ }
174
+ }
175
+ }
106
176
  },
107
177
  {
108
178
  params: {
109
179
  placementId: 'bar'
110
180
  },
111
- bidId: 3,
112
- sizes: [[320, 50], [300, 250], [300, 600]]
181
+ bidId: '3',
182
+ adUnitCode: '303',
183
+ transactionId: '30303',
184
+ sizes: [[320, 50], [300, 250], [300, 600]],
185
+ mediaTypes: {
186
+ native: {
187
+ sizes: [[320, 50], [300, 50]]
188
+ }
189
+ },
190
+ ortb2Imp: {
191
+ ext: {
192
+ data: {
193
+ adServer: {
194
+ name: 'gam',
195
+ adSlot: '/22558409563,18834096/dfy_mobile_adhesion'
196
+ }
197
+ }
198
+ }
199
+ }
113
200
  }
114
201
  ];
115
202
  });
@@ -160,11 +247,19 @@ describe('kargo adapter tests', function () {
160
247
  function simulateNoCurrencyObject() {
161
248
  undefinedCurrency = true;
162
249
  noAdServerCurrency = false;
250
+ nonUSDAdServerCurrency = false;
163
251
  }
164
252
 
165
253
  function simulateNoAdServerCurrency() {
166
254
  undefinedCurrency = false;
167
255
  noAdServerCurrency = true;
256
+ nonUSDAdServerCurrency = false;
257
+ }
258
+
259
+ function simulateNonUSDAdServerCurrency() {
260
+ undefinedCurrency = false;
261
+ noAdServerCurrency = false;
262
+ nonUSDAdServerCurrency = true;
168
263
  }
169
264
 
170
265
  function generateGDPR(applies, haveConsent) {
@@ -182,6 +277,32 @@ describe('kargo adapter tests', function () {
182
277
  };
183
278
  }
184
279
 
280
+ function generatePageView() {
281
+ return {
282
+ id: '112233',
283
+ timestamp: frozenNow.getTime(),
284
+ url: 'http://pageview.url'
285
+ }
286
+ }
287
+
288
+ function generateRawCRB(rawCRB, rawCRBLocalStorage) {
289
+ if (rawCRB == null && rawCRBLocalStorage == null) {
290
+ return null
291
+ }
292
+
293
+ let result = {}
294
+
295
+ if (rawCRB != null) {
296
+ result.rawCRB = rawCRB
297
+ }
298
+
299
+ if (rawCRBLocalStorage != null) {
300
+ result.rawCRBLocalStorage = rawCRBLocalStorage
301
+ }
302
+
303
+ return result
304
+ }
305
+
185
306
  function getKrgCrb() {
186
307
  return 'eyJzeW5jSWRzIjp7IjIiOiI4MmZhMjU1NS01OTY5LTQ2MTQtYjRjZS00ZGNmMTA4MGU5ZjkiLCIxNiI6IlZveElrOEFvSnowQUFFZENleUFBQUFDMiY1MDIiLCIyMyI6ImQyYTg1NWE1LTFiMWMtNDMwMC05NDBlLWE3MDhmYTFmMWJkZSIsIjI0IjoiVm94SWs4QW9KejBBQUVkQ2V5QUFBQUMyJjUwMiIsIjI1IjoiNWVlMjQxMzgtNWUwMy00YjlkLWE5NTMtMzhlODMzZjI4NDlmIiwiMl84MCI6ImQyYTg1NWE1LTFiMWMtNDMwMC05NDBlLWE3MDhmYTFmMWJkZSIsIjJfOTMiOiI1ZWUyNDEzOC01ZTAzLTRiOWQtYTk1My0zOGU4MzNmMjg0OWYifSwibGV4SWQiOiI1ZjEwODgzMS0zMDJkLTExZTctYmY2Yi00NTk1YWNkM2JmNmMiLCJjbGllbnRJZCI6IjI0MTBkOGYyLWMxMTEtNDgxMS04OGE1LTdiNWUxOTBlNDc1ZiIsIm9wdE91dCI6ZmFsc2UsImV4cGlyZVRpbWUiOjE0OTc0NDkzODI2NjgsImxhc3RTeW5jZWRBdCI6MTQ5NzM2Mjk3OTAxMn0=';
187
308
  }
@@ -253,6 +374,12 @@ describe('kargo adapter tests', function () {
253
374
  setLocalStorageItem('krg_crb', getEmptyKrgCrb());
254
375
  }
255
376
 
377
+ function initializePageView() {
378
+ setLocalStorageItem('pageViewId', 112233);
379
+ setLocalStorageItem('pageViewTimestamp', frozenNow.getTime());
380
+ setLocalStorageItem('pageViewUrl', 'http://pageview.url');
381
+ }
382
+
256
383
  function initializeEmptyKrgCrbCookie() {
257
384
  setCookie('krg_crb', getEmptyKrgCrbOldStyle());
258
385
  }
@@ -261,30 +388,20 @@ describe('kargo adapter tests', function () {
261
388
  return spec._getSessionId();
262
389
  }
263
390
 
264
- function getExpectedKrakenParams(excludeUserIds, expectedRawCRB, expectedRawCRBCookie, expectedGDPR) {
391
+ function getExpectedKrakenParams(expectedCRB, expectedPage, excludeUserIds, expectedGDPR, currency) {
265
392
  var base = {
393
+ pbv: '$prebid.version$',
394
+ aid: '1234098',
395
+ requestCount: 0,
396
+ sid: getSessionId(),
397
+ url: 'https://www.prebid.org',
266
398
  timeout: 200,
267
- requestCount: requestCount++,
268
- currency: 'USD',
269
- cpmGranularity: 1,
270
- timestamp: frozenNow.getTime(),
271
- cpmRange: {
272
- floor: 0,
273
- ceil: 20
274
- },
275
- bidIDs: {
276
- 1: 'foo',
277
- 2: 'bar',
278
- 3: 'bar'
279
- },
280
- bidSizes: {
281
- 1: [[320, 50], [300, 250], [300, 600]],
282
- 2: [[320, 50], [300, 250], [300, 600]],
283
- 3: [[320, 50], [300, 250], [300, 600]]
284
- },
399
+ ts: frozenNow.getTime(),
285
400
  device: {
286
- width: screen.width,
287
- height: screen.height,
401
+ size: [
402
+ screen.width,
403
+ screen.height
404
+ ],
288
405
  sua: {
289
406
  platform: {
290
407
  brand: 'macOS',
@@ -304,14 +421,61 @@ describe('kargo adapter tests', function () {
304
421
  version: [ '99', '0', '0', '0' ]
305
422
  }
306
423
  ],
307
- mobile: 0,
308
- model: '',
424
+ mobile: 1,
425
+ model: 'model',
426
+ source: 1
427
+ },
428
+ },
429
+ imp: [
430
+ {
431
+ code: '101',
432
+ id: '1',
433
+ pid: 'foo',
434
+ tid: '10101',
435
+ banner: {
436
+ sizes: [[320, 50], [300, 50]]
437
+ },
438
+ bidRequestCount: 1,
439
+ bidderRequestCount: 2,
440
+ bidderWinCount: 3,
441
+ floor: 1,
442
+ fpd: {
443
+ gpid: '/22558409563,18834096/dfy_mobile_adhesion'
444
+ }
445
+ },
446
+ {
447
+ code: '202',
448
+ id: '2',
449
+ pid: 'bar',
450
+ tid: '20202',
451
+ video: {
452
+ sizes: [[320, 50], [300, 50]]
453
+ },
454
+ fpd: {
455
+ gpid: '/22558409563,18834096/dfy_mobile_adhesion'
456
+ }
309
457
  },
458
+ {
459
+ code: '303',
460
+ id: '3',
461
+ pid: 'bar',
462
+ tid: '30303',
463
+ native: {
464
+ sizes: [[320, 50], [300, 50]]
465
+ },
466
+ fpd: {
467
+ gpid: '/22558409563,18834096/dfy_mobile_adhesion'
468
+ }
469
+ }
470
+ ],
471
+ socan: {
472
+ segments: ['segment_1', 'segment_2', 'segment_3'],
473
+ url: 'https://socan.url'
310
474
  },
311
- userIDs: {
475
+ user: {
312
476
  kargoID: '5f108831-302d-11e7-bf6b-4595acd3bf6c',
313
477
  clientID: '2410d8f2-c111-4811-88a5-7b5e190e475f',
314
- tdID: 'fake-tdid',
478
+ tdID: 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c',
315
479
  crbIDs: {
316
480
  2: '82fa2555-5969-4614-b4ce-4dcf1080e9f9',
317
481
  16: 'VoxIk8AoJz0AAEdCeyAAAAC2&502',
@@ -322,86 +486,61 @@ describe('kargo adapter tests', function () {
322
486
  '2_93': '5ee24138-5e03-4b9d-a953-38e833f2849f'
323
487
  },
324
488
  optOut: false,
325
- usp: '1---'
326
- },
327
- pageURL: 'https://www.prebid.org',
328
- prebidVersion: '$prebid.version$',
329
- prebidRawBidRequests: [
330
- {
331
- bidId: 1,
332
- ortb2: {
333
- device: {
334
- sua: {
335
- platform: {
336
- brand: 'macOS',
337
- version: [ '12', '6', '0' ]
338
- },
339
- browsers: [
340
- {
341
- brand: 'Chromium',
342
- version: [ '106', '0', '5249', '119' ]
343
- },
344
- {
345
- brand: 'Google Chrome',
346
- version: [ '106', '0', '5249', '119' ]
347
- },
348
- {
349
- brand: 'Not;A=Brand',
350
- version: [ '99', '0', '0', '0' ]
351
- }
352
- ],
353
- mobile: 0,
354
- model: ''
489
+ usp: '1---',
490
+ sharedIDEids: [
491
+ {
492
+ source: 'adserver.org',
493
+ uids: [
494
+ {
495
+ id: 'ed1562d5-e52b-406f-8e65-e5ab3ed5583c',
496
+ atype: 1,
497
+ ext: {
498
+ rtiPartner: 'TDID'
499
+ }
355
500
  }
356
- }
357
- },
358
- params: {
359
- placementId: 'foo'
360
- },
361
- userId: {
362
- tdid: 'fake-tdid'
363
- },
364
- sizes: [[320, 50], [300, 250], [300, 600]],
365
- },
366
- {
367
- bidId: 2,
368
- params: {
369
- placementId: 'bar'
370
- },
371
- sizes: [[320, 50], [300, 250], [300, 600]]
372
- },
373
- {
374
- bidId: 3,
375
- params: {
376
- placementId: 'bar'
377
- },
378
- sizes: [[320, 50], [300, 250], [300, 600]]
379
- }
380
- ],
381
- rawCRB: expectedRawCRBCookie,
382
- rawCRBLocalStorage: expectedRawCRB
501
+ ]
502
+ }
503
+ ]
504
+ }
383
505
  };
384
506
 
507
+ if (excludeUserIds) {
508
+ base.user.crbIDs = {};
509
+ delete base.user.clientID;
510
+ delete base.user.kargoID;
511
+ delete base.user.optOut;
512
+ }
513
+
385
514
  if (expectedGDPR) {
386
- base.userIDs['gdpr'] = expectedGDPR;
515
+ base.user.gdpr = expectedGDPR;
387
516
  }
388
517
 
389
- if (excludeUserIds === true) {
390
- base.userIDs = {
391
- crbIDs: {},
392
- usp: '1---'
393
- };
394
- delete base.prebidRawBidRequests[0].userId.tdid;
518
+ if (expectedPage) {
519
+ base.page = expectedPage;
520
+ }
521
+
522
+ if (currency) {
523
+ base.cur = currency;
524
+ }
525
+
526
+ const reqCount = requestCount++;
527
+ base.requestCount = reqCount
528
+
529
+ if (expectedCRB != null) {
530
+ if (expectedCRB.rawCRB != null) {
531
+ base.rawCRB = expectedCRB.rawCRB
532
+ }
533
+ if (expectedCRB.rawCRBLocalStorage != null) {
534
+ base.rawCRBLocalStorage = expectedCRB.rawCRBLocalStorage
535
+ }
395
536
  }
396
537
 
397
538
  return base;
398
539
  }
399
540
 
400
- function testBuildRequests(excludeTdid, expected, gdpr) {
541
+ function testBuildRequests(expected, gdpr) {
401
542
  var clonedBids = JSON.parse(JSON.stringify(bids));
402
- if (excludeTdid) {
403
- delete clonedBids[0].userId.tdid;
404
- }
543
+
405
544
  var payload = {
406
545
  timeout: 200,
407
546
  uspConsent: '1---',
@@ -415,15 +554,13 @@ describe('kargo adapter tests', function () {
415
554
  }
416
555
 
417
556
  var request = spec.buildRequests(clonedBids, payload);
418
- expected.sessionId = getSessionId();
419
- sessionIds.push(expected.sessionId);
420
- var krakenParams = JSON.parse(decodeURIComponent(request.data.slice(5)));
421
- expect(request.data.slice(0, 5)).to.equal('json=');
422
- expect(request.url).to.equal('https://krk.kargo.com/api/v2/bid');
423
- expect(request.method).to.equal('GET');
424
- expect(request.currency).to.equal('USD');
557
+ var krakenParams = request.data;
558
+
559
+ expect(request.url).to.equal('https://krk2.kargo.com/api/v1/prebid');
560
+ expect(request.method).to.equal('POST');
425
561
  expect(request.timeout).to.equal(200);
426
562
  expect(krakenParams).to.deep.equal(expected);
563
+
427
564
  // Make sure session ID stays the same across requests simulating multiple auctions on one page load
428
565
  for (let i in sessionIds) {
429
566
  if (i == 0) {
@@ -436,76 +573,93 @@ describe('kargo adapter tests', function () {
436
573
 
437
574
  it('works when all params and localstorage and cookies are correctly set', function() {
438
575
  initializeKrgCrb();
439
- testBuildRequests(false, getExpectedKrakenParams(undefined, getKrgCrb(), getKrgCrbOldStyle()));
576
+ initializePageView();
577
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView()));
440
578
  });
441
579
 
442
580
  it('works when all params and cookies are correctly set but no localstorage', function() {
443
581
  initializeKrgCrb(true);
444
- testBuildRequests(false, getExpectedKrakenParams(undefined, null, getKrgCrbOldStyle()));
582
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle())));
445
583
  });
446
584
 
447
585
  it('gracefully handles nothing being set', function() {
448
- testBuildRequests(true, getExpectedKrakenParams(true, null, null));
586
+ testBuildRequests(getExpectedKrakenParams(undefined, undefined, true));
449
587
  });
450
588
 
451
589
  it('gracefully handles browsers without localStorage', function() {
452
590
  simulateNoLocalStorage();
453
- testBuildRequests(true, getExpectedKrakenParams(true, null, null));
591
+ testBuildRequests(getExpectedKrakenParams(undefined, undefined, true));
454
592
  });
455
593
 
456
594
  it('handles empty yet valid Kargo CRB', function() {
457
595
  initializeEmptyKrgCrb();
458
596
  initializeEmptyKrgCrbCookie();
459
- testBuildRequests(true, getExpectedKrakenParams(true, getEmptyKrgCrb(), getEmptyKrgCrbOldStyle()));
597
+ initializePageView();
598
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getEmptyKrgCrbOldStyle(), getEmptyKrgCrb()), generatePageView(), true));
460
599
  });
461
600
 
462
601
  it('handles broken Kargo CRBs where base64 encoding is invalid', function() {
463
602
  initializeInvalidKrgCrbType1();
464
- testBuildRequests(true, getExpectedKrakenParams(true, getInvalidKrgCrbType1(), null));
603
+ initializePageView();
604
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(undefined, getInvalidKrgCrbType1()), generatePageView(), true));
465
605
  });
466
606
 
467
607
  it('handles broken Kargo CRBs where top level JSON is invalid on cookie', function() {
468
608
  initializeInvalidKrgCrbType1Cookie();
469
- testBuildRequests(true, getExpectedKrakenParams(true, null, getInvalidKrgCrbType1()));
609
+ initializePageView();
610
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType1()), generatePageView(), true));
470
611
  });
471
612
 
472
613
  it('handles broken Kargo CRBs where decoded JSON is invalid', function() {
473
614
  initializeInvalidKrgCrbType2();
474
- testBuildRequests(true, getExpectedKrakenParams(true, getInvalidKrgCrbType2(), null));
615
+ initializePageView();
616
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(undefined, getInvalidKrgCrbType2()), generatePageView(), true));
475
617
  });
476
618
 
477
619
  it('handles broken Kargo CRBs where inner base 64 is invalid on cookie', function() {
478
620
  initializeInvalidKrgCrbType2Cookie();
479
- testBuildRequests(true, getExpectedKrakenParams(true, null, getInvalidKrgCrbType2OldStyle()));
621
+ initializePageView();
622
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType2OldStyle()), generatePageView(), true));
480
623
  });
481
624
 
482
625
  it('handles broken Kargo CRBs where inner JSON is invalid on cookie', function() {
483
626
  initializeInvalidKrgCrbType3Cookie();
484
- testBuildRequests(true, getExpectedKrakenParams(true, null, getInvalidKrgCrbType3OldStyle()));
627
+ initializePageView();
628
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType3OldStyle()), generatePageView(), true));
485
629
  });
486
630
 
487
631
  it('handles broken Kargo CRBs where inner JSON is falsey', function() {
488
632
  initializeInvalidKrgCrbType4Cookie();
489
- testBuildRequests(true, getExpectedKrakenParams(true, null, getInvalidKrgCrbType4OldStyle()));
633
+ initializePageView();
634
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getInvalidKrgCrbType4OldStyle()), generatePageView(), true));
490
635
  });
491
636
 
492
637
  it('handles a non-existant currency object on the config', function() {
493
638
  simulateNoCurrencyObject();
494
639
  initializeKrgCrb();
495
- testBuildRequests(false, getExpectedKrakenParams(undefined, getKrgCrb(), getKrgCrbOldStyle()));
640
+ initializePageView();
641
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView()));
496
642
  });
497
643
 
498
644
  it('handles no ad server currency being set on the currency object in the config', function() {
499
645
  simulateNoAdServerCurrency();
500
646
  initializeKrgCrb();
501
- testBuildRequests(false, getExpectedKrakenParams(undefined, getKrgCrb(), getKrgCrbOldStyle()));
647
+ initializePageView();
648
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView()));
649
+ });
650
+
651
+ it('handles non-USD ad server currency being set on the currency object in the config', function() {
652
+ simulateNonUSDAdServerCurrency();
653
+ initializeKrgCrb();
654
+ initializePageView();
655
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), generatePageView(), undefined, undefined, 'EUR'));
502
656
  });
503
657
 
504
658
  it('sends gdpr consent', function () {
505
659
  initializeKrgCrb();
506
- testBuildRequests(false, getExpectedKrakenParams(undefined, getKrgCrb(), getKrgCrbOldStyle(), generateGDPRExpect(true, true)), generateGDPR(true, true));
507
- testBuildRequests(false, getExpectedKrakenParams(undefined, getKrgCrb(), getKrgCrbOldStyle(), generateGDPRExpect(false, true)), generateGDPR(false, true));
508
- testBuildRequests(false, getExpectedKrakenParams(undefined, getKrgCrb(), getKrgCrbOldStyle(), generateGDPRExpect(false, false)), generateGDPR(false, false));
660
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), undefined, false, generateGDPRExpect(true, true)), generateGDPR(true, true));
661
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), undefined, false, generateGDPRExpect(false, true)), generateGDPR(false, true));
662
+ testBuildRequests(getExpectedKrakenParams(generateRawCRB(getKrgCrbOldStyle(), getKrgCrb()), undefined, false, generateGDPRExpect(false, false)), generateGDPR(false, false));
509
663
  });
510
664
  });
511
665
 
@@ -604,11 +758,11 @@ describe('kargo adapter tests', function () {
604
758
  }]
605
759
  });
606
760
  var expectation = [{
761
+ ad: '<div id="1"></div>',
607
762
  requestId: '1',
608
763
  cpm: 3,
609
764
  width: 320,
610
765
  height: 50,
611
- ad: '<div id="1"></div>',
612
766
  ttl: 300,
613
767
  creativeId: 'foo',
614
768
  dealId: undefined,
@@ -620,10 +774,10 @@ describe('kargo adapter tests', function () {
620
774
  }
621
775
  }, {
622
776
  requestId: '2',
777
+ ad: '<div id="2"></div>',
623
778
  cpm: 2.5,
624
779
  width: 300,
625
780
  height: 250,
626
- ad: '<div id="2"></div>',
627
781
  ttl: 300,
628
782
  creativeId: 'bar',
629
783
  dealId: 'dmpmptest1234',
@@ -637,10 +791,10 @@ describe('kargo adapter tests', function () {
637
791
  }
638
792
  }, {
639
793
  requestId: '3',
794
+ ad: '<div id="2"></div>',
640
795
  cpm: 2.5,
641
796
  width: 300,
642
797
  height: 250,
643
- ad: '<div id="2"></div>',
644
798
  ttl: 300,
645
799
  creativeId: 'bar',
646
800
  dealId: undefined,
@@ -652,10 +806,10 @@ describe('kargo adapter tests', function () {
652
806
  }
653
807
  }, {
654
808
  requestId: '4',
809
+ ad: '<div id="4"></div>',
655
810
  cpm: 2.5,
656
811
  width: 300,
657
812
  height: 250,
658
- ad: '<div id="4"></div>',
659
813
  ttl: 300,
660
814
  creativeId: 'bar',
661
815
  dealId: undefined,
@@ -670,7 +824,6 @@ describe('kargo adapter tests', function () {
670
824
  cpm: 2.5,
671
825
  width: 300,
672
826
  height: 250,
673
- ad: '<VAST></VAST>',
674
827
  vastXml: '<VAST></VAST>',
675
828
  ttl: 300,
676
829
  creativeId: 'bar',
@@ -686,7 +839,6 @@ describe('kargo adapter tests', function () {
686
839
  cpm: 2.5,
687
840
  width: 300,
688
841
  height: 250,
689
- ad: '',
690
842
  vastUrl: 'https://foobar.com/vast_adm',
691
843
  ttl: 300,
692
844
  creativeId: 'bar',
@@ -740,8 +892,8 @@ describe('kargo adapter tests', function () {
740
892
  });
741
893
  });
742
894
 
743
- function getUserSyncsWhenAllowed(gdprConsent, usPrivacy) {
744
- return spec.getUserSyncs({iframeEnabled: true}, null, gdprConsent, usPrivacy);
895
+ function getUserSyncsWhenAllowed(gdprConsent, usPrivacy, gppConsent) {
896
+ return spec.getUserSyncs({iframeEnabled: true}, null, gdprConsent, usPrivacy, gppConsent);
745
897
  }
746
898
 
747
899
  function getUserSyncsWhenForbidden() {
@@ -756,17 +908,17 @@ describe('kargo adapter tests', function () {
756
908
  shouldSimulateOutdatedBrowser = true;
757
909
  }
758
910
 
759
- function getSyncUrl(index, gdprApplies, gdprConsentString, usPrivacy) {
911
+ function getSyncUrl(index, gdprApplies, gdprConsentString, usPrivacy, gpp, gppSid) {
760
912
  return {
761
913
  type: 'iframe',
762
- url: `https://crb.kargo.com/api/v1/initsyncrnd/${clientId}?seed=3205e885-8d37-4139-b47e-f82cff268000&idx=${index}&gdpr=${gdprApplies}&gdpr_consent=${gdprConsentString}&us_privacy=${usPrivacy}`
914
+ url: `https://crb.kargo.com/api/v1/initsyncrnd/${clientId}?seed=3205e885-8d37-4139-b47e-f82cff268000&idx=${index}&gdpr=${gdprApplies}&gdpr_consent=${gdprConsentString}&us_privacy=${usPrivacy}&gpp=${gpp}&gpp_sid=${gppSid}`
763
915
  };
764
916
  }
765
917
 
766
- function getSyncUrls(gdprApplies, gdprConsentString, usPrivacy) {
918
+ function getSyncUrls(gdprApplies, gdprConsentString, usPrivacy, gpp, gppSid) {
767
919
  var syncs = [];
768
920
  for (var i = 0; i < 5; i++) {
769
- syncs[i] = getSyncUrl(i, gdprApplies || 0, gdprConsentString || '', usPrivacy || '');
921
+ syncs[i] = getSyncUrl(i, gdprApplies || 0, gdprConsentString || '', usPrivacy || '', gpp || '', gppSid || '');
770
922
  }
771
923
  return syncs;
772
924
  }
@@ -803,6 +955,11 @@ describe('kargo adapter tests', function () {
803
955
  safelyRun(() => expect(getUserSyncsWhenAllowed({ gdprApplies: true, consentString: 'consentstring' })).to.deep.equal(getSyncUrls(1, 'consentstring', '')));
804
956
  });
805
957
 
958
+ it('pass through gpp consent', function () {
959
+ turnOnClientId();
960
+ safelyRun(() => expect(getUserSyncsWhenAllowed(null, null, { consentString: 'gppString', applicableSections: [-1] })).to.deep.equal(getSyncUrls('', '', '', 'gppString', '-1')));
961
+ });
962
+
806
963
  it('no user syncs when there is outdated browser', function() {
807
964
  turnOnClientId();
808
965
  simulateOutdatedBrowser();
@@ -831,7 +988,7 @@ describe('kargo adapter tests', function () {
831
988
  expect(triggerPixelStub.getCall(0)).to.be.null;
832
989
  spec.onTimeout([{ auctionId: '1234', timeout: 2000 }]);
833
990
  expect(triggerPixelStub.getCall(0)).to.not.be.null;
834
- expect(triggerPixelStub.getCall(0).args[0]).to.exist.and.to.include('https://krk.kargo.com/api/v1/event/timeout');
991
+ expect(triggerPixelStub.getCall(0).args[0]).to.exist.and.to.include('https://krk2.kargo.com/api/v1/event/timeout');
835
992
  expect(triggerPixelStub.getCall(0).args[0]).to.include('aid=1234');
836
993
  expect(triggerPixelStub.getCall(0).args[0]).to.include('ato=2000');
837
994
  });