My videojs Vast player failed to load video flash ads

僤鯓⒐⒋嵵緔 提交于 2019-12-08 12:06:50

问题


As you can see the examples here https://github.com/theonion/videojs-vast-plugin,the player plays video ad before the main video.But when I put the urls offered by my advertisers in my own HTML page,no ad and I have to click the play button then the main video will start.This is the code.

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Video.js VAST Example</title>

  <!--<link href="http://vjs.zencdn.net/4.7.1/video-js.css" rel="stylesheet">-->
  <link rel="stylesheet" href="css/video-js.css">
  <link rel="stylesheet" href="videojs.vast.css">
  <link href="lib/videojs-contrib-ads/videojs.ads.css" rel="stylesheet" type="text/css">
  <link href="videojs.vast.css" rel="stylesheet" type="text/css">
  <script src="https://pv.sohu.com/cityjson?ie=utf-8"></script>
  <style>
    .example-video-container {
      position: absolute;
      top: 30px;
      left: 50%;
      margin-left: -315px;
    }
    #vid2 {
      position: absolute;
      top: 30px;
    }
  </style>
  <!--[if lt IE 9]><script src="lib/es5.js"></script><![endif]-->
  <!--<script src="http://vjs.zencdn.net/4.7.1/video.js"></script>-->
  <script src="js/video.js"></script>
  <script src="lib/videojs-contrib-ads/videojs.ads.js"></script>

  <script src="lib/vast-client.js"></script>
  <script src="videojs.vast.js"></script>
</head>
<body>

  <div class="example-video-container">
    <video id="vid2" class="video-js vjs-default-skin" autoplay controls preload="auto"
        poster=""
        data-setup='{}'
        width='710'
        height='500'
        >
      <source src="v1.mp4" type='video/mp4'>
      <!--<source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm'>
      <source src="http://video-js.zencoder.com/oceans-clip.ogv" type='video/ogg'>-->
      <p>Video Playback Not Supported</p>
    </video>
  </div>

  <script type="text/javascript">

    console.log(returnCitySN["cip"]+','+returnCitySN["cname"]);
    videojs('vid2',{}, function () {
      var timestamp=Math.round(new Date().getTime()/1000);
      console.log(timestamp);
      var player = this;
      player.ads();
      player.vast({
         url:'https://p.algovid.com/vpvast?p=99974938&cb=' + timestamp + '&d=https%3A%2F%2Fh5.xcloudgame.com&w=710&h=500'
      });
      player.on('readyforpreroll',function(){
        player.ads.startLinearAdMode();
        console.log('adsstart');
        player.one('ended', function() {
          player.ads.endLinearAdMode();
          console.log('adsend');
        });
      });

    });
  </script>

</body>
</html>

And the xml file return this.

<VAST version="2.0">
<Ad id="VPAID">
<InLine>
<AdSystem version="1.0">Cedato</AdSystem>
<AdTitle>Cedato VPAID Ad Manager</AdTitle>
<Impression />
<Creatives>
<Creative sequence="1">
<Linear>
<Duration>00:00:30</Duration>
<MediaFiles>
<MediaFile delivery="progressive" width="710" height="500" scalable="1" type="application/x-shockwave-flash" apiFramework="VPAID">https://c.algovid.com/player/cedato_vpw_ima_101.82.swf?vp=378&p=99974938&sid=&w=710&h=500&h=500&w=710&pv=102.83&d=https%3A%2F%2Fh5%2Excloudgame%2Ecom</MediaFile>
<MediaFile delivery="progressive" width="710" height="500" scalable="1" type="application/javascript" apiFramework="VPAID">https://c.algovid.com/player/cedato_vpaid_102.83.js?p=99974938&sid=&w=710&h=500&h=500&w=710&pv=102.83&d=https%3A%2F%2Fh5%2Excloudgame%2Ecom</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>

Is there anyone can tell me how to fix this?


回答1:


Afaig, the videojs-vast-plugin isn't able to play VPAID.

You will need for example the videojs-vast-vpaid plugin.

Unfortunately I wasn't able to play the resource, 'cause:
AD ERROR: VAST Error: on VPAIDAdUnitWrapper.waitForEvent, timeout while waiting for event 'AdLoaded'
but this could be caused by the ad-server configuration (aka my referrer might not be accepted), so you need to find out yourself.

You will find examples for the videojs-vast-vpaid plugin on github, but here is what i did:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Video.js VAST Example</title>
    <!-- VideoJs required styles-->
    <link rel="stylesheet" type="text/css" href="//mailonline.github.io/videojs-vast-vpaid/demo/videojs_4/video-js.css"/>
    <!-- VideoJs.vast.vpaid required styles-->
    <link rel="stylesheet" type="text/css" href="//mailonline.github.io/videojs-vast-vpaid/styles/videojs.vast.vpaid.css"/>
    <!-- DEMO required styles-->
    <link rel="stylesheet" type="text/css" href="//mailonline.github.io/videojs-vast-vpaid/demo/styles/demo.css"/>
    <!-- Web Fonts -->
    <link href="//fonts.googleapis.com/css?family=Raleway:400,300,600" rel="stylesheet" type="text/css">
    <script type="text/javascript">
        // this is mandatory for IE8 !!!!!
        document.createElement('video');
        document.createElement('audio');
        document.createElement('track');
    </script>
    <!-- VideoJs required scripts-->
    <script type="text/javascript" src="//mailonline.github.io/videojs-vast-vpaid/demo/videojs_4/video.js"></script>
    <!-- VideoJs.vast.vpaid required scripts-->
    <script type="text/javascript" src="//mailonline.github.io/videojs-vast-vpaid/scripts/es5-shim.js"></script>
    <script type="text/javascript" src="//mailonline.github.io/videojs-vast-vpaid/scripts/ie8fix.js"></script>
    <script type="text/javascript" src="//mailonline.github.io/videojs-vast-vpaid/scripts/videojs_4.vast.vpaid.js"></script>
    <script src="https://pv.sohu.com/cityjson?ie=utf-8"></script>
</head>
<body>

<div class="example-video-container">
    <video id="vid2" class="video-js vjs-default-skin" autoplay controls preload="auto" poster="" data-setup='{}' width='710' height='500'>
        <source src="oceans.mp4" type='video/mp4'>
        <p>Video Playback Not Supported</p>
    </video>
</div>

<script type="text/javascript">
    console.log(returnCitySN["cip"]+','+returnCitySN["cname"]);
    var timestamp = Math.round(new Date().getTime()/1000);
    var vjs = videojs('vid2',{}, function () {
        var player = this;
        var vastPlugin = player.vastClient({
            adTagUrl: '//p.algovid.com/vpvast?p=99974938&cb=' + timestamp + '&d=https%3A%2F%2Fh5.xcloudgame.com&w=710&h=500',
            //adTagUrl: '//rtr.innovid.com/r1.5554946ab01d97.36996823;cb=%25%CACHEBUSTER%25%25',
            playAdAlways: true,
            adCancelTimeout: 60000,
            vpaidFlashLoaderPath: './VPAIDFlash.swf'
        });
        player.on('reset', function () {
            console.log('vast-plugin enabled - ' +  vastPlugin.isEnabled() ? 'true' : 'false')
            if (!vastPlugin.isEnabled()) {
                vastPlugin.enable();
            } else {
                vastAd.disable();
            }
        });
    });
</script>
</body>
</html>

A resource which works and I used for testing: http://rtr.innovid.com/r1.5554946ab01d97.36996823;cb=%25%CACHEBUSTER%25%25

The config might not be perfect - I'm relatively little familiar with this player.

Hope this was helpfull somehow and have a nice day.




回答2:


Unfortunately I cannot run tests at the moment, but from your description of the issue maybe this parameter needs to be updated d=https%3A%2F%2Fh5.xcloudgame.com ?



来源:https://stackoverflow.com/questions/35937234/my-videojs-vast-player-failed-to-load-video-flash-ads

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!