Engagement Rate tells you what percentage of your sessions had meaningful interactions—clicks, scrolls, video plays, form submissions. In GA4, this metric is calculated automatically, but understanding how it's measured and setting up the right events for your business is critical for catching engagement drops early.
Finding Engagement Rate in GA4 Reports
GA4 calculates engagement rate for you automatically. The metric appears in most standard reports.
Step 1: Navigate to the Engagement Report
In GA4, go to Reports in the left sidebar, then Engagement. You'll see Engagement Rate as a primary metric alongside Sessions and Users. This is your out-of-the-box engagement metric—it counts sessions that had at least one conversion event or 10+ seconds of engagement.
// GA4 measures engagement automatically via gtag.js
// No code needed for basic engagement calculation—GA4 counts:
// 1. Sessions with duration >= 10 seconds
// 2. Sessions with at least 1 conversion event
// 3. Sessions with 2+ page views
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');Step 2: Apply Dimensions and Filters
Click the Comparison or Filters button to segment engagement by page, traffic source, device, or user cohort. For example, filter by Page Title to see which pages drive the most engagement. This helps you identify which content or features are resonating.
Step 3: Export or Set Up a Custom Dashboard
In the report view, click the Export button (top right) to download engagement data as CSV. For ongoing monitoring, create a Custom Report or use GA4's Looker Studio connector to build a real-time dashboard.
const body = {
dateRanges: [{ startDate: '2025-01-01', endDate: '2025-03-26' }],
metrics: [{ name: 'engagementRate' }],
dimensions: [{ name: 'pagePath' }],
};
const response = await fetch(
'https://analyticsreporting.googleapis.com/v4/properties/YOUR_PROPERTY_ID:runReport',
{
method: 'POST',
headers: { 'Authorization': `Bearer ${accessToken}` },
body: JSON.stringify(body),
}
);
const report = await response.json();Define Engagement Events for Your Business
GA4's default engagement logic may not match your actual business goals. Set up custom events to track the actions that matter most.
Step 1: Identify What Counts as Engagement
Before adding events, decide what engagement means for your product. For SaaS, this might be: form submission, feature button click, or pricing page view. For media, it might be: video play, article share, or 2+ minutes on page. Document these as your engagement criteria.
Step 2: Send Custom Events via gtag.js
Add gtag event calls to your site code. Each event you send will be counted toward engagement rate. Use descriptive event names and include parameters for context.
// Track a feature button click as engagement
document.getElementById('try-feature-button').addEventListener('click', () => {
gtag('event', 'feature_button_clicked', {
event_category: 'engagement',
event_label: 'pricing_page',
value: 1,
});
});
// Track form submission
document.getElementById('signup-form').addEventListener('submit', () => {
gtag('event', 'form_submit', {
event_category: 'engagement',
form_name: 'email_signup',
});
});Step 3: Mark Events as Conversion Events
In GA4, go to Admin > Events and click Mark as Conversion for critical events like signups or purchases. Conversion events directly count toward engagement rate and appear in the Conversions report.
gtag('event', 'purchase', {
transaction_id: 'T_12345',
value: 99.99,
currency: 'USD',
items: [{
item_id: 'SKU_123',
item_name: 'Annual Plan',
quantity: 1,
price: 99.99,
}],
});
// GA4 automatically counts this as both a conversion and engagement signalfeature_button_clicked and button_click will be treated as separate events.Monitor Engagement Programmatically with Alerts
For automated monitoring, pull engagement data into your own dashboard or alerting system.
Step 1: Authenticate with GA4 Reporting API
Set up a Google Cloud service account with permission to read your GA4 property. Download the JSON key and use it to authenticate API requests. You'll need your GA4 property ID from the Admin panel.
const {BetaAnalyticsDataClient} = require('@google-analytics/data');
const analyticsDataClient = new BetaAnalyticsDataClient({
projectId: 'YOUR_PROJECT_ID',
});
async function getEngagementData() {
const [response] = await analyticsDataClient.runReport({
property: `properties/YOUR_GA4_PROPERTY_ID`,
dateRanges: [{ startDate: '7daysAgo', endDate: 'today' }],
metrics: [{ name: 'engagementRate' }, { name: 'sessions' }],
dimensions: [{ name: 'date' }],
});
return response;
}
const data = await getEngagementData();Step 2: Set Up Daily Monitoring with Alerts
Run the script daily to pull engagement data. Compare today's rate to your baseline (7-day or 30-day average). If engagement drops below your threshold, log a warning or send a Slack notification.
async function checkEngagementHealth() {
const data = await getEngagementData();
const latestRow = data.rows[data.rows.length - 1];
const engagementRate = parseFloat(latestRow.metricValues[0].value);
const threshold = 0.30; // Alert if below 30%
if (engagementRate < threshold) {
console.error(`⚠️ Engagement dropped to ${(engagementRate * 100).toFixed(1)}%`);
// Send notification
await sendSlackAlert(`Engagement alert: ${engagementRate}`);
}
}
checkEngagementHealth();Common Pitfalls
- GA4's engagement rate includes any session with 10+ seconds OR 1+ conversion event. It's not identical to other analytics tools—test your baseline expectations against your actual traffic.
- Custom events must be defined in your gtag code AND configured in GA4 admin to count toward engagement. Adding gtag calls alone won't mark them as engagement signals.
- Engagement rate is a session-level metric, not user-level. GA4 calculates it across all sessions in your date range, so a user with 5 engaged sessions appears as part of that engagement percentage.
- GA4's real-time report shows engagement data with a 30-minute lag. For truly real-time monitoring, use the Reporting API and query hourly instead.
Wrapping Up
You now know how to find engagement rate in GA4 reports, define what engagement means for your product, and monitor it programmatically. Start by checking the out-of-the-box engagement report, then layer on custom events that match your business goals. If you want to track engagement automatically across all your tools and get unified alerts, Product Analyst can help.