If you're migrating from Google Analytics 4 to Zenovay, the GA4 Importer brings your last 90 days of daily aggregates into Zenovay in one click so you keep context on the day you switch.
The one-click GA4 importer is rolling out and is pending Google's brand-verification review. Until that clears, the Google Analytics 4 tile in the Import tab shows a "Coming soon" badge and isn't connectable yet. If you need to move GA4 history sooner, export it to CSV and use the Plausible-format CSV import, or email support@zenovay.com. The steps below describe the OAuth flow as it works once the tile is enabled.
What it imports
- Daily pageviews, sessions, and users (last 90 days)
- Top pages, top sources, top countries (daily breakdown)
- Sampling warnings, if GA4 sampled the report
What it doesn't import
- Individual visitor sessions (only daily aggregates)
- Custom GA4 events (only standard metrics)
- Ecommerce / revenue events
- Real-time data (only completed days; today is always excluded)
- Universal Analytics data (Google deleted all UA data on 1 July 2025)
How to import
- Open your domain's detail page → Import tab
- Click the Google Analytics 4 tile → Connect Google Analytics
- Sign in to Google and grant the
analytics.readonlyscope - Pick the GA4 property you want to import from
- Click Import last 90 days
- Wait 30 to 60 seconds — the progress bar updates as data lands
The import runs in the background. You can navigate away and come back; the status will be waiting for you on the Import tab.
Verify your import
After the import completes, run through this short checklist to confirm the data landed correctly. This is the same runbook the Zenovay team uses internally.
- Open any analytics view in your dashboard (for example, pageviews for the last 90 days). The imported data appears immediately, blended with any native data already collected.
- Spot-check 3 random days against your GA4 dashboard. Expect ±5% on pageviews, ±3% on sessions, ±2% on unique users — Zenovay and GA4 dedupe visitors differently, so a small gap is normal.
- Imported rows are tagged
imported_from='ga4'in the database, so you can always tell them apart from data Zenovay collected natively. (Note: the Stats API doesn't exposeimported_fromas a queryable filter key — its filters covercountry,browser,device,os,source, theutm_*dimensions, andpage. See Stats API for the full filter syntax.) - Re-import the same period to confirm idempotency. The row count should stay the same — duplicates are impossible because of the database-level uniqueness constraint.
- When you're satisfied, disconnect from the Import tab. Zenovay revokes the OAuth refresh token at Google's end. Imported data stays in your dashboard unless you also check "Also delete imported data" on the disconnect modal.
If any of these checks look off, email support@zenovay.com with the date you imported and which days look wrong. We can spot-fix individual days.
Troubleshooting
"Available on Pro" message
The GA4 importer requires a paid plan. CSV-based Plausible imports stay free; only the OAuth-based GA4 path is gated. Upgrade your plan →
"Scope denied"
When Google's consent screen appears, make sure the analytics.readonly box is checked. Click Connect Google Analytics again to retry — this is the only scope Zenovay requests.
"Property not found"
The Google account you authenticated with must have at least Viewer role on the target GA4 property. Open analytics.google.com → Admin → Property Access Management and confirm. If you're switching Google accounts, disconnect first, then reconnect with the right account.
"Rate limited"
GA4 limits API calls per property per hour (1,250 tokens). For a 90-day import this is normally fine, but if you re-import several times in quick succession you can hit it. Wait 10 minutes and try again. Zenovay retries three times automatically with exponential backoff before surfacing this error.
"Sampled by GA4"
For very-high-traffic properties, GA4 returns sampled (estimated) aggregates rather than precise numbers. The import still succeeds, but the affected rows are approximate. Your dashboard surfaces a "GA4 sampled" indicator on the relevant days so you can tell at a glance.
"Revoked token"
If you revoke Zenovay's access at myaccount.google.com, the next import will fail with this error. Click Connect Google Analytics again to re-authorize.
FAQ
Will it overwrite my native Zenovay data?
No. Imported rows are tagged with imported_from='ga4'. They are stored alongside (not on top of) any data you collect natively with the tracking script. You can filter them in or out at any time.
Can I re-import? Yes, anytime. Re-importing overwrites the same date range cleanly — no duplicates, no orphan rows.
Can I import more than 90 days? Not in V1. We're considering a paid-tier add-on for full account history. Email us if this would be valuable for you.
What about Universal Analytics? Universal Analytics data is gone. Google deleted all UA data on 1 July 2025. Zenovay only supports GA4. If you exported your UA history before deletion to a CSV or BigQuery, contact support — we can discuss bespoke ingestion.
Will Zenovay see my visitors' personal data? No. The importer only reads daily aggregates (totals, top-N lists). No individual visitor records, no IPs, no user IDs cross from GA4 to Zenovay. Your visitors' personal data stays in your GA4 account.
Does this affect my GA4 data? No. The importer is read-only. Zenovay never writes to your GA4 property — disconnecting only revokes the OAuth token at Google's end.
Which time zone is the daily data in? The imported rows use your GA4 property's time zone for the date dimension, not Zenovay's. If your GA4 property is set to America/Los_Angeles, "2026-05-13" in the import means a full day in Los Angeles time. This matches what you see in the GA4 dashboard for an apples-to-apples comparison.