GA4 Importer
Available on Pro and above. The GA4 importer is a one-shot tool to bring your last 90 days of Google Analytics 4 daily aggregates into Zenovay, so you do not lose context when you switch.
What this does
- Reads 90 days of daily aggregates from your GA4 property: pageviews, sessions, users, top pages, top sources, top countries.
- Writes them into Zenovay's
analytics_dailytable withimported_from='ga4'so they are clearly distinguishable from native Zenovay data. - Idempotent: re-importing the same period overwrites cleanly without duplicates.
What this does NOT do
- It does not import individual visitor sessions, custom events, ecommerce/revenue, or real-time data.
- It does not map GA4 custom events into Zenovay event types (planned for V2).
- It does not continuously sync — V1 is one-shot. Recurring sync is on the roadmap.
Prerequisites
- A Zenovay account on Pro tier or higher.
- A Google Analytics 4 property with at least Viewer role for the Google account you will use.
Step-by-step
1. Open the Import tab
Navigate to your domain's detail page → Import tab. You'll see source tiles for Plausible (existing) and Google Analytics 4 (new).
2. Connect Google Analytics
Click the Google Analytics 4 tile → Connect Google Analytics. You'll be redirected to Google, where you grant Zenovay read-only access to your GA4 data (scope: analytics.readonly).
3. Pick a property
After consent, you'll see a list of GA4 properties on your Google account. Choose the property that matches the website you're importing into.
4. Trigger the import
Click Import last 90 days. The import runs in the background; the UI polls every two seconds and shows a progress bar. A 90-day import typically completes in 30–60 seconds.
5. Review
When complete, you'll see a summary: rows imported, date range, sampling status (if GA4 sampled your data). Imported data immediately appears in your dashboard with the GA4 origin marker.
A note on Universal Analytics
Google deleted all Universal Analytics data on 1 July 2025. UA data is no longer recoverable from Google's systems. The GA4 importer only supports GA4 properties — UA properties are not available to migrate.
Troubleshooting
"Scope denied"
You must grant the analytics.readonly scope. Re-run the Connect flow and check all scope boxes when Google asks.
"Property not found"
Make sure the Google account you authenticated with has at least Viewer role on the GA4 property. If you switched Google accounts between Connect and Pick, disconnect and reconnect.
"Rate limited"
GA4 limits API requests per property per hour. If you see this, wait 10 minutes and retry. Zenovay automatically retries with backoff three times before showing this error.
"Partial import"
This indicates GA4 returned fewer than 90 days of data — usually because the property is newer than 90 days, or some days had no traffic. Spot-check the imported range in your dashboard.
Data slightly differs from GA4 dashboard
GA4 deduplicates and samples differently from Zenovay's native ingestion. Expect ±5% on pageviews, ±3% on sessions, ±2% on unique users. The imported_from='ga4' marker lets you filter to compare like-for-like.
Distinguishing imported data
Every imported row carries imported_from='ga4' on analytics_daily. In Zenovay's Public Stats API (Pro+), you can filter via the same field. Native Zenovay data has imported_from=NULL.
Disconnecting
Open the GA4 tile → Disconnect. Zenovay revokes the OAuth token at Google's revoke endpoint and removes your stored credentials. Imported data is preserved by default; check the "Also delete imported data" box if you want a full wipe.
Related Resources
Need help? Contact [email protected] or visit our Help Center.