Discourse 设置 GTM

随着网站的持续运行,我们可能需要在网站上面添加很多其他网站的标签来进行网站的校验。

一个比较好的方法就是设置 GTM,这样能够让你所有的标签在一个地方设置而不需要在 Discourse 中安装插件等。

GTM 是 Google Tag Manager 的简称。

Discourse 设置 GTM

在 Discourse 的后台中,搜索关键字 : gtm

在空白的地方输入 GTM 的标签变量。这个变量是在你 Google 的 Google Tag Manager 设置的。

访问地址:https://tagmanager.google.com/#/home

找到你定义 Container 名称后,你会在后面看到一个容器 ID。

这个 ID 就是你需要输入的 ID。

输入成功后保存。

修改 content security policy script src

在默认情况下 content security policy script src 是启用的,这个将会导致 Discourse 没有办法执行需要的 Java Script

如果你想严格区分,请将下面的网站添加到信任的网站中:

针对 Google Tag Manager

  • https://tagmanager.google.com/
  • https://www.googletagmanager.com/

如果你使用 Google Analytics

  • https://www.google-analytics.com/
  • ‘unsafe-inline’

如果你使用 Advertising 特性或者 AdWords 整合,请添加:

  • https://stats.g.doubleclick.net
  • https://www.google.com

同时,为了避免可能有其他的问题,你可以直接添加 https:

需要注意的是:https: 后面有一个冒号的,不要忘记了

如果你遇到了 ‘unsafe-inline’ 的错误。

那么你还需要把 ‘unsafe-inline’ 添加到信任的链接列表中。

我们的完整配置如下图:

完成上面的设置后,你的 Tag Manger 应该就可以在 Discourse 上使用了。

检查

为了确定配置的正确,在完成上面的配置后,重新访问你的 Discourse 网站,然后刷新页面,同时 F12 查看源代码。

如果你没有看到提示的 JS 错误话,则表明配置已经成功了。

虽然在上面的图片中看到了错误,这个错误有可能是因为 Google 广告载入的时候的错误,这个不属于 JS 错误。

随着不同的类型广告载入,这个错误就不会存在了。