Firefox 跟踪保护

此页面描述了 Firefox 内置跟踪保护的工作原理以及它如何影响第三方内容的加载。了解跟踪保护的工作原理将有助于确保当您的访问者启用它时,您的网站能够按预期运行。

什么是跟踪保护?

Firefox 桌面版和 Firefox Android 版都包含内置跟踪保护。在隐私浏览窗口(在 Firefox Android 版中是标签页)中,Firefox 会阻止从跟踪用户跨站点的域名加载的内容(即,通过 第三方 Cookie)。

如果被阻止的内容是页面布局的一部分,用户可能会注意到 Firefox 阻止了这些加载所导致的布局问题。有时用户根本不会注意到,因为页面网格的工作方式使得其他页面元素会滑动进来填补被阻止元素留下的空白。

当 Firefox 阻止内容时,它会在 Web 控制台中记录类似这样的消息

The resource at "http://some/url" was blocked because tracking protection is enabled.

请注意,使用 Firefox Android 版,您可以通过远程调试器访问控制台输出。

Page information showing possible blocked content.

点击地址栏中的 ⓘ 符号以查看有关当前加载页面的信息。出现的弹出窗口将通知您何时内容已被阻止。您还可以通过访问跟踪设置来完全禁用跟踪保护(如果需要)。

如果存在跟踪 Cookie,您可以通过点击上图中的“阻止跟踪 Cookie”来查看列表,以显示以下弹出窗口

Page information showing cookies and site data.

您可以点击“管理内容阻止”来更改阻止设置

There are 3 levels of content blocking, standard, strict, or custom, which can be set to always on or only on when firefox is set to block known trackers.

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

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

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

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

这对您的网站意味着什么?

主要意味着,当跟踪保护启用时:

  • 来自第三方跟踪器的内容将对用户不可见。
  • 您的网站将无法使用参与跟踪的第三方广告或分析服务。

更微妙的是,如果您的网站的其他部分依赖于加载跟踪器,那么当启用跟踪保护时,这些部分也将中断。例如,如果您的网站包含一个在加载来自跟踪网站的内容时运行的回调,那么该回调将不会执行。

例如,您不应通过以下方式使用 Google Analytics:

js
function trackLink(url, event) {
  event.preventDefault();
  ga("send", "event", "outbound", "click", url, {
    transport: "beacon",
    hitCallback() {
      document.location = url;
    },
  });
}

document.querySelectorAll("a").forEach((link) => {
  link.addEventListener("click", (event) => {
    trackLink(link.href, event);
  });
});

相反,您应该通过检查 ga 对象是否已初始化来考虑 Google Analytics 缺失的情况:

js
function trackLink(url, event) {
  event.preventDefault();
  if (window.ga && ga.loaded) {
    ga("send", "event", "outbound", "click", url, {
      transport: "beacon",
      hitCallback() {
        document.location = url;
      },
    });
  } else {
    document.location = url;
  }
}

document.querySelectorAll("a").forEach((link) => {
  link.addEventListener("click", (event) => {
    trackLink(link.href, event);
  });
});

有关此技术的更多信息,请访问 Google Analytics、隐私和事件跟踪

注意: 无论如何,以这种方式依赖第三方都不是一个好做法,因为如果第三方缓慢或不可用,或者跟踪器被附加组件阻止,您的网站可能会中断。