0

所以这是我过去几天一直在思考的一个问题:

我有一个 nodeJS 应用程序,它执行以下操作:

var VAST = require('vast-xml');
var vast = new VAST();

vast.version = "2.0";

var ad=vast.attachAd({
      id : 1
    , structure : 'wrapper'
    , sequence : 99
    , Error: 'http://error.err'
    , VASTAdTagURI : 'http://demo.tremormedia.com/proddev/vast/vast_inline_linear.xml'
    , AdTitle : 'Common name of the ad'
    , AdSystem : { name: 'Test Ad Server', version : '1.0' }
  });

  response.setHeader('Content-Length', Buffer.byteLength(vast.xml()));
  response.setHeader('Connection', 'close');

  response.writeHead( 200, {'content-type': 'text/xml; charset=UTF-8'} );

  response.end(vast.xml());

这是调用上述代码的 URL: http://tag.sprtad.com/?ttj=4 返回的 XML 是:

<VAST version="2.0">
<Ad id="1" sequence="99">
  <Wrapper>
  <AdSystem version="1.0">Test Ad Server</AdSystem>
  <VASTAdTagURI>
    <![CDATA[http://demo.tremormedia.com/proddev/vast/vast_inline_linear.xml ]]>
  </VASTAdTagURI>
  <Error>
     <![CDATA[http://error.err ]]>
  </Error>
  <Creatives />
  </Wrapper>
  </Ad>
</VAST>

现在,这是一个返回完全相同 XML的文件:http: //serve.sprtad.com/test.xml

这是问题所在:

我正在使用这个 VAST-Validator 来确保 XML 有效: https ://developers.google.com/interactive-media-ads/docs/vastinspector_dual

只需将第一个 URL 或第二个 URL 粘贴到 VAST 标记文本框中,然后点击“测试广告”按钮。

在视频播放器下方,有一个日志控制台。在日志中,您将能够看到对于第一个链接,它返回一个错误,对于第二个链接,它工作正常!

我无法确定动态提供 XML 与提供 XML 文件之间的区别。

4

1 回答 1

0

验证器为http://tag.sprtad.com/?ttj=4提供网络错误,并且 XML 在 VASTAdTagURI 节点内包含一个单引号:

' http://vpc.altitude-arena.c ...

没有详细测试,但希望这是一个很好的提示:-)

于 2015-05-07T16:32:13.387 回答