Appearance
Google Analytics 4
FreshSEO Utils integrates with Google Analytics 4 (GA4) to sync organic search metrics - sessions, users, bounce rate, and conversion data (Key Events) - into your local database. This data powers the Key Events insight in the Organic Rank Tracker, showing you which tracked keywords are driving conversions.
INFO
GA4 data is synced automatically once per day and stored locally. Your data never leaves your machine.
Prerequisites
Before setting up GA4 integration, you need:
- A Google Service Account added to SEO Utils (see Google Service Accounts)
- A GA4 property with your website configured
- The service account must have Viewer access to your GA4 property
Step 1: Enable Required APIs
You need to enable two Google APIs in the Google Cloud project that your service account belongs to.
Enable the Google Analytics Data API
This API is used to sync metrics (sessions, conversions, etc.) from GA4.
- Go to the Google Cloud Console
- Select the project your service account belongs to
- Navigate to APIs & Services → Library
- Search for "Google Analytics Data API"
- Click Enable
Figure: Enable the Google Analytics Data API in Google Cloud Console
Enable the Google Analytics Admin API
This API is used to discover your GA4 properties and auto-match them to tracked domains.
- In the same project, go to APIs & Services → Library
- Search for "Google Analytics Admin API"
- Click Enable
Figure: Enable the Google Analytics Admin API in Google Cloud Console
WARNING
Both APIs must be enabled in the same Google Cloud project that your service account belongs to. APIs are enabled at the project level, not per service account.
Step 2: Grant Service Account Access to GA4
Your service account needs permission to read data from your GA4 property.
Copy Your Service Account Email
In SEO Utils, go to the Google Service Accounts page and copy the service account email (e.g., project-932@project-1608918721837.iam.gserviceaccount.com).
Add the Service Account to GA4
You can grant access at the property level or account level:
Property Level (Single Property)
- Go to Google Analytics
- Click the gear icon (Admin) at the bottom-left
- Under Property, click Property Access Management
- Click the + button → Add users
- Paste your service account email
- Set the role to Viewer
- Click Add
Account Level (All Properties)
If you want the service account to access all properties under your GA4 account:
- Go to Google Analytics
- Click the gear icon (Admin) at the bottom-left
- Under Account, click Account Access Management
- Click the + button → Add users
- Paste your service account email
- Set the role to Viewer
- Click Add
This grants access to all current and future properties under that account.
Figure: Add the service account email as a Viewer in GA4 Property Access Management
INFO
Viewer permission is sufficient. SEO Utils only reads data from GA4 - it never modifies your analytics configuration.
Step 3: Add a GA4 Property in SEO Utils
Navigate to Google Analytics 4
In SEO Utils, find Google Analytics 4 in the left sidebar and click Add Property.
Figure: Google Analytics 4 section in the sidebar
Select a Service Account
Choose the Google Service Account that has access to your GA4 property. SEO Utils will fetch all GA4 properties the account can access.
Figure: Select a service account to list accessible GA4 properties
Select a GA4 Property
Pick your GA4 property from the dropdown. The Mapped Domain field will auto-fill based on the property's website URL - this links the GA4 data to your Organic Rank Tracker reports.
Set the Initial Backfill to choose how many days of historical data to import on first sync (default: 90 days). GA4 free tier retains 2 months of data by default, or up to 14 months if you've enabled extended retention in your GA4 property settings.
Figure: Select a GA4 property, confirm the mapped domain, and set the backfill period
INFO
The mapped domain should match the target domain in your Organic Rank Tracker report. For example, if your rank tracker tracks example.com, the mapped domain should also be example.com.
Manage Your Properties
After adding a property, SEO Utils will automatically start syncing historical data. You can see it in the GA4 Properties list. From here you can:
- Enable/disable sync - Toggle whether this property syncs automatically once per day
- Sync Now - Trigger an immediate data sync
- Edit domain - Click the domain to change the mapped domain
- Remove - Delete the property and all synced GA4 data. You can re-add the property later to sync again
WARNING
Removing a GA4 property deletes all synced metrics data for that property. Key Events badges in the Organic Rank Tracker will no longer appear for keywords associated with this property. The data can be re-synced by adding the property again.
Figure: GA4 Properties list showing connected properties with sync status
Syncing Data
GA4 data syncs automatically once per day. You can also click "Sync Now" in the GA4 Properties list to trigger an immediate sync.
SEO Utils only syncs organic search traffic - visits from Google organic search results. For each landing page, per day:
| Metric | Description |
|---|---|
| Sessions | Number of organic search sessions |
| Engaged Sessions | Sessions with meaningful engagement |
| Bounce Rate | Percentage of single-page sessions |
| Avg. Engagement Time | Average time users spent on the page |
| Users | Total unique users from organic search |
| New Users | First-time visitors from organic search |
| Key Events | Conversion events (purchases, sign-ups, form submissions, etc.) |
| Revenue | Total revenue from organic search sessions |
How GA4 Data Powers Key Events
The primary use of GA4 data is the Key Events insight in the Organic Rank Tracker. When GA4 data is synced, the rank tracker can show you which keywords are associated with pages that generate conversions.
For example, if the keyword "deep cleaning cambridge" ranks on your /cambridge page, and that page had 3 conversions in GA4, the keyword will display a "3 Key Events" badge in the rank tracker.
This helps you:
- Identify revenue-driving keywords - See which keywords are associated with actual business outcomes
- Prioritize SEO efforts - Focus on keywords that drive conversions, not just traffic
- Correlate rank changes with conversions - Spot when a ranking improvement leads to more conversions
INFO
Key Events attribution works by matching the rank tracker's keyword → page mapping with GA4's landing page → conversion data. For the most accurate results, also connect Google Search Console to provide authoritative keyword-to-page click data.
Troubleshooting
"Google Analytics Data API has not been used in project" error
You need to enable the Google Analytics Data API in your Google Cloud project. Visit the link in the error message to enable it, then wait a minute and try again.
"Google Analytics Admin API has not been used in project" error
You need to enable the Google Analytics Admin API in your Google Cloud project. This is a separate API from the Data API - both need to be enabled. Visit the link in the error message to enable it.
No properties found after clicking "Discover Properties"
Your service account doesn't have access to any GA4 properties. Grant the service account Viewer access in GA4's Property Access Management (or Account Access Management for all properties).
Data syncs successfully but shows 0 rows
This is normal if your site has very low organic search traffic, or if GA4 data hasn't finished processing yet (24-72 hour delay). The sync will pick up the data on the next run.
Sync failed with authentication error
- Verify your service account still has access to the GA4 property
- Check that the service account key hasn't expired or been deleted in Google Cloud Console
- Re-upload the service account key file if needed