prebid.js 6.26.0 → 6.29.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 (261) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/adWMGAnalyticsAdapter.js +1 -1
  3. package/dist/adagioAnalyticsAdapter.js +1 -1
  4. package/dist/adagioBidAdapter.js +1 -1
  5. package/dist/adbookpspBidAdapter.js +1 -1
  6. package/dist/adfBidAdapter.js +1 -1
  7. package/dist/adgenerationBidAdapter.js +1 -1
  8. package/dist/adkernelAdnAnalyticsAdapter.js +1 -1
  9. package/dist/adlooxAdServerVideo.js +1 -1
  10. package/dist/adlooxAnalyticsAdapter.js +1 -1
  11. package/dist/adlooxRtdProvider.js +1 -1
  12. package/dist/adoceanBidAdapter.js +1 -1
  13. package/dist/adomikAnalyticsAdapter.js +1 -1
  14. package/dist/adrelevantisBidAdapter.js +1 -1
  15. package/dist/adxcgAnalyticsAdapter.js +1 -1
  16. package/dist/adxcgBidAdapter.js +1 -1
  17. package/dist/adxpremiumAnalyticsAdapter.js +1 -1
  18. package/dist/adyoulikeBidAdapter.js +1 -1
  19. package/dist/ajaBidAdapter.js +1 -1
  20. package/dist/akamaiDapRtdProvider.js +1 -1
  21. package/dist/amxBidAdapter.js +1 -1
  22. package/dist/amxIdSystem.js +1 -1
  23. package/dist/appierAnalyticsAdapter.js +1 -1
  24. package/dist/appnexusAnalyticsAdapter.js +1 -1
  25. package/dist/appnexusBidAdapter.js +1 -1
  26. package/dist/asoBidAdapter.js +1 -1
  27. package/dist/atsAnalyticsAdapter.js +1 -1
  28. package/dist/audiencerunBidAdapter.js +1 -1
  29. package/dist/automatadBidAdapter.js +1 -1
  30. package/dist/axonixBidAdapter.js +1 -1
  31. package/dist/bidglassBidAdapter.js +1 -1
  32. package/dist/bidwatchAnalyticsAdapter.js +1 -1
  33. package/dist/big-richmediaBidAdapter.js +1 -1
  34. package/dist/bluebillywigBidAdapter.js +1 -1
  35. package/dist/bridgewellBidAdapter.js +1 -1
  36. package/dist/brightMountainMediaBidAdapter.js +1 -1
  37. package/dist/byDataAnalyticsAdapter.js +1 -1
  38. package/dist/colossussspBidAdapter.js +1 -1
  39. package/dist/concertAnalyticsAdapter.js +1 -1
  40. package/dist/concertBidAdapter.js +1 -1
  41. package/dist/connectadBidAdapter.js +1 -1
  42. package/dist/consumableBidAdapter.js +1 -1
  43. package/dist/conversantBidAdapter.js +1 -1
  44. package/dist/craftBidAdapter.js +1 -1
  45. package/dist/criteoBidAdapter.js +1 -1
  46. package/dist/datablocksAnalyticsAdapter.js +1 -1
  47. package/dist/dspxBidAdapter.js +1 -1
  48. package/dist/eplanningAnalyticsAdapter.js +1 -1
  49. package/dist/eplanningBidAdapter.js +1 -1
  50. package/dist/fintezaAnalyticsAdapter.js +1 -1
  51. package/dist/ftrackIdSystem.js +1 -1
  52. package/dist/gdprEnforcement.js +1 -1
  53. package/dist/glimpseBidAdapter.js +1 -1
  54. package/dist/gmosspBidAdapter.js +1 -1
  55. package/dist/goldbachBidAdapter.js +1 -1
  56. package/dist/gridBidAdapter.js +1 -1
  57. package/dist/gridNMBidAdapter.js +1 -1
  58. package/dist/gumgumBidAdapter.js +1 -1
  59. package/dist/h12mediaBidAdapter.js +1 -1
  60. package/dist/hadronAnalyticsAdapter.js +1 -1
  61. package/dist/hadronRtdProvider.js +1 -1
  62. package/dist/id5AnalyticsAdapter.js +1 -1
  63. package/dist/id5IdSystem.js +1 -1
  64. package/dist/impactifyBidAdapter.js +1 -1
  65. package/dist/improvedigitalBidAdapter.js +1 -1
  66. package/dist/incrxBidAdapter.js +1 -0
  67. package/dist/inmarBidAdapter.js +1 -1
  68. package/dist/inskinBidAdapter.js +1 -1
  69. package/dist/insticatorBidAdapter.js +1 -1
  70. package/dist/invisiblyAnalyticsAdapter.js +1 -1
  71. package/dist/ixBidAdapter.js +1 -1
  72. package/dist/jixieBidAdapter.js +1 -1
  73. package/dist/justpremiumBidAdapter.js +1 -1
  74. package/dist/kargoAnalyticsAdapter.js +1 -1
  75. package/dist/kargoBidAdapter.js +1 -1
  76. package/dist/koblerBidAdapter.js +1 -1
  77. package/dist/konduitAnalyticsAdapter.js +1 -1
  78. package/dist/livewrappedAnalyticsAdapter.js +1 -1
  79. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  80. package/dist/logicadBidAdapter.js +1 -1
  81. package/dist/loglyliftBidAdapter.js +1 -1
  82. package/dist/malltvAnalyticsAdapter.js +1 -1
  83. package/dist/mantisBidAdapter.js +1 -1
  84. package/dist/marsmediaAnalyticsAdapter.js +1 -1
  85. package/dist/marsmediaBidAdapter.js +1 -1
  86. package/dist/mediafuseBidAdapter.js +1 -1
  87. package/dist/mediakeysBidAdapter.js +1 -1
  88. package/dist/medianetAnalyticsAdapter.js +1 -1
  89. package/dist/medianetBidAdapter.js +1 -1
  90. package/dist/medianetRtdProvider.js +1 -1
  91. package/dist/mediasquareBidAdapter.js +1 -1
  92. package/dist/merkleIdSystem.js +1 -1
  93. package/dist/mgidBidAdapter.js +1 -1
  94. package/dist/minutemediaBidAdapter.js +1 -1
  95. package/dist/naveggIdSystem.js +1 -1
  96. package/dist/not-for-prod/prebid.js +178 -176
  97. package/dist/novatiqIdSystem.js +1 -1
  98. package/dist/oguryBidAdapter.js +1 -1
  99. package/dist/oneVideoBidAdapter.js +1 -1
  100. package/dist/onetagBidAdapter.js +1 -1
  101. package/dist/ooloAnalyticsAdapter.js +1 -1
  102. package/dist/openxAnalyticsAdapter.js +1 -1
  103. package/dist/optimonAnalyticsAdapter.js +1 -1
  104. package/dist/outbrainBidAdapter.js +1 -1
  105. package/dist/parrableIdSystem.js +1 -1
  106. package/dist/pixfutureBidAdapter.js +1 -1
  107. package/dist/prebid-core.js +3 -3
  108. package/dist/prebidmanagerAnalyticsAdapter.js +1 -1
  109. package/dist/pubCommonId.js +1 -1
  110. package/dist/publinkIdSystem.js +1 -1
  111. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  112. package/dist/pubmaticBidAdapter.js +1 -1
  113. package/dist/pubperfAnalyticsAdapter.js +1 -1
  114. package/dist/pubstackAnalyticsAdapter.js +1 -1
  115. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  116. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  117. package/dist/pulsepointAnalyticsAdapter.js +1 -1
  118. package/dist/pxyzBidAdapter.js +1 -1
  119. package/dist/quantcastBidAdapter.js +1 -1
  120. package/dist/readpeakBidAdapter.js +1 -1
  121. package/dist/realvuAnalyticsAdapter.js +1 -1
  122. package/dist/relaidoBidAdapter.js +1 -1
  123. package/dist/relevantAnalyticsAdapter.js +1 -1
  124. package/dist/rhythmoneBidAdapter.js +1 -1
  125. package/dist/riseBidAdapter.js +1 -1
  126. package/dist/rivrAnalyticsAdapter.js +1 -1
  127. package/dist/roxotAnalyticsAdapter.js +1 -1
  128. package/dist/rubiconAnalyticsAdapter.js +1 -1
  129. package/dist/rubiconBidAdapter.js +1 -1
  130. package/dist/scaleableAnalyticsAdapter.js +1 -1
  131. package/dist/seedingAllianceBidAdapter.js +1 -1
  132. package/dist/seedtagBidAdapter.js +1 -1
  133. package/dist/sharedIdSystem.js +1 -1
  134. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  135. package/dist/sharethroughBidAdapter.js +1 -1
  136. package/dist/sigmoidAnalyticsAdapter.js +1 -1
  137. package/dist/slimcutBidAdapter.js +1 -1
  138. package/dist/smaatoBidAdapter.js +1 -1
  139. package/dist/smartadserverBidAdapter.js +1 -1
  140. package/dist/smartxBidAdapter.js +1 -1
  141. package/dist/smilewantedBidAdapter.js +1 -1
  142. package/dist/sonobiAnalyticsAdapter.js +1 -1
  143. package/dist/sonobiBidAdapter.js +1 -1
  144. package/dist/sortableAnalyticsAdapter.js +1 -1
  145. package/dist/sortableBidAdapter.js +1 -1
  146. package/dist/sovrnAnalyticsAdapter.js +1 -1
  147. package/dist/sovrnBidAdapter.js +1 -1
  148. package/dist/spotxBidAdapter.js +1 -1
  149. package/dist/sspBCBidAdapter.js +1 -1
  150. package/dist/staqAnalyticsAdapter.js +1 -1
  151. package/dist/sublimeBidAdapter.js +1 -1
  152. package/dist/synacormediaBidAdapter.js +1 -1
  153. package/dist/taboolaBidAdapter.js +1 -0
  154. package/dist/targetVideoBidAdapter.js +1 -1
  155. package/dist/teadsBidAdapter.js +1 -1
  156. package/dist/telariaBidAdapter.js +1 -1
  157. package/dist/terceptAnalyticsAdapter.js +1 -1
  158. package/dist/trionBidAdapter.js +1 -1
  159. package/dist/tripleliftBidAdapter.js +1 -1
  160. package/dist/trustxBidAdapter.js +1 -1
  161. package/dist/ttdBidAdapter.js +1 -1
  162. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  163. package/dist/underdogmediaBidAdapter.js +1 -1
  164. package/dist/undertoneBidAdapter.js +1 -1
  165. package/dist/userId.js +1 -1
  166. package/dist/vidazooBidAdapter.js +1 -1
  167. package/dist/videobyteBidAdapter.js +1 -1
  168. package/dist/visxBidAdapter.js +1 -1
  169. package/dist/vuukleBidAdapter.js +1 -1
  170. package/dist/widespaceBidAdapter.js +1 -1
  171. package/dist/winrBidAdapter.js +1 -1
  172. package/dist/yahoosspBidAdapter.js +1 -1
  173. package/dist/yieldmoBidAdapter.js +1 -1
  174. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  175. package/dist/yuktamediaAnalyticsAdapter.js +1 -1
  176. package/dist/zeta_global_sspAnalyticsAdapter.js +1 -1
  177. package/dist/zeta_global_sspBidAdapter.js +1 -1
  178. package/integrationExamples/gpt/akamaidap_segments_example.html +5 -3
  179. package/modules/.submodules.json +1 -0
  180. package/modules/adfBidAdapter.js +0 -3
  181. package/modules/adlooxAnalyticsAdapter.js +9 -5
  182. package/modules/adlooxAnalyticsAdapter.md +3 -3
  183. package/modules/adlooxRtdProvider.js +3 -5
  184. package/modules/adlooxRtdProvider.md +2 -2
  185. package/modules/adoceanBidAdapter.js +29 -1
  186. package/modules/adyoulikeBidAdapter.js +3 -0
  187. package/modules/akamaiDapRtdProvider.js +469 -139
  188. package/modules/akamaiDapRtdProvider.md +5 -3
  189. package/modules/automatadBidAdapter.js +9 -5
  190. package/modules/colossussspBidAdapter.js +17 -17
  191. package/modules/conversantBidAdapter.js +2 -2
  192. package/modules/criteoBidAdapter.js +1 -1
  193. package/modules/ftrackIdSystem.js +5 -8
  194. package/modules/gdprEnforcement.js +15 -9
  195. package/modules/gridBidAdapter.js +4 -0
  196. package/modules/hadronAnalyticsAdapter.js +5 -1
  197. package/modules/hadronRtdProvider.js +15 -13
  198. package/modules/incrxBidAdapter.js +87 -0
  199. package/modules/{vertozBidAdapter.md → incrxBidAdapter.md} +6 -6
  200. package/modules/inskinBidAdapter.js +4 -3
  201. package/modules/insticatorBidAdapter.js +109 -42
  202. package/modules/ixBidAdapter.js +3 -2
  203. package/modules/ixBidAdapter.md +1 -1
  204. package/modules/kargoBidAdapter.js +32 -1
  205. package/modules/koblerBidAdapter.js +54 -45
  206. package/modules/koblerBidAdapter.md +12 -17
  207. package/modules/mantisBidAdapter.js +4 -8
  208. package/modules/medianetBidAdapter.js +2 -2
  209. package/modules/medianetRtdProvider.js +4 -6
  210. package/modules/merkleIdSystem.js +43 -31
  211. package/modules/naveggIdSystem.js +3 -2
  212. package/modules/novatiqIdSystem.js +6 -1
  213. package/modules/pubCommonId.js +2 -1
  214. package/modules/pubmaticAnalyticsAdapter.js +49 -33
  215. package/modules/relaidoBidAdapter.js +0 -3
  216. package/modules/sharedIdSystem.js +5 -11
  217. package/modules/slimcutBidAdapter.js +2 -2
  218. package/modules/spotxBidAdapter.js +1 -1
  219. package/modules/synacormediaBidAdapter.js +11 -2
  220. package/modules/taboolaBidAdapter.js +265 -0
  221. package/modules/taboolaBidAdapter.md +49 -0
  222. package/modules/telariaBidAdapter.js +3 -3
  223. package/modules/userId/eids.js +25 -5
  224. package/modules/zeta_global_sspBidAdapter.js +3 -2
  225. package/package.json +1 -1
  226. package/src/AnalyticsAdapter.js +5 -1
  227. package/src/adloader.js +6 -1
  228. package/src/storageManager.js +5 -4
  229. package/test/mocks/analyticsStub.js +13 -0
  230. package/test/mocks/xhr.js +22 -0
  231. package/test/spec/AnalyticsAdapter_spec.js +4 -0
  232. package/test/spec/modules/adfBidAdapter_spec.js +1 -1
  233. package/test/spec/modules/adoceanBidAdapter_spec.js +25 -1
  234. package/test/spec/modules/adriverIdSystem_spec.js +7 -3
  235. package/test/spec/modules/adyoulikeBidAdapter_spec.js +16 -1
  236. package/test/spec/modules/akamaiDapRtdProvider_spec.js +457 -109
  237. package/test/spec/modules/automatadBidAdapter_spec.js +4 -0
  238. package/test/spec/modules/conversantBidAdapter_spec.js +36 -5
  239. package/test/spec/modules/datablocksBidAdapter_spec.js +9 -8
  240. package/test/spec/modules/eids_spec.js +48 -3
  241. package/test/spec/modules/fintezaAnalyticsAdapter_spec.js +4 -4
  242. package/test/spec/modules/ftrackIdSystem_spec.js +11 -22
  243. package/test/spec/modules/gdprEnforcement_spec.js +100 -53
  244. package/test/spec/modules/gridBidAdapter_spec.js +11 -0
  245. package/test/spec/modules/incrxBidAdapter_spec.js +100 -0
  246. package/test/spec/modules/insticatorBidAdapter_spec.js +46 -1
  247. package/test/spec/modules/ixBidAdapter_spec.js +1 -1
  248. package/test/spec/modules/kargoBidAdapter_spec.js +27 -0
  249. package/test/spec/modules/koblerBidAdapter_spec.js +160 -124
  250. package/test/spec/modules/medianetRtdProvider_spec.js +146 -0
  251. package/test/spec/modules/merkleIdSystem_spec.js +58 -37
  252. package/test/spec/modules/naveggIdSystem_spec.js +25 -1
  253. package/test/spec/modules/proxistoreBidAdapter_spec.js +0 -2
  254. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +117 -0
  255. package/test/spec/modules/sovrnBidAdapter_spec.js +253 -264
  256. package/test/spec/modules/synacormediaBidAdapter_spec.js +74 -0
  257. package/test/spec/modules/taboolaBidAdapter_spec.js +455 -0
  258. package/test/spec/modules/userId_spec.js +27 -1
  259. package/test/spec/modules/vidazooBidAdapter_spec.js +9 -4
  260. package/test/spec/modules/zeta_global_sspBidAdapter_spec.js +4 -2
  261. package/test/test_deps.js +1 -0
@@ -7,9 +7,8 @@ import sinon from 'sinon';
7
7
  let expect = require('chai').expect;
8
8
 
9
9
  const CONFIG_PARAMS = {
10
- endpoint: 'https://test/id',
11
- vendor: 'idsv2',
12
- sv_cid: '5344_04531',
10
+ endpoint: undefined,
11
+ ssp_ids: ['ssp-1'],
13
12
  sv_pubid: '11314',
14
13
  sv_domain: 'www.testDomain.com',
15
14
  sv_session: 'testsession'
@@ -38,6 +37,42 @@ function mockResponse(
38
37
  }
39
38
 
40
39
  describe('Merkle System', function () {
40
+ describe('merkleIdSystem.decode()', function() {
41
+ it('provides multiple Merkle IDs (EID) from a stored object', function() {
42
+ let storage = {
43
+ merkleId: [{
44
+ id: 'some-random-id-value', ext: { enc: 1, keyID: 16, idName: 'pamId', ssp: 'ssp1' }
45
+ }, {
46
+ id: 'another-random-id-value',
47
+ ext: {
48
+ enc: 1,
49
+ idName: 'pamId',
50
+ third: 4,
51
+ ssp: 'ssp2'
52
+ }
53
+ }],
54
+ _svsid: 'some-identifier'
55
+ };
56
+
57
+ expect(merkleIdSubmodule.decode(storage)).to.deep.equal({
58
+ merkleId: storage.merkleId
59
+ });
60
+ });
61
+
62
+ it('can decode legacy stored object', function() {
63
+ let merkleId = {'pam_id': {'id': 'testmerkleId', 'keyID': 1}};
64
+
65
+ expect(merkleIdSubmodule.decode(merkleId)).to.deep.equal({
66
+ merkleId: {'id': 'testmerkleId', 'keyID': 1}
67
+ });
68
+ })
69
+
70
+ it('returns undefined', function() {
71
+ let merkleId = {};
72
+ expect(merkleIdSubmodule.decode(merkleId)).to.be.undefined;
73
+ })
74
+ });
75
+
41
76
  describe('Merkle System getId()', function () {
42
77
  const callbackSpy = sinon.spy();
43
78
  let sandbox;
@@ -59,60 +94,32 @@ describe('Merkle System', function () {
59
94
  ajaxStub.restore();
60
95
  });
61
96
 
62
- it('getId() should fail on missing vendor', function () {
63
- let config = {
64
- params: {
65
- ...CONFIG_PARAMS,
66
- vendor: undefined
67
- },
68
- storage: STORAGE_PARAMS
69
- };
70
-
71
- let submoduleCallback = merkleIdSubmodule.getId(config, undefined);
72
- expect(submoduleCallback).to.be.undefined;
73
- expect(utils.logError.args[0][0]).to.exist.and.to.equal('User ID - merkleId submodule requires a valid vendor to be defined');
74
- });
75
-
76
- it('getId() should fail on missing vendor', function () {
77
- let config = {
78
- params: {
79
- ...CONFIG_PARAMS,
80
- vendor: undefined
81
- },
82
- storage: STORAGE_PARAMS
83
- };
84
-
85
- let submoduleCallback = merkleIdSubmodule.getId(config, undefined);
86
- expect(submoduleCallback).to.be.undefined;
87
- expect(utils.logError.args[0][0]).to.exist.and.to.equal('User ID - merkleId submodule requires a valid vendor to be defined');
88
- });
89
-
90
- it('getId() should fail on missing sv_cid', function () {
97
+ it('getId() should fail on missing sv_pubid', function () {
91
98
  let config = {
92
99
  params: {
93
100
  ...CONFIG_PARAMS,
94
- sv_cid: undefined
101
+ sv_pubid: undefined
95
102
  },
96
103
  storage: STORAGE_PARAMS
97
104
  };
98
105
 
99
106
  let submoduleCallback = merkleIdSubmodule.getId(config, undefined);
100
107
  expect(submoduleCallback).to.be.undefined;
101
- expect(utils.logError.args[0][0]).to.exist.and.to.equal('User ID - merkleId submodule requires a valid sv_cid string to be defined');
108
+ expect(utils.logError.args[0][0]).to.exist.and.to.equal('User ID - merkleId submodule requires a valid sv_pubid string to be defined');
102
109
  });
103
110
 
104
- it('getId() should fail on missing sv_pubid', function () {
111
+ it('getId() should fail on missing ssp_ids', function () {
105
112
  let config = {
106
113
  params: {
107
114
  ...CONFIG_PARAMS,
108
- sv_pubid: undefined
115
+ ssp_ids: undefined
109
116
  },
110
117
  storage: STORAGE_PARAMS
111
118
  };
112
119
 
113
120
  let submoduleCallback = merkleIdSubmodule.getId(config, undefined);
114
121
  expect(submoduleCallback).to.be.undefined;
115
- expect(utils.logError.args[0][0]).to.exist.and.to.equal('User ID - merkleId submodule requires a valid sv_pubid string to be defined');
122
+ expect(utils.logError.args[0][0]).to.exist.and.to.equal('User ID - merkleId submodule requires a valid ssp_ids array to be defined');
116
123
  });
117
124
 
118
125
  it('getId() should warn on missing endpoint', function () {
@@ -140,6 +147,20 @@ describe('Merkle System', function () {
140
147
  submoduleCallback(callbackSpy);
141
148
  expect(callbackSpy.calledOnce).to.be.true;
142
149
  });
150
+
151
+ it('getId() does not handle consent strings', function () {
152
+ let config = {
153
+ params: {
154
+ ...CONFIG_PARAMS,
155
+ ssp_ids: []
156
+ },
157
+ storage: STORAGE_PARAMS
158
+ };
159
+
160
+ let submoduleCallback = merkleIdSubmodule.getId(config, { gdprApplies: true });
161
+ expect(submoduleCallback).to.be.undefined;
162
+ expect(utils.logError.args[0][0]).to.exist.and.to.equal('User ID - merkleId submodule does not currently handle consent strings');
163
+ });
143
164
  });
144
165
 
145
166
  describe('Merkle System extendId()', function () {
@@ -1,6 +1,15 @@
1
1
  import { naveggIdSubmodule, storage } from 'modules/naveggIdSystem.js';
2
2
 
3
3
  describe('naveggId', function () {
4
+ let sandbox;
5
+ beforeEach(() => {
6
+ sandbox = sinon.sandbox.create();
7
+ sandbox.stub(storage, 'getDataFromLocalStorage');
8
+ });
9
+ afterEach(() => {
10
+ sandbox.restore();
11
+ });
12
+
4
13
  it('should NOT find navegg id', function () {
5
14
  let id = naveggIdSubmodule.getId();
6
15
 
@@ -14,8 +23,23 @@ describe('naveggId', function () {
14
23
  })
15
24
 
16
25
  it('getId() should return "test-nvggid" id from local storage NAVEGG_ID', function() {
17
- sinon.stub(storage, 'getDataFromLocalStorage').withArgs('nvggid').returns('test-ninvggidd');
26
+ storage.getDataFromLocalStorage.callsFake(() => 'test-ninvggidd')
27
+
18
28
  let id = naveggIdSubmodule.getId();
19
29
  expect(id).to.be.deep.equal({id: 'test-ninvggidd'})
20
30
  })
31
+
32
+ it('getId() should return "test-nvggid" id from local storage NAV0', function() {
33
+ storage.getDataFromLocalStorage.callsFake(() => 'nvgid-nav0')
34
+
35
+ let id = naveggIdSubmodule.getId();
36
+ expect(id).to.be.deep.equal({id: 'nvgid-nav0'})
37
+ })
38
+
39
+ it('getId() should return "test-nvggid" id from local storage NVG0', function() {
40
+ storage.getDataFromLocalStorage.callsFake(() => 'nvgid-nvg0')
41
+
42
+ let id = naveggIdSubmodule.getId();
43
+ expect(id).to.be.deep.equal({id: 'nvgid-nvg0'})
44
+ })
21
45
  });
@@ -124,8 +124,6 @@ describe('ProxistoreBidAdapter', function () {
124
124
  bid.params['bidFloor'] = 1;
125
125
  let req = spec.buildRequests([bid], bidderRequest);
126
126
  data = JSON.parse(req.data);
127
- // eslint-disable-next-line no-console
128
- console.log(data.bids[0]);
129
127
  expect(data.bids[0].floor).equal(1);
130
128
  bid.getFloor = function () {
131
129
  return { currency: 'USD', floor: 1.0 };
@@ -164,6 +164,8 @@ const MOCK = {
164
164
  'bids': [
165
165
  {
166
166
  'bidder': 'pubmatic',
167
+ 'adapterCode': 'pubmatic',
168
+ 'bidderCode': 'pubmatic',
167
169
  'params': {
168
170
  'publisherId': '1001',
169
171
  'video': {
@@ -181,6 +183,8 @@ const MOCK = {
181
183
  },
182
184
  {
183
185
  'bidder': 'pubmatic',
186
+ 'adapterCode': 'pubmatic',
187
+ 'bidderCode': 'pubmatic',
184
188
  'params': {
185
189
  'publisherId': '1001',
186
190
  'kgpv': 'this-is-a-kgpv'
@@ -940,6 +944,7 @@ describe('pubmatic analytics adapter', function () {
940
944
 
941
945
  it('Logger: best case + win tracker in case of Bidder Aliases', function() {
942
946
  MOCK.BID_REQUESTED['bids'][0]['bidder'] = 'pubmatic_alias';
947
+ MOCK.BID_REQUESTED['bids'][0]['bidderCode'] = 'pubmatic_alias';
943
948
  adapterManager.aliasRegistry['pubmatic_alias'] = 'pubmatic';
944
949
 
945
950
  sandbox.stub($$PREBID_GLOBAL$$, 'getHighestCpmBids').callsFake((key) => {
@@ -1051,5 +1056,117 @@ describe('pubmatic analytics adapter', function () {
1051
1056
  expect(data.en).to.equal('1.23');
1052
1057
  expect(data.piid).to.equal('partnerImpressionID-1');
1053
1058
  });
1059
+
1060
+ it('Logger: best case + win tracker in case of GroupM as alternate bidder', function() {
1061
+ MOCK.BID_REQUESTED['bids'][0]['bidderCode'] = 'groupm';
1062
+ sandbox.stub($$PREBID_GLOBAL$$, 'getHighestCpmBids').callsFake((key) => {
1063
+ return [MOCK.BID_RESPONSE[0], MOCK.BID_RESPONSE[1]]
1064
+ });
1065
+
1066
+ config.setConfig({
1067
+ testGroupId: 15
1068
+ });
1069
+
1070
+ events.emit(AUCTION_INIT, MOCK.AUCTION_INIT);
1071
+ events.emit(BID_REQUESTED, MOCK.BID_REQUESTED);
1072
+ events.emit(BID_RESPONSE, MOCK.BID_RESPONSE[0]);
1073
+ events.emit(BID_RESPONSE, MOCK.BID_RESPONSE[1]);
1074
+ events.emit(BIDDER_DONE, MOCK.BIDDER_DONE);
1075
+ events.emit(AUCTION_END, MOCK.AUCTION_END);
1076
+ events.emit(SET_TARGETING, MOCK.SET_TARGETING);
1077
+ events.emit(BID_WON, MOCK.BID_WON[0]);
1078
+ events.emit(BID_WON, MOCK.BID_WON[1]);
1079
+
1080
+ clock.tick(2000 + 1000);
1081
+ expect(requests.length).to.equal(3); // 1 logger and 2 win-tracker
1082
+ let request = requests[2]; // logger is executed late, trackers execute first
1083
+ expect(request.url).to.equal('https://t.pubmatic.com/wl?pubid=9999');
1084
+ let data = getLoggerJsonFromRequest(request.requestBody);
1085
+ expect(data.pubid).to.equal('9999');
1086
+ expect(data.pid).to.equal('1111');
1087
+ expect(data.pdvid).to.equal('20');
1088
+ expect(data.iid).to.equal('25c6d7f5-699a-4bfc-87c9-996f915341fa');
1089
+ expect(data.to).to.equal('3000');
1090
+ expect(data.purl).to.equal('http://www.test.com/page.html');
1091
+ expect(data.orig).to.equal('www.test.com');
1092
+ expect(data.tst).to.equal(1519767016);
1093
+ expect(data.tgid).to.equal(15);
1094
+ expect(data.s).to.be.an('array');
1095
+ expect(data.s.length).to.equal(2);
1096
+
1097
+ // slot 1
1098
+ expect(data.s[0].sn).to.equal('/19968336/header-bid-tag-0');
1099
+ expect(data.s[0].sz).to.deep.equal(['640x480']);
1100
+ expect(data.s[0].ps).to.be.an('array');
1101
+ expect(data.s[0].ps.length).to.equal(1);
1102
+ expect(data.s[0].ps[0].pn).to.equal('pubmatic');
1103
+ expect(data.s[0].ps[0].bc).to.equal('groupm');
1104
+ expect(data.s[0].ps[0].bidid).to.equal('2ecff0db240757');
1105
+ expect(data.s[0].ps[0].piid).to.equal('partnerImpressionID-1');
1106
+ expect(data.s[0].ps[0].db).to.equal(0);
1107
+ expect(data.s[0].ps[0].kgpv).to.equal('/19968336/header-bid-tag-0');
1108
+ expect(data.s[0].ps[0].kgpsv).to.equal('/19968336/header-bid-tag-0');
1109
+ expect(data.s[0].ps[0].psz).to.equal('640x480');
1110
+ expect(data.s[0].ps[0].eg).to.equal(1.23);
1111
+ expect(data.s[0].ps[0].en).to.equal(1.23);
1112
+ expect(data.s[0].ps[0].di).to.equal('');
1113
+ expect(data.s[0].ps[0].dc).to.equal('');
1114
+ expect(data.s[0].ps[0].l1).to.equal(3214);
1115
+ expect(data.s[0].ps[0].l2).to.equal(0);
1116
+ expect(data.s[0].ps[0].ss).to.equal(0);
1117
+ expect(data.s[0].ps[0].t).to.equal(0);
1118
+ expect(data.s[0].ps[0].wb).to.equal(1);
1119
+ expect(data.s[0].ps[0].af).to.equal('video');
1120
+ expect(data.s[0].ps[0].ocpm).to.equal(1.23);
1121
+ expect(data.s[0].ps[0].ocry).to.equal('USD');
1122
+
1123
+ // slot 2
1124
+ expect(data.s[1].sn).to.equal('/19968336/header-bid-tag-1');
1125
+ expect(data.s[1].sz).to.deep.equal(['1000x300', '970x250', '728x90']);
1126
+ expect(data.s[1].ps).to.be.an('array');
1127
+ expect(data.s[1].ps.length).to.equal(1);
1128
+ expect(data.s[1].ps[0].pn).to.equal('pubmatic');
1129
+ expect(data.s[1].ps[0].bc).to.equal('pubmatic');
1130
+ expect(data.s[1].ps[0].bidid).to.equal('3bd4ebb1c900e2');
1131
+ expect(data.s[1].ps[0].piid).to.equal('partnerImpressionID-2');
1132
+ expect(data.s[1].ps[0].db).to.equal(0);
1133
+ expect(data.s[1].ps[0].kgpv).to.equal('this-is-a-kgpv');
1134
+ expect(data.s[1].ps[0].kgpsv).to.equal('this-is-a-kgpv');
1135
+ expect(data.s[1].ps[0].psz).to.equal('728x90');
1136
+ expect(data.s[1].ps[0].eg).to.equal(1.52);
1137
+ expect(data.s[1].ps[0].en).to.equal(1.52);
1138
+ expect(data.s[1].ps[0].di).to.equal('the-deal-id');
1139
+ expect(data.s[1].ps[0].dc).to.equal('PMP');
1140
+ expect(data.s[1].ps[0].mi).to.equal('matched-impression');
1141
+ expect(data.s[1].ps[0].adv).to.equal('example.com');
1142
+ expect(data.s[1].ps[0].l1).to.equal(3214);
1143
+ expect(data.s[1].ps[0].l2).to.equal(0);
1144
+ expect(data.s[1].ps[0].ss).to.equal(1);
1145
+ expect(data.s[1].ps[0].t).to.equal(0);
1146
+ expect(data.s[1].ps[0].wb).to.equal(1);
1147
+ expect(data.s[1].ps[0].af).to.equal('banner');
1148
+ expect(data.s[1].ps[0].ocpm).to.equal(1.52);
1149
+ expect(data.s[1].ps[0].ocry).to.equal('USD');
1150
+
1151
+ // tracker slot1
1152
+ let firstTracker = requests[0].url;
1153
+ expect(firstTracker.split('?')[0]).to.equal('https://t.pubmatic.com/wt');
1154
+ data = {};
1155
+ firstTracker.split('?')[1].split('&').map(e => e.split('=')).forEach(e => data[e[0]] = e[1]);
1156
+ expect(data.pubid).to.equal('9999');
1157
+ expect(decodeURIComponent(data.purl)).to.equal('http://www.test.com/page.html');
1158
+ expect(data.tst).to.equal('1519767014');
1159
+ expect(data.iid).to.equal('25c6d7f5-699a-4bfc-87c9-996f915341fa');
1160
+ expect(data.bidid).to.equal('2ecff0db240757');
1161
+ expect(data.pid).to.equal('1111');
1162
+ expect(data.pdvid).to.equal('20');
1163
+ expect(decodeURIComponent(data.slot)).to.equal('/19968336/header-bid-tag-0');
1164
+ expect(decodeURIComponent(data.kgpv)).to.equal('/19968336/header-bid-tag-0');
1165
+ expect(data.pn).to.equal('pubmatic');
1166
+ expect(data.bc).to.equal('groupm');
1167
+ expect(data.eg).to.equal('1.23');
1168
+ expect(data.en).to.equal('1.23');
1169
+ expect(data.piid).to.equal('partnerImpressionID-1');
1170
+ });
1054
1171
  });
1055
1172
  });