6 min read

How to Track Feature Adoption in Amplitude

You ship a feature and need to know: who's using it, how often, and where they drop off. Amplitude's event tracking and cohort tools let you build adoption metrics without waiting for a data team. This guide covers the exact setup you need.

Step 1: Send Feature Events from Your App

Start by instrumenting your feature to send events to Amplitude whenever a user interacts with it.

Initialize the Amplitude SDK

Add the Amplitude JavaScript SDK to your app. Initialize it with your API key from Settings > API Keys. Set up user IDs so you can track individuals across sessions.

javascript
import * as amplitude from '@amplitude/analytics-browser';

amplitude.init('YOUR_API_KEY', {
  userId: 'user_id',
  sessionId: 'session_id'
});
Initialize Amplitude in your app entry point

Track feature usage events

Send an event whenever a user interacts with your feature. Include properties that help you segment adoption: which feature, which cohort they're in, what plan they're on.

javascript
amplitude.track('Feature Viewed', {
  featureName: 'advanced_reporting',
  featureVersion: 'v2',
  userPlan: 'pro'
});

amplitude.track('Feature Used', {
  featureName: 'advanced_reporting',
  action: 'generated_report',
  reportType: 'cohort_analysis'
});
Track both viewing and deeper interactions with properties
Watch out: Use consistent event naming across your app. If you name the same feature event differently in two places, Amplitude treats them as separate events and your adoption metrics split.

Step 2: Build Adoption Cohorts

Once you're collecting feature events, use cohorts to segment users by adoption status.

Create an adopters cohort

Go to Cohorts > Create Cohort and define who counts as an adopter. Use the event you just instrumented as the criteria—users who triggered your feature event in the last 30 days.

javascript
fetch('https://api.amplitude.com/api/2/cohorts', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    name: 'Advanced Reporting Adopters',
    definition: {
      event: 'Feature Used',
      eventProperties: {
        featureName: 'advanced_reporting'
      },
      timeWindow: '30d'
    }
  })
});
Create adopter cohorts via the Cohort API

Build a non-adopters cohort

Create a second cohort of users who have NOT triggered your feature event. Use NOT IN logic to find users with access but zero adoption. This helps you measure the adoption gap.

javascript
// In Amplitude UI: Cohorts > Create > toggle "NOT" > select your event
// This cohort = users who did NOT trigger 'Feature Used' in last 30 days

const nonAdopters = {
  "name": "Advanced Reporting Non-Adopters",
  "definition": {
    "match": "any",
    "conditions": [
      {
        "op": "NOT",
        "event": "Feature Used",
        "eventProperties": { "featureName": "advanced_reporting" }
      }
    ]
  }
};
Use NOT IN logic to identify the adoption gap

Segment by product behavior

Combine cohorts with other user properties. Create a cohort like [Pro Plan] AND [Feature Used in last 7 days] to measure adoption specifically among your highest-value users. This reveals whether adoption barriers exist for specific segments.

Tip: Use time windows strategically. A 30-day adopters cohort shows current adoption; a 1-day cohort shows daily new adopters. Layer them in charts to see acceleration or plateaus.

Step 3: Visualize Adoption Trends and Funnels

Build dashboards to track adoption over time and identify where users drop off.

Create a segmentation chart

Go to Events > Segmentation, select your feature event, and segment by user or property. Set a 30-90 day date range to spot trends. Break down by plan tier, company, or cohort to compare adoption rates across groups.

javascript
// Query adoption metrics via the Events API
const adoptionData = {
  event: 'Feature Used',
  start: '2024-01-01',
  end: '2024-03-31',
  granularity: 'day',
  group_by: [
    { type: 'event_property', value: 'userPlan' }
  ]
};

fetch('https://api.amplitude.com/api/2/events', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify(adoptionData)
});
Query adoption trends programmatically via the Events API

Set up conversion funnels

Go to Funnels and build a multi-step funnel: Feature ViewedFeature UsedFeature Completed (or your equivalent). This shows exactly where users drop off. Compare funnels across cohorts (Pro vs Free) to spot adoption barriers.

javascript
// Instrument the funnel steps in your app
amplitude.track('Feature Viewed', { featureName: 'advanced_reporting' });
amplitude.track('Feature Used', { featureName: 'advanced_reporting', action: 'started' });
amplitude.track('Feature Completed', { featureName: 'advanced_reporting', reportGenerated: true });

// In Amplitude: Funnels > Create > Add these three events in order
Track the adoption journey from discovery to completion
Watch out: Funnels drop users who don't complete all steps in order. If users skip a step, they fall out. Use Segmentation charts for a fuller picture of who's interacting with your feature.

Common Pitfalls

  • Not tracking feature exposure separately from usage—you need both to calculate true adoption rates. Track when a user *sees* the feature (exposure) and when they *use* it (adoption). Otherwise you're measuring engagement only among people who already adopted.
  • Naming events inconsistently across your codebase (e.g., Feature_Used in one place, feature used in another)—Amplitude treats them as different events, fragmenting your adoption data across multiple event names.
  • Forgetting to add user properties at login—if you don't track plan tier, company, cohort, or signup date as user properties, you can't segment adoption in Amplitude. You'll see overall adoption but not adoption *by segment*.
  • Setting too short a time window for adoption analysis—adoption trends need 14-30 days of data to become clear. If you check after 3 days, you're looking at noise. Also, Amplitude's free tier samples data above 1M events/month, which reduces precision.

Wrapping Up

You now have a data flow: instrumented feature events feeding into adopter and non-adopter cohorts, visualized through segmentation charts and conversion funnels. Use this to prioritize onboarding, documentation, or unblocking features. If you want to track feature adoption automatically across all your tools and surface adoption blockers without manual dashboards, Product Analyst can help.

Track these metrics automatically

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

Try Product Analyst — Free