通过 Google 标签管理器在 Google Analytics analytics.js 上强制加载 SSL

Force SSL on Google Analytics analytics.js load via Google Tag Manager

我们通过 Google 跟踪代码管理器加载 Google Analytics(通用),我找不到任何方法强制它通过 SSL 加载 analytics.js 脚本本身;我们通过字段设置 forceSSL 来设置选项,但是当它应用时它已经 已经 通过普通 HTTP 加载了初始脚本。

看起来 GTM 会检查它是否在 HTTPS URL 上,如果是,然后通过 HTTP 加载 GA,但我更愿意强制它通过 HTTPS 加载。有什么办法吗?

不幸的是,查看 Google Tag Manager - Dev Guide - Security 最底部段落中的文档,它显示:

While most of the tag templates in Google Tag Manager are also protocol relative, it's important to make sure that, when setting up custom tags to fire on secure pages, those tags are also either protocol relative or secure.

我翻阅了 GTM 配置文件以查看是否有任何配置选项暴露,但我也没有看到任何配置选项。对于你关于使用 forceSSL 的声明,这不会做任何事情(正如你发现的那样),因为它在 already-loaded GA 脚本中设置一个配置用于发送未来的请求(例如页面浏览和事件)。

因此,我使用 GA 加载了一个安装了 GTM 的页面,并查看了逻辑,直到找到 Google Analytics 的加载位置。如果你看一下,我们有一个函数,它基本上决定是根据 location.protocol 的值从 HTTP 还是 HTTPS 加载 GA,如下面的屏幕截图所示:

这意味着除非您通过自定义 HTML 标记加载 GA 标记,否则您将无法将其更改为明确仅从 HTTPS 加载。您提到您正在考虑直接在页面上托管 GA - 您将在此处粘贴与此自定义 HTML 标签中完全相同的代码段(确保它被标签包围,否则不会做任何事情),如果您已经在使用 GTM 做其他事情,那么没有理由将您的供应商逻辑留在多个地方。

所以,长话短说,不,你不能指定你只想通过 SSL 加载 Google Analytics,而不求助于使用自定义 HTML 标签(不幸的是你失去了很多使用 GA 标签本身的映射简单性。