我正在尝试完成 VAST 3.0 文档中描述的用例:
“例如,Wrapper 可以将视频播放器重定向到广告的网络。如果目标网络没有可提供的广告,if 可能会重定向到另一个广告网络。”
基本上我有两个 VAST Wrapper 元素,我想创建一个 XML 来:
- 调用第一个包装器,如果返回广告,则播放它并继续播放视频内容。
- 如果第一个包装器未返回广告,则尝试第二个包装器,播放广告(如果可用)并继续播放视频内容。
伪代码:
result = ad1.play()
if result != 'success':
ad2.play()
video.play()
我真的希望 Wrapper 元素上的 fallbackOnNoAd 属性能够帮助我完成此任务,但到目前为止,我在 Google 的 VAST Inspector 中的测试表明该属性没有任何效果。我已经尝试过的事情:
<VAST version="3.0">
<Ad id="1">
<Wrapper>
<VASTAdTagURI>first-wrapper-url</VASTAdTagURI>
</Wrapper>
</Ad>
<Ad id="2">
<Wrapper>
<VASTAdTagURI>second-wrapper-url</VASTAdTagURI>
</Wrapper>
</Ad>
</VAST>
这会导致正确的行为,但前提是第一个包装器总是失败,如果没有,则播放两个广告。我认为将 fallbackOnNoAd="false" 添加到第一个 Wrapper 会阻止第二个 Wrapper 播放(不管第一个发生了什么),但它没有效果。
我尝试的另一件事是创建一个长度为 1 的 Ad Pod,并将第二个广告单独放置。这部分文档听起来像是“如果来自 pod 的广告失败,则会选择一个独立的广告”:
“当 Ad Pod 无法播放或 Pod 中的特定广告无法播放时,可以提供独立广告作为次要选择。”
<VAST version="3.0">
<Ad id="1" sequence="1">
<Wrapper>
<VASTAdTagURI>first-wrapper-url</VASTAdTagURI>
</Wrapper>
</Ad>
<Ad id="2">
<Wrapper>
<VASTAdTagURI>second-wrapper-url</VASTAdTagURI>
</Wrapper>
</Ad>
</VAST>
结果是第一次播放广告,如果返回正确的响应,如果响应无效,则不播放广告。
这似乎是一个非常常见的用例,事实上我知道像 JWPlayer 这样的某些播放器通过他们自己的配置来支持它。有没有人做到这一点?