← 返回功能选择
ARTICLE / feature

网站分析功能

我如何理解和使用 Ben 访问统计

这份说明基于插件 1.0.0 的源码和自带说明整理;我检查的是实现,没有在实际 WordPress 站点做运行验证。我把它看作一个保存在本站数据库里的轻量行为观察工具:它帮助我发现流量、页面和点击的变化,但不能告诉我真实人数、完整用户旅程或业务转化结果。

数据从哪里来

访客打开符合条件的前台页面时,浏览器执行 assets/tracker.js,生成页面浏览事件;真实用户点击受支持的链接、按钮等元素时生成点击事件。脚本把事件分批发送到 WordPress 的 admin-ajax.php;服务端校验后写入当前站点的 {prefix}bva_events 表。后台直接查询事件表生成统计,也可以导出 CSV。时间是服务器接收时的站点本地时间,并非浏览器产生事件的精确时间;网络延迟、跨午夜重试可能改变归属日期。

页面需要正常加载脚本、调用 wp_footer()、能向同源采集接口发送请求。默认排除管理员、常见机器人和发出 DNT/GPC 信号的浏览器;拦截器、禁用 JavaScript、网络失败等也会漏记。事件 ID 用来避免重试重复写入,但采集并不保证完整送达。因此,零记录也可能是采集故障或排除规则造成的。

我会怎么看各项功能

功能和数据对我有什么用实现口径和边界
PV 页面浏览量看内容被打开的规模、比较日期和页面只数 pageview 事件。刷新可以再次计数;标准 History API 的 URL 变化会记录,片段变化不算。不是页面曝光人数,也不是阅读完成数。
UV 每日访客估算粗看每天有多少不同访问主体服务端将站点日期、原始 IP、User-Agent 用站点密钥做 HMAC;按浏览事件去重。即使保存脱敏 IP,标识仍用原始 IP 生成。共享网络和相同 UA 可能合并,换网络或浏览器可能重复;多日总数是每日去重后的访客人次,不是期间去重人数。密钥变化也可能影响一致性。
被访问页面数看流量覆盖了多少页面按清理后的页面 URL 去重,只算有浏览事件的页面;不代表网站页面总数。
每日趋势和数据表找增长、下降、周期性和异常日期按站点自然日统计 PV、每日 UV 和点击;图表对无记录的日期补零。补零不证明采集正常,今天通常是未结束的一天。
页面排行找受关注的页面及其页面内互动前 20 个,按 PV 排序;展示页面 PV、访客人次、该页面内点击数。点击发生在这个页面上,并非进入该页面的次数。多日页面 UV 仍是每日人次;同一标识浏览多个页面会在各页面分别出现。
点击排行找哪些链接或按钮被使用按所在页面+目标分组,显示前 20 项。支持链接、按钮、特定 input、summary、role=button;不收普通文本、输入值或自动提取按钮文字。data-ben-label 可显式命名,data-ben-ignore 可排除元素及后代。相同页面和目标的不同标签会合并,只显示其中一个标签。点击不等于成功提交、购买或到达目标。
来源观察页面浏览事件携带的来源页面按完整清理后来源 URL 分组,前 10 项;来源可能是站内页面,也可能为空。空来源包含浏览器未提供等情况,不能全当作主动输入网址。它不是会话入口或渠道归因报告。
设备与浏览器找主要使用环境,辅助安排兼容性检查根据 User-Agent 粗略识别电脑、手机、平板及浏览器,统计浏览事件,前 10 种组合;识别可能错误、可伪造,也不提供型号、操作系统或屏幕尺寸。
筛选、明细和导出缩小调查范围,抽查具体事件或做进一步计算日期、页面 URL 包含字符串、IP 精确匹配;默认近 7 天,查询最多 366 个自然日。明细每页 50 条,事件类型切换只作用于明细和导出,不改变概览。CSV 最多导出筛选结果中最新 5 万条事件,超出时按日期等分段并核对总数。

URL 会去掉片段和一般查询参数;页面和点击目标仅保留部分 WordPress 路由参数,来源去掉所有查询参数。因此我无法依靠这里还原 UTM 活动、搜索词或普通查询参数;不同参数的页面可能被合并。路径、标题和显式标签仍可能包含敏感信息,应避免写入这些位置或配置排除路径。mailto:、tel: 等非 HTTP 链接不能保留原目标,可能只显示元素类型及 ID。

我会如何开展一次分析

  1. 先确认数据可用:记下站点时区、日期范围、保留期、筛选条件、是否启用点击、同意和隐私设置;用未登录窗口进行一次已知访问和点击,检查后台和网络请求。设置变更后清理页面/CDN 缓存。确认代理 IP 配置正确,否则很多访客可能被当作同一地址。
  2. 看趋势再找原因:比较完整的相邻周期和同星期几,查看 PV、每日 UV、点击及页面排行。比如昨天 PV 由 100 增至 200,是访问增加的信号;再查哪些页面和来源贡献了变化。先检查采集变更、缓存、机器人或活动,再提出解释,不直接断言原因。
  3. 拆到页面与动作:筛选某页面,比较该页面的 PV 和目标点击。例如 100 次浏览、20 次某按钮点击,得到 20 次点击/100 次浏览 = 每百次浏览 20 次点击。同一人可重复点击,一个页面浏览也可能有多次点击,结果可以超过 100%;它不是人数点击率或转化率。页面 PV 为零时不计算这个比值。
  4. 看来源与设备:观察某页面的来源和设备组合,再在对应浏览器实测。比如手机 PV 占比高但点击/PV 低,可以提出移动端按钮不明显的假设;也可能是流量意图或采集差异,不能据此认定设计导致问题。后台仅展示前 10 项,完整分布需在导出未截断时自行汇总。
  5. 核查明细并记录结论:对异常日期抽查时间、页面、来源、目标、设备与当日标识,注明样本量、可能遗漏和假设。需要比较上线前后时,保留设置变更记录,避免把埋点变化误判成用户变化。

我可能看到的数据及其含义

  • PV 高、UV 低:同一每日标识产生了较多浏览,可能是重复访问、浏览多个页面、共享网络合并或异常流量;不能直接认定忠诚度高。
  • PV 和 UV 同时上升:覆盖面和浏览量都增加的迹象;仍要检查来源、机器人和采集配置。
  • 某页面 PV 高、点击少:可能内容已满足需求,也可能按钮不明显、目标不适合或点击没有被采集;先明确该页面预期行为再判断。
  • 点击很多、业务结果没有增加:可能重复点击、跳转失败或后续环节流失;插件没有订单、表单成功或后端结果,需结合业务系统核对。
  • 来源为空或站内来源很多:前者可能是来源被隐藏,后者可能是站内导航;不能直接分别解释为直接流量和新增用户来源。
  • 某 IP 或标识事件密集:可用来发现值得调查的模式,但脱敏 IP 可覆盖多人,标识也不是个人身份;不能据此识别或指控某个人。
  • 某天全为零或突然骤降:可能没有访问,也可能脚本、同意管理、缓存、同源配置或数据库写入出了问题;先做采集健康检查。

我会保留的边界和维护习惯

这个插件不记录会话、停留时长、跳出率、滚动深度、完整跨日身份、地理位置、广告活动归因或业务完成事件;不能可靠构建跨日留存、标准漏斗和精确用户路径。即使当日标识相同,事件时间也只是接收时间,不能保证序列完整。没有第三方统计服务、统计 Cookie 或浏览器持久标识,并不意味着数据自动匿名;IP、路径、标题和标识仍需按站点实际情况管理。

默认保存脱敏 IP(IPv4 最后一段归零,IPv6 保留前 48 位),默认保留 90 个站点自然日,可设 1–730 天。清理依赖 WP-Cron,每次最多删除 5 万条,可能延迟;停用不删除数据,卸载默认保留,只有预先启用删除选项才会删除。报表最长查 366 天,保留更久的数据也需要分段查询。修改站点时区不会转换旧记录。高流量下逐事件写入和查询会增加数据库负担。

同意模式默认关闭;启用后必须由站点自己的同意组件逐页恢复状态并调用 BenAnalytics.grantConsent() / revokeConsent(),插件不提供弹窗或同意持久化。撤回只停止后续采集,不会自动删除既有记录。管理员可清空全部记录,因此我会先保存需要的导出并核对范围。公开采集接口有限流和来源检查,但来源可伪造、限流是尽力而为;我不会把这些数字用于计费、审计或精确人数认证。

实现依据:assets/tracker.js、includes/class-bva-core.php、includes/class-bva-admin.php、uninstall.php 和 readme.txt。