我脑子里一直纠结着这个问题:
以下是 nginx 上的 XML 文件的链接: http://tag.sprtad.com/files/vast.xml
这是 Apache 上的 XML 文件的链接 http://serve.sprtad.com/test.xml
此 XML 文件是一种配置文件,可以在此处进行测试: https://developers.google.com/interactive-media-ads/docs/vastinspector_dual
只需将上面的每个链接粘贴到文本框中并点击“测试广告”即可。下面您可以看到“事件”日志。
NGINX 链接,不起作用,测试人员返回:
(2:36:01 PM) Ads requested
(2:36:09 PM) adError Ad error (code 301): VAST wrapper redirect unwrapping timeout.
(2:36:09 PM) Error: VAST wrapper redirect unwrapping timeout.
APACHE 链接确实有效,测试人员返回:
(2:45:07 PM) Ads requested
(2:45:08 PM) adsManagerLoaded
(2:45:08 PM) adMetadata
(2:45:09 PM) loaded
(2:45:10 PM) Content Pause Requested
(2:45:10 PM) Started
(2:45:10 PM) impression
处理从两个服务器返回的 XML 有何不同?
答案1
如果发送 http/1.0,则看起来会进行重定向。
也许您可以提供一些 nginx 的配置详细信息来验证潜在的错误在哪里。
问候,约瑟夫
答案2
您的 nginx 服务器正在输出制表符,广告测试器可能无法处理此问题。如果您通过 od 管道传输此问题,您将看到额外的 \t 字符:
$ curl -s http://serve.sprtad.com/test.xml | od -c
上面没有显示 \t 字符,但是下面的有:
$ curl -s 'http://tag.sprtad.com/files/vast.xml' | od -c
nginx 和 apache 可能以不同的方式处理它,但无论哪种方式,请尝试从源中删除制表符,并将其替换为更兼容的空格字符。