Conversion rate matters, but only if you're measuring it right. In Amplitude, this means tracking at least two events consistently: the starting point (like visiting your pricing page) and the completion (like clicking purchase). We'll walk through setting up these events and running the analysis without touching a spreadsheet.
Set Up Consistent Event Tracking
Conversion rate lives or dies on event tracking quality. You need a clear entry point and a completion event, both firing from the same user.
Track your funnel entry event
The first step in any conversion funnel is the entry point—a page view, button click, or feature initiation. Use amplitude.track() to capture it. Include any context that helps you segment later: UTM source, traffic channel, A/B test variant.
amplitude.track('Pricing Page Viewed', {
utm_source: 'organic',
utm_medium: 'search',
pricing_variant: 'control'
});Track your conversion completion event
When the user completes the target action—a purchase, signup, or feature upgrade—send a distinct event. Use the same amplitude.track() method with a clear, descriptive event name.
amplitude.track('Subscription Purchased', {
plan_type: 'pro',
plan_value: 99,
subscription_period: 'yearly'
});Set user identity before tracking
For Amplitude to link events into a funnel, it must recognize the same user across all steps. Call amplitude.setUserId() early—ideally before tracking any events. Without consistent user identity, Amplitude treats each event as a separate user and your conversion rate becomes meaningless.
amplitude.setUserId('user_12345');
amplitude.track('Pricing Page Viewed');
// Later, after signup:
amplitude.setUserId('user_12345'); // Same user
amplitude.track('Subscription Purchased');setUserId(), Amplitude treats every event as a new user. Your funnel will show hundreds of entry events but zero conversions.Measure Conversion with Funnel Analysis
Amplitude's Funnel feature does the conversion calculation for you. You define the steps, and it shows the rate between each one.
Create your funnel in the dashboard
Open Amplitude and go to Analyze > Funnel. Add your events in order: first the entry event, then the conversion event. Amplitude instantly calculates what percentage of users who started completed the step.
// Funnels are built in the UI, not in code.
// But verify your events are firing with setLogEventHandler:
amplitude.setLogEventHandler((event) => {
console.log('Event fired:', event.event_type, event.event_properties);
});
// Then test your funnel flow:
amplitude.track('Pricing Page Viewed');
// User clicks button...
amplitude.track('Subscription Purchased');Segment your funnel by user properties
Conversion rate is never one-size-fits-all. Use Add Filter to segment by user properties: trial vs. paid, traffic source, country, or custom cohorts. This reveals which users actually convert and which are just browsers.
// Track segmentation properties at signup
amplitude.setUserProperties({
trial_user: true,
signup_source: 'organic',
company_size: 'startup',
region: 'US'
});
// In the funnel UI, filter by these properties to compare conversion ratesView conversion trends over time
Set your date range in the funnel view. Amplitude shows whether conversion is trending up or down. Group by properties to see which cohorts convert best—this often reveals your highest-value user segments.
// For A/B testing, track the variant
amplitude.track('Pricing Page Viewed', {
variant: 'test_group_a',
test_name: 'checkout_flow'
});
// The funnel will show conversion rate per variant automaticallyExport and Programmatically Access Conversion Data
If you need to feed conversion data into a data warehouse or custom dashboard, Amplitude's REST API lets you pull funnel data programmatically.
Query funnel data via the Analytics API
Use Amplitude's funnels endpoint to fetch conversion metrics. You'll need your API key and secret key. Make an authenticated POST request specifying your event sequence and date range.
const apiKey = 'YOUR_API_KEY';
const secretKey = 'YOUR_SECRET_KEY';
const auth = Buffer.from(`${apiKey}:${secretKey}`).toString('base64');
const funnelRequest = {
event: [
{ event_type: 'Pricing Page Viewed' },
{ event_type: 'Subscription Purchased' }
],
start: '20260301',
end: '20260331'
};
fetch('https://analytics.amplitude.com/api/2/funnels', {
method: 'POST',
headers: {
'Authorization': `Basic ${auth}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(funnelRequest)
})
.then(res => res.json())
.then(data => console.log('Conversion:', data.data));Calculate conversion rate from raw events
Alternatively, export your raw events and compute conversion rate in your warehouse. Count distinct users in the first event, count how many of those same users appear in the second event, then divide to get your percentage.
// Export events and calculate in your warehouse:
// SELECT
// COUNT(DISTINCT user_id) as entry_users,
// COUNT(DISTINCT CASE WHEN event_type = 'Subscription Purchased' THEN user_id END) as converted,
// ROUND(100.0 * COUNT(DISTINCT CASE WHEN event_type = 'Subscription Purchased' THEN user_id END) /
// COUNT(DISTINCT user_id), 2) as conversion_rate_pct
// FROM events
// WHERE (event_type = 'Pricing Page Viewed' OR event_type = 'Subscription Purchased')
// AND event_time BETWEEN '2026-03-01' AND '2026-03-31';Common Pitfalls
- Skipping
setUserId()or calling it inconsistently. Without a stable user ID, Amplitude can't link events, so your funnel shows thousands of starts but almost zero conversions. - Naming events inconsistently across platforms (e.g., 'Sign Up' on web, 'signup' on mobile). This splits your data and tanks your conversion numbers.
- Forgetting to track both events. If you only track the entry event, your funnel stops there. If you only track conversion, you have no denominator.
- Ignoring time lag. Users rarely convert immediately. If your analysis window is too short, you'll miss late conversions and underestimate your real conversion rate.
Wrapping Up
You now have a working method to measure conversion rates in Amplitude: set up consistent event tracking with amplitude.track(), use the Funnel feature to segment by cohorts, and export programmatically when you need custom analysis. This gives you visibility into where users drop off and which segments are worth investing in. If you want to track this automatically across tools, Product Analyst can help.