Posthog 分析
- 作者仓库星标 0
- 作者仓库 skills-registry
PostHog Analytics & Session Replay
What's Already Configured
The bootstrap includes a complete PostHog setup with:
- Session Replay - Records user sessions with privacy protections
- Automatic Screen Tracking - Tracks navigation automatically via
ScreenTrackercomponent - Event Tracking - Ready to use via
usePostHog()hook - Privacy Controls - Text inputs and images are masked by default
Files Involved
| File | Purpose |
|---|---|
lib/posthog.ts |
Configuration with session replay plugin |
app/_layout.tsx |
PostHogProvider wrapper and ScreenTracker component |
app.json |
PostHog plugin registration |
.env.example |
Environment variable template |
How Session Replay Works
What Gets Recorded
- ✅ Screen views and navigation
- ✅ Touch interactions (taps, swipes)
- ✅ UI changes and animations
- ✅ Network requests (with
captureNetworkTelemetry: true) - ✅ Console logs (with
captureLog: true)
Privacy Protections
- 🔒 Text inputs masked - All form inputs show as
**** - 🔒 Images masked - Photos and avatars are blurred/hidden
- 🔒 Sensitive data protected - No actual typed content recorded
Recording Behavior
- Starts automatically when app launches
- Continues throughout the session
- Stops when app is closed/backgrounded
- Each session is a separate replay in PostHog dashboard
- Data is compressed and sent in batches (not real-time)
Data Usage
- ~100-500KB per minute of usage
- Throttled to 1 second intervals (
throttleDelayMs: 1000) - Only captures visual changes, not full video
Configuration Options
All settings are in lib/posthog.ts:
| Setting | Default | Purpose |
|---|---|---|
maskAllTextInputs |
true |
Hide all text input content |
maskAllImages |
true |
Blur/hide all images |
captureLog |
true |
Include console logs in replay |
captureNetworkTelemetry |
true |
Track API calls |
throttleDelayMs |
1000 |
Snapshot interval (milliseconds) |
captureNativeAppLifecycleEvents |
true |
Track app open/close/background |
Using PostHog in Your App
Track Custom Events
Import the hook and use it anywhere:
import { usePostHog } from 'posthog-react-native';
const posthog = usePostHog();
// Track an event
posthog?.capture('button_pressed', {
button_name: 'checkout',
screen: 'product_detail',
});
Identify Users
Set user identity (typically after login):
posthog?.identify(userId, {
email: user.email,
plan: 'premium',
});
Reset on Logout
Clear user identity:
posthog?.reset();
Set User Properties
Update user metadata:
posthog?.setPersonProperties({
credits: 100,
subscription_status: 'active',
});
Environment Variables
Required for PostHog to work:
EXPO_PUBLIC_POSTHOG_KEY=phc_your_project_key
EXPO_PUBLIC_POSTHOG_HOST=https://eu.i.posthog.com
If not set, PostHog is automatically disabled with a console warning.
Rebuild Required
PostHog session replay uses native modules. After configuration changes to app.json, you must rebuild:
npx expo prebuild --clean
npx expo run:ios # or run:android
Or with EAS:
eas build --profile development-client --platform ios
Viewing Data in PostHog
Session Replays
- Go to PostHog → Session Replay
- Click on a session to watch the replay
- See timeline of events, network calls, and console logs
Events
- Go to PostHog → Events
- See all captured events:
$screen- Automatic screen views$pageview- Navigation tracking- Custom events you capture
Users
- Go to PostHog → Persons
- See identified users with their properties
- View their session history and events
Common Issues
"Waiting for events" in Dashboard
Cause: App hasn't been rebuilt after configuration changes
Fix: Run npx expo prebuild --clean and rebuild the app
No Session Replay
Cause: Session replay requires native modules to be rebuilt
Fix: Clean rebuild with npx expo prebuild --clean
Events Not Appearing
Cause: PostHog API key not set or app not rebuilt
Fix:
- Verify
EXPO_PUBLIC_POSTHOG_KEYis set in environment - Rebuild the app
- Wait 1-2 minutes (there can be a delay)
Privacy Concerns
Cause: Default settings mask all inputs and images
Fix: Adjust maskAllTextInputs and maskAllImages in lib/posthog.ts if you need to see more data (consider privacy implications)
Automatic Screen Tracking
The ScreenTracker component in app/_layout.tsx automatically tracks all screen views using Expo Router's navigation hooks. No manual tracking needed for navigation.
When to Use PostHog
- Product Analytics - Understand user behavior and feature usage
- Debugging - Watch session replays to see exactly what users experienced
- Feature Flags - A/B testing and gradual rollouts (requires additional setup)
- User Feedback - Combine with support tickets to see what happened
- Conversion Funnels - Track user journeys through your app
Performance Impact
- Minimal CPU overhead (snapshots are throttled)
- Network usage: ~100-500KB per minute
- Battery impact: Negligible
- Storage: Data is sent to PostHog, not stored locally
Best Practices
- Always mask sensitive data - Keep
maskAllTextInputs: truefor production - Track meaningful events - Don't over-track; focus on key user actions
- Identify users after login - Enables user-specific analysis
- Reset on logout - Prevents data leakage between users
- Use properties - Add context to events for better analysis
- Test in development - Verify events appear before deploying
Reference
- PostHog React Native Docs: https://posthog.com/docs/libraries/react-native
- Session Replay Docs: https://posthog.com/docs/session-replay/mobile
<!-- tomevault:4.0:skill_md:2026-05-22 -->Source: Ampli-Group/agentic-mobile-blueprint — distributed by TomeVault.
- 流狐分类
- 写作
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 88 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @tomevault-io · 未声明 license
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 需要 · Vendor-specific
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- 读取环境变量
- 检测到的网络行为
- 允许外网请求
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 The bootstrap includes a complete PostHog setup with: Session Replay - Records user sessions with privacy protections Automatic Screen Tracking - Tracks navigation automatically via ScreenTracker component
File · Purpose lib/posthog.ts · Configuration with session replay plugin app/layout.tsx · PostHogProvider wrapper and ScreenTracker component
How Session Replay Works
✅ Screen views and navigation ✅ Touch interactions (taps, swipes) ✅ UI changes and animations
🔒 Text inputs masked - All form inputs show as 🔒 Images masked - Photos and avatars are blurred/hidden 🔒 Sensitive data protected - No actual typed content recorded
Starts automatically when app launches Continues throughout the session Stops when app is closed/backgrounded
# PostHog Analytics & Session Replay
## What's Already Configured
The bootstrap includes a complete PostHog setup with:
- **Session Replay** - Records user sessions with privacy protections
- **Automatic Screen Tracking** - Tracks navigation automatically via `ScreenTracker` component
- **Event Tracking** - Ready to use via `usePostHog()` hook
- **Privacy Controls** - Text inputs and images are masked by default
## Files Involved
| File | Purpose |
|------|---------|
| `lib/posthog.ts` | Configuration with session replay plugin |
| `app/_layout.tsx` | PostHogProvider wrapper and ScreenTracker component |
| `app.json` | PostHog plugin registration |
| `.env.example` | Environment variable template |
## How Session Replay Works
### What Gets Recorded
- ✅ Screen views and navigation
- ✅ Touch interactions (taps, swipes)
- ✅ UI changes and animations
- ✅ Network requests (with `captureNetworkTelemetry: true`)
- ✅ Console logs (with `captureLog: true`)
### Privacy Protections
- 🔒 **Text inputs masked** - All form inputs show as `****`
- 🔒 **Images masked** - Photos and avatars are blurred/hidden
- 🔒 **Sensitive data protected** - No actual typed content recorded
### Recording Behavior
- Starts automatically when app launches
- Continues throughout the session
- Stops when app is closed/backgrounded
- Each session is a separate replay in PostHog dashboard
- Data is compressed and sent in batches (not real-time)
### Data Usage
- ~100-500KB per minute of usage
- Throttled to 1 second intervals (`throttleDelayMs: 1000`)
- Only captures visual changes, not full video
## Configuration Options
All settings are in `lib/posthog.ts`:
| Setting | Default | Purpose |
|---------|---------|---------|
| `maskAllTextInputs` | `true` | Hide all text input content |
… 作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> What's Already Configured → Files Involved → How Session Replay Works → What Gets Recorded → Privacy Protections → Recording Behavior
要点 -> Session Replay · Automatic Screen Tracking · Event Tracking · Privacy Controls · Text inputs masked · Images masked · Sensitive data protected · Cause
文件/命令 -> ScreenTracker · usePostHog() · lib/posthog.ts · app/layout.tsx · app.json · .env.example · captureNetworkTelemetry: true · captureLog: true
内容 SHA-256 -> 15e43cfaf705
原文结构
适用与边界
原文中的明确线索
ScreenTracker、usePostHog()、lib/posthog.ts、app/layout.tsx、app.json、.env.example、captureNetworkTelemetry: true、captureLog: true