我目前正在使用Google的IMA3 SDK来展示第三方广告。我的实现适用于浏览器,但不适用于iOS Safari和iOS Chrome,我会收到超时错误。
IMA3 SDK调试版的输出:
[Debug] [ 31.706s] [ima.vast.VideoAdEventTracker] dispatching event mediaLoadTimeout (bridge3.1.79_debug_en.html, line 427)
[Debug] [ 31.713s] [ima.managers.VastVideoAdsManager] Playback error: [object Object] (bridge3.1.79_debug_en.html, line 427)
[Warning] [ 31.731s] [ima.common.ErrorUtils] Error play dispatched: AdError 402: VAST media file loading reached a timeout of 15 seconds. (bridge3.1.79_debug_en.html, line 427)
我目前假设iOS的VAST可能与Desktop或Android不同,这就是我看到这个超时错误的原因。但是,我无法在Safari的Web Inspector>>时间轴>>网络请求选项卡中找到网络请求(发送到http://shadow01.yumenetworks.com/...
。(我也无法在OSX上的Safari上找到它,但它适用于Safari / OSX。令人沮丧的是我可以在Chrome开发工具中找到网络请求和响应,但我无法使用Chrome开发工具进行iOS调试。)
这就是我按照Google IMA3 SDK API:
设置AdRequest的方式sendAdRequest: (networkURL) ->
@adsRequest = new google.ima.AdsRequest()
@adsRequest.adTagUrl = "http://shadow01.yumenetworks.com/..."
@adsRequest.adType = "video"
@adsRequest.linearAdSlotWidth = 480
@adsRequest.linearAdSlotHeight = 360
@adsLoader.requestAds(@adsRequest)
有时我会看到广告视频的拇指/静止显示,但我无法播放视频,过了一段时间后,我收到了超时错误。有时在视频播放器中没有任何加载,我看到超时错误。
任何人都可以了解广告视频无法在iOS浏览器上运行的原因吗?我是html5视频和VAST业务的新手。提前致谢!
在控制台中进行更多调试和播放:
设置AdsManager后:
我尝试直接在HTML5视频播放器中插入来自VAST对象的其中一个视频,并且播放正常,所以我假设我对VAST对象有一些问题,或IMA3如何处理事情。
答案 0 :(得分:0)
问题是我在错误的地方调用AdDisplayContainer.initialize()(而不是在检测到点击事件后)。否则,iOS会阻止视频播放。
答案 1 :(得分:0)
我发现的东西,首先你不能在页面中实现多个视频元素,所以你的IMA3录像带不会出现在移动设备上播放视频。 正如您所说,您需要从视频标记中手动运行视频广告。
可以帮助您避免超时的内容(默认为15秒,这还不足以在移动设备上播放视频广告)错误是:
var adsRenderingSettings = new google.ima.AdsRenderingSettings();
adsRenderingSettings.loadVideoTimeout = 100000;
adsManagerLoadedEvent.getAdsManager({currentTime: 0}, adsRenderingSettings); // calling the adsManager
https://developers.google.com/interactive-media-ads/docs/sdks/html5/v3/apis#ima.AdsRenderingSettings
祝你好运