Firefox Enhanced Privacy Protection 正在阻止 Datalayer 推送到 Google Tag Manager

Firefox Enhanced Privacy Protection is blocking Datalayer push to Google Tag Manager

在过去的几周里,我发现我们构建和维护的网站的 Google 分析中的转化跟踪每天都有大约 20% - 40% 的偏差。

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

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

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.googleadservices.com/pagead/conversion/957837126/wcm?cc=ZZ&dn=01858439338&cl=ITVOCP2S_34Qxt7dyAM&ct_eid=2. (Reason: CORS request did not succeed).

一旦您关闭增强型隐私保护,它就会完美运行。

我用来推送到数据层的代码,如果它有任何相关性的话是:

<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>

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

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

Firefox 有此页面 https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSDidNotSucceed 试图解释我们收到错误的原因:

原因 1:

Its Certificate error : Its Google, it's not a cert error

原因 2:

HTTP to HTTPS request : HTTPS on site with Let's Encrypt SSL

原因 3:

Not permitted to access localhost : This isn't localhost and is live site

原因 4:

Server didn't respond : Again, it's Google, it responds to everything.

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

更新

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

How does Firefox choose what to block?

Content is blocked based on the domain from which it is to be loaded.

Firefox ships with a list of sites which have been identified as engaging in cross-site tracking of users. When tracking protection is enabled, Firefox blocks content from sites in the list.

Sites that track users are most commonly third-party advertising and analytics sites.

Firefox 是否严重阻止 Google Analytics on standard conversion tracking?

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

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

Firefox 已经选择了它自己的列表,其中列出了它认为是第三方跟踪脚本的内容,并且默认情况下,它现在全部阻止它们。

兴趣点

Google 显然依赖于此跟踪转化数据,因此 Chrome 在实施任何阻止与广告相关的流量方面远远落后,这是他们赚钱的地方,所以它不会赚钱感觉要挡住自己。他们目前在使用量方面拥有超过 60% 的市场份额 (https://en.wikipedia.org/wiki/Usage_share_of_web_browsers),因此您的跟踪暂时没问题。

但是,Safari 和 Firefox 都不依赖广告收入,因此都没有实施严格的跟踪措施。

Safari 和 Firefox

Firefox 竭尽全力阻止与第三方 来源相关的跟踪脚本。请注意 'third party',当广告商将他们的脚本嵌入您的网站时。

另一方面,Safari 更进一步,将在 7 天不在网站上后自动删除所有与跟踪相关的 cookie。这会破坏您的数据,因为尽管它仍会显示访问者,但他们将显示为 新访问者,而不是 回访者

结论

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

我暂时不知道有什么办法可以解决这个问题。我探索了尝试使用代理来绕过跟踪嵌入,但不知道 Google 在每个脚本调用中跟踪的方式和内容,不可能欺骗提交给分析。