javascript - Firefox 增强的隐私保护正在阻止将数据层推送到谷歌标签管理器

标签 javascript wordpress firefox cors google-datalayer

在过去的几周里,我意识到我们构建和维护的网站在谷歌分析中的转化跟踪每天下降了大约 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相关错误,因为请求来自我们的本地脚本,并且 header 正确。代码在所有其他浏览器中都可以正常工作。

火狐有这个页面https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSDidNotSucceed试图解释为什么我们会收到错误:

原因一:

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 会阻止数据层推送,但应该允许标准转换跟踪脚本根据他们自己的文档运行。为什么它会阻止我们,我需要什么代码来绕过它?

更新

我找到了这个链接 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?

最佳答案

在某种程度上,我最初的假设似乎是正确的。
Firefox 现在默认情况下不会阻止所有分析访问,但它会阻止任何与广告相关的尝试发送与广告相关的转化或跟踪代码的内容。
因此,如果您试图在完成与广告相关的事件后触发目标,它将被阻止,而其他与跟踪相关的脚本将被运行。
Firefox 已经选择了它自己认为是第三方跟踪脚本的列表,并且默认情况下,它现在将它们全部阻止。
趣点
谷歌显然依赖于这种跟踪转换数据,因此 Chrome 在实现任何阻止与广告相关的流量方面远远落后,这是他们赚钱的地方,所以阻止自己是没有意义的。他们目前在使用方面拥有超过 60% 的市场份额 (https://en.wikipedia.org/wiki/Usage_share_of_web_browsers),因此您的跟踪现在可以了。
然而,不依赖广告收入的 Safari 和 Firefox 都实现了严格的跟踪措施。
Safari 和火狐
Firefox 全力以赴并阻止与 相关的跟踪脚本第三方来源。请注意“第三方”,即广告客户将其脚本嵌入您的网站时。
另一方面,Safari 更进了一步,将在 7 天不在网站后自动删除所有与跟踪相关的 cookie。这将关闭您的数据,因为尽管它仍会显示访问者,但它们将显示为 新访客而不是 回访者 .
结论
现在,我觉得这是网站所有者传统转换和广告跟踪结束的开始,随着这些浏览器的变化开始产生影响,一些事情将在不久的将来发生变化。
我现在不知道有什么办法可以解决这个问题。我探索了尝试使用代理来绕过跟踪嵌入,但不知道 Google 在每个脚本调用上跟踪的方式和内容,不可能欺骗提交到分析。

关于javascript - Firefox 增强的隐私保护正在阻止将数据层推送到谷歌标签管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62478071/

相关文章:

javascript - Jquery/Javascript 和 Css 条件不适用于 firefox 和 IE。它适用于 Chrome

javascript - 图像未从我的 json 文件加载

javascript - 为什么我对 ajax 请求得到空白响应?

php - 根据发布日期对动态 html 元素进行排序和 float

php - wordpress 中的自定义导航栏。如何正确设置样式?

firefox - Firefox 在文件系统中的什么位置存储已保存的密码?

JavaScript:使用设置标题从 JavaScript 重新加载页面

javascript - Node - 无数据创建的 ES 索引

php - WP_Query 中的多个meta_key

java - 是否可以在保存的密码中创建 Firefox 配置文件和密码?