在没有(标准)播放器的情况下运行 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 serverno 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 播放器中播放

播放列表上每个视频之间的 Videojs VAST 广告

flash网站可以在没有flash播放器的情况下工作吗?

使用 IMA sdk 创建无限大播放的最佳方法是啥?

在运行 ios 13 的设备上没有应用程序崩溃的情况下无法播放音频文件

只有在 Phaser 中还没有动画的情况下,如何播放动画?