Skip to main content

SaaS Metrics Dashboard & Analytics Setup

Updated this week

Complete SaaS Analytics Implementation

This guide provides comprehensive tracking for SaaS companies using Sealmetrics' privacy-first analytics to monitor user onboarding, feature usage, churn indicators, and product-led growth metrics.

Core SaaS Event Tracking

1. User Registration & Signup

<script> function trackUserSignup(signupData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: 'microconversion', label: 'User Signup', ignore_pageview: 1, use_session: 1, properties: { // Registration details signup_method: signupData.method, // 'email', 'google', 'github', 'sso' user_type: signupData.userType, // 'individual', 'team', 'enterprise' plan_selected: signupData.planSelected, // 'free', 'starter', 'pro', 'enterprise' // Company information company_size: signupData.companySize, // '1-10', '11-50', '51-200', '200+' industry: signupData.industry, use_case: signupData.useCase, // Marketing attribution signup_source: signupData.source, // 'organic', 'paid', 'referral', 'direct' campaign: signupData.campaign, referrer: signupData.referrer, // Context trial_length: signupData.trialLength, // days onboarding_flow: signupData.onboardingFlow, // 'standard', 'guided', 'self_serve' // Technical context signup_page: window.location.pathname, device_type: /Mobile|Android|iPhone|iPad/.test(navigator.userAgent) ? 'mobile' : 'desktop', signup_time: new Date().toISOString() } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } </script>

2. Trial Activation & Onboarding

<script> function trackTrialActivation(activationData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: 'microconversion', label: 'Trial Activated', ignore_pageview: 1, use_session: 1, properties: { // Trial details trial_plan: activationData.trialPlan, trial_duration_days: activationData.trialDuration, features_included: activationData.featuresIncluded, // User setup setup_completed: activationData.setupCompleted, profile_completion: activationData.profileCompletion, // percentage team_members_invited: activationData.teamMembersInvited, // Onboarding progress onboarding_steps_completed: activationData.onboardingStepsCompleted, onboarding_completion_rate: activationData.onboardingCompletionRate, tutorial_completed: activationData.tutorialCompleted, // First actions first_project_created: activationData.firstProjectCreated, first_data_imported: activationData.firstDataImported, first_integration_connected: activationData.firstIntegrationConnected, // Time to activation signup_to_activation_hours: activationData.signupToActivationHours, activation_method: activationData.activationMethod // 'email_verification', 'phone_verification', 'admin_approval' } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } </script>

3. Feature Usage Tracking

<script> function trackFeatureUsage(featureData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: 'custom', label: 'Feature Usage', ignore_pageview: 1, use_session: 1, properties: { // Feature identification feature_name: featureData.featureName, feature_category: featureData.featureCategory, // 'core', 'advanced', 'premium' feature_type: featureData.featureType, // 'creation', 'analysis', 'collaboration', 'integration' // Usage context user_plan: featureData.userPlan, user_role: featureData.userRole, // 'owner', 'admin', 'member', 'viewer' days_since_signup: featureData.daysSinceSignup, usage_frequency: featureData.usageFrequency, // 'first_time', 'occasional', 'regular', 'power_user' // Feature interaction session_duration_minutes: featureData.sessionDuration, actions_performed: featureData.actionsPerformed, data_processed_items: featureData.dataProcessed, // Feature success indicators task_completed: featureData.taskCompleted, result_exported: featureData.resultExported, result_shared: featureData.resultShared, // User experience help_accessed: featureData.helpAccessed, error_encountered: featureData.errorEncountered, feedback_provided: featureData.feedbackProvided, // Business context feature_tier: featureData.featureTier, // 'free', 'paid', 'enterprise' billing_impact: featureData.billingImpact, // usage-based billing collaboration_involved: featureData.collaborationInvolved } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } // Auto-track feature usage on key interactions document.addEventListener('click', function(e) { const featureElement = e.target.closest('[data-feature]'); if (featureElement) { const featureName = featureElement.getAttribute('data-feature'); trackFeatureUsage({ featureName: featureName, featureCategory: featureElement.getAttribute('data-feature-category') || 'core', userPlan: window.userPlan || 'unknown', daysSinceSignup: window.daysSinceSignup || 0 }); } }); </script>

4. Subscription Events

<script> function trackSubscriptionEvent(subscriptionData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: subscriptionData.eventType, // 'purchase' for upgrades, 'microconversion' for others label: subscriptionData.eventLabel, value: subscriptionData.monthlyValue, ignore_pageview: 1, use_session: 1, properties: { // Subscription details subscription_action: subscriptionData.action, // 'upgrade', 'downgrade', 'cancel', 'reactivate' from_plan: subscriptionData.fromPlan, to_plan: subscriptionData.toPlan, billing_cycle: subscriptionData.billingCycle, // 'monthly', 'annual' // Pricing monthly_value: subscriptionData.monthlyValue, annual_value: subscriptionData.annualValue, price_change: subscriptionData.priceChange, // Plan features user_seats_change: subscriptionData.userSeatsChange, storage_change: subscriptionData.storageChange, features_gained: subscriptionData.featuresGained, features_lost: subscriptionData.featuresLost, // Customer context customer_lifetime_months: subscriptionData.lifetimeMonths, previous_plan_duration: subscriptionData.previousPlanDuration, total_revenue_to_date: subscriptionData.totalRevenue, // Conversion context trigger_event: subscriptionData.triggerEvent, // 'usage_limit', 'feature_request', 'sales_contact' discount_applied: subscriptionData.discountApplied, discount_code: subscriptionData.discountCode, // Timing trial_to_paid_days: subscriptionData.trialToPaidDays, upgrade_reason: subscriptionData.upgradeReason, // Payment payment_method: subscriptionData.paymentMethod, payment_success: subscriptionData.paymentSuccess } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } // Example usage for different subscription events function trackUpgrade(upgradeData) { trackSubscriptionEvent({ eventType: 'purchase', eventLabel: 'Plan Upgrade', action: 'upgrade', monthlyValue: upgradeData.newMonthlyValue, ...upgradeData }); } function trackCancellation(cancellationData) { trackSubscriptionEvent({ eventType: 'microconversion', eventLabel: 'Subscription Cancelled', action: 'cancel', ...cancellationData }); } </script>

5. User Engagement & Activity

<script> function trackUserActivity(activityData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: 'custom', label: 'User Activity', ignore_pageview: 1, use_session: 1, properties: { // Activity metrics session_duration_minutes: activityData.sessionDuration, pages_visited: activityData.pagesVisited, actions_performed: activityData.actionsPerformed, features_used: activityData.featuresUsed.length, feature_list: activityData.featuresUsed, // Engagement indicators data_created: activityData.dataCreated, data_modified: activityData.dataModified, collaborations_initiated: activityData.collaborationsInitiated, integrations_used: activityData.integrationsUsed, // User context user_segment: activityData.userSegment, // 'new', 'growing', 'established', 'power_user' plan_type: activityData.planType, days_since_last_activity: activityData.daysSinceLastActivity, weekly_active_days: activityData.weeklyActiveDays, // Product adoption core_features_adopted: activityData.coreFeaturesAdopted, advanced_features_adopted: activityData.advancedFeaturesAdopted, onboarding_completion: activityData.onboardingCompletion, // Business value indicators projects_created: activityData.projectsCreated, reports_generated: activityData.reportsGenerated, api_calls_made: activityData.apiCallsMade, // Satisfaction indicators support_tickets_created: activityData.supportTicketsCreated, feedback_submitted: activityData.feedbackSubmitted, nps_score: activityData.npsScore } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } // Track activity at session end or periodically window.addEventListener('beforeunload', function() { if (window.sessionActivityData) { trackUserActivity(window.sessionActivityData); } }); // Track activity every 10 minutes for long sessions setInterval(function() { if (window.sessionActivityData) { trackUserActivity(window.sessionActivityData); // Reset counters for next interval window.sessionActivityData.actionsPerformed = 0; window.sessionActivityData.pagesVisited = 0; } }, 600000); // 10 minutes </script>

Product-Led Growth Metrics

Viral & Referral Tracking

<script> function trackViralActivity(viralData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: 'microconversion', label: 'Viral Activity', ignore_pageview: 1, use_session: 1, properties: { // Viral action viral_action: viralData.action, // 'invite_sent', 'share_created', 'referral_made' viral_channel: viralData.channel, // 'email', 'social', 'link', 'in_app' // Invitation details invitations_sent: viralData.invitationsSent, invitation_method: viralData.invitationMethod, custom_message_included: viralData.customMessageIncluded, // Share details content_shared: viralData.contentShared, // 'dashboard', 'report', 'project' share_permissions: viralData.sharePermissions, // 'view', 'edit', 'admin' public_share: viralData.publicShare, // Referral program referral_code_used: viralData.referralCodeUsed, referral_incentive: viralData.referralIncentive, referrer_reward: viralData.referrerReward, // User context user_tenure_days: viralData.userTenureDays, user_plan: viralData.userPlan, user_satisfaction: viralData.userSatisfaction, // Viral coefficient tracking network_size: viralData.networkSize, previous_viral_actions: viralData.previousViralActions, viral_loop_stage: viralData.viralLoopStage // 'initial', 'secondary', 'tertiary' } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } </script>

Product Adoption Milestones

<script> function trackAdoptionMilestone(milestoneData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: 'microconversion', label: 'Adoption Milestone', ignore_pageview: 1, use_session: 1, properties: { // Milestone identification milestone_name: milestoneData.milestoneName, milestone_type: milestoneData.milestoneType, // 'onboarding', 'usage', 'value', 'expansion' milestone_category: milestoneData.category, // 'first_value', 'habit_formation', 'expansion' // Milestone details milestone_value: milestoneData.value, // numeric value of milestone milestone_unit: milestoneData.unit, // 'projects', 'reports', 'api_calls', 'collaborators' // User journey days_to_milestone: milestoneData.daysToMilestone, milestone_sequence: milestoneData.milestoneSequence, // which milestone in the journey previous_milestone: milestoneData.previousMilestone, // Context user_plan_at_milestone: milestoneData.planAtMilestone, team_size_at_milestone: milestoneData.teamSizeAtMilestone, features_used_to_reach: milestoneData.featuresUsedToReach, // Success indicators milestone_impact_on_retention: milestoneData.retentionImpact, milestone_impact_on_expansion: milestoneData.expansionImpact, // Business value revenue_at_milestone: milestoneData.revenueAtMilestone, usage_intensity: milestoneData.usageIntensity, // 'light', 'moderate', 'heavy' // Predictive indicators next_milestone_prediction: milestoneData.nextMilestonePrediction, churn_risk_after_milestone: milestoneData.churnRiskAfterMilestone, upgrade_probability: milestoneData.upgradeProbability } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } // Example milestone triggers function checkAdoptionMilestones(userActivity) { // First project created if (userActivity.projectsCreated === 1 && !userActivity.milestonesReached.includes('first_project')) { trackAdoptionMilestone({ milestoneName: 'first_project_created', milestoneType: 'onboarding', value: 1, unit: 'projects', daysToMilestone: userActivity.daysSinceSignup }); } // Power user threshold (100 API calls) if (userActivity.totalApiCalls >= 100 && !userActivity.milestonesReached.includes('power_user')) { trackAdoptionMilestone({ milestoneName: 'power_user_threshold', milestoneType: 'usage', value: userActivity.totalApiCalls, unit: 'api_calls', daysToMilestone: userActivity.daysSinceSignup }); } } </script>

Advanced SaaS Analytics

A/B Testing Integration

<script> function trackSaaSExperiment(experimentData) { (function() { var options = { account: 'YOUR_ACCOUNT_ID_HERE', event: 'custom', label: 'A/B Test Interaction', ignore_pageview: 1, use_session: 1, properties: { // Experiment details experiment_name: experimentData.experimentName, experiment_id: experimentData.experimentId, variant: experimentData.variant, // User context user_segment: experimentData.userSegment, user_plan: experimentData.userPlan, user_tenure: experimentData.userTenure, // Interaction interaction_type: experimentData.interactionType, // 'view', 'click', 'conversion' feature_affected: experimentData.featureAffected, // Outcome conversion_achieved: experimentData.conversionAchieved, conversion_value: experimentData.conversionValue, // Statistical context confidence_level: experimentData.confidenceLevel, statistical_significance: experimentData.statisticalSignificance } }; var url="//app.sealmetrics.com/tag/v2/tracker";function loadScript(callback){var script=document.createElement("script");script.src=url;script.async=true;script.onload=function(){if(typeof callback==="function"){callback();}};script.onerror=function(){console.error("Error loading script: "+url);};document.getElementsByTagName("head")[0].appendChild(script);}loadScript(function(){options.id=Math.floor((Math.random()*999)+1);if(window.sm){var instance=new window.sm(options);instance.track(options.event);}else{console.error("sm2 plugin is not available");}}); })(); } </script>

SaaS Analytics Dashboard Configuration

Key Metrics to Track

1. Acquisition Metrics

  • Sign-up Rate: Track registration conversions

  • Activation Rate: Users who complete onboarding

  • Time to First Value: Speed of initial value delivery

  • Source Attribution: Which channels drive quality users

2. Growth Metrics

  • Monthly Recurring Revenue (MRR)

  • Annual Recurring Revenue (ARR)

  • Average Revenue Per User (ARPU)

  • Expansion Revenue: Upsells and cross-sells

3. Product-Led Growth Metrics

  • Viral Coefficient: User-driven growth

  • Product Qualified Leads (PQLs)

  • Feature Usage Depth: Advanced feature adoption

  • Self-Service Conversion Rate

Custom Dashboard Views

// Dashboard configuration for different stakeholders const dashboardConfigs = { // Executive Dashboard executive: { metrics: ['MRR', 'ARR', 'Churn Rate', 'CAC', 'LTV'], timeframe: 'monthly', segments: ['plan_type', 'company_size'] }, // Product Team Dashboard product: { metrics: ['Feature Adoption', 'User Engagement', 'Onboarding Completion', 'Churn by Feature'], timeframe: 'weekly', segments: ['user_segment', 'feature_usage'] }, // Customer Success Dashboard customer_success: { metrics: ['Health Score', 'Usage Trends', 'Support Tickets', 'NPS'], timeframe: 'daily', segments: ['risk_level', 'plan_type', 'tenure'] }, // Marketing Dashboard marketing: { metrics: ['Acquisition', 'Activation', 'Attribution', 'CAC by Channel'], timeframe: 'weekly', segments: ['traffic_source', 'campaign', 'user_type'] } };

Automated Alerts & Monitoring

<script> // Set up automated monitoring for key SaaS metrics function setupSaaSMonitoring() { // Monitor for churn risk indicators if (window.userMetrics && window.userMetrics.churnRiskScore > 70) { trackChurnIndicators({ churnRiskScore: window.userMetrics.churnRiskScore, riskCategory: 'high', triggerEvent: 'automated_monitoring' }); } // Monitor for expansion opportunities if (window.userMetrics && window.userMetrics.usageGrowth > 50) { trackAdoptionMilestone({ milestoneName: 'expansion_opportunity', milestoneType: 'expansion', usageGrowth: window.userMetrics.usageGrowth }); } } // Run monitoring checks periodically setInterval(setupSaaSMonitoring, 3600000); // Every hour </script>

This comprehensive SaaS analytics setup provides complete visibility into user behavior, product adoption, churn indicators, and growth metrics while maintaining privacy compliance through Sealmetrics' consentless tracking approach.

Did this answer your question?