交互式ad是一种可以让用户与之互动的ad,比如做成banner形态,用户按遥控器左右进行左右翻页等
如果是player将事件传到cp server,让cp server根据用户操作,渲染出不同的视频,再传给client,那肯定是不现实的,而且肯定也很慢。所以一般采用的方式是两层,一层和普通广告流一样,正常的播放广告视频片段,称为in-stream ad;一层直接覆盖在广告上,只包含可交互的部分(一般是一个iframe),称为companion ad。
既然使用iframe,还是需要有一个类似于浏览器的环境来进行解析渲染的,Brightline就提供了这个功能:https://www.brightline.tv/
需要注意的是,虽然Brightline声明了他支持Android TV,但这里不包含Google TV (ChromeCast)。在google tv上实现此功能可以尝试使用webview引入js的方式
以一个典型的交互式ad为例,client拿到stream_url后进行获取playlist.m3u8文件,里面有一个个小段,0.m3u8 1.m3u8等等,对于每一个小段m3u8的uri,其中有session的id,根据session id可以计算出该session所对应的交互式广告资源的track地址,客户端再轮询track地址,当此track返回的内容不为空时,所获取的资源就是brightline广告的内容
其中需要注意的点是,虽然brightline可以帮助我们将广告显示出来,但是显示和隐藏的时机需要自己去控制。广告starttime和duration的获取可以通过调用AWS Media Tailor api进行
BrightLine Guide: https://cdn-media.brightline.tv/sdk/gen2/guides/webkit.html