# PostHog 集成完成总结 ## ✅ 已完成的工作 ### 1. 安装依赖 ```bash npm install posthog-js@^1.280.1 ``` ### 2. 创建核心文件 #### 📦 PostHog SDK 封装 (`src/lib/posthog.js`) - 提供完整的 PostHog API 封装 - 包含函数: - `initPostHog()` - 初始化 SDK - `identifyUser()` - 识别用户 - `trackEvent()` - 追踪自定义事件 - `trackPageView()` - 追踪页面浏览 - `resetUser()` - 重置用户会话(登出时调用) - `optIn()` / `optOut()` - 用户隐私控制 - `getFeatureFlag()` - 获取 Feature Flag(A/B 测试) #### 📊 事件常量定义 (`src/lib/constants.js`) 基于 AARRR 框架的完整事件体系: - **Acquisition(获客)**: Landing Page, CTA, Pricing - **Activation(激活)**: Login, Signup, WeChat QR - **Retention(留存)**: Dashboard, News, Concept, Stock, Company - **Referral(推荐)**: Share, Invite - **Revenue(收入)**: Payment, Subscription #### 🪝 React Hooks - `usePostHog` (`src/hooks/usePostHog.js`) - 在组件中使用 PostHog - `usePageTracking` (`src/hooks/usePageTracking.js`) - 自动页面浏览追踪 #### 🎁 Provider 组件 (`src/components/PostHogProvider.js`) - 全局初始化 PostHog - 自动追踪页面浏览 - 根据路由自动识别页面类型 ### 3. 集成到应用 #### App.js 修改 在最外层添加了 `PostHogProvider`: ```jsx {/* 其他 Providers */} ``` ### 4. 环境变量配置 `.env` 文件中添加了: ```bash # PostHog API Key(需要填写你的 PostHog 项目 Key) REACT_APP_POSTHOG_KEY= # PostHog API Host REACT_APP_POSTHOG_HOST=https://app.posthog.com # Session Recording 开关 REACT_APP_ENABLE_SESSION_RECORDING=false ``` --- ## 🎯 如何使用 ### 1. 配置 PostHog API Key 1. 登录 [PostHog](https://app.posthog.com) 2. 创建项目(或使用现有项目) 3. 在项目设置中找到 **API Key** 4. 复制 API Key 并填入 `.env` 文件: ```bash REACT_APP_POSTHOG_KEY=phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ``` ### 2. 自动追踪页面浏览 ✅ **无需额外配置**,PostHogProvider 会自动追踪所有路由变化和页面浏览。 ### 3. 追踪自定义事件 在任意组件中使用 `usePostHog` Hook: ```jsx import { usePostHog } from 'hooks/usePostHog'; import { RETENTION_EVENTS } from 'lib/constants'; function MyComponent() { const { track } = usePostHog(); const handleClick = () => { track(RETENTION_EVENTS.NEWS_ARTICLE_CLICKED, { article_id: '12345', article_title: '市场分析报告', source: 'community_page', }); }; return ; } ``` ### 4. 用户识别(登录时) 在 `AuthContext` 中,登录成功后调用: ```jsx import { identifyUser } from 'lib/posthog'; // 登录成功后 identifyUser(user.id, { email: user.email, username: user.username, subscription_tier: user.subscription_type || 'free', registration_date: user.created_at, }); ``` ### 5. 重置用户会话(登出时) 在 `AuthContext` 中,登出时调用: ```jsx import { resetUser } from 'lib/posthog'; // 登出时 resetUser(); ``` --- ## 📊 PostHog 功能 ### 1. 页面浏览分析 - 自动追踪所有页面访问 - 分析用户访问路径 - 识别热门页面 ### 2. 用户行为分析 - 追踪用户点击、搜索、筛选等行为 - 分析功能使用频率 - 了解用户偏好 ### 3. 漏斗分析 - 分析用户转化路径 - 识别流失点 - 优化用户体验 ### 4. 队列分析(Cohort Analysis) - 按注册时间、订阅类型等分组用户 - 分析不同用户群体的行为差异 ### 5. Session Recording(可选) - 录制用户操作视频 - 可视化用户体验问题 - 需要在 `.env` 中开启:`REACT_APP_ENABLE_SESSION_RECORDING=true` ### 6. Feature Flags(A/B 测试) ```jsx const { getFlag, isEnabled } = usePostHog(); // 检查功能开关 if (isEnabled('new_dashboard_design')) { return ; } else { return ; } ``` --- ## 🔒 隐私和安全 ### 自动隐私保护 - 自动屏蔽密码、邮箱、手机号输入框 - 不追踪敏感 API 端点(`/api/auth/login`, `/api/payment` 等) - 尊重浏览器 Do Not Track 设置 ### 用户隐私控制 用户可选择退出追踪: ```jsx const { optOut, optIn, isOptedOut } = usePostHog(); // 退出追踪 optOut(); // 重新加入 optIn(); // 检查状态 if (isOptedOut()) { console.log('用户已退出追踪'); } ``` --- ## 🚀 下一步建议 ### 1. 在关键页面添加事件追踪 例如在 **Community**、**Concept**、**Stock** 等页面添加: - 搜索事件 - 点击事件 - 筛选事件 ### 2. 在 AuthContext 中集成用户识别 登录成功时调用 `identifyUser()`,登出时调用 `resetUser()` ### 3. 设置 Feature Flags 在 PostHog 后台创建 Feature Flags,用于 A/B 测试新功能 ### 4. 配置 Dashboard 和 Insights 在 PostHog 后台创建: - 用户活跃度 Dashboard - 功能使用频率 Insights - 转化漏斗分析 --- ## 📚 参考资料 - [PostHog 官方文档](https://posthog.com/docs) - [PostHog React 集成](https://posthog.com/docs/libraries/react) - [PostHog Feature Flags](https://posthog.com/docs/feature-flags) - [PostHog Session Recording](https://posthog.com/docs/session-replay) --- ## ⚠️ 注意事项 1. **开发环境下会自动启用调试模式**,控制台会输出详细的追踪日志 2. **PostHog API Key 为空时**,SDK 会发出警告但不会影响应用运行 3. **Session Recording 默认关闭**,需要时再开启以节省资源 4. **所有事件常量已定义**在 `src/lib/constants.js`,使用时直接导入 --- **集成完成!** 🎉 现在你可以: 1. 填写 PostHog API Key 2. 启动应用:`npm start` 3. 在 PostHog 后台查看实时数据 如有问题,请参考 PostHog 官方文档或联系技术支持。