【问题标题】:Google IMA3 SDK, VAST on iOS - dispatching event mediaLoadTimeoutGoogle IMA3 SDK,iOS 上的 VAST - 调度事件 mediaLoadTimeout
【发布时间】:2023-03-14 05:13:01
【问题描述】:

我目前正在使用 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 不同,这就是我看到此超时错误的原因。但是,我找不到网络请求(在 Safari 的 Web Inspector >> Timeline >> Network Requests 选项卡中向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 后:

  1. @adsManager.start() => 我可以看到视频的静止画面,但视频无法播放(根据 API,如果我调用 start(),视频应该开始播放)
  2. @adsManager.play() => 最初没有任何反应,但之后我收到 15 秒超时错误消息。

我尝试将 VAST 对象中的一个视频直接粘贴到 HTML5 视频播放器中,并且播放效果很好,因此我假设 VAST 对象或 IMA3 处理问题的方式存在一些问题。

【问题讨论】:

  • 我目前正在使用 Charles 并从网络响应中检查 VAST 对象,但我找不到任何明显的东西。 (视频长度合适,我得到 mp4 视频,我要求 mp4 视频。)

标签: ios html mobile-safari vast


【解决方案1】:

问题是我在错误的地方调用了 AdDisplayContainer.initialize()(不是在检测到点击事件之后)。否则,iOS 会阻止视频播放。

【讨论】:

    【解决方案2】:

    我发现,首先你不能在一个页面中实现多个视频元素,因此你的 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

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 2013-02-27
      • 2015-11-09
      • 1970-01-01
      相关资源
      最近更新 更多