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

問題は次のとおりです。

XML が有効であることを確認するために、この VAST-Validator を使用しています: https://developers.google.com/interactive-media-ads/docs/vastinspector_dual

最初の URL または 2 番目の URL を VAST タグ テキストボックスに貼り付けて、[広告のテスト] ボタンをクリックするだけです。

ビデオ プレーヤーの下には、ログ コンソールがあります。ログを見ると、最初のリンクではエラーが返され、2 番目のリンクでは問題なく動作することがわかります。

XML を動的に提供することと、XML ファイルを提供することの違いを特定することはできません。

4

1 に答える 1