prebid.js 9.53.2 → 9.53.4

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 (229) hide show
  1. package/dist/33acrossAnalyticsAdapter.js +1 -1
  2. package/dist/33acrossBidAdapter.js +1 -1
  3. package/dist/33acrossIdSystem.js +1 -1
  4. package/dist/BTBidAdapter.js +1 -1
  5. package/dist/adagioAnalyticsAdapter.js +1 -1
  6. package/dist/adagioBidAdapter.js +1 -1
  7. package/dist/adagioRtdProvider.js +1 -1
  8. package/dist/adagioUtils.js +1 -1
  9. package/dist/addefendBidAdapter.js +1 -1
  10. package/dist/adgenerationBidAdapter.js +1 -1
  11. package/dist/adlooxRtdProvider.js +1 -1
  12. package/dist/adqueryBidAdapter.js +1 -1
  13. package/dist/adrelevantisBidAdapter.js +1 -1
  14. package/dist/adstirBidAdapter.js +1 -1
  15. package/dist/adtrgtmeBidAdapter.js +1 -1
  16. package/dist/adxcgAnalyticsAdapter.js +1 -1
  17. package/dist/adxcgBidAdapter.js +1 -1
  18. package/dist/adyoulikeBidAdapter.js +1 -1
  19. package/dist/agmaAnalyticsAdapter.js +1 -1
  20. package/dist/ajaBidAdapter.js +1 -1
  21. package/dist/amxBidAdapter.js +1 -1
  22. package/dist/amxIdSystem.js +1 -1
  23. package/dist/aniviewBidAdapter.js +1 -1
  24. package/dist/appierAnalyticsAdapter.js +1 -1
  25. package/dist/appnexusBidAdapter.js +1 -1
  26. package/dist/asoBidAdapter.js +1 -1
  27. package/dist/axonixBidAdapter.js +1 -1
  28. package/dist/beopBidAdapter.js +1 -1
  29. package/dist/bidderTimeoutUtils.js +1 -0
  30. package/dist/bidglassBidAdapter.js +1 -1
  31. package/dist/big-richmediaBidAdapter.js +1 -1
  32. package/dist/bitmediaBidAdapter.js +1 -1
  33. package/dist/bridBidAdapter.js +1 -1
  34. package/dist/bridgeuppBidAdapter.js +1 -1
  35. package/dist/bridgewellBidAdapter.js +1 -1
  36. package/dist/brightMountainMediaBidAdapter.js +1 -1
  37. package/dist/carodaBidAdapter.js +1 -1
  38. package/dist/chtnwBidAdapter.js +1 -1
  39. package/dist/chunk-core.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/contxtfulBidAdapter.js +1 -1
  44. package/dist/conversantAnalyticsAdapter.js +1 -1
  45. package/dist/conversantBidAdapter.js +1 -1
  46. package/dist/craftBidAdapter.js +1 -1
  47. package/dist/criteoBidAdapter.js +1 -1
  48. package/dist/cwireBidAdapter.js +1 -1
  49. package/dist/dailymotionBidAdapter.js +1 -1
  50. package/dist/debugging-standalone.js +1 -1
  51. package/dist/dependencies.json +10 -1
  52. package/dist/dspxBidAdapter.js +1 -1
  53. package/dist/dxkultureBidAdapter.js +1 -1
  54. package/dist/eplanningBidAdapter.js +1 -1
  55. package/dist/equativBidAdapter.js +1 -1
  56. package/dist/eskimiBidAdapter.js +1 -1
  57. package/dist/euidIdSystem.js +1 -1
  58. package/dist/exadsBidAdapter.js +1 -1
  59. package/dist/excoBidAdapter.js +1 -1
  60. package/dist/feedadBidAdapter.js +1 -1
  61. package/dist/finativeBidAdapter.js +1 -1
  62. package/dist/freewheel-sspBidAdapter.js +1 -1
  63. package/dist/fwsspBidAdapter.js +1 -1
  64. package/dist/gmosspBidAdapter.js +1 -1
  65. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  66. package/dist/greenbidsBidAdapter.js +1 -1
  67. package/dist/greenbidsRtdProvider.js +1 -1
  68. package/dist/gridBidAdapter.js +1 -1
  69. package/dist/gumgumBidAdapter.js +1 -1
  70. package/dist/h12mediaBidAdapter.js +1 -1
  71. package/dist/hypelabBidAdapter.js +1 -1
  72. package/dist/id5AnalyticsAdapter.js +1 -1
  73. package/dist/id5IdSystem.js +1 -1
  74. package/dist/imdsBidAdapter.js +1 -1
  75. package/dist/improvedigitalBidAdapter.js +1 -1
  76. package/dist/inmobiBidAdapter.js +1 -1
  77. package/dist/insticatorBidAdapter.js +1 -1
  78. package/dist/intentIqAnalyticsAdapter.js +1 -1
  79. package/dist/ixBidAdapter.js +1 -1
  80. package/dist/jixieBidAdapter.js +1 -1
  81. package/dist/justpremiumBidAdapter.js +1 -1
  82. package/dist/kargoBidAdapter.js +1 -1
  83. package/dist/kimberliteBidAdapter.js +1 -1
  84. package/dist/konduitAnalyticsAdapter.js +1 -1
  85. package/dist/kueezBidAdapter.js +1 -1
  86. package/dist/lassoBidAdapter.js +1 -1
  87. package/dist/lifestreetBidAdapter.js +1 -1
  88. package/dist/liveIntentId.js +1 -1
  89. package/dist/logicadBidAdapter.js +1 -1
  90. package/dist/loglyliftBidAdapter.js +1 -1
  91. package/dist/luceadBidAdapter.js +1 -1
  92. package/dist/mabidderBidAdapter.js +1 -1
  93. package/dist/madsenseBidAdapter.js +1 -1
  94. package/dist/magniteAnalyticsAdapter.js +1 -1
  95. package/dist/malltvAnalyticsAdapter.js +1 -1
  96. package/dist/marsmediaBidAdapter.js +1 -1
  97. package/dist/mediafuseBidAdapter.js +1 -1
  98. package/dist/medianetBidAdapter.js +1 -1
  99. package/dist/medianetUtils.js +1 -1
  100. package/dist/mediasquareBidAdapter.js +1 -1
  101. package/dist/mgidBidAdapter.js +1 -1
  102. package/dist/missenaBidAdapter.js +1 -1
  103. package/dist/mobilefuseBidAdapter.js +1 -1
  104. package/dist/nextMillenniumBidAdapter.js +1 -1
  105. package/dist/nexx360Utils.js +1 -1
  106. package/dist/nobidAnalyticsAdapter.js +1 -1
  107. package/dist/nobidBidAdapter.js +1 -1
  108. package/dist/nodalsAiRtdProvider.js +1 -1
  109. package/dist/not-for-prod/prebid.js +178 -175
  110. package/dist/objectGuard.js +1 -1
  111. package/dist/oguryBidAdapter.js +1 -1
  112. package/dist/onetagBidAdapter.js +1 -1
  113. package/dist/ooloAnalyticsAdapter.js +1 -1
  114. package/dist/openxBidAdapter.js +1 -1
  115. package/dist/optableRtdProvider.js +1 -1
  116. package/dist/optidigitalBidAdapter.js +1 -1
  117. package/dist/orbidderBidAdapter.js +1 -1
  118. package/dist/outbrainBidAdapter.js +1 -1
  119. package/dist/pixfutureBidAdapter.js +1 -1
  120. package/dist/publinkIdSystem.js +1 -1
  121. package/dist/pubmaticAnalyticsAdapter.js +1 -1
  122. package/dist/pubmaticBidAdapter.js +1 -1
  123. package/dist/pubmaticIdSystem.js +1 -1
  124. package/dist/pubmaticRtdProvider.js +1 -1
  125. package/dist/pubmaticUtils.js +1 -0
  126. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  127. package/dist/pubxaiAnalyticsAdapter.js +1 -1
  128. package/dist/pxyzBidAdapter.js +1 -1
  129. package/dist/quantcastBidAdapter.js +1 -1
  130. package/dist/readpeakBidAdapter.js +1 -1
  131. package/dist/relaidoBidAdapter.js +1 -1
  132. package/dist/retailspotBidAdapter.js +1 -1
  133. package/dist/rhythmoneBidAdapter.js +1 -1
  134. package/dist/riseUtils.js +1 -1
  135. package/dist/rtdModule.js +1 -1
  136. package/dist/rubiconBidAdapter.js +1 -1
  137. package/dist/seedingAllianceBidAdapter.js +1 -1
  138. package/dist/seedtagBidAdapter.js +1 -1
  139. package/dist/sevioBidAdapter.js +1 -0
  140. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  141. package/dist/sharethroughBidAdapter.js +1 -1
  142. package/dist/showheroes-bsBidAdapter.js +1 -1
  143. package/dist/smaatoBidAdapter.js +1 -1
  144. package/dist/smartadserverBidAdapter.js +1 -1
  145. package/dist/smartxBidAdapter.js +1 -1
  146. package/dist/smilewantedBidAdapter.js +1 -1
  147. package/dist/snigelBidAdapter.js +1 -1
  148. package/dist/sonobiBidAdapter.js +1 -1
  149. package/dist/sovrnBidAdapter.js +1 -1
  150. package/dist/sparteoBidAdapter.js +1 -1
  151. package/dist/sspBCBidAdapter.js +1 -1
  152. package/dist/stvBidAdapter.js +1 -1
  153. package/dist/sublimeBidAdapter.js +1 -1
  154. package/dist/taboolaBidAdapter.js +1 -1
  155. package/dist/tappxBidAdapter.js +1 -1
  156. package/dist/targetVideoBidAdapter.js +1 -1
  157. package/dist/teadsBidAdapter.js +1 -1
  158. package/dist/terceptAnalyticsAdapter.js +1 -1
  159. package/dist/themoneytizerBidAdapter.js +1 -1
  160. package/dist/timeoutRtdProvider.js +1 -1
  161. package/dist/trionBidAdapter.js +1 -1
  162. package/dist/tripleliftBidAdapter.js +1 -1
  163. package/dist/ttdBidAdapter.js +1 -1
  164. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  165. package/dist/uid2IdSystem.js +1 -1
  166. package/dist/underdogmediaBidAdapter.js +1 -1
  167. package/dist/undertoneBidAdapter.js +1 -1
  168. package/dist/unrulyBidAdapter.js +1 -1
  169. package/dist/userId.js +1 -1
  170. package/dist/vidazooUtils.js +1 -1
  171. package/dist/videobyteBidAdapter.js +1 -1
  172. package/dist/visxBidAdapter.js +1 -1
  173. package/dist/vuukleBidAdapter.js +1 -1
  174. package/dist/widespaceBidAdapter.js +1 -1
  175. package/dist/winrBidAdapter.js +1 -1
  176. package/dist/yahooAdsBidAdapter.js +1 -1
  177. package/dist/yandexBidAdapter.js +1 -1
  178. package/dist/yieldmoBidAdapter.js +1 -1
  179. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  180. package/integrationExamples/gpt/pubmaticRtdProvider_Example.html +161 -0
  181. package/libraries/bidderTimeoutUtils/bidderTimeoutUtils.js +119 -0
  182. package/libraries/objectGuard/objectGuard.js +170 -48
  183. package/libraries/objectGuard/ortbGuard.js +33 -43
  184. package/libraries/pubmaticUtils/plugins/dynamicTimeout.js +209 -0
  185. package/libraries/pubmaticUtils/plugins/floorProvider.js +168 -0
  186. package/libraries/pubmaticUtils/plugins/pluginManager.js +106 -0
  187. package/libraries/pubmaticUtils/plugins/unifiedPricingRule.js +375 -0
  188. package/libraries/pubmaticUtils/pubmaticUtils.js +76 -0
  189. package/modules/adagioAnalyticsAdapter.js +6 -1
  190. package/modules/adagioBidAdapter.js +12 -5
  191. package/modules/adagioRtdProvider.js +41 -35
  192. package/modules/fwsspBidAdapter.js +134 -69
  193. package/modules/fwsspBidAdapter.md +121 -26
  194. package/modules/optableRtdProvider.js +33 -12
  195. package/modules/pubmaticAnalyticsAdapter.js +315 -587
  196. package/modules/pubmaticBidAdapter.js +71 -8
  197. package/modules/pubmaticIdSystem.js +4 -4
  198. package/modules/pubmaticRtdProvider.js +105 -613
  199. package/modules/rtdModule/index.js +23 -6
  200. package/modules/sevioBidAdapter.js +413 -0
  201. package/modules/sevioBidAdapter.md +29 -0
  202. package/modules/sparteoBidAdapter.js +122 -10
  203. package/modules/timeoutRtdProvider.js +2 -105
  204. package/modules/ttdBidAdapter.js +0 -5
  205. package/modules/userId/eids.js +1 -1
  206. package/modules/userId/index.js +32 -1
  207. package/package.json +1 -1
  208. package/src/auction.js +3 -0
  209. package/test/spec/activities/objectGuard_spec.js +189 -32
  210. package/test/spec/activities/ortbGuard_spec.js +10 -15
  211. package/test/spec/libraries/bidderTimeoutUtils/bidderTimeoutUtils_spec.js +213 -0
  212. package/test/spec/libraries/pubmaticUtils/plugins/dynamicTimeout_spec.js +746 -0
  213. package/test/spec/libraries/pubmaticUtils/plugins/floorProvider_spec.js +184 -0
  214. package/test/spec/libraries/pubmaticUtils/plugins/pluginManager_spec.js +489 -0
  215. package/test/spec/libraries/pubmaticUtils/plugins/unifiedPricingRule_spec.js +359 -0
  216. package/test/spec/libraries/pubmaticUtils/pubmaticUtils_spec.js +236 -0
  217. package/test/spec/modules/adagioAnalyticsAdapter_spec.js +94 -24
  218. package/test/spec/modules/adagioRtdProvider_spec.js +17 -17
  219. package/test/spec/modules/fwsspBidAdapter_spec.js +513 -78
  220. package/test/spec/modules/optableRtdProvider_spec.js +55 -5
  221. package/test/spec/modules/pubmaticAnalyticsAdapter_spec.js +634 -916
  222. package/test/spec/modules/pubmaticBidAdapter_spec.js +260 -1
  223. package/test/spec/modules/pubmaticRtdProvider_spec.js +252 -1505
  224. package/test/spec/modules/realTimeDataModule_spec.js +58 -8
  225. package/test/spec/modules/sevioBidAdapter_spec.js +513 -0
  226. package/test/spec/modules/sparteoBidAdapter_spec.js +528 -43
  227. package/test/spec/modules/timeoutRtdProvider_spec.js +1 -201
  228. package/test/spec/modules/ttdBidAdapter_spec.js +0 -33
  229. package/test/spec/modules/userId_spec.js +115 -1
@@ -0,0 +1,213 @@
1
+ import { bidderTimeoutFunctions } from '../../../../libraries/bidderTimeoutUtils/bidderTimeoutUtils.js'
2
+ import { expect } from 'chai';
3
+
4
+ const DEFAULT_USER_AGENT = window.navigator.userAgent;
5
+ const DEFAULT_CONNECTION = window.navigator.connection;
6
+
7
+ const PC_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246';
8
+ const MOBILE_USER_AGENT = 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1';
9
+ const TABLET_USER_AGENT = 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148';
10
+
11
+ function resetUserAgent() {
12
+ window.navigator.__defineGetter__('userAgent', () => DEFAULT_USER_AGENT);
13
+ };
14
+
15
+ function setUserAgent(userAgent) {
16
+ window.navigator.__defineGetter__('userAgent', () => userAgent);
17
+ }
18
+
19
+ function resetConnection() {
20
+ window.navigator.__defineGetter__('connection', () => DEFAULT_CONNECTION);
21
+ }
22
+ function setConnectionType(connectionType) {
23
+ window.navigator.__defineGetter__('connection', () => { return { 'type': connectionType } });
24
+ }
25
+
26
+ describe('Timeout RTD submodule', () => {
27
+ let sandbox;
28
+ beforeEach(() => {
29
+ sandbox = sinon.createSandbox();
30
+ });
31
+
32
+ afterEach(() => {
33
+ sandbox.restore();
34
+ });
35
+
36
+ describe('getDeviceType', () => {
37
+ afterEach(() => {
38
+ resetUserAgent();
39
+ });
40
+
41
+ [
42
+ // deviceType, userAgent, deviceTypeNum
43
+ ['pc', PC_USER_AGENT, 2],
44
+ ['mobile', MOBILE_USER_AGENT, 4],
45
+ ['tablet', TABLET_USER_AGENT, 5],
46
+ ].forEach(function (args) {
47
+ const [deviceType, userAgent, deviceTypeNum] = args;
48
+ it(`should be able to recognize ${deviceType} devices`, () => {
49
+ setUserAgent(userAgent);
50
+ const res = bidderTimeoutFunctions.getDeviceType();
51
+ expect(res).to.equal(deviceTypeNum)
52
+ })
53
+ })
54
+ });
55
+
56
+ describe('getConnectionSpeed', () => {
57
+ afterEach(() => {
58
+ resetConnection();
59
+ });
60
+ [
61
+ // connectionType, connectionSpeed
62
+ ['slow-2g', 'slow'],
63
+ ['2g', 'slow'],
64
+ ['3g', 'medium'],
65
+ ['bluetooth', 'fast'],
66
+ ['cellular', 'fast'],
67
+ ['ethernet', 'fast'],
68
+ ['wifi', 'fast'],
69
+ ['wimax', 'fast'],
70
+ ['4g', 'fast'],
71
+ ['not known', 'unknown'],
72
+ [undefined, 'unknown'],
73
+ ].forEach(function (args) {
74
+ const [connectionType, connectionSpeed] = args;
75
+ it(`should be able to categorize connection speed when the connection type is ${connectionType}`, () => {
76
+ setConnectionType(connectionType);
77
+ const res = bidderTimeoutFunctions.getConnectionSpeed();
78
+ expect(res).to.equal(connectionSpeed)
79
+ })
80
+ })
81
+ });
82
+
83
+ describe('Timeout modifier calculations', () => {
84
+ let sandbox;
85
+ beforeEach(() => {
86
+ sandbox = sinon.createSandbox();
87
+ });
88
+
89
+ afterEach(() => {
90
+ sandbox.restore();
91
+ });
92
+
93
+ it('should be able to detect video ad units', () => {
94
+ let adUnits = []
95
+ let res = bidderTimeoutFunctions.checkVideo(adUnits);
96
+ expect(res).to.be.false;
97
+
98
+ adUnits = [{
99
+ mediaTypes: {
100
+ video: []
101
+ }
102
+ }];
103
+ res = bidderTimeoutFunctions.checkVideo(adUnits);
104
+ expect(res).to.be.true;
105
+
106
+ adUnits = [{
107
+ mediaTypes: {
108
+ banner: []
109
+ }
110
+ }];
111
+ res = bidderTimeoutFunctions.checkVideo(adUnits);
112
+ expect(res).to.be.false;
113
+ });
114
+
115
+ it('should calculate the timeout modifier for video', () => {
116
+ sandbox.stub(bidderTimeoutFunctions, 'checkVideo').returns(true);
117
+ const rules = {
118
+ includesVideo: {
119
+ 'true': 200,
120
+ 'false': 50
121
+ }
122
+ }
123
+ const res = bidderTimeoutFunctions.calculateTimeoutModifier([], rules);
124
+ expect(res).to.equal(200)
125
+ });
126
+
127
+ it('should calculate the timeout modifier for connectionSpeed', () => {
128
+ sandbox.stub(bidderTimeoutFunctions, 'getConnectionSpeed').returns('slow');
129
+ const rules = {
130
+ connectionSpeed: {
131
+ 'slow': 200,
132
+ 'medium': 100,
133
+ 'fast': 50
134
+ }
135
+ }
136
+ const res = bidderTimeoutFunctions.calculateTimeoutModifier([], rules);
137
+ expect(res).to.equal(200);
138
+ });
139
+
140
+ it('should calculate the timeout modifier for deviceType', () => {
141
+ sandbox.stub(bidderTimeoutFunctions, 'getDeviceType').returns(4);
142
+ const rules = {
143
+ deviceType: {
144
+ '2': 50,
145
+ '4': 100,
146
+ '5': 200
147
+ },
148
+ }
149
+ const res = bidderTimeoutFunctions.calculateTimeoutModifier([], rules);
150
+ expect(res).to.equal(100)
151
+ });
152
+
153
+ it('should calculate the timeout modifier for ranged numAdunits', () => {
154
+ const rules = {
155
+ numAdUnits: {
156
+ '1-5': 100,
157
+ '6-10': 200,
158
+ '11-15': 300,
159
+ }
160
+ }
161
+ const adUnits = [1, 2, 3, 4, 5, 6];
162
+ const res = bidderTimeoutFunctions.calculateTimeoutModifier(adUnits, rules);
163
+ expect(res).to.equal(200)
164
+ });
165
+
166
+ it('should calculate the timeout modifier for exact numAdunits', () => {
167
+ const rules = {
168
+ numAdUnits: {
169
+ '1': 100,
170
+ '2': 200,
171
+ '3': 300,
172
+ '4-5': 400,
173
+ }
174
+ }
175
+ const adUnits = [1, 2];
176
+ const res = bidderTimeoutFunctions.calculateTimeoutModifier(adUnits, rules);
177
+ expect(res).to.equal(200);
178
+ });
179
+
180
+ it('should add up all the modifiers when all the rules are present', () => {
181
+ sandbox.stub(bidderTimeoutFunctions, 'getConnectionSpeed').returns('slow');
182
+ sandbox.stub(bidderTimeoutFunctions, 'getDeviceType').returns(4);
183
+ const rules = {
184
+ connectionSpeed: {
185
+ 'slow': 200,
186
+ 'medium': 100,
187
+ 'fast': 50
188
+ },
189
+ deviceType: {
190
+ '2': 50,
191
+ '4': 100,
192
+ '5': 200
193
+ },
194
+ includesVideo: {
195
+ 'true': 200,
196
+ 'false': 50
197
+ },
198
+ numAdUnits: {
199
+ '1': 100,
200
+ '2': 200,
201
+ '3': 300,
202
+ '4-5': 400,
203
+ }
204
+ }
205
+ const res = bidderTimeoutFunctions.calculateTimeoutModifier([{
206
+ mediaTypes: {
207
+ video: []
208
+ }
209
+ }], rules);
210
+ expect(res).to.equal(600);
211
+ });
212
+ });
213
+ });