
JunoZ-DEVandClaude Opus 5.5
8ab01946ca
feat(admin): 访客来源统计(不论是否注册)
- 首页与登录页到站时用浏览器匿名访客编号上报一次来源(POST /api/public/visits,sendBeacon,失败回退 keepalive fetch)
- 同一访客同一天(北京时间)同一来源只记一次:前端当日去重 + visitor_visits 唯一约束(迁移 092)
- 站内跳转不上报,无信号的外部到站记为直接访问;邀约链接无推广参数时归为邀约
- 接口在全局限流外单独限制每 IP 每分钟 10 次,爬虫与脚本 UA 不入库,不保存 IP 与 UA
- 明细默认保留 180 天(VISITOR_VISITS_RETENTION_DAYS),worker 每天分批清理
- 注册归因带上匿名访客编号,写入 user_acquisitions.visitor_id
- 仪表盘「注册来源分布」改为「流量来源」:今日 / 近 7 天 / 本月的访客、新访客、注册、转化、付费与收入
- 隐私政策、README、AGENTS、CHANGELOG 同步
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 06:58:45 +08:00
..
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 02:10:46 +08:00
2026-10-16 06:37:24 +08:00
2026-10-16 06:58:45 +08:00