VastClient 2.0.1

VastClient 2.0.1

John G. Gainfort, Jr.Craig_Holliday维护。



  • John G. Gainfort, Jr.

IOS Vast Client

IOS Vast Client是一个Swift框架,实现了VAST 4.0规范。

该项目仍在开发中,处于非常早期阶段。在这个项目中,我们将只针对VAST规范的一部分以满足我们的即时需求。我们不推荐在此时间使用此库。

特性

  • VAST 4.0 规范兼容,向后兼容Vast 3.0
  • Vast XML 解析器和验证器
  • VAST 点击和广告跟踪
  • VAST 错误跟踪

API文档

iOS Vast Client包含2个供公众使用的接口。

VastClient

从URL获取并解析VAST文件。您可以在初始化VastClient时使用VastClientOptions自定义行为。如果您想缓存VMAPModel以防止重复调用,将shouldCacheVMAPModel的值改为true。

VastClient的结果是结构体VastModel或如果是获取失败则是Error。您应该将此模型传递给VastTracker

VastTracker

处理广告四分位数的跟踪。执行广告/广告插播的跟踪。通过代理调用通知四分位状态更新。

初始化

使用VastModel结构初始化VastTracker,但始终确保使用通过代理函数调用提供的实际VastAd和其他信息——不要保留VastModel,因为VastModel中的所有信息可能不一定适用于播放等。

进度和广告跟踪

func updateProgress(time: Double) throws 初始化VastTracker后,您应使用参数 time = playhead 调用此函数以开始跟踪过程。播放头应匹配在VastTracker初始化中使用的播放头值。(如果您只想在内容之前播放预滚动广告,使用playhead = 0初始化VastTracker并使用 time = 0 调用 updateProgress(time:)

您必须在广告播放期间定期调用此函数。

您的客户端必须跟踪广告/广告插播的开始和结束。您可以通过以下方式将此信息传递给Vast Tracker

  • func trackAdBreakStart(for adBreak: VMAPAdBreak)
  • func trackAdBreakEnd(for adBreak: VMAPAdBreak)
  • func trackAdStart(withId id: String) throws
  • func trackAdComplete() throws

VastTracker将跟踪四分位更新,同时在调用func updateProgress(time: Double) throws时。

这些代理函数将在正常广告播放期间被调用,您不需要对此做出反应——它们仅用于通报信息。

func adFirstQuartile(vastTracker: VastTracker, ad: VastAd)
func adMidpoint(vastTracker: VastTracker, ad: VastAd)
func adThirdQuartile(vastTracker: VastTracker, ad: VastAd)

其他跟踪

在广告插播期间,用户或系统可能会调用其他操作。VastTracker支持跟踪这些操作

public func paused(_ val: Bool)
public func fullscreen(_ val: Bool)
public func rewind()
public func muted(_ val: Bool)
public func acceptedLinearInvitation()
public func closed()
public func clicked() -> URL?
public func clickedWithCustomAction() -> [URL]
public func error(withReason code: VastErrorCodes?)

支持标签

状态

  • 未解析
  • 已解析但当前未使用,可以被主机应用使用
  • 部分支持 - 部分支持,可能缺少边缘情况
  • 完全支持 VAST 标签
标签 状态 备注
VAST 完全 -
广告 部分 支持单个和 AdPods,AdBuffet 被视为单个广告
内联 完全 -
广告系统 已解析
广告标题 完全
印象 已解析
类别 已解析
描述 已解析
广告商 已解析
定价 已解析
调查 已解析
错误 完全 主机应用需要初始化错误跟踪
可测量印象 完全 主机应用需要在适当时间调用适当的跟踪函数
创意 完全
创意 完全
通用广告 ID 已解析
创意扩展 已解析
创意扩展元素 已解析
线性 完全
持续时间 完全
广告参数 已解析 但仅作为字符串 - 这可能是需要验证的 XML 内容
媒体文件 完全
媒体文件 已解析 由主机应用处理播放
中继 未解析
交互式创意文件 已解析
视频点击 完全 主机应用必须初始化点击跟踪事件
点击通过 完全
点击跟踪 完全
自定义点击 部分 主机应用可以通过跟踪器跟踪自定义点击,但功能未指定
图标 部分 未解析 iFrame 和 HTML 资源
图标 完全 主机应用需要处理图标放置、可见性和图标点击
图标查看跟踪 已解析 未实现查看动作跟踪
图标点击 完全
图标点击通过 完全
图标点击跟踪 完全
非线性广告 未解析 不支持子元素
伴随广告 未解析 不支持子元素
包装器 完全
VASTAdTagURI 已解析
伴随广告 已解析
伴随对象 已解析 所有子元素已解析,但 CompanionClickTracking 不支持 id 属性

入门指南

查看 VastClientWrapper 项目以获取示例实现

贡献

请阅读 CONTRIBUTING.md 了解我们的行为准则和向向我们提交拉动请求的流程。

许可

本项目采用MIT许可证 - 详细内容请参阅LICENSE文件