6 min read

How to Track Conversion Rate in Amplitude

You can't improve what you don't measure. Conversion rate is one of the most critical metrics for any product, but tracking it in Amplitude requires understanding how events chain together into a funnel. This guide shows you how to instrument your product for conversion tracking, build funnels in Amplitude, and use segmentation to find where users drop off.

Instrument Your Conversion Events

Conversion tracking starts with tracking the right events. You need to capture both the starting point and the completion point of your conversion flow.

Initialize the Amplitude SDK

Start by installing the Amplitude JavaScript SDK in your project and initializing it with your API key. This sets up event tracking across your product.

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

amplitude.init('YOUR_API_KEY', {
  userId: 'user_123',
  sessionTimeout: 1800000
});

amplitude.track('page_viewed', { page: 'signup' });
Initialize Amplitude on app load. This enables auto-tracking of page views.

Track the Conversion Funnel Start Event

When a user begins the conversion journey (e.g., clicks a signup button), track an event like signup_initiated. Include relevant context such as traffic source or offer variant.

javascript
amplitude.track('signup_initiated', {
  source: 'pricing_page',
  plan_interest: 'pro',
  utm_campaign: 'summer_sale',
  traffic_type: 'organic'
});
Always attach context like source or plan tier to understand which segments convert best.

Track the Conversion Completion Event

Track the completion of your conversion goal (e.g., signup_completed, purchase_confirmed). This is the denominator for your conversion rate. Include conversion value or plan tier.

javascript
amplitude.track('signup_completed', {
  plan: 'pro',
  signup_duration_seconds: 45,
  payment_method: 'credit_card',
  annual_value: 9999
});
Include metadata that helps you understand *who* converts and their value.

Track Intermediate Steps

For longer conversion flows, track intermediate events like email_verified, payment_entered, or billing_confirmed. This pinpoints where users drop off and helps you diagnose friction.

javascript
amplitude.track('email_verification_sent');
amplitude.track('email_verified');
amplitude.track('payment_info_entered');
amplitude.track('billing_address_confirmed');
Each step becomes a potential breakpoint in your funnel analysis.
Watch out: Event names are case-sensitive in Amplitude. Use snake_case consistently across your codebase to avoid duplicate events like signupCompleted vs. signup_completed.

Build and Analyze Your Conversion Funnel

Once events flow into Amplitude, you can visualize the conversion path and measure dropout at each stage.

Create a Funnel in the Amplitude Console

Go to Analytics > Funnel and click Create Funnel. Add your funnel steps in order: signup_initiatedemail_verifiedsignup_completed. Amplitude calculates the conversion rate and dropout percentage automatically between each step.

javascript
// Funnels are built in the Amplitude UI, but you can query results via API
const funnelResponse = await fetch(
  'https://api.amplitude.com/api/2/funnels',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': `Bearer ${AMPLITUDE_API_KEY}`
    },
    body: JSON.stringify({
      user_sessions_with_events: [
        { event: 'signup_initiated' },
        { event: 'email_verified' },
        { event: 'signup_completed' }
      ],
      interval: 1,
      unit: 'day'
    })
  }
).then(r => r.json());
Use the Amplitude REST API to query funnel data for dashboards or alerts.

Segment Your Funnel by User Properties

Add segments in the Segmentation panel to see how conversion differs across groups. For example, segment by source (organic vs. paid), plan_interest (pro vs. free), or device (mobile vs. desktop). This reveals whether certain channels or user types have higher drop-off.

javascript
amplitude.setUserProperties({
  plan_tier: 'pro',
  company_size: 'enterprise',
  geography: 'US',
  signup_date: new Date().toISOString()
});

amplitude.track('signup_completed', {
  payment_successful: true
});
User properties are immediately available for segmentation and filtering in funnels.

Adjust the Conversion Time Window

By default, Amplitude measures funnel steps in sequence. Use Funnel Settings > Conversion Window to allow longer gaps between steps (7 days, 30 days). This matters if your flow takes time—e.g., a user signs up but doesn't verify email until two days later.

javascript
// Time window is set in the Amplitude UI, not in code
// But understand its impact:
// - 24-hour window: Only counts completions within 1 day (strict, catches friction)
// - 7-day window: Counts completions within a week (realistic for onboarding)
// - 30-day window: Counts completions within a month (loose, inflates rate)

// Choose based on your product's actual conversion cycle
Narrower windows expose friction; wider windows show true conversion potential but may hide problems.
Tip: Use Group Analytics if you're tracking conversions at the company or team level instead of individual users. This is common for B2B products where multiple users sign up under one account.

Monitor Conversion Rate Over Time and Diagnose Drops

Conversion rate changes with product updates and campaigns. Set up monitoring to catch regressions early.

Track Conversion Rate Trends

Set your funnel to group by day or week to see how conversion changes over time. Export the data or use the API to populate a dashboard. Watch for sudden drops—they signal regressions or bugs.

javascript
// Query conversion trend via API
const trend = await fetch(
  'https://api.amplitude.com/api/2/funnels',
  {
    method: 'POST',
    headers: { 'Authorization': `Bearer ${AMPLITUDE_API_KEY}` },
    body: JSON.stringify({
      user_sessions_with_events: [
        { event: 'signup_initiated' },
        { event: 'signup_completed' }
      ],
      interval: 7,
      unit: 'day',
      group_by_property: 'source'
    })
  }
).then(r => r.json());

const conversionRatePercent = (trend.data.events[1] / trend.data.events[0] * 100).toFixed(1);
console.log(`Weekly conversion: ${conversionRatePercent}%`);
Grouping by property like source reveals which channels are trending down.

Identify Where Users Drop Off Using Cohorts

If you see a conversion dip, create a Cohort of users who started the funnel but didn't complete it. Analyze their event sequences and properties. Did they hit an error? Bounce from a specific page? Get stuck on email verification?

javascript
// Track errors and friction points
amplitude.track('signup_error', {
  error_code: 'VERIFICATION_EMAIL_FAILED',
  step: 'email_verification'
});

amplitude.track('payment_declined', {
  decline_reason: 'card_expired',
  payment_processor: 'stripe',
  step: 'payment_processing'
});

amplitude.track('form_abandoned', {
  form_name: 'signup',
  fields_completed: 3,
  fields_total: 7
});
Error events let you identify the exact friction point causing dropout in your funnel.
Tip: Conversion rate hides important details. Always break it down by segment (source, device, geography, user cohort) to find patterns. A global rate of 10% might mask 3% on mobile and 15% on desktop.

Common Pitfalls

  • Using inconsistent event names—signup_completed and signup_complete are treated as different events, breaking your funnel continuity and inflating your event count.
  • Forgetting intermediate steps—if you only track start and end, you miss where the majority of users actually drop off, making optimization impossible.
  • Setting the conversion window too short—if your product's cycle is 7 days but you use a 24-hour window, your reported conversion rate will be artificially low and misleading.
  • Not segmenting by source—organic and paid traffic often have very different conversion rates; reporting a single number masks poor performance in one channel.

Wrapping Up

Tracking conversion rate in Amplitude requires instrumenting the full funnel, segmenting by user properties, and monitoring trends over time. The combination of event tracking, funnel analysis, and error logging gives you the data to identify and fix friction points. 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