prebid.js 7.22.0 → 7.23.1

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 (273) hide show
  1. package/dist/33acrossBidAdapter.js +1 -1
  2. package/dist/aaxBlockmeterRtdProvider.js +1 -0
  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/ajaBidAdapter.js +1 -1
  10. package/dist/amxBidAdapter.js +1 -1
  11. package/dist/amxIdSystem.js +1 -1
  12. package/dist/analyticsAdapter.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/bidViewability.js +1 -1
  18. package/dist/bidViewabilityIO.js +1 -1
  19. package/dist/bidglassBidAdapter.js +1 -1
  20. package/dist/big-richmediaBidAdapter.js +1 -1
  21. package/dist/bridgewellBidAdapter.js +1 -1
  22. package/dist/brightMountainMediaBidAdapter.js +1 -1
  23. package/dist/browsiRtdProvider.js +1 -1
  24. package/dist/carodaBidAdapter.js +1 -1
  25. package/dist/chtnwBidAdapter.js +1 -0
  26. package/dist/cleanioRtdProvider.js +1 -1
  27. package/dist/concertBidAdapter.js +1 -1
  28. package/dist/connectadBidAdapter.js +1 -1
  29. package/dist/consentManagement.js +1 -1
  30. package/dist/consentManagementUsp.js +1 -1
  31. package/dist/consumableBidAdapter.js +1 -1
  32. package/dist/conversantBidAdapter.js +1 -1
  33. package/dist/craftBidAdapter.js +1 -1
  34. package/dist/criteoBidAdapter.js +1 -1
  35. package/dist/currency.js +1 -1
  36. package/dist/dependencies.json +19 -0
  37. package/dist/dfpAdServerVideo.js +1 -1
  38. package/dist/dgkeywordRtdProvider.js +1 -1
  39. package/dist/dspxBidAdapter.js +1 -1
  40. package/dist/eplanningBidAdapter.js +1 -1
  41. package/dist/finativeBidAdapter.js +1 -1
  42. package/dist/gdprEnforcement.js +1 -1
  43. package/dist/glimpseBidAdapter.js +1 -1
  44. package/dist/gmosspBidAdapter.js +1 -1
  45. package/dist/goldbachBidAdapter.js +1 -1
  46. package/dist/googleAnalyticsAdapter.js +1 -1
  47. package/dist/gridBidAdapter.js +1 -1
  48. package/dist/gridNMBidAdapter.js +1 -1
  49. package/dist/gumgumBidAdapter.js +1 -1
  50. package/dist/h12mediaBidAdapter.js +1 -1
  51. package/dist/id5AnalyticsAdapter.js +1 -1
  52. package/dist/id5IdSystem.js +1 -1
  53. package/dist/improvedigitalBidAdapter.js +1 -1
  54. package/dist/inmarBidAdapter.js +1 -1
  55. package/dist/insticatorBidAdapter.js +1 -1
  56. package/dist/instreamTracking.js +1 -1
  57. package/dist/ixBidAdapter.js +1 -1
  58. package/dist/justpremiumBidAdapter.js +1 -1
  59. package/dist/jwplayerVideoProvider.js +1 -0
  60. package/dist/kargoBidAdapter.js +1 -1
  61. package/dist/konduitAnalyticsAdapter.js +1 -1
  62. package/dist/kueezBidAdapter.js +1 -1
  63. package/dist/lassoBidAdapter.js +1 -1
  64. package/dist/lifestreetBidAdapter.js +1 -1
  65. package/dist/liveyieldAnalyticsAdapter.js +1 -1
  66. package/dist/logicadBidAdapter.js +1 -1
  67. package/dist/loglyliftBidAdapter.js +1 -1
  68. package/dist/magniteAnalyticsAdapter.js +1 -1
  69. package/dist/malltvAnalyticsAdapter.js +1 -1
  70. package/dist/marsmediaBidAdapter.js +1 -1
  71. package/dist/mediafuseBidAdapter.js +1 -1
  72. package/dist/mediasquareBidAdapter.js +1 -1
  73. package/dist/mgidBidAdapter.js +1 -1
  74. package/dist/minutemediaBidAdapter.js +1 -1
  75. package/dist/multibid.js +1 -1
  76. package/dist/not-for-prod/prebid.js +141 -132
  77. package/dist/oguryBidAdapter.js +1 -1
  78. package/dist/onetagBidAdapter.js +1 -1
  79. package/dist/ooloAnalyticsAdapter.js +1 -1
  80. package/dist/openxOrtbBidAdapter.js +1 -1
  81. package/dist/ortbConverter.js +1 -0
  82. package/dist/outbrainBidAdapter.js +1 -1
  83. package/dist/oxxionRtdProvider.js +1 -0
  84. package/dist/parrableIdSystem.js +1 -1
  85. package/dist/pbsExtensions.js +1 -0
  86. package/dist/pixfutureBidAdapter.js +1 -1
  87. package/dist/prebid-core.js +1 -1
  88. package/dist/prebidServerBidAdapter.js +1 -1
  89. package/dist/priceFloors.js +1 -1
  90. package/dist/pubCommonId.js +1 -1
  91. package/dist/publinkIdSystem.js +1 -1
  92. package/dist/pubmaticBidAdapter.js +1 -1
  93. package/dist/pubwiseAnalyticsAdapter.js +1 -1
  94. package/dist/pxyzBidAdapter.js +1 -1
  95. package/dist/quantcastBidAdapter.js +1 -1
  96. package/dist/readpeakBidAdapter.js +1 -1
  97. package/dist/relaidoBidAdapter.js +1 -1
  98. package/dist/rhythmoneBidAdapter.js +1 -1
  99. package/dist/riseBidAdapter.js +1 -1
  100. package/dist/rtdModule.js +1 -1
  101. package/dist/rubiconAnalyticsAdapter.js +1 -1
  102. package/dist/rubiconBidAdapter.js +1 -1
  103. package/dist/schain.js +1 -1
  104. package/dist/seedingAllianceBidAdapter.js +1 -1
  105. package/dist/seedtagBidAdapter.js +1 -1
  106. package/dist/sharethroughAnalyticsAdapter.js +1 -1
  107. package/dist/sharethroughBidAdapter.js +1 -1
  108. package/dist/shinezBidAdapter.js +1 -1
  109. package/dist/smaatoBidAdapter.js +1 -1
  110. package/dist/smartadserverBidAdapter.js +1 -1
  111. package/dist/smartxBidAdapter.js +1 -1
  112. package/dist/smilewantedBidAdapter.js +1 -1
  113. package/dist/sonobiBidAdapter.js +1 -1
  114. package/dist/sovrnAnalyticsAdapter.js +1 -1
  115. package/dist/sovrnBidAdapter.js +1 -1
  116. package/dist/spotxBidAdapter.js +1 -1
  117. package/dist/sspBCBidAdapter.js +1 -1
  118. package/dist/sublimeBidAdapter.js +1 -1
  119. package/dist/synacormediaBidAdapter.js +1 -1
  120. package/dist/targetVideoBidAdapter.js +1 -1
  121. package/dist/teadsBidAdapter.js +1 -1
  122. package/dist/teadsIdSystem.js +1 -1
  123. package/dist/trionBidAdapter.js +1 -1
  124. package/dist/tripleliftBidAdapter.js +1 -1
  125. package/dist/ttdBidAdapter.js +1 -1
  126. package/dist/ucfunnelAnalyticsAdapter.js +1 -1
  127. package/dist/underdogmediaBidAdapter.js +1 -1
  128. package/dist/undertoneBidAdapter.js +1 -1
  129. package/dist/userId.js +1 -1
  130. package/dist/vidazooBidAdapter.js +1 -1
  131. package/dist/video.js +1 -0
  132. package/dist/videoModule.js +1 -0
  133. package/dist/videobyteBidAdapter.js +1 -1
  134. package/dist/videojsVideoProvider.js +1 -0
  135. package/dist/visxBidAdapter.js +1 -1
  136. package/dist/vuukleBidAdapter.js +1 -1
  137. package/dist/widespaceBidAdapter.js +1 -1
  138. package/dist/winrBidAdapter.js +1 -1
  139. package/dist/yahoosspBidAdapter.js +1 -1
  140. package/dist/yieldmoBidAdapter.js +1 -1
  141. package/dist/yieldoneAnalyticsAdapter.js +1 -1
  142. package/integrationExamples/videoModule/jwplayer/bidMarkedAsUsed.html +98 -0
  143. package/integrationExamples/videoModule/jwplayer/bidRequestScheduling.html +89 -0
  144. package/integrationExamples/videoModule/jwplayer/eventListeners.html +244 -0
  145. package/integrationExamples/videoModule/jwplayer/gamAdServerMediation.html +122 -0
  146. package/integrationExamples/videoModule/jwplayer/mediaMetadata.html +80 -0
  147. package/integrationExamples/videoModule/jwplayer/playlist.html +122 -0
  148. package/integrationExamples/videoModule/videojs/bidMarkedAsUsed.html +126 -0
  149. package/integrationExamples/videoModule/videojs/bidRequestScheduling.html +132 -0
  150. package/integrationExamples/videoModule/videojs/eventListeners.html +238 -0
  151. package/integrationExamples/videoModule/videojs/gamAdServerMediation.html +138 -0
  152. package/integrationExamples/videoModule/videojs/mediaMetadata.html +103 -0
  153. package/integrationExamples/videoModule/videojs/playlist.html +151 -0
  154. package/libraries/ortbConverter/README.md +378 -0
  155. package/libraries/ortbConverter/converter.js +135 -0
  156. package/libraries/ortbConverter/lib/composer.js +43 -0
  157. package/libraries/ortbConverter/lib/mergeProcessors.js +9 -0
  158. package/libraries/ortbConverter/lib/sizes.js +14 -0
  159. package/libraries/ortbConverter/processors/banner.js +40 -0
  160. package/libraries/ortbConverter/processors/default.js +167 -0
  161. package/libraries/ortbConverter/processors/mediaType.js +21 -0
  162. package/libraries/ortbConverter/processors/native.js +37 -0
  163. package/libraries/ortbConverter/processors/video.js +66 -0
  164. package/libraries/pbsExtensions/pbsExtensions.js +12 -0
  165. package/libraries/pbsExtensions/processors/aliases.js +17 -0
  166. package/libraries/pbsExtensions/processors/mediaType.js +23 -0
  167. package/libraries/pbsExtensions/processors/params.js +22 -0
  168. package/libraries/pbsExtensions/processors/pbs.js +99 -0
  169. package/libraries/pbsExtensions/processors/requestExtPrebid.js +30 -0
  170. package/libraries/pbsExtensions/processors/video.js +23 -0
  171. package/libraries/video/constants/enums.js +5 -0
  172. package/libraries/video/constants/events.js +97 -0
  173. package/libraries/video/constants/ortb.js +169 -0
  174. package/libraries/video/constants/vendorCodes.js +6 -0
  175. package/libraries/video/shared/eventHandler.js +18 -0
  176. package/libraries/video/shared/parentModule.js +82 -0
  177. package/libraries/video/shared/state.js +47 -0
  178. package/libraries/video/shared/vastXmlBuilder.js +77 -0
  179. package/libraries/video/shared/vastXmlEditor.js +115 -0
  180. package/modules/.submodules.json +6 -1
  181. package/modules/aaxBlockmeterRtdProvider.js +59 -0
  182. package/modules/aaxBlockmeterRtdProvider.md +48 -0
  183. package/modules/appnexusBidAdapter.js +38 -1
  184. package/modules/chtnwBidAdapter.js +110 -0
  185. package/modules/chtnwBidAdapter.md +31 -0
  186. package/modules/concertBidAdapter.js +44 -2
  187. package/modules/consentManagement.js +22 -1
  188. package/modules/consentManagementUsp.js +29 -7
  189. package/modules/criteoBidAdapter.js +25 -5
  190. package/modules/currency.js +9 -0
  191. package/modules/dgkeywordRtdProvider.js +3 -3
  192. package/modules/gridNMBidAdapter.js +10 -14
  193. package/modules/improvedigitalBidAdapter.js +191 -470
  194. package/modules/ixBidAdapter.js +24 -64
  195. package/modules/jwplayerVideoProvider.js +929 -0
  196. package/modules/jwplayerVideoProvider.md +25 -0
  197. package/modules/kargoBidAdapter.js +1 -1
  198. package/modules/multibid/index.js +12 -0
  199. package/modules/openxOrtbBidAdapter.js +120 -275
  200. package/modules/oxxionRtdProvider.js +119 -0
  201. package/modules/oxxionRtdProvider.md +48 -0
  202. package/modules/prebidServerBidAdapter/index.js +19 -716
  203. package/modules/prebidServerBidAdapter/ortbConverter.js +274 -0
  204. package/modules/priceFloors.js +73 -1
  205. package/modules/rtdModule/index.js +22 -1
  206. package/modules/schain.js +24 -1
  207. package/modules/spotxBidAdapter.js +16 -15
  208. package/modules/synacormediaBidAdapter.js +1 -1
  209. package/modules/teadsIdSystem.js +5 -0
  210. package/modules/userId/index.js +64 -6
  211. package/modules/videoModule/addingSubmodule.md +521 -0
  212. package/modules/videoModule/coreVideo.js +234 -0
  213. package/modules/videoModule/gamAdServerSubmodule.js +27 -0
  214. package/modules/videoModule/index.js +244 -0
  215. package/modules/videoModule/videoImpressionVerifier.js +206 -0
  216. package/modules/videojsVideoProvider.js +854 -0
  217. package/modules/videojsVideoProvider.md +17 -0
  218. package/package.json +5 -1
  219. package/src/adapterManager.js +56 -7
  220. package/src/adloader.js +2 -1
  221. package/src/auction.js +5 -0
  222. package/src/events.js +5 -1
  223. package/src/pbjsORTB.js +35 -0
  224. package/src/prebid.js +137 -112
  225. package/src/targeting.js +10 -2
  226. package/src/utils/currency.js +16 -0
  227. package/src/utils.js +21 -0
  228. package/test/spec/auctionmanager_spec.js +6 -0
  229. package/test/spec/modules/aaxBlockmeter_spec.js +58 -0
  230. package/test/spec/modules/chtnwBidAdapter_spec.js +105 -0
  231. package/test/spec/modules/concertBidAdapter_spec.js +56 -0
  232. package/test/spec/modules/consentManagementUsp_spec.js +64 -18
  233. package/test/spec/modules/criteoBidAdapter_spec.js +28 -0
  234. package/test/spec/modules/dgkeywordRtdProvider_spec.js +3 -3
  235. package/test/spec/modules/improvedigitalBidAdapter_spec.js +231 -211
  236. package/test/spec/modules/ixBidAdapter_spec.js +230 -371
  237. package/test/spec/modules/openxOrtbBidAdapter_spec.js +77 -49
  238. package/test/spec/modules/oxxionRtdProvider_spec.js +142 -0
  239. package/test/spec/modules/prebidServerBidAdapter_spec.js +139 -137
  240. package/test/spec/modules/realTimeDataModule_spec.js +65 -0
  241. package/test/spec/modules/userId_spec.js +67 -1
  242. package/test/spec/modules/videoModule/coreVideo_spec.js +98 -0
  243. package/test/spec/modules/videoModule/pbVideo_spec.js +362 -0
  244. package/test/spec/modules/videoModule/shared/parentModule_spec.js +73 -0
  245. package/test/spec/modules/videoModule/shared/state_spec.js +26 -0
  246. package/test/spec/modules/videoModule/shared/vastXmlBuilder_spec.js +103 -0
  247. package/test/spec/modules/videoModule/shared/vastXmlEditor_spec.js +209 -0
  248. package/test/spec/modules/videoModule/submodules/jwplayerVideoProvider_spec.js +846 -0
  249. package/test/spec/modules/videoModule/submodules/videojsVideoProvider_spec.js +391 -0
  250. package/test/spec/modules/videoModule/videoImpressionVerifier_spec.js +112 -0
  251. package/test/spec/ortbConverter/banner_spec.js +203 -0
  252. package/test/spec/ortbConverter/composer_spec.js +69 -0
  253. package/test/spec/ortbConverter/converter_spec.js +283 -0
  254. package/test/spec/ortbConverter/currency_spec.js +40 -0
  255. package/test/spec/ortbConverter/default_processors_spec.js +61 -0
  256. package/test/spec/ortbConverter/gdpr_spec.js +38 -0
  257. package/test/spec/ortbConverter/mediaTypes_spec.js +67 -0
  258. package/test/spec/ortbConverter/mergeProcessors_spec.js +59 -0
  259. package/test/spec/ortbConverter/multibid_spec.js +35 -0
  260. package/test/spec/ortbConverter/native_spec.js +95 -0
  261. package/test/spec/ortbConverter/pbjsORTB_spec.js +67 -0
  262. package/test/spec/ortbConverter/pbsExtensions/aliases_spec.js +57 -0
  263. package/test/spec/ortbConverter/pbsExtensions/params_spec.js +96 -0
  264. package/test/spec/ortbConverter/pbsExtensions/video_spec.js +52 -0
  265. package/test/spec/ortbConverter/priceFloors_spec.js +143 -0
  266. package/test/spec/ortbConverter/schain_spec.js +33 -0
  267. package/test/spec/ortbConverter/userId_spec.js +21 -0
  268. package/test/spec/ortbConverter/usp_spec.js +15 -0
  269. package/test/spec/ortbConverter/video_spec.js +189 -0
  270. package/test/spec/unit/core/adapterManager_spec.js +102 -0
  271. package/test/spec/unit/core/targeting_spec.js +34 -0
  272. package/test/spec/unit/pbjs_api_spec.js +124 -45
  273. package/test/spec/utils_spec.js +45 -1
@@ -0,0 +1,98 @@
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
+
7
+ <title>JW Player with Bid Marked As Used</title>
8
+
9
+ <!--This demo listens to the Video events that are fired when an ad impression or ad error came from a bid. -->
10
+
11
+ <script>
12
+ // Setup ad units
13
+ var adUnits = [{
14
+ code: 'div-gpt-ad-51545-0',
15
+ mediaTypes: {
16
+ video: {}
17
+ },
18
+ video: {
19
+ divId: 'player', // required to indicate which player is being used to render this ad unit.
20
+ },
21
+
22
+ bids: [{
23
+ bidder: 'ix',
24
+ params: {
25
+ siteId: '300',
26
+ }
27
+ }]
28
+ }];
29
+
30
+ var pbjs = pbjs || {};
31
+ pbjs.que = pbjs.que || [];
32
+
33
+ pbjs.que.push(function () {
34
+ pbjs.setConfig({
35
+ video: {
36
+ providers: [{
37
+ divId: 'player',
38
+ vendorCode: 1, // jwplayer vendorCode
39
+ playerConfig: {
40
+ licenseKey: 'IAjLREYRLylTWsfLN3FoN/O3iQLbs+AfgZLlkAoyH8gSf7TnNtmOLcR8CUY=',
41
+ params: {
42
+ vendorConfig: {
43
+ file: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4',
44
+ advertising: { client: 'vast' }
45
+ }
46
+ }
47
+ },
48
+ },]
49
+ },
50
+ debugging: {
51
+ enabled: true,
52
+ intercept: [
53
+ {
54
+ when: {
55
+ adUnitCode: 'div-gpt-ad-51545-0',
56
+ },
57
+ then: {
58
+ cpm: 25,
59
+ mediaType: "video",
60
+ 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=",
61
+ // vastXml: "<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>",
62
+ 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>"
63
+ }
64
+ },
65
+ ]
66
+ }
67
+ });
68
+
69
+ pbjs.addAdUnits(adUnits);
70
+
71
+ pbjs.onEvent('videoSetupComplete', (e) => {
72
+ console.log('player setup complete: ', e);
73
+ });
74
+
75
+ pbjs.onEvent('videoSetupFailed', e => {
76
+ console.log('player setup failed: ', e);
77
+ });
78
+
79
+ pbjs.onEvent('videoPlaybackRequest', (e) => {
80
+ pbjs.requestBids(adUnits);
81
+ });
82
+
83
+ pbjs.onEvent('videoBidError', e => {
84
+ console.log('An Ad Error came from a Bid: ', e);
85
+ });
86
+
87
+ pbjs.onEvent('videoBidImpression', e => {
88
+ console.log('An Ad Impression came from a Bid: ', e);
89
+ });
90
+ });
91
+ </script>
92
+ </head>
93
+
94
+ <body>
95
+ <div id ="player"></div>
96
+ </body>
97
+
98
+ </html>
@@ -0,0 +1,89 @@
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
+
7
+ <title>JW Player with Bid Request Scheduling</title>
8
+
9
+ <!--This demo configures JW Player's Player Bidding product to handle ad scheduling-->
10
+
11
+ <script>
12
+
13
+ var pbjs = pbjs || {};
14
+ pbjs.que = pbjs.que || [];
15
+
16
+ pbjs.que.push(function () {
17
+ pbjs.setConfig({
18
+ video: {
19
+ providers: [{
20
+ divId: 'player',
21
+ vendorCode: 1, // JW Player vendorCode
22
+ playerConfig: {
23
+ licenseKey: 'IAjLREYRLylTWsfLN3FoN/O3iQLbs+AfgZLlkAoyH8gSf7TnNtmOLcR8CUY=',
24
+ params: {
25
+ vendorConfig: {
26
+ file: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4',
27
+ advertising: {
28
+ client: "googima",
29
+ schedule: {
30
+ adBreak1: {
31
+ tag: "//pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/137679306/HB_Dev_Center_Example&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&correlator=",
32
+ offset: "pre"
33
+ },
34
+ adBreak2: {
35
+ tag: "//pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/137679306/HB_Dev_Center_Example&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&correlator=",
36
+ offset: "10"
37
+ },
38
+ adBreak3: {
39
+ tag: "//pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/137679306/HB_Dev_Center_Example&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&correlator=",
40
+ offset: "20"
41
+ },
42
+ adBreak4: {
43
+ tag: "//pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/137679306/HB_Dev_Center_Example&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&correlator=",
44
+ offset: "post"
45
+ }
46
+ },
47
+ bids: {
48
+ client: "bidding",
49
+ settings: {
50
+ mediationLayerAdServer: "dfp",
51
+ bidTimeout: 2000
52
+ },
53
+ bidders: [
54
+ {
55
+ name: "ix",
56
+ siteId: "300"
57
+ }
58
+ ]
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ },]
65
+ },
66
+ });
67
+
68
+ pbjs.onEvent('videoSetupComplete', e => {
69
+ console.log('player setup complete: ', e);
70
+ });
71
+
72
+ pbjs.onEvent('videoSetupFailed', e => {
73
+ console.log('player setup failed: ', e);
74
+ });
75
+
76
+ pbjs.onEvent('videoAdError', e => {
77
+ console.log('adError: ', e);
78
+ });
79
+ });
80
+ </script>
81
+ </head>
82
+
83
+ <body>
84
+ <h2>JW Player with Bid Request Scheduling</h2>
85
+ <h5>Div-1: Player placeholder div</h5>
86
+ <div id='player'></div>
87
+ </body>
88
+
89
+ </html>
@@ -0,0 +1,244 @@
1
+ -<!--
2
+
3
+ -->
4
+
5
+ <html>
6
+
7
+ <head>
8
+ <script async src="../../../build/dev/prebid.js"></script>
9
+ <script src="https://cdn.jwplayer.com/libraries/l5MchIxB.js"></script>
10
+
11
+ <script>
12
+ var pbjs = pbjs || {};
13
+ pbjs.que = pbjs.que || [];
14
+
15
+ var adUnits = [{
16
+ code: 'div-gpt-ad-51545-0',
17
+ mediaTypes: {
18
+ video: {}
19
+ },
20
+ video: {
21
+ divId: 'player',
22
+ },
23
+
24
+ // Replace this object to test a new Adapter!
25
+ bids: [{
26
+ bidder: 'ix',
27
+ params: {
28
+ siteId: '300',
29
+ }
30
+ }]
31
+ }];
32
+
33
+ pbjs.que.push(function () {
34
+ pbjs.setConfig({
35
+ video: {
36
+ providers: [{
37
+ divId: 'player',
38
+ vendorCode: 1, // vendorCode for jwplayer
39
+ playerConfig: {
40
+ licenseKey: 'IAjLREYRLylTWsfLN3FoN/O3iQLbs+AfgZLlkAoyH8gSf7TnNtmOLcR8CUY=',
41
+ params: {
42
+ vendorConfig: {
43
+ file: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4',
44
+ mediaid: 'd9J2zcaA',
45
+ advertising: { client: 'vast' }
46
+ }
47
+ }
48
+ },
49
+ }]
50
+ },
51
+ debugging: {
52
+ enabled: true,
53
+ intercept: [
54
+ {
55
+ when: {
56
+ adUnitCode: 'div-gpt-ad-51545-0',
57
+ },
58
+ then: {
59
+ cpm: 25,
60
+ mediaType: "video",
61
+ 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=",
62
+ // vastXml: "<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>",
63
+ 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>"
64
+ }
65
+ },
66
+ ]
67
+ }
68
+ });
69
+
70
+ pbjs.addAdUnits(adUnits);
71
+
72
+ pbjs.onEvent('videoSetupComplete', (e) => {
73
+ console.log('player setup complete: ', e);
74
+ });
75
+
76
+ pbjs.onEvent('videoSetupFailed', e => {
77
+ console.log('player setup failed: ', e);
78
+ });
79
+
80
+ pbjs.onEvent('videoDestroyed', e => {
81
+ console.log('player destroyed: ', e);
82
+ });
83
+
84
+ pbjs.onEvent('videoPlaylist', (e) => {
85
+ console.log('videos pb playlist: ', e);
86
+ });
87
+
88
+ pbjs.onEvent('videoPlaybackRequest', (e) => {
89
+ console.log('videos pb playbackRequest: ', e);
90
+ pbjs.requestBids(adUnits);
91
+ });
92
+
93
+ pbjs.onEvent('videoAutostartBlocked', (e) => {
94
+ console.log('videos pb autostartBlocked: ', e);
95
+ });
96
+
97
+ pbjs.onEvent('videoPlayAttemptFailed', (e) => {
98
+ console.log('videos pb playAttemptFailed: ', e);
99
+ });
100
+
101
+ pbjs.onEvent('videoContentLoaded', (e) => {
102
+ console.log('videos pb contentLoaded: ', e);
103
+ });
104
+
105
+ pbjs.onEvent('videoPlay', (e) => {
106
+ console.log('videos pb play: ', e);
107
+ });
108
+
109
+ pbjs.onEvent('videoPause', (e) => {
110
+ console.log('videos pb pause: ', e);
111
+ });
112
+
113
+ pbjs.onEvent('videoBuffer', (e) => {
114
+ console.log('videos pb buffer: ', e);
115
+ });
116
+
117
+ pbjs.onEvent('videoSeekStart', (e) => {
118
+ console.log('videos pb seekStart: ', e);
119
+ });
120
+
121
+ pbjs.onEvent('videoSeekEnd', (e) => {
122
+ console.log('videos pb seekEnd: ', e);
123
+ });
124
+
125
+ pbjs.onEvent('videoRenditionUpdate', (e) => {
126
+ console.log('videos pb renditionUpdate: ', e);
127
+ });
128
+
129
+ pbjs.onEvent('videoMute', (e) => {
130
+ console.log('videos pb mute: ', e);
131
+ });
132
+
133
+ pbjs.onEvent('videoVolume', (e) => {
134
+ console.log('videos pb volume: ', e);
135
+ });
136
+
137
+ // pbjs.onEvent('videoTime', (e) => {
138
+ // console.log('videos pb time: ', e);
139
+ // });
140
+
141
+ pbjs.onEvent('videoComplete', (e) => {
142
+ console.log('videos pb complete: ', e);
143
+ });
144
+
145
+ pbjs.onEvent('videoPlaylistComplete', (e) => {
146
+ console.log('videos pb playlistComplete: ', e);
147
+ });
148
+
149
+ pbjs.onEvent('videoFullscreen', (e) => {
150
+ console.log('videos pb fullscreen: ', e);
151
+ });
152
+
153
+ pbjs.onEvent('videoPlayerResize', (e) => {
154
+ console.log('videos pb playerResize: ', e);
155
+ });
156
+
157
+ pbjs.onEvent('videoError', (e) => {
158
+ console.log('videos pb error: ', e);
159
+ });
160
+
161
+ pbjs.onEvent('videoViewable', (e) => {
162
+ console.log('videos pb viewable: ', e);
163
+ });
164
+
165
+ pbjs.onEvent('videoCast', (e) => {
166
+ console.log('videos pb cast: ', e);
167
+ });
168
+
169
+ pbjs.onEvent('videoAdBreakStart', e => {
170
+ console.log('videos pb ad break start: ', e);
171
+ });
172
+
173
+ pbjs.onEvent('videoAdRequest', (e) => {
174
+ console.log('videos pb ad request: ', e);
175
+ });
176
+
177
+ pbjs.onEvent('videoAdLoaded', e => {
178
+ console.log('videos pb ad load: ', e);
179
+ });
180
+
181
+ pbjs.onEvent('videoAdImpression', (e) => {
182
+ console.log('videos pb ad impression: ', e);
183
+ });
184
+
185
+ pbjs.onEvent('videoAdStarted', (e) => {
186
+ console.log('videos pb ad started: ', e);
187
+ });
188
+
189
+ pbjs.onEvent('videoAdPlay', (e) => {
190
+ console.log('videos pb ad play: ', e);
191
+ });
192
+
193
+ pbjs.onEvent('videoAdPause', (e) => {
194
+ console.log('videos pb ad pause: ', e);
195
+ });
196
+
197
+ // pbjs.onEvent('videoAdTime', (e) => {
198
+ // console.log('videos pb ad time: ', e);
199
+ // });
200
+
201
+ pbjs.onEvent('videoAdComplete', (e) => {
202
+ console.log('videos pb ad complete: ', e);
203
+ });
204
+
205
+ pbjs.onEvent('videoAdSkipped', (e) => {
206
+ console.log('videos pb ad skipped: ', e);
207
+ });
208
+
209
+ pbjs.onEvent('videoAdClick', (e) => {
210
+ console.log('videos pb ad click: ', e);
211
+ });
212
+
213
+ pbjs.onEvent('videoAdError', (e) => {
214
+ console.log('videos pb ad error: ', e);
215
+ });
216
+
217
+ pbjs.onEvent('videoAdBreakStart', e => {
218
+ console.log('videos pb ad break start: ', e);
219
+ });
220
+
221
+ pbjs.onEvent('videoAuctionAdLoadAbort', (e) => {
222
+ console.log('videos pb auction ad load attempt: ', e);
223
+ });
224
+
225
+ pbjs.onEvent('videoAuctionAdLoadAttempt', event => {
226
+ console.log('The Video Module is attempting to load an ad into the player! \n', event);
227
+ });
228
+
229
+ pbjs.onEvent('videoBidImpression', event => {
230
+ console.log('The ad impression resulted from a bid! \n', event);
231
+ });
232
+
233
+ pbjs.onEvent('videoBidError', event => {
234
+ console.log('The ad error resulted from a bid! \n', event);
235
+ });
236
+ });
237
+ </script>
238
+ </head>
239
+
240
+ <body>
241
+ <div id ="player"></div>
242
+ </body>
243
+
244
+ </html>
@@ -0,0 +1,122 @@
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
+
7
+ <title>JW Player with GAM Ad Server Mediation</title>
8
+
9
+ <!--This demo configures the video provider to use GAM Ad Server as mediation. Listens to Video events that are fired when an ad impression or ad error came from a bid. -->
10
+
11
+ <script>
12
+ // Setup ad units
13
+ var adUnits = [{
14
+ code: 'div-gpt-ad-51545-0',
15
+ mediaTypes: {
16
+ video: {}
17
+ },
18
+ video: {
19
+ divId: 'player', // required to indicate which player is being used to render this ad unit.
20
+ },
21
+ bids: [{
22
+ bidder: 'ix',
23
+ params: {
24
+ siteId: '300',
25
+ }
26
+ }]
27
+ }];
28
+
29
+ var pbjs = pbjs || {};
30
+ pbjs.que = pbjs.que || [];
31
+
32
+ pbjs.que.push(function () {
33
+ pbjs.setConfig({
34
+ video: {
35
+ providers: [{
36
+ divId: 'player',
37
+ vendorCode: 1, // JW Player vendorCode
38
+ playerConfig: {
39
+ licenseKey: 'IAjLREYRLylTWsfLN3FoN/O3iQLbs+AfgZLlkAoyH8gSf7TnNtmOLcR8CUY=',
40
+ params: {
41
+ vendorConfig: {
42
+ file: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4',
43
+ advertising: { client: 'googima' }
44
+ }
45
+ }
46
+ },
47
+ // Configure your Ad Server Integration
48
+ adServer: {
49
+ vendorCode: 'gam',
50
+ // params: {
51
+ // iu: '/19968336/prebid_cache_video_adunit',
52
+ // cust_params: {
53
+ // section: 'blog',
54
+ // anotherKey: 'anotherValue'
55
+ // },
56
+ // output: 'vast'
57
+ // },
58
+ baseAdTagUrl: 'https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator='
59
+ //'https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/137679306/HB_Dev_Center_Example&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&correlator=',
60
+ },
61
+ },]
62
+ },
63
+ cache: {
64
+ url: 'https://prebid.adnxs.com/pbc/v1/cache'
65
+ },
66
+ targetingControls: {
67
+ allowTargetingKeys: ['BIDDER', 'AD_ID', 'PRICE_BUCKET', 'SIZE', 'DEAL', 'SOURCE', 'FORMAT', 'UUID', 'CACHE_ID', 'CACHE_HOST', 'ADOMAIN']
68
+ },
69
+ debugging: {
70
+ enabled: true,
71
+ intercept: [
72
+ {
73
+ when: {
74
+ adUnitCode: 'div-gpt-ad-51545-0',
75
+ },
76
+ then: {
77
+ cpm: 35,
78
+ mediaType: "video",
79
+ vastXml: "<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>",
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
+ }
82
+ },
83
+ ]
84
+ }
85
+ });
86
+
87
+ pbjs.addAdUnits(adUnits);
88
+
89
+ pbjs.onEvent('videoSetupComplete', (e) => {
90
+ console.log('player setup complete: ', e);
91
+ });
92
+
93
+ pbjs.onEvent('videoSetupFailed', e => {
94
+ console.log('player setup failed: ', e);
95
+ });
96
+
97
+ pbjs.onEvent('videoPlaybackRequest', (e) => {
98
+ pbjs.requestBids(adUnits);
99
+ });
100
+
101
+ pbjs.onEvent('videoAdRequest', (e) => {
102
+ console.log('videos pb ad request: ', e);
103
+ });
104
+
105
+ pbjs.onEvent('videoBidError', e => {
106
+ console.log('An Ad Error came from a Bid: ', e);
107
+ });
108
+
109
+ pbjs.onEvent('videoBidImpression', e => {
110
+ console.log('An Ad Impression came from a Bid: ', e);
111
+ });
112
+ });
113
+ </script>
114
+ </head>
115
+
116
+ <body>
117
+ <h2>JW Player with GAM Ad Server Mediation</h2>
118
+ <h5>Player placeholder div</h5>
119
+ <div id="player"></div>
120
+ </body>
121
+
122
+ </html>
@@ -0,0 +1,80 @@
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
+
7
+ <title>JW Player with Media Metadata</title>
8
+
9
+ <!-- This Demo loads media with metadata which is used to enrich the auction by populating the ortb site.content -->
10
+
11
+ <script>
12
+ // Setup ad units
13
+ var adUnits = [{
14
+ code: 'div-gpt-ad-51545-0',
15
+ mediaTypes: {
16
+ video: {}
17
+ },
18
+ video: {
19
+ divId: 'player', // required to indicate which player is being used to render this ad unit.
20
+ },
21
+
22
+ bids: [{
23
+ bidder: 'ix',
24
+ params: {
25
+ siteId: '300',
26
+ }
27
+ }]
28
+ }];
29
+
30
+ var pbjs = pbjs || {};
31
+ pbjs.que = pbjs.que || [];
32
+
33
+ pbjs.que.push(function () {
34
+ pbjs.setConfig({
35
+ video: {
36
+ providers: [{
37
+ divId: 'player',
38
+ vendorCode: 1, // JW Player vendorCode
39
+ playerConfig: {
40
+ licenseKey: 'IAjLREYRLylTWsfLN3FoN/O3iQLbs+AfgZLlkAoyH8gSf7TnNtmOLcR8CUY=',
41
+ params: {
42
+ vendorConfig: {
43
+ mediaid: 'XYXYXYXY',
44
+ file: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/SubaruOutbackOnStreetAndDirt.mp4',
45
+ title: 'Subaru Outback On Street And Dirt',
46
+ 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.',
47
+ advertising: { client: 'googima' }
48
+ }
49
+ }
50
+ }
51
+ },]
52
+ }
53
+ });
54
+
55
+ pbjs.addAdUnits(adUnits);
56
+
57
+ pbjs.onEvent('videoSetupComplete', e => {
58
+ console.log('player setup complete: ', e);
59
+ pbjs.requestBids(adUnits);
60
+ });
61
+
62
+ pbjs.onEvent('videoSetupFailed', e => {
63
+ console.log('player setup failed: ', e);
64
+ });
65
+
66
+ pbjs.onEvent('videoContentLoaded', (e) => {
67
+ console.log('videos pb contentLoaded: ', e);
68
+ });
69
+ });
70
+ </script>
71
+
72
+ </head>
73
+
74
+ <body>
75
+ <h2>JW Player with Media Metadata</h2>
76
+
77
+ <div id='player'></div>
78
+ </body>
79
+
80
+ </html>