主题
WellChina 数据分析实施方案
一次性落地方案的运行态文档。聚焦现在该怎么运维,不是当初怎么造。
版本: v2.0 状态: 已上线(2026-04-21 合并 main) 下次审阅: 2026-07-21
1. 当前状态
| 维度 | 值 |
|---|---|
| GA4 Production Property | G-J2B82S5Y38 |
| GA4 Staging Property | G-J5X6RDJ135 |
| Vercel Speed Insights | 已启用(v2 Resilient Intake) |
| Consent Mode | Advanced v2,EEA denied 其他 granted |
| 当前事件数 | 24 个(命名空间见规范 §4.3) |
代码位置:
- 事件封装层:
src/lib/analytics/ - 客户端组件:
src/components/analytics/ - Root layout 挂载:
src/app/layout.tsx - Locale layout 挂载:
src/app/[locale]/layout.tsx
2. 架构
渲染中…
职责边界
- GA4 负责一切用户行为(PV/UV、漏斗、留存、业务事件)
- Speed Insights 负责 Core Web Vitals(单一数据源,不双写)
- 不装
@vercel/analytics(和 GA4 重叠 >80%) - 不用
@next/third-parties/google的 GoogleAnalytics 组件(它会覆盖send_page_view: false导致双重上报,已换成手写 loader)
完整 off-limits 见规范 §2.2。
3. 两个 Property + 环境变量
3.1 Property 映射
| 环境 | 运行场景 | NEXT_PUBLIC_GA_ID | 数据去向 |
|---|---|---|---|
| 本地开发 | npm run dev + localhost:3017,读 .env | G-J5X6RDJ135 | Staging property |
| Vercel Preview | *.vercel.app | G-J5X6RDJ135 | Staging property |
| Vercel Production | wellchina.top | G-J2B82S5Y38 | Production property |
3.2 Vercel 配置方式
Vercel Dashboard → Settings → Environment Variables,NEXT_PUBLIC_GA_ID 建两条独立记录,分别作用到 Production 和 Preview。
丝滑切换:代码只读 process.env.NEXT_PUBLIC_GA_ID,无分支逻辑。
⚠️ 常见踩坑与修法见规范 §16.7。
3.3 Speed Insights
无环境变量。Vercel Dashboard → Project → Speed Insights tab 首次部署后自动激活。
4. GA4 后台配置清单
两个 Property 都要做一遍(除标记 "仅 Production" 的项)。
4.1 Web Stream
- URL:
https://wellchina.top(两个 Property 的 stream 都填这个值,本身不做校验) - Name:
WellChina {Production|Staging} Web
4.2 Enhanced Measurement
| 开关 | 设置 | 原因 |
|---|---|---|
| Page views | ✅ | 必需 |
| Page changes based on browser history events | ❌ 关 | 手动上报以携带 locale |
| Scrolls (90%) | ✅ | 内容页深度 |
| Outbound clicks | ✅ | 免费送 |
| Site search | ❌ | 用自定义 search 事件 |
| Video engagement | ❌ | 目前无视频 |
| File downloads | ✅ | 未来 PDF 指南 |
| Form interactions | ❌ | 用自定义 generate_lead |
4.3 Custom Dimensions
Admin → Custom definitions → Create。字典见规范 §5.2。初始批量:locale、region、city、procedure_category、hospital_id、lead_source、subscription_plan、step、compare_size(Event-scoped)+ user_type(User-scoped)。
4.4 Key Events(代码上线 24h 后标记)
Admin → Events → 每个事件右侧 "Mark as key event": generate_lead、chat_start、purchase、sign_up、begin_checkout(micro-conversion)。
4.5 其他
- Data Retention → 14 个月(默认 2 个月过短)
- Google Signals → Enable(EEA 用户需
ad_user_data=granted,由 Consent Mode v2 自动处理) - Search Console Link(仅 Production)→ 前置需在 Search Console 验证
wellchina.top - User Data Collection Acknowledgement → 点 I acknowledge(解锁 Signals 等高级功能,前提:网站有 Privacy Policy,我们有
/privacy)
5. 验证 · 三级测试标准
每一个新埋点都必须依次通过:
| Level | 场景 | 工具 | 合格标准 |
|---|---|---|---|
| 1 — 本地 | npm run dev | Chrome GA Debugger 扩展 + GA4 Staging → DebugView | 事件名 + 参数 5 秒内可见 |
| 2 — PR | Vercel Preview URL | GA4 Staging → Realtime | 转化路径每步计数 > 0 |
| 3 — 生产 | wellchina.top | GA Debugger + GA4 Production → DebugView;Stripe test mode 全链路 | 核心转化事件完整,24h 后流量合理 |
详见规范 §11。
6. 遗留工作
按 监控策略调研 §8.3 的优先级排序,详情见规范 §16。
🔴 P0 — 本周内
§16.7 Production env var 错配✅ 2026-04-22 已修复§16.8 删除✅ 2026-04-22 已完成theme_toggled§16.9 高基数 Custom Dimension 审计✅ 2026-04-22 — 10 个 CD 均低基数,无需改动§16.10 China GFW LCP runbook✅ 2026-04-22(降级关闭) — 产品定位不服务大陆用户;afterInteractive已使脚本异步加载不阻塞 LCP
🟡 P1 — 全部完成于 2026-04-22
§16.2 列表卡片✅(⏰ 4 周时间盒,2026-05-20 回看:若 GA4 Explore 无人查询则下个 PR 移除)select_item接线§16.11✅ PricingCard onClick 付费 plan 触发plan_selected§16.12✅ useChat realtime + sessionStorage dedupchat_message_received§16.13 启用 EM✅ 待你在 GA4 Admin Form interactions 保存(2 个 Property);GA4 UI 已合并 form_start / form_submit 为一个开关,不要把form_startform_submit标为 Key Event§16.14✅ UserIdentity 一次设 user_type + regionregion_switched降为 user_property§16.15✅ 仅前 3 条 visitor 消息上报chat_message_sent降频
🟢 P2 — 本批次完成于 2026-04-22
§16.3 OAuth✅sign_up/loginAuthContext.onAuthStateChange补发 Google OAuth 事件 + 新老用户区分 + sessionStorage dedup§16.16✅ Stripe webhook 通过 GA4 Measurement Protocol 发闭环归因事件(需 Vercel 配close_convert_leadGA_MP_API_SECRET两个作用域的 secret 才生效)Privacy Policy 8 语言翻译✅src/content/privacy/{locale}.md× 8,通过GuideContent渲染Search Console 提交✅ Google 已提交并 Successsitemap.xml多搜索引擎注册✅ Bing / Yandex / Naver 通过layout.tsx的metadata.verification.other接入(Baidu 按产品定位排除)。sitemap 提交是用户动作,各平台操作路径见 §16.6Middleware 修 sitemap/robots 404✅src/middleware.tsmatcher 排除.xml/.txt,修正 next-intl 拦截导致的 404- §16.17 Server-side GTM / Vercel Edge proxy(仅为 iOS ITP,独立 session 规划)—— 延后
🔵 P3 — 3-6 月(视业务)
- §16.18 BigQuery Daily Export(MAU > 10K 时)
- §16.19
qualify_lead+ CRM 集成(有销售团队后)
🔄 定期回看
- 2026-05-20:§16.2
select_item4 周时间盒到期。检查 GA4 Explore 是否有人查询select_item、hospitals_by_procedure等 list_name 维度。无使用 → 下个 PR 移除SelectItemTracker+ 所有 data-track-* 属性 +trackSelectItem函数 - §16.16 生效验证:Vercel Production 作用域配好
GA_MP_API_SECRET后,下次 Stripe test mode 全链路(同邮箱 Contact form → Stripe checkout)验证 GA4 Production Realtime 有close_convert_lead事件 - §16.3 生效验证:第一个 Google OAuth 登录的用户出现后,24h 内 GA4 Production Realtime 会看到
sign_up或loginwithmethod=google - 搜索引擎收录情况(每月一次):
- GSC Coverage 报表:Indexed vs Discovered 比例、报错 URL
- Bing Webmaster Dashboard:同上
- Yandex / Naver:首次收录通常慢 1-4 周,2 周内仍 0 discovered 需诊断
7. 扩展路径
成熟度分层、触发时机、成本测算见规范 §14。下一步候选(按 ROI 排序):
- IndexNow API(10 分钟代码,新 URL 秒推 Bing + Yandex + Naver,比被动 sitemap 爬快 10 倍以上)
- Schema.org 结构化数据(半天代码,医院页
MedicalOrganization+ 手术页MedicalProcedure+ 价格Offer→ Google 富文本结果) - Google Search Console ↔ GA4 链接(5 分钟,免费,GA4 里直接看每个关键词的转化路径)
- Microsoft Clarity(20 分钟,免费,会话录屏 + 热力图 + rage click 检测)
- §16.17 Server-side GTM / Vercel Edge proxy(半天到一天,解决 iOS ITP 7 天 cookie 限制)
- BigQuery Daily Export(30 分钟,免费 1M events/日,解锁任意 SQL,MAU > 10K 时做)
规模化后(DAU > 5000)再考虑 Vercel Drains / Looker Studio / GA4 360。
参考文档
- 接入规范 — 命名、治理、PR checklist、常见错误
- 监控策略调研 — 监控什么、不监控什么的决策依据
- CLAUDE.md — 项目技术栈 + UI Baseline
- Next.js Third-Party Libraries Guide
- @vercel/speed-insights
- Google Consent Mode v2