Firefox 增强隐私保护阻止 Datalayer 推送到 Google 跟踪代码管理器

Unb*_*ter 5 javascript wordpress firefox cors google-datalayer

在过去的几周里,我发现我们建立和维护的一个网站的 Google Analytics 中的转化跟踪每天都会下降约 20% - 40%。

在除 Firefox 之外的任何浏览器中进行测试时,一切正常,您可以看到转化立即推送到 Analytics。

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

跨源请求被阻止:同源策略不允许读取https://www.googleadservices.com/pagead/conversion/957837126/wcm?cc=ZZ&dn=01858439338&cl=ITVOCP2S_34Qxt7dyAM&ct_eid=2处的远程资源。(原因: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>
Run Code Online (Sandbox Code Playgroud)

事件监听器只是检查网站何时发送了电子邮件,然后剩下的就是推送到数据层进行跟踪,完成后重定向到感谢页面。

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

Firefox 有此页面https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSDidNotSucceed来尝试解释为什么我们会收到错误:

原因一:

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

原因2:

HTTP 到 HTTPS 请求:使用 Let's Encrypt SSL 进行现场 HTTPS

原因三:

不允许访问本地主机:这不是本地主机,而是实时站点

原因四:

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

TLDR:当启用增强隐私时,Firefox 会阻止数据层推送,但应该允许标准转换跟踪脚本按照其自己的文档运行。为什么它会阻止我们?我需要什么代码来绕过它?

更新

我发现这个链接https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Privacy/Tracking_Protection上面写着:

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

根据加载内容的域来阻止内容。

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

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

Firefox 现在是否严重阻止 Google Analytics 进行标准转化跟踪?

Unb*_*ter 4

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

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

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

有趣的点

谷歌显然依赖于这种跟踪转化数据,因此 Chrome 在实施任何阻止广告相关流量的措施方面远远落后,这是他们赚钱的地方,所以阻止自己是没有意义的。目前,他们在使用方面拥有超过 60% 的市场份额 ( https://en.wikipedia.org/wiki/Usage_share_of_web_browsers ),因此您的跟踪目前还可以。

然而,Safari和Firefox这两款都不依赖广告收入的浏览器都没有实施严格的跟踪措施。

Safari 和火狐浏览器

Firefox 全力以赴阻止与第三方来源相关的跟踪脚本。请注意“第三方”,即广告商将其脚本嵌入到您的网站上。

另一方面,Safari 则更进一步,在 7 天未访问该网站后,将自动删除所有与跟踪相关的 Cookie。这将极大地影响您的数据,因为尽管它仍然会显示访问者,但他们会显示为新访问者而不是回访者

结论

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

我现在不知道有什么办法可以解决这个问题。我尝试尝试使用代理来绕过跟踪嵌入,但如果不知道 Google 如何跟踪每个脚本调用以及跟踪什么内容,就不可能欺骗分析提交。