Conversion rate is one of the most important metrics for any business, but GA4 calculates it differently than Universal Analytics—and many teams misunderstand how it works. Conversion rate in GA4 is the percentage of sessions that include at least one conversion event. If you're not measuring it correctly, you could be flying blind on what actually drives your business.
How GA4 Defines Conversion Rate
GA4 conversion rate is fundamentally different from UA. It's not about individual users; it's about sessions.
Understand the GA4 calculation
Conversion rate in GA4 = (Sessions with conversions / Total sessions) × 100. GA4 counts a session as converting if it contains at least one event marked as a conversion. This is different from Universal Analytics, which measured conversions at the user level. A single user can have multiple converting sessions, and each counts separately.
// GA4 conversion calculation example
// If you have 1000 sessions and 50 of them contain a purchase event
// Conversion rate = (50 / 1000) * 100 = 5%
// Every event marked as a conversion in GA4 Admin contributes to this calculation
// You can view this in the GA4 interface under Reports > Engagement > ConversionsKnow what counts as a conversion event
Not every event is a conversion. You must explicitly mark events as conversions in the GA4 Admin panel. Go to Admin > Events and toggle Mark as conversion for the events you care about. Common conversion events include purchase, sign_up, contact, submit_form, and download.
// Standard GA4 conversion events (these are predefined)
gtag('event', 'purchase', {
currency: 'USD',
value: 99.99
});
gtag('event', 'sign_up', {
method: 'google'
});
gtag('event', 'submit_form', {
form_name: 'contact_us'
});Setting Up Conversion Tracking
Conversion rate is only meaningful if you're tracking the right events. Here's how to get it working.
Send conversion events with gtag.js
Use the gtag() function to fire conversion events on your website. This works for any action you want to measure—purchases, signups, downloads, demo requests, whatever matters to your business. The event name must match what you'll mark as a conversion in GA4.
// Track a purchase conversion
gtag('event', 'purchase', {
currency: 'USD',
value: 49.99,
items: [{
item_id: 'SKU123',
item_name: 'Premium Plan',
price: 49.99,
quantity: 1
}]
});
// Track a sign-up conversion
gtag('event', 'sign_up', {
method: 'email'
});
// Track a form submission
gtag('event', 'submit_form', {
form_name: 'contact_us'
});Mark events as conversions in GA4 Admin
Sending the event is half the battle. You also need to tell GA4 that this event counts as a conversion. Navigate to Admin > Events in your GA4 property, find the event you just created, and toggle the Mark as conversion switch. Only events marked as conversions contribute to your conversion rate.
// After marking an event as conversion in Admin > Events,
// GA4 will start counting sessions with this event toward your conversion rate
// Check which events are marked as conversions via the GA4 Admin API
const response = await fetch(
'https://analyticsadmin.googleapis.com/v1beta/properties/GA_PROPERTY_ID/conversionEvents',
{
method: 'GET',
headers: {
'Authorization': `Bearer ACCESS_TOKEN`,
'Content-Type': 'application/json'
}
}
);
const conversionEvents = await response.json();
console.log(conversionEvents);purchase. Check Admin > Events to see what's already enabled before creating custom ones.Viewing and Reporting on Conversion Rate
Once you're tracking conversions, you need to see the data. GA4 makes this straightforward.
Find conversion rate in GA4 Reports
The easiest way to see conversion rate is through the GA4 Reports > Engagement > Conversions view. This shows your total conversions, conversion rate, and a breakdown by conversion event. You can also add conversion rate to any custom report by selecting the Conversion rate metric.
// Query conversion rate using the GA4 Data API
const response = await fetch(
'https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport',
{
method: 'POST',
headers: {
'Authorization': `Bearer ACCESS_TOKEN`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
dateRanges: [{
startDate: '2024-01-01',
endDate: '2024-01-31'
}],
metrics: [
{ name: 'conversions' },
{ name: 'sessions' },
{ name: 'conversionRate' }
]
})
}
);
const reportData = await response.json();
console.log(`Conversion Rate: ${reportData.rows[0].metricValues[2].value}%`);Segment conversion rate by dimension
Don't just look at overall conversion rate. Break it down by source/medium, device, landing page, or custom dimensions to see where your conversions actually come from. This tells you which traffic sources and user segments are actually valuable.
// Query conversion rate by traffic source and device
const response = await fetch(
'https://analyticsdata.googleapis.com/v1beta/properties/GA_PROPERTY_ID:runReport',
{
method: 'POST',
headers: {
'Authorization': `Bearer ACCESS_TOKEN`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
dateRanges: [{
startDate: '2024-01-01',
endDate: '2024-01-31'
}],
metrics: [
{ name: 'conversionRate' },
{ name: 'conversions' },
{ name: 'sessions' }
],
dimensions: [
{ name: 'sessionSourceMedium' },
{ name: 'deviceCategory' }
]
})
}
);
const data = await response.json();
data.rows.forEach(row => {
console.log(`${row.dimensionValues[0].value}: ${row.metricValues[0].value}%`);
});Common Pitfalls
- Not marking events as conversions in GA4 Admin—you can send events all day, but they won't count toward conversion rate if they're not explicitly marked as conversions.
- Confusing sessions with users—GA4 conversion rate is (sessions with conversions / total sessions), not (users with conversions / total users). One user can contribute multiple conversions across different sessions.
- Expecting real-time conversion rate data—GA4 has a 24-48 hour reporting lag, especially for newly created conversion events. Your conversion rate today is actually data from 1-2 days ago.
- Including bot traffic in conversion rate—GA4's bot filtering isn't perfect. Enable Admin > Data Streams > Enhanced measurement > Exclude bot traffic to avoid inflated conversion counts from automated traffic.
Wrapping Up
Conversion rate in GA4 is straightforward once you understand that it's session-based, not user-based, and that you must explicitly mark events as conversions. Track the right events, mark them in GA4 Admin, and segment by dimension to understand where your actual value comes from. If you want to track conversion rate automatically across multiple tools and tie it to your business outcomes, Product Analyst can help.