Pod Serving API 目前处于封闭式 Beta 版测试阶段。如果您有兴趣详细了解 Pod Serving 或想要实现 Pod Serving API,请与您的 Google 客户经理联系。
直播概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Pod Serving API 可让您访问自适应比特率的视频广告连播,这种广告连播采用的方式可以直接拼接到面向用户的 HLS 或 MPEG DASH 媒体播放列表中。
此 API 面向高级发布商和视频技术合作伙伴。
要大规模使用此 API,您需要设计和实现复杂的媒体传送工作流程,这不在本文档的讨论范围内。
前提条件
在通过 DAI Podserving API 处理直播活动之前,您需要使用 Google Ad Manager 界面或直播活动 API 创建直播活动。
组件
Pod Serving API 的任何实现都由三个组件构成:Google Ad Manager、客户端视频播放器和清单操纵服务器。
Ad Manager
Ad Manager 负责向用户投放广告,并可通过 Ad Manager SDK 或其网页界面进行管理。该服务具有以下责任:
- 接收来自客户端视频播放器的视频流请求、确定广告并提供与内容编码配置文件匹配的呈现
- 响应来自客户端视频播放器的广告细分请求,并为指定用户提供广告连播的相应部分
- 接收和处理来自客户端视频播放器的跟踪 ping
客户端视频播放器
客户端视频播放器是指客户端用来播放生成的视频流的应用或网站。玩家有以下责任:
- 初始化 Ad Manager 中的视频流资源,并接收代表特定直播活动的单个播放会话的视频流对象。
- 从清单操纵服务器请求流清单,该清单将开始播放
- 定期从 Ad Manager 轮询广告连播元数据,这些元数据用于描述视频流广告细分受众群中嵌入的广告事件
- 监听由包含广告媒体 ID 的播放器引发的定时元数据事件。遇到这些事件后,播放器会将其转发给 Ad Manager,以验证广告事件是否已成功发生。
如需详细了解客户端视频播放器的正确实现,请参阅适用于您平台的广告连播投放指南:
如需了解自定义实现,请参阅 DAI API 的 Pod 投放客户端指南。
清单操纵服务器
清单操纵服务器是负责托管提供给客户端视频播放器的流清单的服务器。服务器具有以下责任:
- 处理向客户端视频播放器交付清单的操作
- 从 Ad Manager 请求时间段模板(仅适用于 MPEG DASH 数据流),以便填充广告片段。
- 在广告插播期间,将 Ad Manager 托管的广告片段网址插入到视频流清单(对于 HLS)或广告时段(对于 MPEG DASH)中。
- 将修改后的清单投放到客户端视频播放器。
如需详细了解如何实现自定义清单操纵器服务器,请参阅清单操纵指南。
术语库
- 直播活动:用于存储直播活动的重要配置数据(例如编码配置文件)的事件。直播活动是使用 Ad Manager 创建的。
- 流对象:表示特定视频资产的单个播放会话的对象。值得注意的属性包括视频流 ID 和媒体验证网址。
- 广告连播:对广告插播时间点中显示的广告视频进行分组
- 广告片段:广告插播时间点的媒体片段文件
- 广告连播元数据:用于在客户端呈现广告界面的广告插播时间点的元数据;例如,在广告播放期间隐藏跳转按钮
- 广告媒体 ID:在广告细分文件中编码为 ID3 代码的元数据。此元数据用于标识在播放过程中何时发生与广告相关的特定事件,例如广告开始播放或播放中点。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-03-21。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-03-21\u3002"}
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2024-03-21。"]]