我创建了一个类似于 Google Analytics 的脚本(在加载时创建脚本,将数据推送到数组,在托管脚本中用于将跟踪数据存储在数据库中)用于 Facebook 的 Instant Article,以便我可以在内部跟踪统计信息我的软件。但问题是 Facebook 给出了关于我的脚本的 CSP 错误:
Refused to load the script 'https://My-Domain.com/js/w_analytics.js'
because it violates the following Content Security Policy directive:
"script-src *.facebook.com *.fbcdn.net *.facebook.net *.google-analytics.com
*.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:*
'unsafe-inline' 'unsafe-eval' fbstatic-a.akamaihd.net
fbcdn-static-b-a.akamaihd.net *.atlassolutions.com blob: data: 'self'".
Instant Article 标记在预期代码块中的脚本是正确的:
<figure class="op-tracker">
<iframe> [code] </iframe>
</figure>
我目前正在通过 Facebook 的调试页面进行调试:http ://ww.ia-tracker.fbsbx.com/instant_article_test?url=<share_url>
奇怪的是,有时我确实会从即时文章中获得一些统计信息到我的数据库中,但不是始终如一或在每个页面视图中。
Facebook 文档说您可以为您的跟踪器创建一个直接 URL,如下所示:
<figure class="op-tracker">
<iframe src="http://my-url-tracker.com/">
<!--
The request to http://my-url-tracker.com/ will be rewritten to
include the following query parameters:
ia_share_url: The URL the user shared
ia_title: The article title
-->
</iframe>
</figure>
但问题是它说它只发送这两个参数,当我自己的跟踪器获取我的软件所需的更多信息(例如 UA 字符串)时,所以理想情况下我想避免这种方法。
有没有其他人有过为此使用自定义跟踪脚本的经验?