VAST3.0标准详解
VAST 3.0 标准详解:标签作用与格式全解析
VAST(Video Ad Serving Template)是由 IAB(Interactive Advertising Bureau)制定的视频广告投放模板标准。它定义了一套统一的 XML 模式,用于在视频播放器与广告服务器之间传递广告素材、追踪事件和交互行为。本文将全面介绍 VAST 3.0 的各种标签作用及格式。
一、VAST 3.0 概述
1.1 什么是 VAST
VAST 是一套基于 XML 的通信协议,解决了视频广告生态中"广告服务器"与"视频播放器"之间的标准化交互问题。在车载音频广告、流媒体视频广告等场景中,播放器通过向广告服务器发送 VAST 请求,获取包含广告素材和追踪信息的 XML 响应。
1.2 VAST 3.0 相比 2.0 的主要增强
| 特性 | VAST 2.0 | VAST 3.0 |
|---|---|---|
| 错误追踪 | 无 | 支持 <Error> 标签 |
| 交互事件 | 有限 | 新增 mute/unmute/pause/resume/skip 等 |
| 广告包裹 | 仅 InLine | 支持 Wrapper + InLine 嵌套 |
| 扩展机制 | 有限 | 丰富的 <Extensions> 自定义能力 |
| VPAID 支持 | 无 | 内置 VPAID 交互广告支持 |
| 序列广告 | 无 | 支持 Ads 多序列投放 |
1.3 VAST 的工作流程
┌──────────────┐ VAST请求 ┌──────────────┐
│ 视频播放器 │ ───────────────→ │ 广告服务器 │
│ (客户端) │ │ (ADS) │
│ │ ←─────────────── │ │
│ │ VAST XML响应 │ │
└──────┬───────┘ └──────────────┘
│
│ 播放广告素材
│ 触发追踪事件
▼
┌──────────────┐
│ 素材CDN │
└──────────────┘
二、VAST 3.0 XML 整体结构
一个完整的 VAST 3.0 InLine 广告 XML 如下:
<?xml version="1.0" encoding="UTF-8"?>
<VAST version="3.0">
<Ad id="2245779">
<InLine>
<AdSystem>AdSpeed</AdSystem>
<AdTitle>测试活动1</AdTitle>
<Description>这是一条音频广告</Description>
<Advertiser>广告主名称</Advertiser>
<Pricing>1.50</Pricing>
<Error><![CDATA[https://example.com/error?errorCode=[ERRORCODE]]]></Error>
<Impression id="AdSpeed"><![CDATA[https://example.com/impression]]></Impression>
<Creatives>
<Creative id="cr_2245779">
<Linear>
<Duration>00:00:15</Duration>
<TrackingEvents>
<Tracking event="start"><![CDATA[https://example.com/track?type=start]]></Tracking>
<Tracking event="firstQuartile"><![CDATA[https://example.com/track?type=firstQuartile]]></Tracking>
<Tracking event="midpoint"><![CDATA[https://example.com/track?type=midpoint]]></Tracking>
<Tracking event="thirdQuartile"><![CDATA[https://example.com/track?type=thirdQuartile]]></Tracking>
<Tracking event="complete"><![CDATA[https://example.com/track?type=complete]]></Tracking>
<Tracking event="mute"><![CDATA[https://example.com/track?type=mute]]></Tracking>
<Tracking event="unmute"><![CDATA[https://example.com/track?type=unmute]]></Tracking>
<Tracking event="pause"><![CDATA[https://example.com/track?type=pause]]></Tracking>
<Tracking event="resume"><![CDATA[https://example.com/track?type=resume]]></Tracking>
<Tracking event="skip"><![CDATA[https://example.com/track?type=skip]]></Tracking>
<Tracking event="fullscreen"><![CDATA[https://example.com/track?type=fullscreen]]></Tracking>
</TrackingEvents>
<VideoClicks>
<ClickThrough><![CDATA[https://example.com/click]]></ClickThrough>
<ClickTracking><![CDATA[https://example.com/clicktrack]]></ClickTracking>
<CustomClick><![CDATA[https://example.com/customclick]]></CustomClick>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" type="audio/mpeg" bitrate="128" width="0" height="0">
<![CDATA[https://example.com/ad.mp3]]>
</MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
<Extensions>
<Extension type="AdId">
<![CDATA[2245779]]>
</Extension>
<Extension type="Google_DAI_Custom">
<![CDATA[<CustomData>...</CustomData>]]>
</Extension>
</Extensions>
</InLine>
</Ad>
</VAST>
三、各标签详解
3.1 <VAST> — 根元素
VAST XML 的根元素,通过 version 属性声明版本号。
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
version |
String | 是 | 版本号,固定为 "3.0" |
<VAST version="3.0">
<!-- 广告内容 -->
</VAST>
注意:当无可用广告时,应返回空的 VAST XML(
<VAST version="3.0"/>),而非 HTTP 空响应或错误码,播放器据此判断本次无广告。
3.2 <Ad> — 广告元素
VAST 中的一条广告。一个 <VAST> 可以包含多个 <Ad>(序列广告)。
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
String | 否 | 广告唯一标识,通常对应广告系统的 Line Item ID |
sequence |
Integer | 否 | 序列广告中的播放顺序(从 1 开始) |
conditionalAd |
Boolean | 否 | 是否为条件广告 |
子元素(二选一):
| 子元素 | 说明 |
|---|---|
<InLine> |
直接包含广告的所有信息(素材、追踪等) |
<Wrapper> |
指向另一个 VAST URL,需二次请求获取实际广告 |
<Ad id="2245779">
<InLine>...</InLine>
</Ad>
3.3 <InLine> — 内联广告
包含广告的全部详细信息,播放器无需再发起额外请求即可获取广告素材。
| 子元素 | 必填 | 说明 |
|---|---|---|
<AdSystem> |
是 | 广告系统标识(如 “Google Ad Manager”、“AdSpeed”) |
<AdTitle> |
是 | 广告标题,描述广告内容 |
<Description> |
否 | 广告描述信息 |
<Advertiser> |
否 | 广告主名称 |
<Pricing> |
否 | 广告投放价格(用于竞价场景) |
<Error> |
否 | 错误追踪 URL,广告加载失败时触发 |
<Impression> |
是 | 曝光追踪 URL 列表,广告展示时触发 |
<Creatives> |
是 | 创意列表容器 |
<Extensions> |
否 | 扩展信息容器 |
3.4 <Wrapper> — 包装广告
Wrapper 不直接包含广告信息,而是指向另一个 VAST URL。广告服务器返回 Wrapper 后,播放器需要再发起一次请求获取实际的 InLine 广告。
| 子元素 | 必填 | 说明 |
|---|---|---|
<AdSystem> |
是 | 广告系统标识 |
<VASTAdTagURI> |
是 | 指向下一级 VAST 的 URL |
<Error> |
否 | 错误追踪 URL |
<Impression> |
否 | 曝光追踪 URL(Wrapper 级别) |
<Creatives> |
否 | 创意列表(可为空) |
<Ad id="wrapper_001">
<Wrapper>
<AdSystem>ThirdPartyADS</AdSystem>
<VASTAdTagURI><![CDATA[https://thirdparty.com/vast?adId=123]]></VASTAdTagURI>
<Impression id="wrapper"><![CDATA[https://example.com/imp]]></Impression>
</Wrapper>
</Ad>
Wrapper 嵌套限制:IAB 建议 Wrapper 嵌套层级不超过 5 层,避免链路过长导致延迟。
3.5 <Error> — 错误追踪
广告在加载或播放过程中发生错误时,播放器向此 URL 发起请求。支持 [ERRORCODE] 宏替换。
<Error><![CDATA[https://example.com/error?errorCode=[ERRORCODE]]]></Error>
常见错误码:
| 错误码 | 含义 |
|---|---|
| 100 | XML 解析错误 |
| 101 | VAST Schema 验证失败 |
| 102 | VAST 版本不支持 |
| 200 | 广告超时 |
| 201 | 视频播放器无法解析 XML |
| 300 | 通用 Wrapper 错误 |
| 301 | Wrapper 超时 |
| 302 | Wrapper 达到最大嵌套层级 |
| 303 | 无 VAST 响应 |
| 400 | 通用线性广告错误 |
| 401 | 文件未找到 |
| 402 | VPAID 错误 |
| 403 | 广告创意列表为空 |
| 500 | 通用非线性广告错误 |
3.6 <Impression> — 曝光追踪
广告成功展示时触发,是广告计费的核心依据。一条广告可以有多个 <Impression>(不同追踪方各自一个)。
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
String | 否 | 追踪方标识(如 “AdSpeed”、“DoubleClick”) |
<Impression id="AdSpeed"><![CDATA[https://example.com/impression]]></Impression>
重要:
<Impression>在广告素材开始播放时触发一次,是计费的主要依据。通常应配合服务端去重逻辑,避免重复计费。
3.7 <Creatives> 与 <Creative> — 创意元素
<Creatives> 是创意容器,内部包含一个或多个 <Creative>。
<Creative> 属性
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
String | 否 | 创意唯一标识 |
sequence |
Integer | 否 | 同一广告内多个创意的播放顺序 |
adId |
String | 否 | 广告 ID(与父 <Ad> 的 id 关联) |
<Creative> 子元素(三选一)
| 子元素 | 说明 |
|---|---|
<Linear> |
线性广告(音/视频广告,播放前后插播) |
<NonLinearAds> |
非线性广告(叠加层、图片广告等) |
<CompanionAds> |
伴随广告(展示在播放器旁边的横幅等) |
<Creatives>
<Creative id="cr_2245779">
<Linear>...</Linear>
</Creative>
</Creatives>
3.8 <Linear> — 线性广告
线性广告是指在音/视频播放前、中、后插入的广告内容,广告播放期间用户无法跳过主内容。
| 子元素 | 必填 | 说明 |
|---|---|---|
<Duration> |
是 | 广告时长,格式为 HH:MM:SS(如 00:00:15) |
<TrackingEvents> |
否 | 追踪事件容器 |
<VideoClicks> |
否 | 视频点击行为容器 |
<MediaFiles> |
是 | 媒体文件列表 |
<Icons> |
否 | 广告图标(如"跳过"按钮、了解更多等) |
<Linear>
<Duration>00:00:15</Duration>
<TrackingEvents>...</TrackingEvents>
<VideoClicks>...</VideoClicks>
<MediaFiles>...</MediaFiles>
</Linear>
3.9 <Duration> — 广告时长
格式为 HH:MM:SS(时:分:秒),也可使用 HH:MM:SS.mmm(含毫秒)。
<Duration>00:00:15</Duration>
<Duration>00:01:30.500</Duration>
播放器根据此值计算进度事件(firstQuartile / midpoint / thirdQuartile / complete)的触发时间点。
3.10 <TrackingEvents> 与 <Tracking> — 追踪事件
<TrackingEvents> 是追踪事件的容器,内部包含多个 <Tracking> 元素。每个 <Tracking> 通过 event 属性标识事件类型,文本内容为追踪 URL。
<Tracking> 属性
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
event |
String | 是 | 追踪事件名称 |
offset |
String | 否 | 进度事件的时间偏移(仅用于 progress 事件) |
VAST 3.0 支持的追踪事件
进度事件(播放器自动触发):
| 事件名 | 触发时机 |
|---|---|
start |
广告开始播放 |
firstQuartile |
广告播放至 25% |
midpoint |
广告播放至 50% |
thirdQuartile |
广告播放至 75% |
complete |
广告播放完成 |
progress |
自定义进度点(需配合 offset 属性) |
交互事件(用户操作触发):
| 事件名 | 触发时机 |
|---|---|
mute |
用户静音 |
unmute |
用户取消静音 |
pause |
用户暂停播放 |
resume |
用户恢复播放 |
fullscreen |
用户进入全屏 |
exitFullscreen |
用户退出全屏 |
skip |
用户跳过广告 |
close |
用户关闭广告 |
<TrackingEvents>
<Tracking event="start"><![CDATA[https://example.com/track?type=start]]></Tracking>
<Tracking event="firstQuartile"><![CDATA[https://example.com/track?type=firstQuartile]]></Tracking>
<Tracking event="midpoint"><![CDATA[https://example.com/track?type=midpoint]]></Tracking>
<Tracking event="thirdQuartile"><![CDATA[https://example.com/track?type=thirdQuartile]]></Tracking>
<Tracking event="complete"><![CDATA[https://example.com/track?type=complete]]></Tracking>
<Tracking event="mute"><![CDATA[https://example.com/track?type=mute]]></Tracking>
<Tracking event="unmute"><![CDATA[https://example.com/track?type=unmute]]></Tracking>
<Tracking event="pause"><![CDATA[https://example.com/track?type=pause]]></Tracking>
<Tracking event="resume"><![CDATA[https://example.com/track?type=resume]]></Tracking>
<Tracking event="skip"><![CDATA[https://example.com/track?type=skip]]></Tracking>
<Tracking event="fullscreen"><![CDATA[https://example.com/track?type=fullscreen]]></Tracking>
</TrackingEvents>
进度事件触发原理:播放器根据
<Duration>计算各时间点。例如 15 秒的广告:
start: 0 秒firstQuartile: 3.75 秒midpoint: 7.5 秒thirdQuartile: 11.25 秒complete: 15 秒
3.11 <VideoClicks> — 视频点击行为
定义用户点击广告时的行为。
| 子元素 | 必填 | 说明 |
|---|---|---|
<ClickThrough> |
否 | 点击跳转的目标 URL(用户点击广告后打开的页面) |
<ClickTracking> |
否 | 点击追踪 URL(记录用户点击行为,可多个) |
<CustomClick> |
否 | 自定义点击追踪 URL |
<VideoClicks>
<ClickThrough><![CDATA[https://advertiser.com/landing]]></ClickThrough>
<ClickTracking><![CDATA[https://example.com/clicktrack]]></ClickTracking>
<CustomClick><![CDATA[https://example.com/customclick]]></CustomClick>
</VideoClicks>
ClickThrough vs ClickTracking:
ClickThrough是用户跳转的落地页 URL,ClickTracking仅用于统计点击次数,不影响跳转行为。
3.12 <MediaFiles> 与 <MediaFile> — 媒体文件
<MediaFiles> 是媒体文件容器,内部包含一个或多个 <MediaFile>。播放器根据自身能力选择最合适的媒体文件。
<MediaFile> 属性
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
delivery |
String | 是 | 传输方式:progressive(渐进式下载)或 streaming(流式) |
type |
String | 是 | MIME 类型(如 audio/mpeg、video/mp4) |
bitrate |
Integer | 否 | 比特率(kbps) |
width |
Integer | 否 | 视频宽度(像素),音频广告为 0 |
height |
Integer | 否 | 视频高度(像素),音频广告为 0 |
codec |
String | 否 | 编码格式 |
apiFramework |
String | 否 | API 框架(如 “VPAID”) |
scalable |
Boolean | 否 | 是否可缩放 |
maintainAspectRatio |
Boolean | 否 | 是否保持宽高比 |
<MediaFiles>
<MediaFile delivery="progressive" type="audio/mpeg" bitrate="128" width="0" height="0">
<![CDATA[https://cdn.example.com/ad.mp3]]>
</MediaFile>
</MediaFiles>
多码率适配:可以为同一广告提供多个不同 bitrate 的
<MediaFile>,播放器根据网络状况自适应选择。
3.13 <Extensions> 与 <Extension> — 扩展信息
VAST 3.0 的扩展机制,用于传递标准 VAST 之外的自定义数据。不同广告系统使用 Extensions 传递各自的自定义参数。
<Extension> 属性
| 属性 | 类型 | 必填 | 说明 |
|---|---|---|---|
type |
String | 否 | 扩展类型标识 |
<Extensions>
<Extension type="AdId">
<![CDATA[2245779]]>
</Extension>
<Extension type="Google_DAI_Custom">
<![CDATA[<CustomData>...</CustomData>]]>
</Extension>
<Extension type="Pricing">
<![CDATA[1.50]]>
</Extension>
</Extensions>
常见 Extension type:
AdId:Google Ad Manager 广告 IDGoogle_DAI_Custom:Google DAI 自定义参数Pricing:价格信息encoding:编码信息mediaVerification:媒体验证 URL
3.14 <NonLinearAds> — 非线性广告(补充)
非线性广告叠加在视频内容上方播放,不中断主内容。
<Creative>
<NonLinearAds>
<TrackingEvents>...</TrackingEvents>
<NonLinear width="300" height="50">
<StaticResource creativeType="image/png"><![CDATA[https://example.com/banner.png]]></StaticResource>
<NonLinearClickThrough><![CDATA[https://example.com/click]]></NonLinearClickThrough>
</NonLinear>
</NonLinearAds>
</Creative>
3.15 <CompanionAds> — 伴随广告(补充)
伴随广告与视频广告同步展示,通常显示在播放器周围的区域。
<Creative>
<CompanionAds>
<Companion id="companion1" width="300" height="250">
<StaticResource creativeType="image/jpeg"><![CDATA[https://example.com/companion.jpg]]></StaticResource>
<CompanionClickThrough><![CDATA[https://example.com/click]]></CompanionClickThrough>
</Companion>
</CompanionAds>
</Creative>
四、VAST 3.0 宏替换
VAST 3.0 支持在追踪 URL 中使用宏(Macro),播放器在发送追踪请求前将宏替换为实际值。
| 宏 | 说明 |
|---|---|
[ERRORCODE] |
错误码(用于 <Error> 标签) |
[CONTENTPLAYHEAD] |
当前播放位置(如 00:00:07.500) |
[ASSETURI] |
当前播放的素材 URI |
[PODSEQUENCE] |
广告序列序号 |
[ADPLAYHEAD] |
广告当前播放位置 |
[MIMETYPE] |
媒体文件 MIME 类型 |
[BREAKMAXADLENGTH] |
广告时段最大广告时长 |
[DEVICEIP] |
用户设备 IP |
[DEVICEUA] |
用户设备 User-Agent |
<Tracking event="start"><![CDATA[https://example.com/track?position=[CONTENTPLAYHEAD]&asset=[ASSETURI]]]></Tracking>
五、VAST 3.0 与 VMAP 的关系
VMAP(Video Multiple Ad Playlist)是 VAST 的上层协议,用于描述视频内容中广告插入点的位置和数量。VMAP 本身不包含广告内容,而是包含指向 VAST URL 的引用。
<VMAP version="1.0">
<AdBreak breakType="linear" breakId="preroll" timeOffset="start">
<AdSource allowMultipleAds="false" followRedirects="true">
<AdTagURI template="0"><![CDATA[https://example.com/vast?adId=123]]></AdTagURI>
</AdSource>
</AdBreak>
<AdBreak breakType="linear" breakId="midroll" timeOffset="50%">
<AdSource allowMultipleAds="false" followRedirects="true">
<AdTagURI template="0"><![CDATA[https://example.com/vast?adId=456]]></AdTagURI>
</AdSource>
</AdBreak>
<AdBreak breakType="linear" breakId="postroll" timeOffset="end">
<AdSource allowMultipleAds="false" followRedirects="true">
<AdTagURI template="0"><![CDATA[https://example.com/vast?adId=789]]></AdTagURI>
</AdSource>
</AdBreak>
</VMAP>
| 对比项 | VAST | VMAP |
|---|---|---|
| 定位 | 描述单个广告的详细内容 | 描述广告插入点的位置和顺序 |
| 层级 | 广告内容层 | 广告调度层 |
| 包含素材 | 是 | 否(通过 AdTagURI 引用 VAST) |
| 典型用途 | 广告服务器返回给播放器 | 内容管理系统返回给播放器 |
六、实际应用示例:车载音频广告
以下是一个实际的车载音频广告 VAST 3.0 响应示例,展示了完整的标签嵌套结构:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<VAST version="3.0">
<Ad id="2245779">
<InLine>
<AdSystem>AdSpeed</AdSystem>
<AdTitle>测试活动1</AdTitle>
<Error><![CDATA[https://iovopen-test.radio.cn/v36/txAd/txAdTest?callbackId=xxx&creativeId=cr_2245779&appId=app001&adDeliveryPlanId=2245779&adDeliveryPlanName=%E6%B5%8B%E8%AF%95%E6%B4%BB%E5%8A%A81&eventType=13&deviceId=dev001&deviceType=%E8%BD%A6%E8%BD%BD%E5%B1%8F&os=0&miaozhenCampaignId=miaoZhenCampaignId&errorCode=[ERRORCODE]]]></Error>
<Impression id="AdSpeed"><![CDATA[https://iovopen-test.radio.cn/v36/txAd/txAdTest?callbackId=xxx&creativeId=cr_2245779&adDeliveryPlanId=2245779&eventType=6]]></Impression>
<Creatives>
<Creative id="cr_2245779">
<Linear>
<Duration>00:00:15</Duration>
<TrackingEvents>
<Tracking event="start"><![CDATA[https://iovopen-test.radio.cn/v36/txAd/txAdTest?eventType=1]]></Tracking>
<Tracking event="firstQuartile"><![CDATA[https://iovopen-test.radio.cn/v36/txAd/txAdTest?eventType=2]]></Tracking>
<Tracking event="midpoint"><![CDATA[https://iovopen-test.radio.cn/v36/txAd/txAdTest?eventType=3]]></Tracking>
<Tracking event="thirdQuartile"><![CDATA[https://iovopen-test.radio.cn/v36/txAd/txAdTest?eventType=4]]></Tracking>
<Tracking event="complete"><![CDATA[https://iovopen-test.radio.cn/v36/txAd/txAdTest?eventType=5]]></Tracking>
</TrackingEvents>
<VideoClicks>
<ClickThrough><![CDATA[https://iovimage.radio.cn/mz/audios/202605/168e8acc-8cf2-4120-a52f-b77e50403c27.mp3]]></ClickThrough>
</VideoClicks>
<MediaFiles>
<MediaFile delivery="progressive" type="audio/mpeg" bitrate="128"><![CDATA[https://iovimage.radio.cn/mz/audios/202605/168e8acc-8cf2-4120-a52f-b77e50403c27.mp3]]></MediaFile>
</MediaFiles>
</Linear>
</Creative>
</Creatives>
<Extensions>
<Extension type="AdId"><![CDATA[2245779]]></Extension>
</Extensions>
</InLine>
</Ad>
</VAST>
关键设计要点
<Error>携带[ERRORCODE]宏:播放器在广告加载/播放失败时,将[ERRORCODE]替换为实际错误码后请求此 URL<Impression>是计费依据:广告成功展示时触发一次,服务端需做去重- 5 个进度事件 + 交互事件:
start/firstQuartile/midpoint/thirdQuartile/complete覆盖广告完整播放周期 <MediaFile>的type为audio/mpeg:车载音频场景下使用音频 MIME 类型<Extensions>传递自定义参数:用于广告系统间的数据交换
七、标签层级关系总览
VAST (version="3.0")
└── Ad (id, sequence)
├── InLine
│ ├── AdSystem
│ ├── AdTitle
│ ├── Description (可选)
│ ├── Advertiser (可选)
│ ├── Pricing (可选)
│ ├── Error (支持 [ERRORCODE] 宏)
│ ├── Impression (id) — 可多个
│ ├── Creatives
│ │ └── Creative (id, sequence, adId)
│ │ ├── Linear
│ │ │ ├── Duration (HH:MM:SS)
│ │ │ ├── TrackingEvents
│ │ │ │ └── Tracking (event, offset?) — 可多个
│ │ │ ├── VideoClicks
│ │ │ │ ├── ClickThrough
│ │ │ │ ├── ClickTracking — 可多个
│ │ │ │ └── CustomClick — 可多个
│ │ │ ├── MediaFiles
│ │ │ │ └── MediaFile (delivery, type, bitrate, width, height) — 可多个
│ │ │ └── Icons (可选)
│ │ ├── NonLinearAds (可选)
│ │ └── CompanionAds (可选)
│ └── Extensions
│ └── Extension (type) — 可多个
└── Wrapper (替代 InLine)
├── AdSystem
├── VASTAdTagURI
├── Error
├── Impression
└── Creatives (可选)
八、总结
VAST 3.0 是数字视频/音频广告投放的核心标准,其标签设计覆盖了广告投放的完整生命周期:
| 阶段 | 关键标签 | 作用 |
|---|---|---|
| 广告定义 | <VAST>, <Ad>, <InLine>/<Wrapper> |
定义广告结构和来源 |
| 广告信息 | <AdSystem>, <AdTitle>, <Description>, <Advertiser>, <Pricing> |
广告元数据 |
| 素材描述 | <Creatives>, <Creative>, <Linear>, <MediaFiles>, <MediaFile> |
广告素材信息 |
| 播放控制 | <Duration>, <VideoClicks> |
时长和点击行为 |
| 曝光追踪 | <Impression> |
计费依据 |
| 进度追踪 | <TrackingEvents>, <Tracking> |
播放进度监控 |
| 错误追踪 | <Error> |
异常监控和排查 |
| 扩展信息 | <Extensions>, <Extension> |
自定义数据传递 |
理解 VAST 3.0 的标签结构对于实现广告投放系统、广告追踪系统和播放器集成至关重要。在实际开发中,建议参考 IAB 官方规范文档,并结合业务需求灵活运用 Extensions 扩展机制。
参考文档
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)