GTM 使用错误

大家好,

当我们在应用的设置中使用预配置的 gtm container id(例如 GTM-XYZXYZ),并且正确添加了特定域名到白名单(根据 Integrating Google Tag Manager with Google Analytics 手册)后,我在加载和获取由 gtm.js 核心脚本调用的 https://d1i8vaoc4ts7hj.cloudfront.net/5e3fcb4db448a78908a4671b6fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js 脚本时遇到了问题,报错信息为 GET https://d1i8vaoc4ts7hj.cloudfront.net/5e3fcb4db448a78908a4671b6fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js net::ERR_FAILED 以及 {message: "remote script failed https://d1i8vaoc4ts7hj.cloudf…fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js"}

另一个类似的问题出现在 NetworkFirst.mjs 中,报错为 (Uncaught (in promise) no-response: no-response :: [{"url":"https://d1i8vaoc4ts7hj.cloudfront.net/5e3fcb4db448a78908a4671b6fb685c7acd13fa3_10854/dist/js-extra/VisitorAPI.js"}])

有人能给我一些建议吗?

非常感谢。
T

您能尝试按照 Google 的支持文档 所述,添加 'unsafe-inline' 吗?如果可行,我可以将其加入我们的操作指南中。

4 个赞

所以我应该在 内容安全策略 script-src 数组中插入 'unsafe-inline' https://www.googletagmanager.com 吗?

也许我误解了你的回复。但这对我来说不起作用。

是的,他们的文档确实说明需要添加这些内容。

如果这还不够宽松,您可以尝试允许所有以“https”开头的内容。

2 个赞

我最近遇到了这个问题,我是这样解决的。我不太明白它为什么会出现在那里。我添加了 https:unsafe-inline。如此宽松的设定似乎绕过了某些看似重要的内容,但这确实解决了问题。

如果 Google 要求这样做,那么该插件应该自动完成。如果我的网站出错了,我会认为每个网站都会出错(当它们再次升级时?)。

1 个赞

GTM 支持不是一个插件,而是 Discourse 核心中的一个设置。目前该设置的说明中有一条关于 CSP 的提示。

但我猜您想到的是广告插件,那是另一回事。该插件包含多种广告选项,安装插件时它们默认全部禁用。每个设置项可能都应该添加一条关于 CSP 的提示,以便用户了解相关情况。

2 个赞

我也这么觉得!我一直尽量不去了解这些。我不清楚 GTM、AdSense 和 DFP 之间的区别。:wink:

也许吧。我只知道某个网站原本 Google 广告运行正常,但升级后却停止工作了,结果怪到了我头上。

如果 Google [广告管理器|dfp|广告插件|gtm] 因为 [Google|Discourse] 的某些变更而需要调整 CSP 设置,那能否考虑添加一个类似那种烦人的仪表盘通知来提醒呢?