把官方分析页的「死数字」变成可点击的下钻入口,并补上官方缺的明细页。不改任何官方文件。
功能清单
- 卡片可点(运行时打补丁,官方 HTML 一行不动)
- 分析 → 访问分析:总访问量 → 访问流水;独立访客 → 访客明细(按 IP);页面浏览量 → 页面明细;平均停留时长 → 访客明细(按时长排序)
- 分析 → 数据总览:订单管理 → 订单列表;产品管理 → 产品列表;页面浏览量 → 页面明细;独立访客 → 访客明细
- 跳转自动带上当前选的日期范围
- 三个明细页
访客明细:按会话 / 按访客(IP) 两种视角;IP、国家/城市、设备、浏览器、来源、浏览页数、停留时长;每行可跳官方「访问记录」详情页面明细:见下节(分栏 + 停留时长)访问流水:每次事件一行(页面浏览/商品浏览/加购/结算/下单/支付…),带来源、IP、国家、设备
页面明细的结构(参照 GA4 / Plausible / Umami / Matomo)
| 区块 | 内容 |
|---|---|
| 顶部 KPI(5 张卡) | 页面浏览量、独立访客、被访问页面数、总停留、平均停留 |
| 分栏 | 全部 / 产品 / 文章 / 其他,标签上带各自页面数 |
| 每行 | 序号、勾选、名称、浏览量(含占比条)、独立访客、平均停留、总停留、最近访问、操作 |
| 产品 / 文章 | 显示缩略图 + 标题(多语言名,优先后台语言 → 简中 → 英文),不再甩一长串 URL;点标题开前台页 |
| 其他 | 显示归一化路径(去协议/主机/查询串/尾斜杠),首页与 www 两个域名会合并成一条 |
| 排序 | 按浏览量 / 按独立访客 / 按停留时长 |
| 下钻 | 「查看流水」按精确路径过滤访问流水(SQL 里截出 path 等值比较,/en 不会误吞 /en/locales/switch/en) |
停留时长口径(与 GA4 / Plausible 一致):页面停留 = 同一会话内「下一条事件时间 − 本条事件时间」,
会话最后一条用 visits.last_visited_at 兜底,单条封顶 30 分钟;平均停留 = 总停留 ÷ 浏览量,
所以「总停留 = 平均 × 浏览量」可以自己核对。日期范围筛选对停留时长同样生效。
数据口径
全部读官方 visits / visit_events,并统一带 is_bot = false——与官方卡片背后的
visit_daily 聚合完全同口径,所以数字应当对得上。
但要注意(实测 2026-11-05):官方聚合表建于「爬虫标记」之前,里面还带着当时的爬虫数据,
所以现在卡片数字会大于明细。三个明细页顶部都有一条说明 + 「重新聚合」按钮,
按官方 analytics.reaggregate 接口重跑该日期范围的聚合,两边就一致了。
点不点由使用者决定,插件不会自动改聚合数据。
纯只读:不建表、不迁移、不写任何官方数据(「重新聚合」是官方自带功能,用户手动触发)。
路由
| 页面 | 路由名 | 路径 |
|---|---|---|
| 访客明细 | analytics_plus.visitors | /panel/analytics_plus/visitors |
| 页面明细 | analytics_plus.pages | /panel/analytics_plus/pages |
| 访问流水 | analytics_plus.events | /panel/analytics_plus/events |
兼容环境
- InnoShop CE ≥ 0.9.0(自带 Visit 模型与路由即可,无需额外依赖)
- PHP 8.1+;纯只读插件,不建表、不需要数据库迁移
- 与任何自有插件零互依赖
版本状态
> 本插件仍在持续更新中,当前发布版本不是终版。 新功能与细节调整会陆续推出,升级时请留意各版本更新记录;已有功能向下兼容,升级即装即用。