Javascript Firefox增强的隐私保护正在阻止数据层推送到Google Tag Manager

Javascript Firefox增强的隐私保护正在阻止数据层推送到Google Tag Manager,javascript,wordpress,firefox,cors,google-datalayer,Javascript,Wordpress,Firefox,Cors,Google Datalayer,在过去的几周里,我意识到我们建立和维护的一个网站在谷歌分析中的转化率跟踪每天下降了20%-40% 当在除Firefox以外的任何浏览器中进行测试时,一切都正常,您可以看到转换立即进入分析 但是,在Firefox中,当您打开增强隐私保护时(现在默认打开),会出现以下错误: 已阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:CORS请求未成功) 一旦您关闭增强的隐私保护,它就会完美工作 我用来推送到数据层的代码,如果它与以下内容相关: <script type="text/javas

在过去的几周里,我意识到我们建立和维护的一个网站在谷歌分析中的转化率跟踪每天下降了20%-40%

当在除Firefox以外的任何浏览器中进行测试时,一切都正常,您可以看到转换立即进入分析

但是,在Firefox中,当您打开增强隐私保护时(现在默认打开),会出现以下错误:

已阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:CORS请求未成功)

一旦您关闭增强的隐私保护,它就会完美工作

我用来推送到数据层的代码,如果它与以下内容相关:

<script type="text/javascript">
  document.addEventListener( 'wpcf7mailsent', function( event ) {
   window.dataLayer.push({
      "event" : "cf7submission",
      "eventAction": "FormSubmission",
      "eventCategory": "Contact Form Submission",
      "eventCallback" : function() {
        // Firefox never gets to run this callback to redirect page - which is what triggered further investigation.
        window.location.href = "https://www.domain.co.uk/thank-you/"; 
        return false;
      },
      "eventTimeout" : 2000 // I had to add this in so that it still redirects to thank you when datalayer push fails.
    });    
  }, false );
</script>

document.addEventListener('wpcf7mailsent',函数(事件){
window.dataLayer.push({
“事件”:“cf7submission”,
“eventAction”:“FormSubmission”,
“事件类别”:“联系人表单提交”,
“eventCallback”:函数(){
//Firefox永远无法运行此回调来重定向页面,这正是引发进一步调查的原因。
window.location.href=”https://www.domain.co.uk/thank-you/"; 
返回false;
},
“eventTimeout”:2000//我必须将其添加进去,这样当数据层推送失败时,它仍然会重定向以感谢您。
});    
},假);
事件监听器只是检查站点何时发送了电子邮件,其余的是将其推入数据层进行跟踪,然后在完成后重定向到感谢页面

在我看来,这绝对不是一个
CORS
相关的错误,因为请求来自具有正确头的本地脚本。代码可以在所有其他浏览器中正常工作

Firefox有此页面试图解释出现错误的原因:

理由1:

它的证书错误:它的谷歌,它不是一个证书错误

理由2:

HTTP到HTTPS请求:使用让我们加密SSL的站点HTTPS

理由3:

不允许访问本地主机:这不是本地主机,是活动站点

理由4:

服务器并没有响应:再一次,是谷歌,它对一切都有响应

TLDR: Firefox在启用“增强隐私”功能时会阻止数据层推送,但应该允许标准转换跟踪脚本与他们自己的文档一起运行。为什么它会阻止我们,我需要什么代码来绕过它

更新

我找到了这个链接,上面写着:

Firefox如何选择要阻止的内容?

根据要从中加载内容的域阻止内容

Firefox附带了一个被识别为 参与用户的跨站点跟踪。当需要跟踪保护时 启用后,Firefox会阻止列表中站点的内容

跟踪用户的网站通常是第三方广告和 分析网站


Firefox现在在标准转换跟踪方面严重阻碍了谷歌分析吗?

在某种程度上,我的原始假设似乎是正确的。 Firefox现在默认情况下不会阻止所有分析访问,但它会阻止任何试图发送与广告相关的转换或跟踪代码的广告相关内容

因此,如果您试图在完成与广告相关的活动后启动目标,它将被阻止,而其他与跟踪相关的脚本将运行

Firefox已经选择了自己的第三方跟踪脚本列表,默认情况下,它现在会阻止所有这些脚本

有趣的点

谷歌显然依赖于这种跟踪转换数据,因此Chrome在阻止与广告相关的流量方面远远落后,这是他们赚钱的地方,所以阻止他们自己是没有意义的。他们目前在使用率()方面拥有超过60%的市场份额,因此您的跟踪目前还可以

然而,Safari和Firefox都不依赖广告收入,它们都实施了严格的跟踪措施

Safari和Firefox

Firefox竭尽全力阻止跟踪与第三方源相关的脚本。请注意“第三方”,即广告商在您的网站上嵌入其脚本的时候

另一方面,Safari则更进一步,在7天后将自动删除所有与跟踪相关的cookie。这将使您的数据中断,因为尽管它仍然会显示访客,但他们将显示为新访客,而不是返回访客

结论

现在,我觉得这是网站所有者传统转换和广告跟踪结束的开始,随着这些浏览器的变化开始产生影响,不久的将来将会发生一些变化


我现在不知道有什么办法可以解决这个问题。我曾尝试使用代理绕过跟踪嵌入,但在不知道谷歌如何跟踪以及在每次脚本调用中跟踪什么的情况下,不可能将提交的内容欺骗到analytics。

网站上可能存在相关问题。所以你可能想在那里评论,或者考虑在@ SsiDeWoSbar上提交一个bug。我开始认为整个GA块是故意的,没有任何解决办法。我问自己的问题是,如果在浏览器中将用户隐私/选项设置为默认值,那么用户在没有选择的情况下不会被跟踪,那么我们是否必须尊重用户隐私/选项?或者是否有一种解决方法,可以存储该动作,并通过GA失败时触发的自定义功能将其推送到分析,从而彻底颠覆Firefox。考虑到它的摇摇欲坠,所以现在就调查一下。嘿,伙计,我遇到了和你一样的问题。基于t