Cloudflare 从入门到精通 9. Web Analytics

Cloudflare 从入门到精通 9. Web Analytics

DeBill Lv2

📜 前言

我们上线一个网站后往往需要添加追踪统计的功能,方便我们了解当前网站的流量,Cloudflare Web Analytics 工具可以以简单的方式集成到我们的网站,帮助我们实现网站流量分析

🧾 教程

下面的教程分三种情况介绍如何将 Cloudflare Web Analytics 接入你的网站

通过 Cloudflare 代理的网站

如果你的域名是托管在 Cloudflare 上的且开启了小黄云,那集成 Web Analytics 十分简单,进入后台选择 Analytics & Logs --> Web Analytics --> Add a site

add-a-site

进入菜单后,在下来菜单中选择你托管在 Cloudflare 中的域名,然后点击 Done 即可

select-site

不通过 Cloudflare 代理的网站

如果你的网站不是由 Cloudflare 代理的,其他步骤都相同,只是在 Set up hostname 步骤里输入域名后再点击完成

add-a-site-not-in-cf

此时你需要将下面的 JS 代码粘贴到你的网站的任意 HTML 的 header 里

add-a-site-js-snippet

Pages 项目

Pages 项目集成十分简单,进入后台后,选择 Workers & Pages -> 选择你的项目

pages-add-web-analytics

点击上方 Tab,然后拉到最下方 enable 就集成好了

pages-enable-web-analytics

📊 指标讲解

进入后代后选择 Analytics & Logs --> Web Analytics 再进入刚刚设置追踪的网站,Cloudflare 会默认展示过去 24 小时里网站的数据,可以看到很多统计指标,先看最左上角

Visits - 网站访问量

你可以添加不同的 filter 查看具体的数据,也可以选择查看的流量的日期区间(最高支持半年),拉到页面最下面能看到所有信息,包括总访问数、流量都从哪些国家来的、从哪些链接过来的,访问的页面路径是哪些、访问的设备等信息

visits

Page views - 页面访问量

Page views 页面和 Visits 页面差不多

page-views

Page load time - 页面加载时间

这个指标是体现户访问你网站是快还是慢最直观的指标,加载页面的总耗时。页面加载时间由很多部分组成,包括但不限于 DNS 解析时间 、TCP 建链时间、请求时间、响应时间、浏览器渲染页面时间等,所以不能将下面每部分时间汇总。还有一些耗时非显示,例如 pre-DNS lookup 的时间

page-load-time

Core Web Vitals

core-web-vitals

最后一项是由谷歌创造的 CWV (Core Web Vital)指标,用于衡量网站的用户体验如何。分别由以下 4 个指标组成:

  • Largest Contentful Paint (LCP) ↗: 测量用户感知的页面加载速度。它返回页面主要内容的加载时间。尽可能让 75%的网页访问的 LCP 不超过 2.5 秒,小于 2.5 秒则为 good
  • Interaction to Next Paint (INP) ↗: 衡量用户界面响应能力——网站对点击或按键等用户交互的响应速度。良好的响应代表网页对用户交互能做出快速响应,INP 低于或等于 200 毫秒表示网页响应速度良好
  • First Input Delay (FID) ↗: 衡量网站对第一个用户输入的响应速度
  • Cumulative Layout Shift (CLS) ↗: 测量视觉稳定性,即在将各种元素加载到视图中时页面布局是否发生变化。尽可能让 75% 的网页访问的 CLS 不高于 0.1,小于 0.1 则为 good

根据 Google 设计的行业标准方法和测试,每个指标都会自动被评为“良好”、“需要改进”或“较差”。往下拉会有一个Debug View页面告诉你哪些元素影响 LCP,需要改善

cf9-debug-view.png

🍙 对比 Umami

对比 Umami,Visits 和 Page Views 的指标都是有的,但是有以下差别

Cloudflare Web Analytics 优于 Umami 的地方:

  • 持续的 Core Web Vitals 指标记录
  • Page Load Time 指标

Umami 优于 Cloudflare Web Analytics 的地方:

  • Session 功能,记录每一个用户的访问次数,访问了多少个页面,从哪个国家用的什么浏览器和设备等信息
  • Raealtime 功能记录当前有哪些用户正在访问网站
  • Compare 功能可以对比不同时间段的流量情况
  • 如果是自部署的 Umami 可以查看网站整个生命周期的流量,Cloudflare Web Analytics 最多只支持半年

umami-better-feature

🚫 限制

Web Analytics 有一些使用限制

  • 免费计划不能设置 Rule 让部分页面不追踪
  • Cloudflare 允许最多 10 个非 Cloudflare 代理的网站使用 Web Analytics
  • 最多可以查看过去六个月的流量情况
  • 不支持 UTM 参数查询。UTM 参数是特殊的查询字符串参数,可以帮助追踪流量的来源。目前,Cloudflare Web Analytics 不会记录查询字符串,以避免收集潜在的敏感数据。

🕳️ 避坑指南

  • 如果你将 Cache-Control 标头设置为 public,no-transform,Cloudflare 将无法修改网站的原始 payload。因此,Beacon 脚本不会自动注入网站,Web Analytics 将不起作用
  • Cloudflare Web Analytics 可以通过覆盖 History API 的 pushState 函数并监听 onpopstate 事件来自动跟踪单页应用程序 (SPA) 上的用户交互。注意,不支持基于哈希的路由器。
  • 有朋友反馈,Web Analytics 可能会把 DOMContentLoaded 时间变长很多导致访问性能差
  • 当你的主域名开启了 Web Analytics,所有子域名也会默认使用 Web Analytics

📝 总结

如果你的域名托管在 Cloudflare,图省事又对网站统计没有特殊的需求,只想看看 UV 和 PV 等指标,那么直接一键集成 Web Analytics 最方便。如果还需要其他的一些功能,例如:Session 查看、网站点击热力图查看、网站目前谁在线等,建议使用 UmamiPosthog等专业做网站流量统计的服务。

  • 标题: Cloudflare 从入门到精通 9. Web Analytics
  • 作者: DeBill
  • 创建于 : 2024-12-16 09:33:00
  • 更新于 : 2025-01-09 23:09:41
  • 链接: https://debill.me//cloudflare-series/cloudflare-web-analytics-9/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论