prebid.js 7.49.0 → 7.50.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 (172) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/33acrossIdSystem.js +1 -1
  3. package/dist/adagioBidAdapter.js +1 -1
  4. package/dist/adbookpspBidAdapter.js +1 -1
  5. package/dist/adgenerationBidAdapter.js +1 -1
  6. package/dist/adrelevantisBidAdapter.js +1 -1
  7. package/dist/adtrgtmeBidAdapter.js +1 -1
  8. package/dist/adxcgBidAdapter.js +1 -1
  9. package/dist/adyoulikeBidAdapter.js +1 -1
  10. package/dist/ajaBidAdapter.js +1 -1
  11. package/dist/amxBidAdapter.js +1 -1
  12. package/dist/amxIdSystem.js +1 -1
  13. package/dist/appierAnalyticsAdapter.js +1 -1
  14. package/dist/appnexusBidAdapter.js +1 -1
  15. package/dist/asoBidAdapter.js +1 -1
  16. package/dist/axonixBidAdapter.js +1 -1
  17. package/dist/beopBidAdapter.js +1 -1
  18. package/dist/bidglassBidAdapter.js +1 -1
  19. package/dist/big-richmediaBidAdapter.js +1 -1
  20. package/dist/bridgewellBidAdapter.js +1 -1
  21. package/dist/brightMountainMediaBidAdapter.js +1 -1
  22. package/dist/carodaBidAdapter.js +1 -1
  23. package/dist/chtnwBidAdapter.js +1 -1
  24. package/dist/concertBidAdapter.js +1 -1
  25. package/dist/confiantRtdProvider.js +1 -1
  26. package/dist/connectadBidAdapter.js +1 -1
  27. package/dist/consumableBidAdapter.js +1 -1
  28. package/dist/conversantAnalyticsAdapter.js +1 -1
  29. package/dist/conversantBidAdapter.js +1 -1
  30. package/dist/craftBidAdapter.js +1 -1
  31. package/dist/criteoBidAdapter.js +1 -1
  32. package/dist/cwireBidAdapter.js +1 -1
  33. package/dist/dependencies.json +3 -0
  34. package/dist/dspxBidAdapter.js +1 -1
  35. package/dist/eplanningBidAdapter.js +1 -1
  36. package/dist/feedadBidAdapter.js +1 -1
  37. package/dist/finativeBidAdapter.js +1 -1
  38. package/dist/freewheel-sspBidAdapter.js +1 -1
  39. package/dist/glimpseBidAdapter.js +1 -1
  40. package/dist/gmosspBidAdapter.js +1 -1
  41. package/dist/goldbachBidAdapter.js +1 -1
  42. package/dist/greenbidsAnalyticsAdapter.js +1 -1
  43. package/dist/greenbidsRtdProvider.js +1 -1
  44. package/dist/gridBidAdapter.js +1 -1
  45. package/dist/gumgumBidAdapter.js +1 -1
  46. package/dist/h12mediaBidAdapter.js +1 -1
  47. package/dist/id5IdSystem.js +1 -1
  48. package/dist/improvedigitalBidAdapter.js +1 -1
  49. package/dist/inmarBidAdapter.js +1 -1
  50. package/dist/insticatorBidAdapter.js +1 -1
  51. package/dist/ixBidAdapter.js +1 -1
  52. package/dist/justpremiumBidAdapter.js +1 -1
  53. package/dist/kargoBidAdapter.js +1 -1
  54. package/dist/konduitAnalyticsAdapter.js +1 -1
  55. package/dist/kueezBidAdapter.js +1 -1
  56. package/dist/kueezRtbBidAdapter.js +1 -1
  57. package/dist/kulturemediaBidAdapter.js +1 -1
  58. package/dist/lassoBidAdapter.js +1 -1
  59. package/dist/lifestreetBidAdapter.js +1 -1
  60. package/dist/liveIntentIdSystem.js +1 -1
  61. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  62. package/dist/logicadBidAdapter.js +1 -1
  63. package/dist/loglyliftBidAdapter.js +1 -1
  64. package/dist/magniteAnalyticsAdapter.js +1 -1
  65. package/dist/malltvAnalyticsAdapter.js +1 -1
  66. package/dist/marsmediaBidAdapter.js +1 -1
  67. package/dist/mediafuseBidAdapter.js +1 -1
  68. package/dist/mediasquareBidAdapter.js +1 -1
  69. package/dist/mgidBidAdapter.js +1 -1
  70. package/dist/minutemediaBidAdapter.js +1 -1
  71. package/dist/minutemediaplusBidAdapter.js +1 -1
  72. package/dist/nexx360BidAdapter.js +1 -1
  73. package/dist/not-for-prod/prebid.js +131 -130
  74. package/dist/oguryBidAdapter.js +1 -1
  75. package/dist/onetagBidAdapter.js +1 -1
  76. package/dist/ooloAnalyticsAdapter.js +1 -1
  77. package/dist/optidigitalBidAdapter.js +1 -1
  78. package/dist/outbrainBidAdapter.js +1 -1
  79. package/dist/parrableIdSystem.js +1 -1
  80. package/dist/permutiveRtdProvider.js +1 -1
  81. package/dist/pixfutureBidAdapter.js +1 -1
  82. package/dist/prebid-core.js +1 -1
  83. package/dist/publinkIdSystem.js +1 -1
  84. package/dist/pubmaticBidAdapter.js +1 -1
  85. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  86. package/dist/pxyzBidAdapter.js +1 -1
  87. package/dist/quantcastBidAdapter.js +1 -1
  88. package/dist/readpeakBidAdapter.js +1 -1
  89. package/dist/relaidoBidAdapter.js +1 -1
  90. package/dist/retailspotBidAdapter.js +1 -1
  91. package/dist/rhythmoneBidAdapter.js +1 -1
  92. package/dist/riseBidAdapter.js +1 -1
  93. package/dist/rubiconAnalyticsAdapter.js +1 -1
  94. package/dist/rubiconBidAdapter.js +1 -1
  95. package/dist/seedingAllianceBidAdapter.js +1 -1
  96. package/dist/seedtagBidAdapter.js +1 -1
  97. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  98. package/dist/sharethroughBidAdapter.js +1 -1
  99. package/dist/shinezBidAdapter.js +1 -1
  100. package/dist/silverpushBidAdapter.js +1 -0
  101. package/dist/smaatoBidAdapter.js +1 -1
  102. package/dist/smartadserverBidAdapter.js +1 -1
  103. package/dist/smartxBidAdapter.js +1 -1
  104. package/dist/smilewantedBidAdapter.js +1 -1
  105. package/dist/sonobiBidAdapter.js +1 -1
  106. package/dist/sovrnAnalyticsAdapter.js +1 -1
  107. package/dist/sovrnBidAdapter.js +1 -1
  108. package/dist/sspBCBidAdapter.js +1 -1
  109. package/dist/stvBidAdapter.js +1 -1
  110. package/dist/sublimeBidAdapter.js +1 -1
  111. package/dist/synacormediaBidAdapter.js +1 -1
  112. package/dist/targetVideoBidAdapter.js +1 -1
  113. package/dist/teadsBidAdapter.js +1 -1
  114. package/dist/trionBidAdapter.js +1 -1
  115. package/dist/tripleliftBidAdapter.js +1 -1
  116. package/dist/ttdBidAdapter.js +1 -1
  117. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  118. package/dist/uid2IdSystem.js +1 -1
  119. package/dist/underdogmediaBidAdapter.js +1 -1
  120. package/dist/undertoneBidAdapter.js +1 -1
  121. package/dist/vidazooBidAdapter.js +1 -1
  122. package/dist/video.js +1 -1
  123. package/dist/videoModule.js +1 -1
  124. package/dist/videobyteBidAdapter.js +1 -1
  125. package/dist/visxBidAdapter.js +1 -1
  126. package/dist/vuukleBidAdapter.js +1 -1
  127. package/dist/widespaceBidAdapter.js +1 -1
  128. package/dist/winrBidAdapter.js +1 -1
  129. package/dist/yahoosspBidAdapter.js +1 -1
  130. package/dist/yieldmoBidAdapter.js +1 -1
  131. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  132. package/integrationExamples/videoModule/eventsUI/eventsUI.css +205 -0
  133. package/integrationExamples/videoModule/eventsUI/eventsUI.js +181 -0
  134. package/integrationExamples/videoModule/jwplayer/eventsUI.html +295 -0
  135. package/integrationExamples/videoModule/videojs/eventsUI.html +319 -0
  136. package/libraries/video/shared/helpers.js +14 -0
  137. package/modules/33acrossBidAdapter.js +1 -1
  138. package/modules/appnexusBidAdapter.js +1 -0
  139. package/modules/beopBidAdapter.js +1 -0
  140. package/modules/confiantRtdProvider.js +15 -12
  141. package/modules/conversantAnalyticsAdapter.js +7 -5
  142. package/modules/conversantBidAdapter.js +1 -1
  143. package/modules/criteoBidAdapter.js +17 -1
  144. package/modules/gridBidAdapter.js +3 -0
  145. package/modules/liveIntentIdSystem.js +8 -4
  146. package/modules/magniteAnalyticsAdapter.js +26 -3
  147. package/modules/permutiveRtdProvider.js +9 -38
  148. package/modules/rubiconBidAdapter.js +6 -2
  149. package/modules/silverpushBidAdapter.js +326 -0
  150. package/modules/silverpushBidAdapter.md +107 -0
  151. package/modules/underdogmediaBidAdapter.js +2 -2
  152. package/modules/videoModule/adQueue.js +2 -2
  153. package/modules/videoModule/index.js +9 -5
  154. package/modules/yahoosspBidAdapter.js +6 -0
  155. package/modules/yahoosspBidAdapter.md +37 -0
  156. package/package.json +1 -1
  157. package/test/spec/modules/33acrossBidAdapter_spec.js +4 -3
  158. package/test/spec/modules/beopBidAdapter_spec.js +4 -0
  159. package/test/spec/modules/confiantRtdProvider_spec.js +4 -1
  160. package/test/spec/modules/conversantBidAdapter_spec.js +2 -1
  161. package/test/spec/modules/criteoBidAdapter_spec.js +109 -0
  162. package/test/spec/modules/gridBidAdapter_spec.js +3 -0
  163. package/test/spec/modules/liveIntentIdMinimalSystem_spec.js +28 -0
  164. package/test/spec/modules/liveIntentIdSystem_spec.js +45 -0
  165. package/test/spec/modules/magniteAnalyticsAdapter_spec.js +16 -36
  166. package/test/spec/modules/mass_spec.js +2 -0
  167. package/test/spec/modules/permutiveRtdProvider_spec.js +0 -20
  168. package/test/spec/modules/rubiconBidAdapter_spec.js +143 -67
  169. package/test/spec/modules/silverpushBidAdapter_spec.js +394 -0
  170. package/test/spec/modules/underdogmediaBidAdapter_spec.js +1 -1
  171. package/test/spec/modules/videoModule/shared/helpers_spec.js +22 -0
  172. package/test/spec/modules/yahoosspBidAdapter_spec.js +60 -1
@@ -0,0 +1,295 @@
1
+ <html>
2
+
3
+ <head>
4
+ <script src="https://cdn.jwplayer.com/libraries/l5MchIxB.js"></script>
5
+ <script async src="../../../build/dev/prebid.js"></script>
6
+ <script src="../eventsUI/eventsUI.js"></script>
7
+ <link href="../eventsUI/eventsUI.css" rel="stylesheet" type="text/css">
8
+
9
+ <title>JW Player Event UI</title>
10
+
11
+ <!--This demo listens to the Video events that are fired when an ad impression or ad error came from a bid. -->
12
+
13
+ <script>
14
+ // Setup ad units
15
+ var adUnits = [{
16
+ code: 'testUnit',
17
+ mediaTypes: {
18
+ video: {}
19
+ },
20
+ video: {
21
+ divId: 'player', // required to indicate which player is being used to render this ad unit.
22
+ },
23
+
24
+ bids: [{
25
+ bidder: 'ix',
26
+ params: {
27
+ siteId: '300',
28
+ }
29
+ }]
30
+ }];
31
+
32
+ var pbjs = pbjs || {};
33
+ pbjs.que = pbjs.que || [];
34
+
35
+ pbjs.que.push(function () {
36
+ pbjs.setConfig({
37
+ video: {
38
+ providers: [{
39
+ divId: 'player',
40
+ vendorCode: 1, // jwplayer vendorCode
41
+ playerConfig: {
42
+ licenseKey: '577+5vXsluqV2Uy0drAS8wrgiqJlYijZxz3DmoYDm8FTJjdoIe8zYA==',
43
+ params: {
44
+ vendorConfig: {
45
+ playlist: [{
46
+ file: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4',
47
+ title: "Subaru Outback on Street and Dirt",
48
+ }],
49
+ advertising: { client: 'vast' }
50
+ }
51
+ }
52
+ },
53
+ },]
54
+ },
55
+ debugging: {
56
+ enabled: true,
57
+ intercept: [
58
+ {
59
+ when: {
60
+ adUnitCode: 'testUnit',
61
+ },
62
+ then: {
63
+ cpm: 25,
64
+ mediaType: "video",
65
+ ad: "<VAST version=\"3.0\"> <Ad id=\"123\"> <InLine> <AdSystem>PubMatic</AdSystem> <AdTitle>VAST 2.0 Instream Test</AdTitle> <Description>VAST 2.0 Instream Test</Description> <Error> <![CDATA[https://aktrack.pubmatic.com/er=[ERRORCODE]]]> </Error> <Impression> <![CDATA[https://aktrack.pubmatic.com?e=impression]]> </Impression> <Creatives> <Creative AdID=\"123\"> <Linear> <Duration>00:00:30</Duration> <TrackingEvents> <Tracking event=\"creativeView\"> <![CDATA[https://aktrack.pubmatic.com?e=creativeView]]> </Tracking> <Tracking event=\"start\"> <![CDATA[https://aktrack.pubmatic.com?e=start]]> </Tracking> <Tracking event=\"midpoint\"> <![CDATA[https://aktrack.pubmatic.com?e=midpoint]]> </Tracking> <Tracking event=\"firstQuartile\"> <![CDATA[https://aktrack.pubmatic.com?e=firstQuartile]]> </Tracking> <Tracking event=\"thirdQuartile\"> <![CDATA[https://aktrack.pubmatic.com?e=thirdQuartile]]> </Tracking> <Tracking event=\"complete\"> <![CDATA[https://aktrack.pubmatic.com?e=complete]]> </Tracking> </TrackingEvents> <VideoClicks> <ClickThrough> <![CDATA[https://www.pubmatic.com]]> </ClickThrough> </VideoClicks> <MediaFiles> <MediaFile delivery=\"progressive\" type=\"video/mp4\" bitrate=\"500\" width=\"480\" height=\"460\" scalable=\"true\" maintainAspectRatio=\"true\"> <![CDATA[https://staging.pubmatic.com:8443/test/spinning-logo-480x360_video.mp4]]> </MediaFile> <MediaFile delivery=\"progressive\" type=\"video/ogg\" bitrate=\"500\" width=\"480\" height=\"460\" scalable=\"true\" maintainAspectRatio=\"true\"> <![CDATA[https://staging.pubmatic.com:8443/test/spinning-logo-480x360_video.ogg]]> </MediaFile> <MediaFile delivery=\"progressive\" type=\"video/x-flv\" bitrate=\"500\" width=\"400\" height=\"300\" scalable=\"true\" maintainAspectRatio=\"true\"> <![CDATA[https://staging.pubmatic.com:8443/test/PubMatic_test_video.flv]]> </MediaFile> </MediaFiles> </Linear> </Creative> <Creative AdID=\"123\"> <NonLinearAds> <TrackingEvents></TrackingEvents> <NonLinear height=\"50\" width=\"300\" minSuggestedDuration=\"00:00:05\"> <StaticResource creativeType=\"image/jpeg\"> <![CDATA[https://staging.pubmatic.com:8443/test/PubMatic_LetsBeClear_300x50.jpeg]]> </StaticResource> <NonLinearClickThrough> <![CDATA[https://www.pubmatic.com]]> </NonLinearClickThrough> </NonLinear> </NonLinearAds> </Creative> <Creative AdID=\"123\"> <CompanionAds> <Companion width=\"300\" height=\"250\"> <StaticResource creativeType=\"image/jpeg\"> <![CDATA[https://staging.pubmatic.com:8443/test/PubMatic_LetsBeClear_320x250.jpg]]> </StaticResource> <CompanionClickThrough> <![CDATA[https://www.pubmatic.com]]> </CompanionClickThrough> </Companion> </CompanionAds> </Creative> </Creatives> </InLine> </Ad> </VAST>",
66
+ vastUrl: "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",
67
+ }
68
+ },
69
+ ]
70
+ }
71
+ });
72
+
73
+ pbjs.addAdUnits(adUnits);
74
+ const eventHandler = window.getGenericEventHandler();
75
+
76
+ pbjs.onEvent('videoSetupComplete', (e) => {
77
+ console.log('player setup complete: ', e);
78
+ eventHandler(e, e.type, "player", );
79
+ });
80
+
81
+ pbjs.onEvent('videoSetupFailed', e => {
82
+ console.log('player setup failed: ', e);
83
+ eventHandler(e, e.type, "player", );
84
+ });
85
+
86
+ pbjs.onEvent('videoDestroyed', e => {
87
+ console.log('player destroyed: ', e);
88
+ eventHandler(e, e.type, "player", );
89
+ });
90
+
91
+ pbjs.onEvent('videoPlaylist', (e) => {
92
+ console.log('videos pb playlist: ', e);
93
+ eventHandler(e, e.type, "media", );
94
+ });
95
+
96
+ pbjs.onEvent('videoPlaybackRequest', (e) => {
97
+ console.log('videos pb playbackRequest: ', e);
98
+ eventHandler(e, e.type, "media", );
99
+ });
100
+
101
+ pbjs.onEvent('videoAutostartBlocked', (e) => {
102
+ console.log('videos pb autostartBlocked: ', e);
103
+ eventHandler(e, e.type, "media", );
104
+ });
105
+
106
+ pbjs.onEvent('videoPlayAttemptFailed', (e) => {
107
+ console.log('videos pb playAttemptFailed: ', e);
108
+ eventHandler(e, e.type, "media", );
109
+ });
110
+
111
+ pbjs.onEvent('videoContentLoaded', (e) => {
112
+ console.log('videos pb contentLoaded: ', e);
113
+ eventHandler(e, e.type, "media", );
114
+ });
115
+
116
+ pbjs.onEvent('videoPlay', (e) => {
117
+ console.log('videos pb play: ', e);
118
+ eventHandler(e, e.type, "media", );
119
+ });
120
+
121
+ pbjs.onEvent('videoPause', (e) => {
122
+ console.log('videos pb pause: ', e);
123
+ eventHandler(e, e.type, "media", );
124
+ });
125
+
126
+ pbjs.onEvent('videoBuffer', (e) => {
127
+ console.log('videos pb buffer: ', e);
128
+ eventHandler(e, e.type, "media", );
129
+ });
130
+
131
+ pbjs.onEvent('videoSeekStart', (e) => {
132
+ console.log('videos pb seekStart: ', e);
133
+ eventHandler(e, e.type, "media", );
134
+ });
135
+
136
+ pbjs.onEvent('videoSeekEnd', (e) => {
137
+ console.log('videos pb seekEnd: ', e);
138
+ eventHandler(e, e.type, "media", );
139
+ });
140
+
141
+ pbjs.onEvent('videoRenditionUpdate', (e) => {
142
+ console.log('videos pb renditionUpdate: ', e);
143
+ eventHandler(e, e.type, "media", );
144
+ });
145
+
146
+ pbjs.onEvent('videoMute', (e) => {
147
+ console.log('videos pb mute: ', e);
148
+ eventHandler(e, e.type, "player", );
149
+ });
150
+
151
+ pbjs.onEvent('videoVolume', (e) => {
152
+ console.log('videos pb volume: ', e);
153
+ eventHandler(e, e.type, "player", );
154
+ });
155
+
156
+ pbjs.onEvent('videoTime', (e) => {
157
+ console.log('videos pb time: ', e);
158
+ eventHandler(e, e.type, "media", );
159
+ });
160
+
161
+ pbjs.onEvent('videoComplete', (e) => {
162
+ console.log('videos pb complete: ', e);
163
+ eventHandler(e, e.type, "media", );
164
+ });
165
+
166
+ pbjs.onEvent('videoPlaylistComplete', (e) => {
167
+ console.log('videos pb playlistComplete: ', e);
168
+ eventHandler(e, e.type, "media", );
169
+ });
170
+
171
+ pbjs.onEvent('videoFullscreen', (e) => {
172
+ console.log('videos pb fullscreen: ', e);
173
+ eventHandler(e, e.type, "player", );
174
+ });
175
+
176
+ pbjs.onEvent('videoPlayerResize', (e) => {
177
+ console.log('videos pb playerResize: ', e);
178
+ eventHandler(e, e.type, "player", );
179
+ });
180
+
181
+ pbjs.onEvent('videoError', (e) => {
182
+ console.log('videos pb error: ', e);
183
+ eventHandler(e, e.type, "media", );
184
+ });
185
+
186
+ pbjs.onEvent('videoViewable', (e) => {
187
+ console.log('videos pb viewable: ', e);
188
+ eventHandler(e, e.type, "player", );
189
+ });
190
+
191
+ pbjs.onEvent('videoCast', (e) => {
192
+ console.log('videos pb cast: ', e);
193
+ eventHandler(e, e.type, "player", );
194
+ });
195
+
196
+ pbjs.onEvent('videoAdBreakStart', e => {
197
+ console.log('videos pb ad break start: ', e);
198
+ eventHandler(e, e.type, "ads", );
199
+ });
200
+
201
+ pbjs.onEvent('videoAdRequest', (e) => {
202
+ console.log('videos pb ad request: ', e);
203
+ eventHandler(e, e.type, "ads", );
204
+ });
205
+
206
+ pbjs.onEvent('videoAdLoaded', e => {
207
+ console.log('videos pb ad load: ', e);
208
+ eventHandler(e, e.type, "ads", );
209
+ });
210
+
211
+ pbjs.onEvent('videoAdImpression', (e) => {
212
+ console.log('videos pb ad impression: ', e);
213
+ eventHandler(e, e.type, "ads", );
214
+ });
215
+
216
+ pbjs.onEvent('videoAdStarted', (e) => {
217
+ console.log('videos pb ad started: ', e);
218
+ eventHandler(e, e.type, "ads", );
219
+ });
220
+
221
+ pbjs.onEvent('videoAdPlay', (e) => {
222
+ console.log('videos pb ad play: ', e);
223
+ eventHandler(e, e.type, "ads", );
224
+ });
225
+
226
+ pbjs.onEvent('videoAdPause', (e) => {
227
+ console.log('videos pb ad pause: ', e);
228
+ eventHandler(e, e.type, "ads", );
229
+ });
230
+
231
+ pbjs.onEvent('videoAdTime', (e) => {
232
+ console.log('videos pb ad time: ', e);
233
+ eventHandler(e, e.type, "ads", );
234
+ });
235
+
236
+ pbjs.onEvent('videoAdComplete', (e) => {
237
+ console.log('videos pb ad complete: ', e);
238
+ eventHandler(e, e.type, "ads", );
239
+ });
240
+
241
+ pbjs.onEvent('videoAdSkipped', (e) => {
242
+ console.log('videos pb ad skipped: ', e);
243
+ eventHandler(e, e.type, "ads", );
244
+ });
245
+
246
+ pbjs.onEvent('videoAdClick', (e) => {
247
+ console.log('videos pb ad click: ', e);
248
+ eventHandler(e, e.type, "ads", );
249
+ });
250
+
251
+ pbjs.onEvent('videoAdError', (e) => {
252
+ console.log('videos pb ad error: ', e);
253
+ eventHandler(e, e.type, "ads", );
254
+ });
255
+
256
+ pbjs.onEvent('videoAuctionAdLoadAbort', (e) => {
257
+ console.log('videos pb auction ad load attempt: ', e);
258
+ eventHandler(e, "auctionAdLoadAbort", "auction", );
259
+ });
260
+
261
+ pbjs.onEvent('videoAuctionAdLoadQueued', (e) => {
262
+ console.log('videos pb auction ad load queued: ', e);
263
+ eventHandler(e, "auctionAdLoadQueued", "auction", );
264
+ });
265
+
266
+ pbjs.onEvent('videoAuctionAdLoadAttempt', e => {
267
+ console.log('The Video Module is attempting to load an ad into the player! \n', e);
268
+ eventHandler(e, "auctionAdLoadAttempt", "auction", );
269
+ });
270
+
271
+ pbjs.onEvent('videoBidError', e => {
272
+ console.log('An Ad Error came from a Bid: ', e);
273
+ eventHandler(e, "bidError", "auction", );
274
+ });
275
+
276
+ pbjs.onEvent('videoBidImpression', e => {
277
+ console.log('An Ad Impression came from a Bid: ', e);
278
+ eventHandler(e, "bidImpression", "auction", );
279
+ });
280
+
281
+ pbjs.requestBids(adUnits);
282
+ });
283
+ </script>
284
+ </head>
285
+
286
+ <body>
287
+ <div id="playerContainer"style="width: 640px; height: 360px;">
288
+ <div id ="player"></div>
289
+ </div>
290
+
291
+ <div id ="eventsLog"></div>
292
+
293
+ </body>
294
+
295
+ </html>
@@ -0,0 +1,319 @@
1
+ <html>
2
+
3
+ <head>
4
+ <link href="https://vjs.zencdn.net/7.20.2/video-js.css" rel="stylesheet" />
5
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-ads/6.9.0/videojs-contrib-ads.css"
6
+ integrity="sha512-0gIqgiX1dWTChdWUl8XGIBDFvLo7aTvmd6FAhJjzWx5bzYsCJTiPJLKqLF3q31IN4Kfrc0NbTO+EthoT6O0olQ=="
7
+ crossorigin="anonymous" referrerpolicy="no-referrer" />
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/videojs-ima/1.11.0/videojs.ima.css"
9
+ integrity="sha512-vvsEsf+dZDp6wbommO1Jbb2bpFhVQjw6pIzfE5fUY5Fgkmsgn/16sQWegqrd236T69kK5F1SbGZ+yK46a9il5A=="
10
+ crossorigin="anonymous" referrerpolicy="no-referrer" />
11
+ <script src="https://vjs.zencdn.net/7.20.2/video.min.js"></script>
12
+ <script src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"></script>
13
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-ads/6.9.0/videojs-contrib-ads.js"
14
+ integrity="sha512-XjyyAijQGlXZET35toG8igvVs8HvfVgKXGnbfAs2EpZ0o8vjJoIrxL9RBBQbQjzAODIe0jvWelFfZOA3Z/vdWg=="
15
+ crossorigin="anonymous" referrerpolicy="no-referrer"></script>
16
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-ima/1.11.0/videojs.ima.js"
17
+ integrity="sha512-9ocW9fl8CKJhZp4cmDpLDGPuTQ93gvw1iIS6daMYc5Y0Xh1all8iwdoI+iNmZpiydpdDGyKMTriXDX0wfs2OEg=="
18
+ crossorigin="anonymous" referrerpolicy="no-referrer"></script>
19
+
20
+ <script async src="../../../build/dev/prebid.js"></script>
21
+ <script src="../eventsUI/eventsUI.js"></script>
22
+ <link href="../eventsUI/eventsUI.css" rel="stylesheet" type="text/css">
23
+
24
+ <title>Video.JS Event UI</title>
25
+
26
+ <!--This demo listens to the Video events that are fired when an ad impression or ad error came from a bid. -->
27
+
28
+ <script>
29
+ // Setup ad units
30
+ var adUnits = [{
31
+ code: 'testUnit',
32
+ mediaTypes: {
33
+ video: {}
34
+ },
35
+ video: {
36
+ divId: 'player', // required to indicate which player is being used to render this ad unit.
37
+ },
38
+
39
+ bids: [{
40
+ bidder: 'ix',
41
+ params: {
42
+ siteId: '300',
43
+ }
44
+ }]
45
+ }];
46
+
47
+ var pbjs = pbjs || {};
48
+ pbjs.que = pbjs.que || [];
49
+
50
+ pbjs.que.push(function () {
51
+ pbjs.setConfig({
52
+ video: {
53
+ providers: [{
54
+ divId: 'player',
55
+ vendorCode: 2, // videojs vendorCode
56
+ playerConfig: {
57
+ params: {
58
+ adPluginConfig: {
59
+ numRedirects: 10
60
+ },
61
+ vendorConfig: {
62
+ controls: true,
63
+ autoplay: false,
64
+ preload: "auto",
65
+ }
66
+ }
67
+ }
68
+ },]
69
+ },
70
+ debugging: {
71
+ enabled: true,
72
+ intercept: [
73
+ {
74
+ when: {
75
+ adUnitCode: 'testUnit',
76
+ },
77
+ then: {
78
+ cpm: 25,
79
+ mediaType: "video",
80
+ ad: "<VAST version=\"3.0\"> <Ad id=\"123\"> <InLine> <AdSystem>PubMatic</AdSystem> <AdTitle>VAST 2.0 Instream Test</AdTitle> <Description>VAST 2.0 Instream Test</Description> <Error> <![CDATA[https://aktrack.pubmatic.com/er=[ERRORCODE]]]> </Error> <Impression> <![CDATA[https://aktrack.pubmatic.com?e=impression]]> </Impression> <Creatives> <Creative AdID=\"123\"> <Linear> <Duration>00:00:30</Duration> <TrackingEvents> <Tracking event=\"creativeView\"> <![CDATA[https://aktrack.pubmatic.com?e=creativeView]]> </Tracking> <Tracking event=\"start\"> <![CDATA[https://aktrack.pubmatic.com?e=start]]> </Tracking> <Tracking event=\"midpoint\"> <![CDATA[https://aktrack.pubmatic.com?e=midpoint]]> </Tracking> <Tracking event=\"firstQuartile\"> <![CDATA[https://aktrack.pubmatic.com?e=firstQuartile]]> </Tracking> <Tracking event=\"thirdQuartile\"> <![CDATA[https://aktrack.pubmatic.com?e=thirdQuartile]]> </Tracking> <Tracking event=\"complete\"> <![CDATA[https://aktrack.pubmatic.com?e=complete]]> </Tracking> </TrackingEvents> <VideoClicks> <ClickThrough> <![CDATA[https://www.pubmatic.com]]> </ClickThrough> </VideoClicks> <MediaFiles> <MediaFile delivery=\"progressive\" type=\"video/mp4\" bitrate=\"500\" width=\"480\" height=\"460\" scalable=\"true\" maintainAspectRatio=\"true\"> <![CDATA[https://staging.pubmatic.com:8443/test/spinning-logo-480x360_video.mp4]]> </MediaFile> <MediaFile delivery=\"progressive\" type=\"video/ogg\" bitrate=\"500\" width=\"480\" height=\"460\" scalable=\"true\" maintainAspectRatio=\"true\"> <![CDATA[https://staging.pubmatic.com:8443/test/spinning-logo-480x360_video.ogg]]> </MediaFile> <MediaFile delivery=\"progressive\" type=\"video/x-flv\" bitrate=\"500\" width=\"400\" height=\"300\" scalable=\"true\" maintainAspectRatio=\"true\"> <![CDATA[https://staging.pubmatic.com:8443/test/PubMatic_test_video.flv]]> </MediaFile> </MediaFiles> </Linear> </Creative> <Creative AdID=\"123\"> <NonLinearAds> <TrackingEvents></TrackingEvents> <NonLinear height=\"50\" width=\"300\" minSuggestedDuration=\"00:00:05\"> <StaticResource creativeType=\"image/jpeg\"> <![CDATA[https://staging.pubmatic.com:8443/test/PubMatic_LetsBeClear_300x50.jpeg]]> </StaticResource> <NonLinearClickThrough> <![CDATA[https://www.pubmatic.com]]> </NonLinearClickThrough> </NonLinear> </NonLinearAds> </Creative> <Creative AdID=\"123\"> <CompanionAds> <Companion width=\"300\" height=\"250\"> <StaticResource creativeType=\"image/jpeg\"> <![CDATA[https://staging.pubmatic.com:8443/test/PubMatic_LetsBeClear_320x250.jpg]]> </StaticResource> <CompanionClickThrough> <![CDATA[https://www.pubmatic.com]]> </CompanionClickThrough> </Companion> </CompanionAds> </Creative> </Creatives> </InLine> </Ad> </VAST>",
81
+ vastUrl: "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",
82
+ }
83
+ },
84
+ ]
85
+ }
86
+ });
87
+
88
+ pbjs.addAdUnits(adUnits);
89
+ const eventHandler = window.getGenericEventHandler();
90
+
91
+ pbjs.onEvent('videoSetupComplete', (e) => {
92
+ console.log('player setup complete: ', e);
93
+ eventHandler(e, e.type, "player", );
94
+ // Load media with its Metadata when the video player is done instantiating.
95
+ videojs('player').loadMedia({
96
+ id: 'XYXYXYXY',
97
+ src: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4',
98
+ title: 'Subaru Outback On Street And Dirt',
99
+ description: 'Smoking Tire takes the all-new Subaru Outback to the highest point we can find in hopes our customer-appreciation Balloon Launch will get some free T-shirts into the hands of our viewers.',
100
+ type: 'video/mp4'
101
+ });
102
+ });
103
+
104
+ pbjs.onEvent('videoSetupFailed', e => {
105
+ console.log('player setup failed: ', e);
106
+ eventHandler(e, e.type, "player", );
107
+ });
108
+
109
+ pbjs.onEvent('videoDestroyed', e => {
110
+ console.log('player destroyed: ', e);
111
+ eventHandler(e, e.type, "player", );
112
+ });
113
+
114
+ pbjs.onEvent('videoPlaylist', (e) => {
115
+ console.log('videos pb playlist: ', e);
116
+ eventHandler(e, e.type, "media", );
117
+ });
118
+
119
+ pbjs.onEvent('videoPlaybackRequest', (e) => {
120
+ console.log('videos pb playbackRequest: ', e);
121
+ eventHandler(e, e.type, "media", );
122
+ });
123
+
124
+ pbjs.onEvent('videoAutostartBlocked', (e) => {
125
+ console.log('videos pb autostartBlocked: ', e);
126
+ eventHandler(e, e.type, "media", );
127
+ });
128
+
129
+ pbjs.onEvent('videoPlayAttemptFailed', (e) => {
130
+ console.log('videos pb playAttemptFailed: ', e);
131
+ eventHandler(e, e.type, "media", );
132
+ });
133
+
134
+ pbjs.onEvent('videoContentLoaded', (e) => {
135
+ console.log('videos pb contentLoaded: ', e);
136
+ eventHandler(e, e.type, "media", );
137
+ });
138
+
139
+ pbjs.onEvent('videoPlay', (e) => {
140
+ console.log('videos pb play: ', e);
141
+ eventHandler(e, e.type, "media", );
142
+ });
143
+
144
+ pbjs.onEvent('videoPause', (e) => {
145
+ console.log('videos pb pause: ', e);
146
+ eventHandler(e, e.type, "media", );
147
+ });
148
+
149
+ pbjs.onEvent('videoBuffer', (e) => {
150
+ console.log('videos pb buffer: ', e);
151
+ eventHandler(e, e.type, "media", );
152
+ });
153
+
154
+ pbjs.onEvent('videoSeekStart', (e) => {
155
+ console.log('videos pb seekStart: ', e);
156
+ eventHandler(e, e.type, "media", );
157
+ });
158
+
159
+ pbjs.onEvent('videoSeekEnd', (e) => {
160
+ console.log('videos pb seekEnd: ', e);
161
+ eventHandler(e, e.type, "media", );
162
+ });
163
+
164
+ pbjs.onEvent('videoRenditionUpdate', (e) => {
165
+ console.log('videos pb renditionUpdate: ', e);
166
+ eventHandler(e, e.type, "media", );
167
+ });
168
+
169
+ pbjs.onEvent('videoMute', (e) => {
170
+ console.log('videos pb mute: ', e);
171
+ eventHandler(e, e.type, "player", );
172
+ });
173
+
174
+ pbjs.onEvent('videoVolume', (e) => {
175
+ console.log('videos pb volume: ', e);
176
+ eventHandler(e, e.type, "player", );
177
+ });
178
+
179
+ pbjs.onEvent('videoTime', (e) => {
180
+ console.log('videos pb time: ', e);
181
+ eventHandler(e, e.type, "media", );
182
+ });
183
+
184
+ pbjs.onEvent('videoComplete', (e) => {
185
+ console.log('videos pb complete: ', e);
186
+ eventHandler(e, e.type, "media", );
187
+ });
188
+
189
+ pbjs.onEvent('videoPlaylistComplete', (e) => {
190
+ console.log('videos pb playlistComplete: ', e);
191
+ eventHandler(e, e.type, "media", );
192
+ });
193
+
194
+ pbjs.onEvent('videoFullscreen', (e) => {
195
+ console.log('videos pb fullscreen: ', e);
196
+ eventHandler(e, e.type, "player", );
197
+ });
198
+
199
+ pbjs.onEvent('videoPlayerResize', (e) => {
200
+ console.log('videos pb playerResize: ', e);
201
+ eventHandler(e, e.type, "player", );
202
+ });
203
+
204
+ pbjs.onEvent('videoError', (e) => {
205
+ console.log('videos pb error: ', e);
206
+ eventHandler(e, e.type, "media", );
207
+ });
208
+
209
+ pbjs.onEvent('videoViewable', (e) => {
210
+ console.log('videos pb viewable: ', e);
211
+ eventHandler(e, e.type, "player", );
212
+ });
213
+
214
+ pbjs.onEvent('videoCast', (e) => {
215
+ console.log('videos pb cast: ', e);
216
+ eventHandler(e, e.type, "player", );
217
+ });
218
+
219
+ pbjs.onEvent('videoAdBreakStart', e => {
220
+ console.log('videos pb ad break start: ', e);
221
+ eventHandler(e, e.type, "ads", );
222
+ });
223
+
224
+ pbjs.onEvent('videoAdRequest', (e) => {
225
+ console.log('videos pb ad request: ', e);
226
+ eventHandler(e, e.type, "ads", );
227
+ });
228
+
229
+ pbjs.onEvent('videoAdLoaded', e => {
230
+ console.log('videos pb ad load: ', e);
231
+ eventHandler(e, e.type, "ads", );
232
+ });
233
+
234
+ pbjs.onEvent('videoAdImpression', (e) => {
235
+ console.log('videos pb ad impression: ', e);
236
+ eventHandler(e, e.type, "ads", );
237
+ });
238
+
239
+ pbjs.onEvent('videoAdStarted', (e) => {
240
+ console.log('videos pb ad started: ', e);
241
+ eventHandler(e, e.type, "ads", );
242
+ });
243
+
244
+ pbjs.onEvent('videoAdPlay', (e) => {
245
+ console.log('videos pb ad play: ', e);
246
+ eventHandler(e, e.type, "ads", );
247
+ });
248
+
249
+ pbjs.onEvent('videoAdPause', (e) => {
250
+ console.log('videos pb ad pause: ', e);
251
+ eventHandler(e, e.type, "ads", );
252
+ });
253
+
254
+ pbjs.onEvent('videoAdTime', (e) => {
255
+ console.log('videos pb ad time: ', e);
256
+ eventHandler(e, e.type, "ads", );
257
+ });
258
+
259
+ pbjs.onEvent('videoAdComplete', (e) => {
260
+ console.log('videos pb ad complete: ', e);
261
+ eventHandler(e, e.type, "ads", );
262
+ });
263
+
264
+ pbjs.onEvent('videoAdSkipped', (e) => {
265
+ console.log('videos pb ad skipped: ', e);
266
+ eventHandler(e, e.type, "ads", );
267
+ });
268
+
269
+ pbjs.onEvent('videoAdClick', (e) => {
270
+ console.log('videos pb ad click: ', e);
271
+ eventHandler(e, e.type, "ads", );
272
+ });
273
+
274
+ pbjs.onEvent('videoAdError', (e) => {
275
+ console.log('videos pb ad error: ', e);
276
+ eventHandler(e, e.type, "ads", );
277
+ });
278
+
279
+ pbjs.onEvent('videoAuctionAdLoadAbort', (e) => {
280
+ console.log('videos pb auction ad load attempt: ', e);
281
+ eventHandler(e, "auctionAdLoadAbort", "auction", );
282
+ });
283
+
284
+ pbjs.onEvent('videoAuctionAdLoadQueued', (e) => {
285
+ console.log('videos pb auction ad load queued: ', e);
286
+ eventHandler(e, "auctionAdLoadQueued", "auction", );
287
+ });
288
+
289
+ pbjs.onEvent('videoAuctionAdLoadAttempt', e => {
290
+ console.log('The Video Module is attempting to load an ad into the player! \n', e);
291
+ eventHandler(e, "auctionAdLoadAttempt", "auction", );
292
+ });
293
+
294
+ pbjs.onEvent('videoBidError', e => {
295
+ console.log('An Ad Error came from a Bid: ', e);
296
+ eventHandler(e, "bidError", "auction", );
297
+ });
298
+
299
+ pbjs.onEvent('videoBidImpression', e => {
300
+ console.log('An Ad Impression came from a Bid: ', e);
301
+ eventHandler(e, "bidImpression", "auction", );
302
+ });
303
+
304
+ pbjs.requestBids(adUnits);
305
+ });
306
+ </script>
307
+ </head>
308
+
309
+ <body>
310
+ <div id="playerContainer"style="width: 640px; height: 360px;">
311
+ <video-js id='player' class="vjs-big-play-centered">
312
+ </video-js>
313
+ </div>
314
+
315
+ <div id ="eventsLog"></div>
316
+
317
+ </body>
318
+
319
+ </html>
@@ -1,5 +1,19 @@
1
1
  import { videoKey } from '../constants/constants.js'
2
2
 
3
3
  export function getExternalVideoEventName(eventName) {
4
+ if (!eventName) {
5
+ return '';
6
+ }
4
7
  return videoKey + eventName.replace(/^./, eventName[0].toUpperCase());
5
8
  }
9
+
10
+ export function getExternalVideoEventPayload(eventName, payload) {
11
+ if (!payload) {
12
+ payload = {};
13
+ }
14
+
15
+ if (!payload.type) {
16
+ payload.type = eventName;
17
+ }
18
+ return payload;
19
+ }
@@ -765,7 +765,7 @@ function _buildDeviceORTB(device = {}) {
765
765
  }
766
766
 
767
767
  if (device.sua) {
768
- deviceProps.sua = pick(device.sua, [ 'browsers', 'platform', 'model' ]);
768
+ deviceProps.sua = pick(device.sua, [ 'browsers', 'platform', 'model', 'mobile' ]);
769
769
  }
770
770
 
771
771
  return deviceProps;
@@ -110,6 +110,7 @@ export const spec = {
110
110
  { code: 'oftmedia', gvlid: 32 },
111
111
  { code: 'adasta', gvlid: 32 },
112
112
  { code: 'beintoo', gvlid: 618 },
113
+ { code: 'projectagora', gvlid: 1032 },
113
114
  ],
114
115
  supportedMediaTypes: [BANNER, VIDEO, NATIVE],
115
116
 
@@ -64,6 +64,7 @@ export const spec = {
64
64
  dbg: false,
65
65
  slts: slots,
66
66
  is_amp: deepAccess(bidderRequest, 'referrerInfo.isAmp'),
67
+ gdpr_applies: gdpr ? gdpr.gdprApplies : false,
67
68
  tc_string: (gdpr && gdpr.gdprApplies) ? gdpr.consentString : null,
68
69
  };
69
70