使用 PHP 跟踪网络流量

Track Web Traffic with PHP

是否有一种有效的方法来跟踪 PHP 的网络流量(或至少是网络流量的来源)?

我正在考虑为每个搜索引擎和其他网站使用自定义规范链接,这意味着任何不带参数访问 mywebsite.com 的人都可能是直接流量。但是后来我会以某种方式需要为每个引擎爬虫更改 link rel='canonical' 元素的 href 值(例如 https://mywebsite.com/?ref=googlehttps://mywebsite.com/?ref=duckduckgo 等),我并不完全确定如何解决这个问题(通过 robots.txt、meta 标签或?)。

如果不需要,我真的不想使用 Google 分析。可以这么说,我更愿意将我所有的分析都集中在一个屋檐下,但我对如何实现这一目标一筹莫展,而且我在 SO 上的大部分搜索似乎都提取了与 GA 相关的内容。

well ive read all over SO about how in many cases the header can be and is simply omitted for various reasons such as AV software, browser extensions, switching from http to https, etc? is this often the case?

是的,这可能会发生。任何人都可以猜测您特定网站的访问者的频率。

does GA rely on the referer header?

不太...因为 Google Analytics 运行 client-side,它从 document.referrer 获取信息,其中包含与 [=11= 中发送的值相同的值] header.

but i would of course like to have numbers that are as accurate as possible

对于任何网络分析,有些事情是您无法衡量的。最好的方法是使用 client-side 分析脚本将数据发送到您的服务器。这比简单地查看您在 PHP:

中的 HTTP 请求数据中获得的数据更好的原因有很多
  • 页面可以被缓存,因此您将能够在浏览器甚至从未与您的服务器签入以加载页面时看到页面加载。
  • Performance API 可用,允许您跟踪特定的加载时间,您可以随着时间的推移不断改进。
  • 在大多数浏览器中,您可以使用 Beacon API 来了解用户何时离开页面,因此您可以进行准确的 time-on-page 测量。

id like to get an idea of what traffic is direct and what traffic is not direct and where non-direct traffic is coming from

document.referrer 是您想要的,让您尽可能接近准确。