5 min read

How to Monitor Conversion Rate in Amplitude

Your conversion rate is one of the most important metrics to track, but it's useless if you can't see the data in real time. Amplitude makes it easy to set up conversion tracking across your app or website and drill into where users are actually dropping off in your funnel. Here's how to build out proper conversion monitoring so you can catch issues before they tank your metrics.

Set Up Your Conversion Events

Before you can monitor conversion rates, you need to track the right events. This means every step in your conversion funnel should fire an event.

Instrument Your Conversion Events

Start by tracking the key events that define a conversion for your business. For an SaaS product, this might be signuppayment_initiatedpayment_complete. Send these events from your client or server, and make sure you're including context about which variant or funnel stage the user is in. Use the track() method with a clear event name and relevant properties.

javascript
// Track when a user signs up
amplitude.track('signup', {
  email: userEmail,
  signup_method: 'google_oauth',
  source: 'landing_page'
});

// Later, track when they initiate a payment
amplitude.track('payment_initiated', {
  plan_tier: 'pro',
  price: 99
});

// And when payment completes
amplitude.track('payment_complete', {
  plan_tier: 'pro',
  price: 99,
  payment_processor: 'stripe'
});
Track conversion funnel steps as distinct events with contextual properties

Validate Events Are Firing

Before moving to analytics, verify your events are actually hitting Amplitude. Check the Events > Event Stream view in your Amplitude dashboard. You should see your conversion events flowing in with the correct properties. If events aren't showing up, check your API key and network requests in your browser dev tools.

javascript
// Initialize Amplitude with your API key
const client = new Amplitude('YOUR_API_KEY');

// Before tracking, set user properties to provide context
client.setUserId(user.id);
client.setUserProperties({
  plan: 'trial',
  industry: 'saas',
  region: 'us-west'
});
Initialize Amplitude client and set user context before tracking events
Tip: Always include properties that identify which funnel step or variant the user is in. This makes drilling into your conversion data much easier later.

Create a Funnel to Measure Conversion

Once your events are flowing in, build a funnel to see where users drop off between each step.

Build Your Funnel in the Dashboard

Go to Funnels in the left sidebar and click Create New. Add your conversion steps in order: first step (e.g., signup), second step (e.g., payment_initiated), final step (e.g., payment_complete). Amplitude will show you the conversion rate between each step and the overall funnel completion rate. You can filter by user properties, date range, or cohort to see how conversion varies across different segments.

javascript
// Query funnel data via Amplitude's HTTP API
const response = await fetch(
  'https://api.amplitude.com/2/funnels',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      project_id: PROJECT_ID,
      funnel_steps: [
        { event_type: 'signup' },
        { event_type: 'payment_initiated' },
        { event_type: 'payment_complete' }
      ],
      granularity: 'day',
      date_range: {
        start: '2024-01-01',
        end: '2024-12-31'
      }
    })
  }
);

const funnelData = await response.json();
Programmatically query funnel conversion data via the Amplitude HTTP API

Segment Your Funnel

Don't just look at overall conversion — break it down by cohorts or user segments. Create a filter in your funnel view to see how conversion differs for free vs. paid users, by traffic source, or by device type. This tells you which segments are converting well and which ones need optimization.

javascript
// Use Amplitude's segmentation API to get conversion data by segment
const conversionBySource = await fetch(
  'https://api.amplitude.com/2/events/segmentation',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      project_id: PROJECT_ID,
      event_type: 'payment_complete',
      group_by: 'source',
      date_range: {
        start: '2024-01-01',
        end: '2024-12-31'
      }
    })
  }
);

const data = await conversionBySource.json();
Segment conversion data by user properties to identify high and low converting segments
Watch out: Funnels in Amplitude require users to complete steps in order within a 30-day window. If your funnel steps are separated by months, you won't see the full picture.

Monitor and Act on Conversion Drops

Set up monitoring so you spot problems immediately instead of discovering them weeks later.

Create a Conversion Dashboard

Build a custom dashboard that shows your key conversion metrics at a glance. Add charts for your funnel conversion rate, segment breakdowns, and conversion trend over time. Pin this dashboard so you see it every morning. When conversion dips, you'll know immediately instead of finding out from your boss.

javascript
// Query conversion rate over time for your dashboard
const conversionTrend = await fetch(
  'https://api.amplitude.com/2/events/segmentation',
  {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      project_id: PROJECT_ID,
      event_type: 'payment_complete',
      granularity: 'day',
      date_range: {
        start: '2024-01-01',
        end: '2024-12-31'
      },
      filters: [
        {
          property: 'device_type',
          value: 'mobile',
          op: 'is'
        }
      ]
    })
  }
);

const trendData = await conversionTrend.json();
Fetch and chart conversion metrics over time with segment filters

Debug Conversion Drops Fast

When you see a conversion dip on your dashboard, drill into the Event Stream to see what changed. Compare the properties of users who converted vs. those who didn't. Check if there was a release, bug, or traffic source change around the same time. Track experiments or feature variants in your event properties so you can correlate them with conversion changes.

javascript
// Include experiment or feature variant data in conversion events
amplitude.track('payment_complete', {
  plan_tier: 'pro',
  price: 99,
  payment_processor: 'stripe',
  checkout_variant: 'simplified_flow',
  checkout_time_seconds: 45,
  device_type: 'mobile',
  traffic_source: 'google_ads'
});
Include experiment variants and context in your conversion events for easy debugging
Tip: Export your conversion data weekly and keep a simple spreadsheet tracking the trend. This gives you historical context when things shift.

Common Pitfalls

  • Forgetting to set user IDs or session IDs properly — without them, Amplitude can't track users across events and your funnel analysis will be unreliable.
  • Mixing up event names across your codebase — if some events are purchase and others are payment_complete, your funnel won't capture all conversions.
  • Not filtering your funnel by meaningful segments — if you only look at total conversion, you'll miss that one traffic source or device type is killing your metrics.
  • Using a 30-day funnel window when your actual conversion cycle is longer — you'll systematically undercount conversions if users take 60+ days to convert.

Wrapping Up

Monitoring conversion rate in Amplitude comes down to tracking the right events, building a funnel, and segmenting by what matters. Once you have this set up, you can drill into drops immediately instead of guessing where to optimize. 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