视频广告

本指南概述了在对视频广告资源出价时可能需要满足的集成要求、配置和相关字段。

Google 支持以单个广告机会或动态视频广告连播形式呈现的插播视频广告、原生视频广告和插页式视频广告。动态广告连播是指一组依序展示的视频广告,其中广告连播的时长上限会分配给一个或多个时长不同的视频。如需详细了解原生和插页式广告格式,请参阅相关指南。

买家要求

实时出价协议

本指南通常会引用 Protobuf 格式,但除非另有说明,否则 Protobuf 格式和 JSON 格式之间的字段名称和路径是等效的。

您可以在原型和参考数据页面中找到 OpenRTB 原型和 Google 专用 OpenRTB 扩展。如需详细了解如何开发出价工具,请参阅处理请求和构建响应。

广告素材审核

Google 建议您先提交广告素材以供审批,然后再使用这些广告素材进行出价。您可以使用 Real-time Bidding API 的广告素材资源启动审核流程。

预定位配置

为了接收视频广告资源,您的 Authorized Buyers 账号应创建包含视频广告资源的预定位配置。

宏

您可以在 BidResponse.seatbid.bid.adm 中指定的视频网址链接或 VAST XML 中指定宏。此外,如果您指定了视频网址,则还可以在关联的 VAST XML 文档中放置宏。视频广告素材支持以下宏:

  • %%CACHEBUSTER%%
  • %%WINNING_PRICE%%
  • %%SITE%%

不支持 CLICK_URL_ESC 等点击宏,因为 Authorized Buyers 会将其点击跟踪广告代码添加到 VAST 封装容器中。如需详细了解支持的宏,请参阅指定宏。

宣传信息详情

您可以使用 OpenRTB 的 BidRequest.imp.video 字段来确定传入的出价请求是针对插播视频广告资源还是插页式视频广告资源,并查找有关该请求的其他视频特定信息。此外,对于原生广告资源,您可以使用 BidRequest.imp.native.{request/request_native}.assets.video 获取类似的视频专属信息。

BidRequest.{app/site}.content.producer.domain

描述视频内容的网页的网址(已移除参数)。 发布商会将此网址提交给 Google。例如:

http://www.publisher.com/watchpagelink
banner.vcm
如果设置为 true,则可以选择随播广告,以便在视频广告播放完毕后,在视频广告位中将其呈现为片尾画面(信息卡片)。否则,随播广告不会呈现为结束画面。
BidRequest.imp.rwdd
如果设置为 true,则表示用户会因观看视频广告而获得奖励。典型的奖励可能是免费阅读一篇额外的文章、在游戏中获得额外生命值,或获得赞助商提供的无广告音乐播放时段。
BidRequest.imp.video.maxduration

出价响应中包含的每个单个广告允许的时长上限(以秒为单位)。如果未设置,则没有最长时长。当 BidRequest.imp.video.skip 为 true 时,此行为可能会有所不同。如需了解详情,请参阅可跳过视频广告的时长上限。

BidRequest.imp.video.maxseq

动态视频广告连播中可能投放的广告数量上限。如果设置了 poddur,但未设置 maxseq 或设置为 0,则系统不会限制可在视频广告连播中投放的广告数量。Google 仅支持动态广告连播。

实际展示的视频广告数量可以小于或等于此值,但不能超过此值。

BidRequest.imp.video.minduration
出价响应中包含的每个单个广告的最短时长(以秒为单位)。如果未设置,则没有最短时长。
BidRequest.imp.video.plcmt
说明视频将在何处播放。
PLCMT_UNKNOWN 展示位置未知或无法确定。
PLCMT_INSTREAM 在消费者请求的流式视频内容播放前、播放期间或播放后呈现的前贴片广告、中贴片广告和后贴片广告。插播视频广告必须在播放器启动时默认设置为“开启声音”,或者用户有明确的意图要观看视频内容。虽然播放器周围可能还有其他内容,但视频内容必须是用户访问的重点。它应始终是网页上的主要内容,并且是唯一一个在播放时能够发出声音的可见视频播放器。如果播放器转换为浮动/粘性播放器,后续广告请求应准确传达更新后的播放器尺寸。
PLCMT_ACCOMPANYING_CONTENT 在流式视频内容播放前、播放期间或播放后呈现的前贴片广告、中贴片广告和后贴片广告。视频播放器会在文本段落或图形内容之前、之间或之后加载和播放,并且仅在进入视口时才开始播放。 随播内容应仅在进入视口后开始播放。当用户滚动页面时,播放器可能会转换为浮动/粘性播放器。
PLCMT_INTERSTITIAL 在没有视频内容的情况下播放的视频广告。在播放期间,它必须是页面的主要焦点,占据大部分视口,并且无法通过滚动移出视图。这可以是在应用内视频或幻灯片等展示位置。
PLCMT_NO_CONTENT_STANDALONE 在没有流式视频内容的情况下播放的视频广告。这类广告可以投放到幻灯片、原生信息流、内容内或粘性/浮动广告位等位置。
BidRequest.imp.video.playbackmethod
说明如何播放视频广告。 系统会根据可用的最佳衡量方法来确定播放方法是自动播放还是点击播放。
AUTO_PLAY_SOUND_ON 在网页加载时启动,并开启声音。
AUTO_PLAY_SOUND_OFF 在网页加载时静音启动。
CLICK_TO_PLAY 点击后开始播放,并开启声音。
MOUSE_OVER 鼠标悬停时开始播放,并开启声音。
ENTER_SOUND_ON 进入视口时开始播放,并开启声音。
ENTER_SOUND_OFF 在进入视口时开始播放,默认情况下处于静音状态。
BidRequest.imp.video.skip
如果为 true,则表示播放器将允许跳过视频,或允许投放可跳过的广告。否则,表示不允许投放可跳过式广告。
BidRequest.imp.video.startdelay

值为 0 表示前贴片广告,-1 表示中贴片广告,-2 表示后贴片广告。

任何其他正值表示从视频开始播放到广告展示时所经过的时间(以秒为单位)。

BidRequest.imp.video.durfloors和BidRequest.imp.audio.durfloors

一个 DurFloors 对象数组,用于指明买方可能出价的各种时长的视频或音频广告素材的相应底价。

以下是 Google 指定的 durfloors 的示例:

  1. {"maxdur": 16, "bidfloor": 5},表示 $5 处的 (0, 16) 秒。
  2. {"mindur": 16, "maxdur": 31, "bidfloor": 10},表示 $10 处的 [16, 31) 秒。
  3. {"mindur": 31, "bidfloor": 20},表示 $20 处的 [31, inf) 秒。

这些信号并非视频广告素材所独有,但对出价方来说尤其有价值:

BidRequest.device.ifa
此字段是一个 36 字符的 UUID,仅在使用 SSL 时设置,且未经过哈希处理。它是 BidRequest.device.dpidm5 的未加密版本。对于 iOS 设备,它包含全大写字符的广告标识符 (IDFA)。对于 Android 设备,它包含全小写字符的 Android 标识符 (ADID)。对于联网电视设备,它包含其唯一标识符(例如 Roku 的 RIDA)。
BidRequest.device.devicetype
指定设备类型。
MOBILE HIGHEND_PHONE 或 TABLET 的过性别名。
PERSONAL_COMPUTER 包括桌面设备和笔记本电脑。
CONNECTED_TV 包括联网电视(即智能电视)和联网设备(例如 Roku、Apple TV 等)。
HIGHEND_PHONE 包括高端手机设备。
TABLET 包括平板电脑。
CONNECTED_DEVICE 包括专用游戏设备。
SET_TOP_BOX 包括机顶盒设备。
OOH_DEVICE 包括户外广告设备,例如数字广告牌。
BidRequest.device.make
指定设备的品牌(例如 Nokia 或 Samsung)。
BidRequest.device.model
指定设备的确切型号(例如 N70 或 Galaxy)(如果有),否则包含通用型号,例如“iphone”或“ipad”。
BidRequest.imp.metric
如果 Metric.type 设置为 completion_rate,Metric.value 将是 [0.0, 1.0] 范围内的分数,表示在广告位中投放的视频广告的历史完整播放率。默认值 -1.0 表示无法提供历史完整播放率数据。
BidRequest.imp.video.poddur
您可以为动态视频广告连播填充的时长(以秒为单位)。 此字段是指整个广告插播时间点的时长。如果未设置,则广告位不属于广告连播。

视频出价请求还包含有关广告资源的信息,例如行业、允许的供应商和渠道信息。出价请求中的所有其他现有字段也适用于视频。

视频请求的 AdSlot 消息中的宽度和高度字段对应于视频广告播放器的尺寸。

BidRequest.imp.ext.allowed_vendor_type
允许的供应商。如需查看 ID 列表,请参阅技术文档中的 vendors.txt 文件。 例如,309 = DFA 视频广告单元。
BidRequest.imp.video.mimes
一个许可清单,其中说明了应出价请求而投放的广告所支持的内容 MIME 类型;例如“video/mp4”。出价响应应表明支持其中至少一种。
BidRequest.imp.video.protocols
说明发布商针对视频广告请求支持的 VAST 版本。 包含 Protocol 枚举值的数组,包括:VAST_2_0、VAST_3_0、VAST_2_0_WRAPPER、VAST_3_0_WRAPPER、VAST_4_0、VAST_4_0_WRAPPER 等。
BidRequest.imp.video.companionad
此字段包含一个 Banner 对象数组,这些对象表示随播广告(如果有)。
BidRequest.site.page

视频观看页面的网址或嵌入了视频的网页的网址。例如:

http://www.publisher.com/watchpagelink

在响应视频请求时,出价方应在 BidResponse.seatbid.bid.adm 字段中返回 VAST 重定向网址或 VAST XML。出价响应还应包含视频广告的正确声明。以下是正确的视频出价响应的摘录:

id: "eW3q768m3k93fv93a80tGQ"
seatbid {
  bid {
    id: "0uMc95E6ClImM3p5FSe"
    impid: "1"
    price: 0.034745
    adm: "https://video.test.com/ads?id=123456&wprice=%%WINNING_PRICE%%"
    adomain: "google.com"
    crid: "test_creative_id_168019"
    cat: "7"
    w: 320
    h: 480
    cattax: GOOGLE_CATEGORIES
    [com.google.doubleclick.bid] {
      attribute: 47
      attribute: 50
      billing_id: 61170857882
      app_promotion_type: INSTALLS
      clickurl: "google.com"
    }
  }
}
[com.google.doubleclick.bid_response] {
  processing_time_ms: 30
}

视频出价响应中的重要字段如下:

BidResponse.seatbid.bid.ext.attribute
可能通过此代码段展示的广告的属性。如需查看 ID 列表,请参阅 buyer-declarable-creative-attributes.txt 文件。我们会进行检查,确保这些属性均不与发布商在出价请求中禁止的属性相匹配。 例如,如果任一字段包含 30,则表示广告需要 VPAID 支持才能呈现。
BidResponse.seatbid.bid.adm

对于视频广告,这是视频广告的 VAST 重定向网址。例如:

http://ad.doubleclick.net/pfadx/N270.132652.1516607168321/B3442378.3;dcadv=1379578;sz=0x0;ord=79879;dcmt=text/xml

或者,这可能是原始 VAST XML。

出价请求和响应示例

自动调整可跳过设置

Google 会自动对视频广告资源的实时出价应用“自动调整可跳过设置”功能,这可以防止您的出价因出价请求中要求的可跳过性与您在出价响应中返回的广告素材的可跳过性存在差异而被滤除,从而无法参与竞价。在以下情况下,系统不会应用自动调整可跳过设置:

  • 您在出价响应中指定的广告素材是使用 VPAID 实现的。您可以使用 Real-time Bidding API 中的 Creative.video.videoMetadata.isVpaid 字段来确定哪些视频广告素材是使用 VPAID 实现的。
  • 发布商将要呈现广告素材。您可以根据 BidRequest.imp.displaymanager 字段确定此信息,如果发布商要呈现广告素材,则该字段为 'PUBLISHER'。

以下示例说明了如何应用自动调整可跳过设置:

  • 场景 1:
    • 您收到一个出价请求,其中 BidRequest.imp.video.skip 字段设置为 0(JSON 格式)或 false(Protobuf 格式)。
    • 您使用可跳过式广告素材出价。
    • 结果:您的出价进入竞价。如果您的出价胜出,并且视频广告素材呈现,则会呈现为不可跳过。
  • 场景 2:
    • 您收到一个出价请求,其中 BidRequest.imp.video.skip 字段设置为 1(JSON 格式)或 true(Protobuf 格式)。
    • 您使用时长超过 BidRequest.imp.video.skipmin 字段中指定时长的不可跳过广告素材出价。
    • 结果:您的出价进入竞价。如果您的出价胜出,并且视频广告素材呈现,则该广告素材会以可跳过的形式呈现。

视频格式

买方如何添加视频

下表说明了买方可以在广告素材中添加视频的方式,以及可供这些视频广告素材投放到的网站和移动应用展示位置。

Web

视频广告素材 插播(全部) 信息流广告/文章内嵌广告 原生信息流广告/文章内嵌广告 插页式广告 横幅内嵌

VPAID + VAST

 

VAST

 

MRAID + JS

 

 

 

 

 

自定义 JS

 

原生 + VAST

 

移动应用

视频广告素材 插播(全部) 信息流广告/文章内嵌广告 原生信息流广告/文章内嵌广告 插页式广告 横幅内嵌

VPAID + VAST

 

 

 

 

 

VAST

MRAID + JS

自定义 JS

原生 + VAST

键: 格式/技术不可用

此展示位置接受视频广告素材,但受发布商屏蔽设置的限制

此展示位置不提供视频广告素材

OpenRTB 推荐信号

下表说明了适用于桌面设备和移动网站以及移动应用的所有视频格式的 OpenRTB 推荐信号。

桌面网站和移动网站

视频格式 推荐信号(仅限视频相关信号) 相关信号(仅限视频相关信号)

插播广告 (VPAID)

存在 VIDEO 对象  &
video.placement = INSTREAM   &


插播广告(非 VPAID)

存在 VIDEO 对象  &
video.placement = INSTREAM    &
video.api = 1 VPAID 1.0 or 2:VPAID 2.0


非插播广告

存在 VIDEO 对象

video.linearity: linear
放置位置取决于实际
放置位置,值如下所示
Video.startdelay = 0


信息流广告

存在 VIDEO 对象  &
video.placement = IN-FEED


文章内嵌广告

存在 VIDEO 对象  &
video.placement = IN-ARTICLE


原生

存在 NATIVE 对象 &


横幅内嵌

视频对象不存在 &
banner.battr ≠ 6 横幅内嵌视频(自动播放)&
banner.battr ≠ 7 横幅内嵌视频(用户启动)


移动应用

视频格式 出价请求详情(仅限视频相关详情)

插播

存在 VIDEO 对象  &
video.placement = INSTREAM    &

video.api = 1 VPAID 1.0 或 2:VPAID 2.0

非插播广告

存在 VIDEO 对象

video.linearity: linear
放置位置取决于实际
放置位置,值如下所示
Video.startdelay = 0


信息流广告

存在 VIDEO 对象  &
video.placement = IN-FEED


文章内嵌广告

存在 VIDEO 对象  &
video.placement = IN-ARTICLE


原生

存在 NATIVE 对象 &


插页式广告 (VAST)

存在 VIDEO 对象  &
video.placement = INTERSTITIAL


插页式广告(无 VAST)

存在 VIDEO 对象  &
video.placement = INTERSTITIAL

已过滤

横幅内嵌 (MRAID)

视频对象不存在 &
banner.battr ≠ 6 横幅内嵌视频(自动播放)&
banner.battr ≠ 7 横幅内嵌视频(用户启动)


横幅内嵌

(无 MRAID)

视频对象不存在 &
banner.battr ≠ 6 横幅内嵌视频(自动播放)&
banner.battr ≠ 7 横幅内嵌视频(用户启动)


发布商如何允许/禁止视频

下表说明了发布商如何在其展示位置中允许/禁止视频。

Pub 选项 适用格式 在出价请求中描述为

指定插播视频广告单元

插播(全部)

存在视频对象 &
video.placement = INSTREAM

选择启用 VPAID

插播视频广告(网站)

视频对象存在且
video.api = 1 (VPAID 1.0) 或 2 (VPAID 2.0)

选择启用 IBV

横幅内嵌

插页式广告

banner.battr ≠ 6 横幅内嵌视频(自动播放)和/或 7 横幅内嵌视频(用户启动)

选择启用(说明)

信息流广告

文章内嵌广告

存在视频对象 &
video.placement = IN-FEED 或 IN-ARTICLE

选择启用非插播广告(说明)

原生

存在原生对象

屏蔽视频插页式广告

插页式应用

VIDEO 对象不存在

边缘用例

# 案例说明 评论 出价请求

1

使用 MRAID 延迟显示自定义关闭按钮

对于插页式广告,即使买方未使用自定义关闭按钮,关闭广告也可以使用 MRAID 向买方发送通知。


Authorized Buyers 应用的 X 始终会显示在任何自定义关闭按钮之上,即使自定义关闭按钮在 5 秒后显示在下方也是如此


术语表

请参阅 Authorized Buyers 视频术语表。

插播广告和非插播广告格式的相关字段

请参阅 OpenRTB 2.5(从第 47 页开始)

BidRequest.Video.
Placement
插播 mWeb

1:插播广告
2:横幅内广告

mApp

1:插播广告
2:横幅内广告

非插播广告 mApp Interstitial

5:插页式广告

Native

3:文章内嵌广告
4:信息流广告

Rewarded

rwdd:布尔值

linearity

指明展示是否必须为线性、非线性等。如果未指定,则假定所有类型均允许。

插播 mWeb

1:LINEAR(插播广告)

mApp

1:LINEAR(插播广告)

非插播广告 mApp Interstitial

2:INTERSTITIAL

Native

3:IN_FEED
5:IN_ARTICLE

videoad_start_delay
插播 mWeb

>0: start delay in seconds
 0: PRE_ROLL
-1: GENERIC_MID_ROLL
-2: GENERIC_POST_ROLL

mApp

>0: start delay in seconds
 0: PRE_ROLL
-1: GENERIC_MID_ROLL
-2: GENERIC_POST_ROLL

非插播广告 Rewarded

>0: start delay in seconds
 0: PRE_ROLL
-1: GENERIC_MID_ROLL
-2: GENERIC_POST_ROLL

出价请求值来源

OpenRTB
对象
字段 Authorized Buyers
/广告交易平台
出价
非插播
示例值 谁来决定?
/此值来自何处
?
对象
视频 mimes 是 ["application/javascript",
"video/mp4"]",
Google
minduration 否 由发布商配置
maxduration 是 由发布商配置
playbackmet
hod
是 [6] 通常为发布商
已配置
api (MRAID) 是 [1,2] Google
protocols 是 [2,3,5,6,7,8] Google
线性 是 [1] Google
展示位置 是 [1] Google
播放器宽度 是 400,400,300 Google
播放器高度 是 225,300,153 Google
启动延迟时间 是 0 Google,默认 5 秒
跳过 是 1 发布商/Google
- 对于插页式广告 => Google
- 对于插播广告 => 发布商
决定是否允许
可跳过、不可跳过或两者兼而有之。
激励广告,始终不可跳过;
最小比特率 否 Google
最高比特率 否 Google
pos 是 1 Google
设备
像素比 是 1 Google
展示
安全 是 1 Google
默认为 true
因为广告代码始终
安全