我目前正在使用 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 可能与桌面或 Android 不同,这就是我看到此超时错误的原因。但是,我找不到网络请求(http://shadow01.yumenetworks.com/...
在 Safari 的 Web Inspector >> Timeline >> Network Requests 选项卡中进行。(我也无法在 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 后:
- @adsManager.start() => 我可以看到视频的静止画面,但视频无法播放(根据 API,如果我调用 start(),视频应该开始播放)
- @adsManager.play() => 最初没有任何反应,但之后我收到 15 秒超时错误消息。
我尝试将 VAST 对象中的一个视频直接粘贴到 HTML5 视频播放器中,并且播放效果很好,因此我假设 VAST 对象或 IMA3 处理事物的方式存在一些问题。