在没有(标准)播放器的情况下运行 VAST?
Posted
技术标签:
【中文标题】在没有(标准)播放器的情况下运行 VAST?【英文标题】:Run VAST without (a standard) Player? 【发布时间】:2016-03-20 22:51:17 【问题描述】:我们将不胜感激!
无论如何,这是我第一次看到 VAST 代码。现在,我们的想法是在没有或使用普通播放器的情况下运行/实现它。这是否可以仅通过使用 javascript 事件来完成?具体如何?
标签如下所示: http://example.com/www/delivery/vst.php?zoneid=000&id=website
<VAST version="2.0">
<Ad id="VPAID">
<InLine>
<AdSystem version="1.0">AD COMPANY</AdSystem>
<AdTitle>VPAID Ad Manager</AdTitle>
<Impression/>
<Creatives>
<Creative sequence="1">
<Linear>
<Duration>00:00:15</Duration>
<MediaFiles>
<MediaFile delivery="progressive" scalable="true" type="application/x-shockwave-flash" apiFramework="VPAID">
<![CDATA[
http://example.com/www/admanager/AdManager.swf?zoneid=000&id=website&ft1=10&ft2=40&ft3=5&ft4=30&ft5=0.5&ft6=10&ft7=20&ht1=5&ht2=40&ht3=5&ht4=30&ht5=0.5&ljt=example.com&vtid=v_00000_hashid
]]>
</MediaFile>
<MediaFile delivery="progressive" scalable="true" type="application/javascript" apiFramework="VPAID">
<![CDATA[
http://example.com/www/admanager/ad-manager.js#zoneid=000&id=website&ft1=10&ft2=40&ft3=5&ft4=30&ft5=0.5&ft6=10&ft7=20&ht1=5&ht2=40&ht3=5&ht4=30&ht5=0.5&ljt=example.com&vtid=v_00000_hashid
]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
【问题讨论】:
不使用播放器的原因是我们有一个自制的静止图像幻灯片播放器。 嗨 Simon - 这是可能的,但需要在幻灯片中写入 VPAID 框架才能调用和显示广告。您是否考虑过使用播放器来显示幻灯片,然后您可以使用现有的 vpaid 兼容播放器。 【参考方案1】:您可以使用 Google 的 IMA SDK 来处理响应的获取和处理。它适用于任何符合标准的 VAST 或 VMAP,而不仅仅是 DFP。
如果您愿意,可以在没有视频播放器的情况下使用 IMA SDK。我在这里修改了谷歌的getting started example 并删除了视频元素:http://jsbin.com/dosexa/edit?html,css,js,output
广告的容器可以是 div:
var adDisplayContainer =
new google.ima.AdDisplayContainer(document.getElementById('adContainer'));
广告管理器需要一个视频元素(或实现某些视频元素 API 的东西),但这可以是一个空的视频元素:
adsManager = adsManagerLoadedEvent.getAdsManager(document.createElement('video'));
我在那里使用的示例是 VPAID,就像您的示例一样。有一个视频广告标签被注释掉了。
使用与播放器的预构建集成可能仍然更简单。 Google 提供了一个 plugin 包装器以将 SDK 与 video.js 一起使用。
【讨论】:
非常感谢。现在:该示例适用于 test ad - 不幸的是,它不适用于我们的广告 (ap.lijit.com/www/delivery/…) - 这是因为它不是 HTTPS 吗?如果是这样,恐怕他们没有 HTTPS 版本...... 控制台输出为“VPAID 广告素材中发生意外错误。有关详细信息,请参阅内部错误。” 问题可能只是当前没有广告可用的?我如何才能最好地了解(不会产生广告是否可用的错误?但这是一个至关重要的信息。提前谢谢您! 该消息来自 SDK,但之前的控制台输出来自 js vpaid 脚本。它正在记录诸如calling server
和no ads available
之类的消息,所以是的,这看起来像是一个广告库存问题。不过,HTTP 在 HTTPS 网站上也是一个问题。
好的,我会与我们的广告合作伙伴核实,并在他们投放广告后尽快与您联系。
很遗憾,我们的广告合作伙伴无法提供测试您的解决方案所需的内容。既然看起来不错,我还是想给你你赚来的赏金。顺便说一句:您不知道有哪些优秀的前贴片视频广告合作伙伴,他们在技术上胜任并在全球范围内开展业务?【参考方案2】:
是的,可以只使用 HTML5 完全在 Javascript 中实现 VAST,而无需专门的播放器。
例如,看看videojs-vast-plugin。它使用 project 解析 VAST 资源,然后使用 videojs 实际播放广告。它仅支持前贴片广告,但可以扩展以添加对其他类型广告的支持。
当然,您可以编写自己的 VAST 解析库,而不是 videojs,而是使用 Media Element(以太视频或音频)来播放实际广告。 VAST 不需要 Javascript 和 HTML5 中尚不存在的任何内容。
【讨论】:
以上是关于在没有(标准)播放器的情况下运行 VAST?的主要内容,如果未能解决你的问题,请参考以下文章
通过 VAST 标记的 SWF 广告未在 JW 播放器中播放