本指南介绍了如何将 IMA DAI SDK 集成到视频播放器应用中。如果您想查看或按照完整的示例集成进行操作,请从 GitHub 下载 BasicExample。
IMA DAI 概览
如本指南所示,实现 IMA DAI 涉及四个主要 SDK 组件:
IMAAdDisplayContainer- 位于视频播放元素之上并包含广告界面元素的容器对象。IMAAdsLoader- 请求视频流并处理由视频流请求响应对象触发的事件的对象。 您应该只实例化一个广告加载器,该加载器可在应用的整个生命周期内重复使用。IMAStreamRequest-IMAVODStreamRequest或IMALiveStreamRequest。一个定义直播请求的对象。视频流请求可以针对视频点播或直播。直播请求会指定素材资源键,而 VOD 请求会指定 CMS ID 和视频 ID。这两种请求类型都可以选择包含访问指定视频流所需的 API 密钥,以及供 IMA SDK 根据 Google Ad Manager 设置中的指定方式处理广告标识符的 Google Ad Manager 广告资源网代码。IMAStreamManager- 一个用于处理动态广告插播视频流以及与 DAI 后端进行交互的对象。直播管理工具还会处理跟踪 ping,并将直播和广告事件转发给发布商。
前提条件
在开始之前,您需要做好以下准备:
- Xcode 13 或更高版本
- IMA SDK 的安装方法:
- Swift Package Manager(首选)
- IMA iOS SDK 的下载副本
您还需要使用这些参数从 IMA SDK 请求视频流。 如需查看请求参数的示例,请参阅示例数据流。
| 直播参数 | |
|---|---|
| 素材资源键 |
在 Google Ad Manager 中标识直播活动的素材资源键。 示例: c-rArva4ShKVIAkNfy6HUQ
|
| VOD 视频流参数 | |
| 内容来源 ID |
Google Ad Manager 中的内容来源 ID。 示例: 2548831
|
| 视频 ID |
Google Ad Manager 中的视频 ID。 示例: tears-of-steel
|
| 通用(VOD 和直播)参数 | |
| 广告资源网代码 |
您的 Google Ad Manager 广告资源网代码。 示例: 21775744923
|
创建新的 Xcode 项目
在 Xcode 中,使用 Objective-C 创建一个名为“BasicExample”的新 iOS 项目。
将 IMA DAI SDK 添加到 Xcode 项目中
如需安装 IMA SDK,请选择首选方法。
推荐:使用 Swift Package Manager 安装 SDK
互动式媒体广告 SDK 支持 3.18.4 及更高版本的 Swift Package Manager。请按照以下步骤导入 Swift 软件包。
在 Xcode 中,安装 IMA DAI SDK Swift 软件包:前往“File”(文件)>“Add Packages”(添加软件包)。
在随即显示的提示中,搜索 IMA DAI SDK Swift 软件包 GitHub 代码库:
https://github.com/googleads/swift-package-manager-google-interactive-media-ads-ios选择您要使用的 IMA DAI SDK Swift 软件包版本。对于新项目,请使用 Up to Next Major Version(更新至下一主要版本前的最新版)规则。
完成后,Xcode 会解析您的软件包依赖项,并在后台下载它们。如需详细了解如何添加软件包依赖项,请参阅 Apple 的文章。
手动下载并安装 SDK
如果您不想使用 Swift Package Manager,请下载 IMA SDK 并手动将其添加到项目中。
创建视频播放器
在主视图控制器中实现视频播放器;在界面视图中封装 AV 播放器。IMA SDK 使用界面视图来显示展示广告界面元素。
Objective-C
Swift
初始化广告加载器
将 IMA SDK 导入视图控制器,并采用 IMAAdsLoaderDelegate 和 IMAStreamManagerDelegate 协议来处理广告加载器和直播流管理器事件。
添加以下私有属性,以存储关键 IMA SDK 组件:
IMAAdsLoader- 在应用的整个生命周期内管理视频流请求。
IMAAdDisplayContainer- 负责插入和管理广告界面元素。
IMAAVPlayerVideoDisplay- 在 IMA SDK 与媒体播放器之间进行通信,并处理定时元数据。IMAStreamManager- 管理视频流播放并触发广告相关事件。
在视图加载后,初始化广告加载器、广告展示容器和视频展示。
Objective-C
Swift
发出流式传输请求
当用户按下播放按钮时,发出新的视频流请求。
对直播使用 IMALiveStreamRequest 类。对于 VOD 视频流,请使用 IMAVODStreamRequest 类。
直播请求需要您的直播参数,以及对广告展示容器和视频展示的引用。
Objective-C
Swift
监听直播流加载事件
IMAAdsLoader 类会在数据流请求成功初始化或失败时调用 IMAAdsLoaderDelegate 方法。
在 adsLoadedWithData 委托方法中,设置 IMAStreamManagerDelegate。
初始化直播流管理器。初始化时,直播管理工具会开始播放。
在 failedWithErrorData 委托方法中,记录错误。(可选)播放备用直播。请参阅 DAI 最佳实践。
Objective-C
Swift
监听广告事件
IMAStreamManager 会调用 IMAStreamManagerDelegate 方法,以将流事件和错误传递给您的应用。
在此示例中,将主要广告事件记录到控制台:
Objective-C
Swift
运行您的应用。如果成功,请使用 IMA SDK 请求并播放 Google DAI 视频流。如需了解更多高级 SDK 功能,请参阅左侧边栏中列出的其他指南或 GitHub 上的示例。