我正试图礼让加载通过Google Doubleclick Studio投放的HTML5广告素材的视频,并遇到一些问题
<video id="myVideo">
<source src="video.mp4" type="video/mp4">
</video>
这很好
现在,当我尝试动态添加源代码时
'HTML'
<video id="myVideo">
</video>
'JS'
source = document.createElement('source')
source.setAttribute('type', 'video/mp4')
source.setAttribute('src', 'video.mp4')
video.appendChild(source)
Doubleclick会给我这个错误
GET https://s0.2mdn.net/ads/richmedia/studio/pv2/60863002/20181009012818318/video.mp4 404
我怀疑这与Doubleclick在初始加载期间存储资产的位置有关,因为当我尝试使用第一种方法记录'src'属性时,会遇到这种绕口令:
https://gcdn.2mdn.net/videoplayback/id/0173366851186f65/itag/15/source/doubleclick/ratebypass/yes/mime/video%2Fmp4/acao/yes/ip/0.0.0.0/ipbits/0/expire/3683521965/sparams/id,itag,source,ratebypass,mime,acao,ipbits,expire/signature/79EA6270A42AF05325924BB711068AE6A1943312.29D8F6E2DB82F38750A45593094A36C9BBC74D04/key/ck2/file/file.mp4
这说明了404,但是,我的本地PC上没有此问题。
如何告诉Doubleclick在哪里可以找到我的video.mp4文件,这样我就可以在初始加载后加载它。
答案 0 :(得分:0)
将视频上传到DoubleClick Studio后,其类型在“资源”列表中列为视频捆绑包。 DoubleClick实际上将transcodes the video转换为多种格式并自动进行比特率
。在生产模式下,当您使用横幅中的相对URL请求视频时,系统会根据您的体验返回404。
DoubleClick Enabler SDK包含一个名为Enabler.getUrl
的方法。这仅适用于实时模式(包括DC Studio预览模式),并且将从其CDN返回绝对URL。在本地进行测试时,您仍然需要像平常一样引用该文件。
为解决此问题,SDK中还有另一种称为Enabler.isServingInLiveEnvironment
的方法,可让您确定是否处于“实时”模式。
下面是结合两个SDK调用以请求当前环境的正确视频URL的示例。
function getVideoUrl(filename) {
if (Enabler.isServingInLiveEnvironment()) {
return Enabler.getUrl(filename);
} else {
return filename;
}
}
myVideo.src = getVideoUrl('myVideo.mp4');