每天我们都会以一种或另一种形式遇到广告:在网站上进行预告片,在博客中进行本地制作,在VKontakte和Yandex中进行音乐播放。在音乐上进行音频广告,YouTube,流媒体服务以及在线电影院中进行视频播放。将讨论后者。在本文中,我将告诉您视频广告如何在Internet上工作,以及它描述了哪些规范。什么是VAST?
在开始描述规范之前,让我们先估算一下,我们一般如何在网站上展示视频广告?首先想到的是,将带有广告的文件上传到服务器上的某个位置,并询问我们将与之进行广告宣传的网站的所有者,在页面上插入视频标签,并附上我们广告的链接:<video id="ourVideoAd" src="https://ourhosting.dev/ourVideoAd.mp4"></video>
不错,但是您怎么知道有多少人观看呢?看了吗 他们有没有看着他到最后?有多少人对广告感兴趣?我们如何将它们送到降落区?所有这些问题的答案由VAST-视频广告投放模板给出,该模板是由互动广告局(IAB)制定的规范,其中包含有关广告的所有信息:其物理位置,格式,在发生各种事件时将触发的URL等。 d。备注: VAST是纯XML。野外的VASTVAST, , , network , - vast vpaid. rbc.ru, VAST ad.mail.ru/vast/
VAST由什么组成?
目前,该规范的最新版本为4.2,但实际上,包括Google在内的每个人都使用3.0版,我们将在此基础上构建示例。因此,所有操作都以带有version属性的VAST标记开始: <VAST version="3.0"></VAST>
VAST
标记具有子节点Error和Ad。如果服务器未返回广告,则使用错误。如果有一个Error节点,则VAST不应有其他子节点: <VAST version="3.0">
<Error><![CDATA[http://ouradserver.com/noadhandler?error=true]]></Error>
</VAST>
Ad
标签是InLine或Wrapper节点的父级。属性:- ID:字符串标识符- 序列:大于零的整数。允许您将广告结合到所谓的广告盒中。为什么需要这个?例如,广告视频播放器支持连续显示两个广告素材。或者,如果由于某种原因未显示广告素材,则播放器可以继续播放下一个。或者,您的目标是智能电视,其中播放器会多次中断主要内容的播放。通常,没有明确的行为,很大程度上取决于显示VAST的特定播放器。广告盒示例: <VAST version="3.0">
<Ad id="aGVscA" sequence="1">...</Ad>
<Ad id="aGVscB" sequence="2">...</Ad>
<Ad id="aGVscC" sequence="3">...</Ad>
...
<Ad id="aGVscD" sequence="99">...</Ad>
</VAST>
因此,如果广告服务器未返回错误,则VAST可能带有InLine代码: <VAST version="3.0">
<Ad id="aGVscA">
<InLine>
...
</InLine>
</Ad>
</VAST>
带有Wrapper标签: <VAST version="3.0">
<Ad id="SWFt">
<Wrapper>
...
</Wrapper>
</Ad>
</VAST>
InLine和Wrapper有什么
区别?InLine代码包含“立即”启动VAST所需的所有内容,即广告素材,跟踪URL等。包装器 -包含另一个VAST的链接。如果在这一点上,您似乎感觉到了递归的味道,那么在您看来,它似乎还没有。稍后,我将详细介绍为什么需要使用Wrapper,现在让我们看看InLine标记的结构。排队
强制节点:- AdSystem:提供VAST的广告系统的名称
- AdTitle: VAST'a
- Impression: , , impression
- Creatives: Creative
注意:展示事件发生在显示广告素材的第一帧时。您可能想知道为什么需要AdSystem和AdTitle标签。部分由于欺诈。事实是,作为广告素材,可以有任意的js代码,展望未来,我会说这种广告素材称为VPAID广告素材。也就是说,可以在数百万台客户端计算机上运行的任意js代码。如果其中一个网站所有者开始抱怨广告突然开始将用户重定向到带有移动订阅的可疑网站,则这些标签的存在将有助于查找罪魁祸首。因此,使用InLine节点的VAST : <VAST version="3.0">
<Ad id="aGVscA">
<InLine>
<AdSystem>Our AdSystem</AdSystem>
<AdTitle>Our video ad</AdTitle>
<AdServingId>a532d16d-4d7f-4440-bd29-2ec05553fc80</AdServingId>
<Impression><![CDATA[https://adserver.com/track/impression]]></Impression>
<Creatives>
...
</Creatives>
</InLine>
</Ad>
</VAST>
正如我上面所说的,广告内容标签是容器创意标签具有的属性:- id:VAST提供的广告服务器的ID
- sequence:显示如何连续复制广告素材的序列号。不要与Ad广告代码中的sequence属性混淆。
- apiFramework:API框架,根据openRTB协议
Creatives
元素可以包含Linear,NonLinearAds或CompanionAds节点。什么是线性广告,非线性广告和随播广告?Linear – . , , , , pre-roll, , mid-roll post-roll . 99% . NonLinearAds — , . - , YouTube? , NonLinearAds. CompanionAds — - .
由于99%的在线广告都是线性广告素材,因此我们将只考虑它们。线性 -具有必需的属性skipoffset-在可以跳过广告素材多少时间之后,格式为hh:mm:ss。强制线性节点:- 持续时间 -广告素材的持续时间,格式为hh:mm:ss:mmm。毫秒是可选的。
- MediaFiles-包含MediaFile节点,至少一个。
Noda MediaFile-包含有关要播放的媒体文件的信息。它具有以下属性:- id:广告素材的ID
- delivery: progressive , , HTTP, streaming
- type: MIME type . , video/mp4, video/webm, etc.
- bitrate, minBitrate maxBitrate: .
- width:
- height:
- scalable: , , .
- mantainAspectRation , , , .
- codec: , RFC 4281
- apiFramework:API框架,根据openRTB协议
delivery,type,width和height
属性是必需的,其余的不是必需的。例如,对于没有宽度和高度的文件,如果它是音频文件,则可以将宽度和高度值指定为零。原来是这样的: <VAST version="3.0">
<Ad id="aGVscA">
<InLine>
<AdSystem>Our AdSystem</AdSystem>
<AdTitle>Our video ad</AdTitle>
<AdServingId>a532d16d-4d7f-4440-bd29-2ec05553fc80</AdServingId>
<Impression><![CDATA[https://adserver.com/track/impression]]></Impression>
<Creatives>
<Creative>
<Linear skipoffset="00:00:05">
<Duration>00:00:20</Duration>
<MediaFiles>
<MediaFile
delivery="progressive"
type="video/mp4"
width="672"
height="480">
<![CDATA[{mediafile url}]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
好了,现在我们已经编译了一个有效的VAST,您可以在其中替换您的值,甚至现在可以在广告网络中运行它们。但是,不幸的是,它缺少统计信息和登录页面的链接。让我们来解决这个问题,并考虑两个规格可选节点- 追踪事件和VideoClicks。TrackingEvents-实际上,它列出了玩家在各种事件期间必须提取的网址。网址位于带有事件属性的“ 跟踪”标记中,其值是一个带有事件名称的字符串。例如,开始事件如下所示: <Tracking type="start"><![CDATA[https://adserver.com/track/start]]></Tracking>
主要事件列表:- 开始:已加载广告素材并开始播放
- creativeView: , , , . creativeView , , , , .
- firstQuartile: 25%
- midpoint: 50%
- thirdQuartile: 75%
- complete:
- mute:
- unmute:
- pause:
- rewind: -
- resume:
- fullscreen:
- exitFullscreen: fullscreen
- expand: «expand»
- collapse: «collapse»
- skip: ( )
在现实生活中,对某些事件的支持取决于玩家。例如,它可能不支持全屏或跳过事件。播放器也可能没有播放控制面板,即它可能没有诸如扩展,折叠,倒带等按钮。关键事件为start,creativeView,firstQuartile,中点,thirdQuartile,完成。让我们添加到VAST TrackingEvents中: <VAST version="3.0">
<Ad id="aGVscA">
<InLine>
<AdSystem>Our AdSystem</AdSystem>
<AdTitle>Our video ad</AdTitle>
<AdServingId>a532d16d-4d7f-4440-bd29-2ec05553fc80</AdServingId>
<Impression><![CDATA[https://adserver.com/track/impression]]></Impression>
<TrackingEvents>
<Tracking type="start"><![CDATA[{your url}]]></Tracking>
<Tracking type="creativeView"><![CDATA[{your url}]]></Tracking>
<Tracking type="firstQuartile"><![CDATA[{your url}]]></Tracking>
<Tracking type="midpoint"><![CDATA[{your url}]]></Tracking>
<Tracking type="thirdQuartile"><![CDATA[{your url}]]></Tracking>
<Tracking type="complete"><![CDATA[{your url}]]></Tracking>
<Tracking type="skip"><![CDATA[{your url}]]></Tracking>
<Tracking type="close"><![CDATA[{your url}]]></Tracking>
</TrackingEvents>
<Creatives>
<Creative>
<Linear skipoffset="00:00:05">
<Duration>00:00:20</Duration>
<MediaFiles>
<MediaFile
delivery="progressive"
type="video/mp4"
width="672"
height="480">
<![CDATA[{mediafile url}]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
VideoClicks
标记可以包含三个节点:- ClickThrough:播放器在点击广告素材时应将用户发送到的URL。粗略地说,是指向登录页面的链接,其中包含各种get-参数。
- ClickTracking:跟踪点击事件本身的网址,即点击广告素材或明确的链接
- CustomClick:跟踪所有其他点击(非点击)的网址
在过去的90%中,使用了前两个标签。结果,我们得到了这样的InLine VAST: <VAST version="3.0">
<Ad id="aGVscA">
<InLine>
<AdSystem>Our AdSystem</AdSystem>
<AdTitle>Our video ad</AdTitle>
<AdServingId>a532d16d-4d7f-4440-bd29-2ec05553fc80</AdServingId>
<Impression><![CDATA[https://adserver.com/track/impression]]></Impression>
<TrackingEvents>
<Tracking type="start"><![CDATA[{your url}]]></Tracking>
<Tracking type="creativeView"><![CDATA[{your url}]]></Tracking>
<Tracking type="firstQuartile"><![CDATA[{your url}]]></Tracking>
<Tracking type="midpoint"><![CDATA[{your url}]]></Tracking>
<Tracking type="thirdQuartile"><![CDATA[{your url}]]></Tracking>
<Tracking type="complete"><![CDATA[{your url}]]></Tracking>
<Tracking type="skip"><![CDATA[{your url}]]></Tracking>
<Tracking type="close"><![CDATA[{your url}]]></Tracking>
</TrackingEvents>
<VideoClicks>
<ClickThrough><![CDATA[{your landing}]]></ClickThrough>
<ClickTracking><![CDATA[{your url}]]></ClickTracking>
</VideoClicks>
<Creatives>
<Creative>
<Linear skipoffset="00:00:05">
<Duration>00:00:20</Duration>
<MediaFiles>
<MediaFile
delivery="progressive"
type="video/mp4"
width="672"
height="480">
<![CDATA[{mediafile url}]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
</InLine>
</Ad>
</VAST>
包装纸
如我上面所述,如果您过去曾经看到Wrapper标记,则意味着此VAST包含指向另一个VAST的链接。进而可能还包含指向另一个VAST的链接。依次类推…… 嗯,您明白了。为什么需要包装标签?例如,当一个广告网络向另一广告网络出售流量时,该广告网络又会向另一广告网络出售流量,并且您的VAST会上网,直到有相关的用户看到您的广告素材时,才使用该功能。但是在每个阶段,此方案的所有参与者都插入跟踪像素以保持其统计信息。一个小例子. — « ». , « », , . , « », .
. , , . . , .
– , – . , ? JS c , , : , , . , , , - ? , « », , VAST
InLine, . , « ».
, :
- .
- — , .
- .
- , .
, , , , , , 500 , ?
, , , « ». VAST , VAST
Wrapper, - VAST .
备注:规范不建议使用五个以上的嵌套级别,但是,正如我所写的,每个播放器的行为可能有所不同。因此,包装器必须包含AdSystem,VASTAdTagURI和Impression节点。我们已经讨论过AdSystem和Impression,并且VASTAdTagURI标记包含指向以下VAST的链接:带有Wrapper标记的VAST : <VAST version="3.0">
<Ad id="SWFt">
<Wrapper>
<AdSystem>Our AdSystem</AdSystem>
<Impression><![CDATA[https://adserver.com/track/impression]]></Impression>
<VASTAdTagURI><![CDATA[https://adserver.com/anotherVAST.xml]]></VASTAdTagURI>
</Wrapper>
</Ad>
</VAST>
备注:VAST可以包含一个InLine标记或Wrapper标记,但不能一次包含两个标记。结论
在本文中,我们逐步构建了VAST,并检查了其中包含的主要标签。您可以替换网址并检查其有效性,例如,在Google的Video Suite Inspector中。有用的链接: