通过Google Tag Manager强制使用SSL加载Google Analytics analytics.js

14
我们通过Google Tag Manager加载Google Analytics (通用版),我找不到任何方法来强制它自己通过SSL加载 analytics.js 脚本; 我们通过设置选项字段设置forceSSL,但是在应用之前,它已经通过普通HTTP加载了初始脚本。
看起来GTM会检查它是否在HTTPS URL上,如果是,则通过HTTP加载GA,但我更喜欢强制使用HTTPS。 有没有任何方法可以做到这一点?

你尝试过在高级配置选项卡中使用“始终使用SSL”吗? - Keval
似乎已经不存在了,当前的等效设置是通过字段设置forceSSL - El Yobo
我们能看到一份代码示例吗? - Mohammad Ali
根据您的需求,一个解决方案是使用自定义HTML标签,然后粘贴Google Analytics的跟踪代码。如果需要,您可以直接在代码片段中修改链接。 - tw16
@MohammadAli 这里没有涉及到代码,而是使用了 Google Tag Manager。 - El Yobo
显示剩余2条评论
1个回答

3
很不幸,查看Google Tag Manager - Dev Guide - Security底部段落提供的文档时,它写道:
“虽然Google Tag Manager中的大多数标签模板也是协议相关的,但在设置自定义标签以在安全页面上触发时,确保这些标签也是协议相关或安全非常重要。”
我浏览了GTM配置文件,看看是否有任何可用选项,但我也没有看到任何选项。关于使用forceSSL的说法,那不会起作用(正如您所发现的),因为它正在设置已加载的GA脚本中的配置,以用于发送未来的请求(例如pageview和events)。
因此,我加载了一个带有GTM和GA的页面,并查看了逻辑,直到找到从哪里加载Google Analytics。如果您看一下,我们有一个函数,实际上是根据location.protocol的值来确定是从HTTP还是HTTPS加载GA。

HTTP or HTTPS?

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

因此,长话短说,不,你不能指定只通过SSL加载Google Analytics,而不使用自定义HTML标签(然后你不幸失去了使用GA标签本身的大部分映射简单性)。


是的,我查看了加载代码,因此在我的原始问题中提到了“看起来GTM会检查它是否在HTTPS URL上,如果是,则通过HTTP加载GA”。通过自定义HTML标签进行加载很麻烦,但似乎是绕过本应该非常简单的东西的唯一方法 :-/ 感谢详细的回答,我将授予悬赏。 - El Yobo
谢谢,但我同意,这个解决方案远非理想,特别是在你可能希望其他标签也被强制切换到仅限HTTPS的情况下。 - Whit Waldo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接