将第三方 JavaScript 代理为第一方 JavaScript(以及对分析的潜在影响)

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

首先,看看使用 Cloudflare Worker 代理另一个 URL 是多么容易

addEventListener("fetch", (event) => {
  event.respondWith(
     fetch("https://css-tricks.cn")
  );
});

它没有任何错误处理或任何东西,但嘿,它可以工作

现在想象一下,一些网站如何为您提供 JavaScript 的 URL 来执行任务。 CodePen 为我们的嵌入式 Pens 功能执行此操作。

该 URL 是

https://cpwebassets.codepen.io/assets/embed/ei.js

我可以像这样轻松地代理该 URL

不做任何特殊操作,它甚至会提供正确的 content-type 标头等等

Cloudflare Workers 为您提供了他们的 URL,这非常不错,但您也可以非常轻松地在您自己的网站上将“添加路由”添加到 Worker。 所以,在这里,我将在 CSS-Tricks 上创建一个 URL 来提供该 Worker。 看,它就像它所说的一样

CSS-Tricks.com 提供了一个 JavaScript 文件,实际上只是从 CodePen 代理的。 我可能不会让这个 URL 保持活动状态,它只是一个演示。

因此,现在,我可以做……。

<script src="/super-real-url/codepen-embeds.js"></script>

直接来自 css-tricks.com,它将加载该 JavaScript。 它将看起来像第一方 JavaScript,但实际上它是代理的第三方 JavaScript。

为什么? 好吧,没有人会阻止您的第一方 JavaScript。 如果你有点狡猾,你可以用这种方式运行所有用于广告的脚本,以避免广告拦截器。 我对此有复杂的心情。 我觉得如果你想屏蔽广告,你应该能够屏蔽广告,而无需追踪特定网站上的特定脚本。 另一方面,代理一些第三方资源有时似乎还不错? 就像如果它是你自己的网站,你只是想绕过一些 CORS 问题......那将没问题。

更中间的是像分析这样的东西。 我最近在博客中写了 “比较 Google Analytics 和 Plausible Numbers”,我在其中讨论了 Plausible,这是一家第三方分析服务,“专为注重隐私的网站所有者构建”。 所以,你知道,理论上值得信赖,并且不是让人非常担忧的第三方 JavaScript。 但即便如此,它也无法真正帮助网站访问者,并且属于分析的广泛类别,因此我可以看到它进入了封锁列表,从而随着越来越多的人屏蔽它,随着时间的推移,您会获得更少准确的信息。

Plausible 的默认用法是第三方 JavaScript

但正如我们所谈到的,很少有人会屏蔽第一方 JavaScript,因此代理理论上会提供更准确的信息。 事实上,他们有关于代理的文档。 它稍微复杂一些,而且我不太明白为什么,但嘿,它可以工作。

我已经将此代理作为测试执行。 因此,我现在拥有了仅使用直接来自第三方 JavaScript 的数据(来自上一篇文章)

指标Plausible(无代理)Google Analytics
独立访客973k841k
页面浏览量1.4m1.5m
跳出率82%82%
访问时长1 分 31 秒1 分 24 秒
来自一周非代理第三方 JavaScript 集成的数据

并且可以将其与使用代理的相同时间段进行比较

指标Plausible(代理)Google Analytics
独立访客1.32m895k
页面浏览量2.03m1.7m
跳出率81%82%
访问时长1 分 35 秒1 分 24 秒
来自一周 **代理** 第三方 JavaScript 集成的数据

因此,代理确实强烈建议以这种方式执行会比即使是开箱即用的 Plausible 减少“阻止”。 根据未更改的 Google Analytics,测试的那一周比平时繁忙 6%¹。 我原本预计根据非代理设置的情况,本周将看到更多独立访客(即 116 万),但实际上我看到了 132 万,因此代理证明了与非代理设置相比,看到独立访客数量的稳定增长 13.8%。 将代理的 Plausible 设置与 Google Analytics 直接进行比较显示,独立访客数量增加了惊人的 32%。

在非代理设置中,与 Google Analytics 相比,我在 Plausible 上实际上看到了页面浏览量减少(-6.6%),但在代理设置中,我看到了页面浏览量增加 19.4%。 因此,这些数字非常不稳定,但对于 _这个网站_ 来说,它表明大约 20-30% 的用户阻止了 Google Analytics。

  1. 我一直觉得计算两个数字之间的百分比增长很令人困惑。 最终对我有效的方法是 (最终 - 初始) / 最终 * 100