- Add MIXPANEL_TOKEN, MIXPANEL_API_SECRET, ANALYTICS_ENV to .env.example - Add packages/web/.env.example with VITE_MIXPANEL_TOKEN and other analytics vars - Update docs/MIXPANEL_ANALYTICS.md with complete setup instructions - Document event taxonomy (30+ events across User, Subscription, DarkWatch, VoicePrint, SpamShield) - Add KPI definitions (MAU, MRR, conversion, churn, CAC, LTV, NPS, viral coefficient) - Include integration examples for backend and frontend usage - Document alert thresholds for monitoring Implementation was already complete in packages/shared-analytics and packages/web. This completes the configuration and documentation for Mixpanel setup. FRE-5281
5.6 KiB
5.6 KiB
ShieldAI Mixpanel Analytics Configuration
Implementation Complete ✅
The Mixpanel analytics infrastructure is fully implemented and ready for use. This document covers setup and usage.
What's Implemented
Backend (packages/shared-analytics)
- MixpanelService: Full implementation using Segment analytics-node SDK
- Event Taxonomy: 30+ events defined in
EventTypeenum covering:- User Events:
user_signed_up,user_logged_in,user_upgraded,user_downgraded - Subscription Events:
subscription_created,subscription_updated,subscription_cancelled,subscription_renewed - DarkWatch Events:
dark_web_scan_started,dark_web_scan_completed,exposure_detected,exposure_resolved,watchlist_item_added,watchlist_item_removed - VoicePrint Events:
voice_enrolled,voice_analyzed,voice_match_found,synthetic_voice_detected - SpamShield Events:
call_analyzed,sms_analyzed,spam_blocked,spam_flagged,spam_feedback_submitted - KPI Events:
mrr_updated,conversion_occurred,churn_occurred,referral_sent,referral_converted
- User Events:
- User Identification:
identify()andgroup()methods for user segmentation - KPI Definitions: MAU, MRR, conversion rate, churn, CAC, LTV, NPS, viral coefficient
- Data Validation: Zod schema for event properties
Frontend (packages/web/src/hooks/useAnalytics.ts)
- Initialization: Auto-loads Mixpanel script via
initMixpanel() - Event Tracking:
trackEvent(name, params)for generic events - Page View Tracking:
trackPageView(path, title)with automatic page title - Waitlist Tracking:
trackWaitlistSignup(email, source, tier)with Meta Pixel integration - Multi-Platform Support: GA4, Meta Pixel, LinkedIn Insight included
Setup Instructions
Step 1: Create Mixpanel Account (Manual)
- Go to https://mixpanel.com
- Sign up for an account (free tier: 100K monthly tracked users)
- Create a new project named "ShieldAI"
- Copy the Project Token from Project Settings → Project Token
Step 2: Configure Backend Environment Variables
Add to ShieldAI/.env:
# Mixpanel (Backend)
MIXPANEL_TOKEN=<your-mixpanel-project-token>
MIXPANEL_API_SECRET=<optional-api-secret-for-server-side>
ANALYTICS_ENV=development # or production, staging
Step 3: Configure Frontend Environment Variables
Create or update ShieldAI/packages/web/.env:
# Mixpanel (Frontend - Vite)
VITE_MIXPANEL_TOKEN=<same-project-token-as-backend>
Step 4: Verify Integration
Backend usage example:
import { mixpanelService, EventType } from '@shieldsai/shared-analytics';
// Track an event
await mixpanelService.track(EventType.USER_SIGNED_UP, userId, {
plan: 'premium',
referrer: 'google',
});
// Identify a user
await mixpanelService.identify(userId, {
email: 'user@example.com',
tier: 'premium',
});
Frontend usage example:
import { trackEvent, trackWaitlistSignup, trackPageView } from './hooks/useAnalytics';
// Track a page view
trackPageView('/waitlist', 'Waitlist Signup');
// Track a signup
trackWaitlistSignup('user@example.com', 'landing_page', 'free');
// Track a custom event
trackEvent('feature_used', { feature: 'darkwatch_scan', duration: 45 });
Event Properties Schema
All events support these standard properties (validated via Zod):
userId(string, optional): User identifiersessionId(string, optional): Session identifiertimestamp(Date, optional): Event timestampplatform(enum: 'web' | 'mobile' | 'desktop' | 'api', optional): Event sourceversion(string, optional): App versionenvironment(string, optional): deployment environment
Additional custom properties are accepted and passed through to Mixpanel.
KPI Definitions
| KPI | Description | Calculation |
|---|---|---|
| MAU | Monthly Active Users | COUNT(DISTINCT userId) WHERE timestamp > NOW() - 30 DAYS |
| Paying Users | Active subscriptions | COUNT(DISTINCT userId) WHERE subscription.status = "active" |
| MRR | Monthly Recurring Revenue | SUM(subscription.amount) WHERE subscription.status = "active" |
| Conversion Rate | Free → Paid | COUNT(upgrade events) / COUNT(signup events) |
| Churn Rate | Cancellations | COUNT(cancel events) / COUNT(active subscriptions) |
| CAC | Customer Acquisition Cost | Total marketing spend / COUNT(new paying users) |
| LTV | Lifetime Value | Average subscription amount / Churn rate |
| NPS | Net Promoter Score | % Promoters - % Detractors |
| Viral Coefficient | Referral multiplier | COUNT(referral events) / COUNT(users) |
Alert Thresholds
Configured thresholds for monitoring:
- Churn: Warning >5%, Critical >10%
- Conversion Rate: Warning <2%, Critical <1%
- MRR: Warning <90% target, Critical <80% target
- NPS: Warning <50, Critical <40
- Viral Coefficient: Warning <0.4, Critical <0.3
Files Modified
packages/shared-analytics/src/config/analytics.config.ts- Event taxonomy & KPIspackages/shared-analytics/src/services/mixpanel.service.ts- Mixpanel servicepackages/shared-analytics/src/index.ts- Exportspackages/web/src/hooks/useAnalytics.ts- Frontend analytics hook.env.example- Environment variable templatesdocs/MIXPANEL_ANALYTICS.md- This documentation
Next Steps
- Create Mixpanel account (requires human action - no API for account creation)
- Add tokens to
.envfiles - Test event tracking in development
- Set up Mixpanel dashboards for KPI monitoring
- Configure Mixpanel alerts for threshold breaches