5 min read

How to Visualize User Stickiness in Amplitude

User stickiness—how often your users return and stay engaged—is critical but hard to measure at a glance. Amplitude gives you multiple ways to track this: retention cohorts, repeat usage patterns, and engagement curves. We'll show you how to set it up so you can see exactly which user segments are sticky and which are at risk of churning.

Set Up Core Stickiness Events

Stickiness starts with the right events. You need events that signal active, returning engagement—not just first-time actions.

Track your primary engagement event consistently

Pick an event that represents a sticky behavior. For a SaaS product, this might be View Dashboard or Run Report. In Amplitude, track this consistently using the track() method. Make sure you're capturing user_id and a timestamp; Amplitude adds the timestamp automatically, but user_id must be set before the event fires.

javascript
// Set user identity before tracking engagement
amplitude.setUserId(userId);

// Track the core engagement event
amplitude.track('View Dashboard', {
  workspace_id: workspaceId,
  plan_type: userPlan,
  timestamp: Date.now()
});
Track your primary engagement event with context about the user's plan or cohort

Add user properties for segmentation

User stickiness varies by plan, industry, or onboarding path. Set user properties once during signup or profile update so Amplitude can segment retention by these dimensions. Use setUserProperties() to tag users with relevant metadata.

javascript
amplitude.setUserProperties({
  plan_type: 'enterprise',
  signup_date: new Date().toISOString(),
  feature_flags: ['advanced_reports'],
  user_segment: 'power_users'
});
Watch out: If you change your event name or definition mid-project, historical data won't match. Keep event definitions stable—rename the event in Amplitude's settings if you need a new name, don't just start tracking a different event.

Build and Visualize Retention Cohorts

Retention analysis in Amplitude shows you what fraction of users return over time. Cohorts let you segment by user properties.

Create a retention chart in Amplitude

Navigate to Retention in the left sidebar (under Analytics). Set your Event/Metric to your engagement event (e.g., View Dashboard). Choose a Cohort (typically All Users to start), then select your time buckets (Day, Week, or Month). Amplitude will show you a cohort table: each row is a cohort, each column is a time period, and the cells show the percentage of users who returned.

javascript
// Query retention data via Amplitude HTTP API
const response = await fetch('https://api.amplitude.com/api/2/retention', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${AMPLITUDE_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    event: 'View Dashboard',
    interval: 'week',
    interval_count: 12,
    retention_type: 'recursive'
  })
});
const data = await response.json();
Query retention data programmatically to export or integrate into your own dashboard

Segment retention by user properties

In the Retention chart, use the Group By dropdown to break down retention by plan_type, user_segment, or any other user property you set via setUserProperties(). This shows you whether enterprise users are stickier than free-tier users, or whether users from specific campaigns stick around longer. Each segment gets its own row in the retention table.

javascript
// Segment retention by user property in your API query
const response = await fetch('https://api.amplitude.com/api/2/retention', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${AMPLITUDE_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    event: 'View Dashboard',
    interval: 'week',
    interval_count: 12,
    group_by: 'plan_type',  // Segment by user property
    retention_type: 'recursive'
  })
});
Tip: Use Recursive retention (users who return at least once in the period) for overall stickiness, and Rolling retention (users who return every single period) if you want to measure hardcore engaged users. Recursive is usually what you want for general stickiness.

Export and Monitor Stickiness Over Time

Once you have retention charts, you can export them, build dashboards, and track stickiness as a KPI.

Export retention data for external dashboards

In Amplitude's Retention view, click the Export button to download a CSV. This gives you a flat table with cohort names and retention percentages. You can feed this into Looker, Tableau, or a custom dashboard to track stickiness trends alongside other product metrics.

javascript
// Parse and process exported retention CSV data
const csv = await fetch('/amplitude-retention-export.csv')
  .then(r => r.text());
const rows = csv.split('\n').slice(1); // Skip header
const stickiness = rows.map(row => {
  const [cohort, week1, week4, week12] = row.split(',');
  return {
    cohort,
    day1_retention: parseFloat(week1),
    day28_retention: parseFloat(week4),
    day90_retention: parseFloat(week12)
  };
});

Set stickiness baselines and alerts

A healthy product typically maintains 20–40% week-over-week retention (varies by category). If your retention drops below your baseline, it signals a problem—either UX regression, a feature bug, or market shift. Set up weekly exports and compare them to your historical baseline.

Watch out: Amplitude's retention numbers are retroactive. A cohort created today shows data only for past periods; you can't see future retention. Plan ahead: start tracking stickiness events now if you want to measure retention for users who signed up this week.

Common Pitfalls

  • Using a too-frequent event for retention (e.g., tracking every keystroke) drowns out the signal; pick a meaningful engagement action
  • Not setting user properties consistently; if some users lack plan_type or user_segment data, segmented retention will have gaps
  • Confusing recursive and rolling retention; rolling makes nearly everyone look unsticky, so start with recursive for an honest baseline
  • Forgetting to set user_id before tracking events; events without a user_id won't be included in retention cohorts

Wrapping Up

User stickiness in Amplitude boils down to three steps: track engagement events, build retention cohorts, and segment by user properties. Once you can see which user segments return and which drop off, you can prioritize retention efforts. If you want to track this automatically across tools, Product Analyst can help.

Track these metrics automatically

Product Analyst connects to your stack and surfaces the insights that matter.

Try Product Analyst — Free