VAST 3.0 のドキュメントに記載されているユース ケースを実現しようとしています。
「たとえば、ラッパーはビデオ プレーヤーを広告のネットワークにリダイレクトできます。ターゲット ネットワークに提供する広告がない場合、広告のさらに別のネットワークにリダイレクトできます。」
基本的に、私は 2 つの VAST ラッパー要素を持っています。次のような単一の XML を作成したいと考えています。
- 最初のラッパーを呼び出し、返された広告がある場合はそれを再生し、ビデオ コンテンツに進みます。
- 最初のラッパーが広告を返さなかった場合は、2 つ目のラッパーを試して、広告を再生し (利用可能な場合)、ビデオ コンテンツに進みます。
擬似コード:
result = ad1.play()
if result != 'success':
ad2.play()
video.play()
Wrapper 要素の fallbackOnNoAd 属性がこれを達成するのに役立つことを本当に望んでいましたが、これまでのところ、Google の VAST インスペクターでテストしたところ、この属性は効果がないことがわかりました。私がすでに試したこと:
<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>
これにより正しい動作が得られますが、最初のラッパーが常に失敗する場合にのみ、そうでない場合は両方の広告が再生されます。最初の Wrapper に fallbackOnNoAd="false" を追加すると、(最初に何が起こったかに関係なく) 2 番目の Wrapper の再生がブロックされると思いますが、効果はありません。
私が試したもう 1 つのことは、長さ 1 の Ad Pod を作成し、2 つ目の広告をスタンドアロンとして配置することです。ドキュメントのこの部分では、「ポッドからの広告が失敗した場合、スタンドアロンの広告が選択される」ように聞こえます。
「Ad Pod が再生できない場合、または Pod 内の特定の Ad が再生できない場合、スタンドアロンの広告が二次的な選択肢として提供される場合があります。」
<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 などの特定のプレーヤーが独自の構成でサポートしていることを知っています。これを達成した人はいますか?