Conversion rate is one of the most important metrics in Google Analytics 4, and you need to know immediately when it drops. GA4's alert system lets you catch problems before they become revenue issues. Whether you want quick alerts through the UI or programmatic monitoring at scale, GA4 gives you the tools.
Setting Up Alerts Through the GA4 Admin Panel
The fastest way to get alerted on conversion rate changes is through GA4's built-in custom alerts. You'll set a threshold and get notified via email when conversion rate drops below it.
Navigate to Custom Alerts in GA4 Admin
In your GA4 property, go to Admin > Custom Definitions > Custom Alerts. You'll see a list of existing alerts (if any) and a button to create a new one.
// GA4 custom alerts are managed through the Admin UI, but you can query
// the current conversion rate to set intelligent thresholds
const {BetaAnalyticsDataClient} = require('@google-analytics/data');
const client = new BetaAnalyticsDataClient();
const request = {
property: `properties/${propertyId}`,
dateRanges: [{startDate: '30daysAgo', endDate: 'today'}],
metrics: [{name: 'conversionRate'}],
dimensions: [{name: 'date'}]
};
const response = await client.runReport(request);
console.log('30-day baseline conversion rate:', response[0].rows);
// Use this baseline to set your alert thresholdCreate a New Custom Alert
Click Create Custom Alert. Name it something descriptive like "Conversion Rate Drop Alert". Select Conversion Rate as the metric you want to monitor. Set the condition to trigger when it drops below your baseline threshold (usually 20-30% below your average).
// Example: Alert configuration structure for GA4 Admin API
const alertConfig = {
displayName: 'Conversion Rate Drop Alert',
customAlertConditions: [
{
name: 'conversion_rate_threshold',
condition: 'LESS_THAN',
threshold: 2.5, // 2.5% threshold
durationDays: 1,
metric: 'conversionRate'
}
],
notificationChannels: ['email']
};
// GA4 will compare this threshold against daily conversion rateSet Notification Preferences
Choose who gets notified. GA4 emails the property owners by default, but you can add collaborators with Edit access. Decide on notification frequency: immediate is best for conversion rate since drops impact revenue quickly.
Programmatic Alerts with the Google Analytics Admin API
For teams managing multiple GA4 properties or needing to trigger downstream workflows, use the Analytics Admin API to create and manage alerts programmatically. This lets you automate alert creation across properties and hook into custom systems.
Authenticate with the Admin API
You'll need a service account with Editor access to your GA4 property. Download the JSON key file from Google Cloud Console and initialize the AnalyticsAdminServiceClient.
const {AnalyticsAdminServiceClient} = require('@google-analytics/admin');
const path = require('path');
const keyFilePath = path.join(process.env.HOME, '.config/ga-admin-key.json');
const adminClient = new AnalyticsAdminServiceClient({
keyFilename: keyFilePath
});
console.log('Authenticated with GA4 Admin API');
// You're now ready to create or list alerts programmaticallyCreate a Conversion Rate Alert via API
Use the Admin API's createCustomAlert method to create an alert. Specify the property ID, threshold value, duration in days, and notification channels. GA4 will monitor conversion rate daily.
const request = {
parent: `properties/${propertyId}`,
customAlert: {
displayName: 'Conversion Rate Below 2.5%',
customAlertConditions: [
{
name: 'conversion_rate_drop',
condition: 'LESS_THAN',
threshold: 2.5,
durationDays: 1,
metric: 'conversionRate'
}
]
}
};
try {
const [alert] = await adminClient.createCustomAlert(request);
console.log('Alert created:', alert.name);
} catch (error) {
console.error('Failed to create alert:', error.message);
}Poll Conversion Rate and Trigger Custom Actions
GA4 alerts only send email notifications. To trigger custom actions (Slack message, pause ad spend, page on-call), set up a Cloud Function that polls conversion rate and fires your own logic when it breaches the threshold.
const {BetaAnalyticsDataClient} = require('@google-analytics/data');
const analyticsData = new BetaAnalyticsDataClient();
async function checkConversionRateAndAlert() {
const response = await analyticsData.runReport({
property: `properties/${propertyId}`,
dateRanges: [{startDate: '1daysAgo', endDate: 'today'}],
metrics: [{name: 'conversionRate'}],
dimensions: [{name: 'date'}]
});
const currentRate = parseFloat(response[0].rows[0].metricValues[0].value);
const threshold = 2.5;
if (currentRate < threshold) {
// Trigger custom action: post to Slack, call webhook, etc.
await notifySlack(`⚠️ Conversion rate dropped to ${currentRate}%`);
}
}
// Schedule this function to run every hour via Cloud SchedulerReal-time Monitoring with Google Sheets and Looker Studio
For teams that live in spreadsheets or need always-on dashboards, connect GA4 directly to Google Sheets using the Google Analytics connector. Combine this with conditional formatting or Looker Studio for real-time visibility.
Connect GA4 to Google Sheets
Open a new Google Sheet and use the Google Analytics connector to pull conversion rate data. Go to Data > Data Connectors > Google Analytics and select your GA4 property. Choose conversion rate as your metric and set the date range to 1 day so you get fresh data.
// Using Google Sheets API to read GA4 data from the connector
const {google} = require('googleapis');
const sheets = google.sheets({version: 'v4', auth: sheetsAuth});
const range = 'Sheet1!A1:B2';
const response = await sheets.spreadsheets.values.get({
spreadsheetId: SHEET_ID,
range: range
});
const conversionRate = parseFloat(response.data.values[1][1]);
console.log('Current GA4 conversion rate:', conversionRate + '%');
// The connector refreshes this value every few hours automaticallySet Conditional Formatting for Visual Alerts
Select the conversion rate cell and apply conditional formatting. Go to Format > Conditional formatting and create a rule: Format rules > Custom formula is. Use a formula like =B2<2.5 to highlight drops below your threshold in red.
Common Pitfalls
- Setting alert thresholds too high: Most teams alert based on yesterday's traffic, not historical baseline. GA4 conversion rate naturally fluctuates 0.5-1% daily. Set your threshold 20-30% below your 30-day average, not based on one good day.
- Ignoring GA4's timezone and date range quirks: GA4 alerts use UTC midnight by default. If you're on US Eastern Time and set a 1-day alert, it fires at UTC midnight, not midnight ET. Check your timezone settings or adjust thresholds accordingly.
- Forgetting to notify the right person: GA4 alerts email the property owner by default. If your analytics person isn't the person who acts on conversion rate drops, the alert sits in an inbox unread. Set up Slack integration or webhooks instead.
- Not accounting for expected traffic patterns: Weekends and holidays see lower conversion rates naturally. Set separate alerts for weekdays vs. weekends, or you'll get alert fatigue from false positives that waste your team's attention.
Wrapping Up
You now have multiple ways to monitor conversion rate in GA4: quick alerts through the UI for small teams, programmatic alerts via the Admin API for automation and custom workflows, and real-time dashboards in Sheets or Looker Studio for always-on visibility. Pick the approach that fits your team's workflow. If you want to track conversion rate changes across GA4, Amplitude, Mixpanel, and Stripe in one place, Product Analyst can help.