用途
该技能覆盖产品分析系统的设计与实现,目标是为用户行为提供可执行的洞察。适用于:为新产品添加分析、重新设计事件追踪系统、搭建 A/B 测试基础设施、实现同意(consent)管理、为产品团队构建自定义看板。涉及事件分类法设计、与 PostHog、Amplitude、Mixpanel、Segment 等平台的 SDK 集成、漏斗与同期群分析、A/B 测试与功能开关、用户旅程映射、符合 GDPR 的同意管理以及自定义指标定义。
核心原则
- 先在写代码之前设计分类法:良好设计的事件命名约定和属性 schema 能避免最常见的分析失败——数据不一致、无法查询。先就命名约定达成一致。
- 追踪动作,而非页面:页面浏览量只说明用户去了哪里;带上下文的事件才说明用户做了什么以及为什么。聚焦用户动作,如 project_created、file_uploaded、subscription_upgraded。
- 先识别再追踪:每个事件都需要用户身份。注册前的匿名事件应在用户登录后关联到已认证身份(alias/merge)。
- 同意是强制要求:GDPR 和 CCPA 要求在追踪前获得用户明确同意。应将同意管理构建进分析层,而非事后补充。
- 少即是多:追踪一切会产生噪音。只追踪能回答特定产品问题的事件。之后可以随时添加事件;从已有数据中移除噪音要困难得多。
主要能力
事件分类法设计
在实现任何分析追踪之前先设计。约定:object_action(名词加过去式动词)。文中给出 TypeScript 类型定义示例,覆盖认证(user_signed_up、user_logged_in、user_logged_out)、引导(onboarding_started、onboarding_step_completed、onboarding_completed、onboarding_skipped)、核心产品动作(project_created、project_deleted、file_uploaded)、订阅(subscription_started、subscription_upgraded、subscription_cancelled)、功能参与度(feature_used、search_performed、export_completed)等事件及其属性;并提供类型安全的 track 函数示例。优点:类型化事件分类法可防止拼写错误,确保必需属性始终存在,让追踪计划自我文档化,object_action 约定能在看板中把相关事件分组。
带同意管理的分析客户端
给出统一分析客户端(analytics.ts)实现示例,包含 ConsentStatus(granted、denied、pending)、初始化 PostHog(autocapture: false 仅显式追踪、capture_pageview: false 手动页面追踪、disable_session_recording: true 仅在明确同意且输入掩码后才回放、respect_dnt: true、同意前使用内存持久化)、setConsent 方法(同意后 flush 队列事件,拒绝后清空队列)、identify、alias、track(在 pending 状态将带时间戳、url、referrer 的事件入队)、page、reset,以及 React 同意横幅组件示例。理由:同意优先的分析是法律要求(GDPR、CCPA)并能建立用户信任;队列模式确保用户在执行动作后授予同意时不丢失事件;显式追踪保持数据干净且有意图。
漏斗分析实现
通过显式追踪每个漏斗步骤来测量多步流程(注册、引导、结账)的转化。文中给出 ONBOARDING_FUNNEL 常量、引导流程埋点示例(追踪 onboarding_started、onboarding_step_completed 含 step、stepName、timeOnStepSeconds,onboarding_skipped 含 lastStep、lastStepName,onboarding_completed 含 durationSeconds、stepsCompleted、stepsSkipped),以及结账漏斗 hook(viewCart、startCheckout、addShipping、addPayment、complete、abandon),并附带 cartValue、itemCount、timestamp。价值:漏斗分析揭示用户流失位置,结合上下文(停留时间、变体、购物车金额)可做分群分析,例如“来自 Google Ads 的用户在配送步骤的流失率是自然用户的 3 倍”,从而驱动定向优化。
功能开关驱动的 A/B 测试
在向所有用户发布前以统计严谨性测试产品变更。给出基于 PostHog 功能开关的 useExperiment hook 示例,支持类型化变体,在 control 与命名变体之间切换,并单独追踪 $experiment_started 曝光事件(含 experiment、variant),以及 PricingPage 组件用法示例。价值:A/B 测试让产品决策脱离主观意见;功能开关支持渐进发布、即时回滚和分群定向;将曝光事件与转化事件分开追踪可确保统计分析准确(意向治疗分析)。
事件命名约定参考
- object_action:如 project_created、file_uploaded,用于标准产品事件
- $system_event:如 $pageview、$identify,用于系统/平台事件
- experiment_*:如 $experiment_started,用于 A/B 测试追踪
- feature_used:如 feature_used { feature: "export" },用于通用功能参与度
反模式
- 自动捕获一切:数据嘈杂、难以查询、隐私风险;应使用带明确分类法的显式事件追踪
- 事件名不一致:userSignedUp 与 user_signed_up 与 signup;应使用 TypeScript 类型强制命名约定
- 未经同意追踪:违反 GDPR/CCPA,最高可罚营收 4%;应使用带队列模式的同意横幅
- 无用户识别:无法做同期群分析或留存;应在登录时 identify,在注册时 alias
- 在事件属性中追踪 PII:隐私违规、数据留存问题;应使用用户 ID 而非邮箱/姓名
- 一个庞大的 user_action 事件:无法创建有意义的漏斗;应为每个有意义动作设置具体事件
- 不追踪负面结果:只看到有效之处,看不到失败;应追踪错误、放弃、愤怒点击
检查清单
- 事件分类法已文档化并有类型(TypeScript 接口)
- 命名约定已强制(object_action 模式)
- 分析客户端已初始化并带同意管理
- 登录时识别用户,注册时 alias
- 漏斗步骤带上下文属性追踪
- 已为 A/B 测试设置功能开关
- 实验曝光事件与转化分开追踪
- 已实现带队列模式的 GDPR 同意横幅
- 事件属性中无 PII(邮箱、全名、IP)
- 关键漏斗已在分析看板中可视化
- 已配置留存同期群(第 1、7、30 天)
- 分析事件已在开发中验证(调试模式)
相关资源
- 技能:growth-engineering(A/B 测试基础设施)、authentication-patterns(identify/alias 流程)
- 技能:accessibility-a11y(可访问的同意横幅)
- 规则:docs/reference/stacks/react-typescript.md(用于分析的 React hooks)
限制
资料未提供该技能的具体平台/版本要求、安装命令、收费或价格信息,暂未提供。