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.
// 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()
});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.
amplitude.setUserProperties({
plan_type: 'enterprise',
signup_date: new Date().toISOString(),
feature_flags: ['advanced_reports'],
user_segment: 'power_users'
});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.
// 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();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.
// 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'
})
});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.
// 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.
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.