Google Analytics 4, inside your audit
Connect your own GA4 property to MetricSpot and the audit shows the organic traffic story right where the SEO findings are. Read-only access. Cached for 24 hours. Disconnect at any time and we delete the tokens.
analytics.readonly scope only. Never written. Never shared.
No card needed. Results in 30 seconds.
What you see
Each audit on a domain you have linked to GA4 shows four panels of organic-traffic context, alongside the 154-rule SEO findings.
28-day sessions with signed delta
Total sessions for the last 28 days against the prior 28-day window. Up or down, by how much, in plain numbers.
Top 5 landing pages
The five URLs that took the most organic sessions in the period. Sortable. Clickable to the live page.
Daily sessions sparkline
A 28-day daily trend, drawn from your GA4 sessions metric. Reveals the day a redesign or algorithm update hit.
Audience donuts
Country, language, and device-category breakdown. Three donuts. Read at a glance.
The privacy posture
We treat your GA4 data the way we would want ours treated. Six commitments, in plain language.
Read-only scope.
MetricSpot requests analytics.readonly, the minimum Google-documented scope for reading GA4. We cannot write, modify, or delete anything in your GA4 property.
Per-request use only.
Data is fetched at audit time, cached briefly (24 hours maximum), and used only to render the panels in your own audit report. It never leaves your audit.
Never shared with third parties.
Your traffic numbers are yours. Not aggregated for benchmarking, not sold, not used to train anything.
Disconnect deletes tokens.
Hit Disconnect in Settings, and we delete the stored OAuth refresh token immediately. Next audit, no GA4 panel.
You pick the property.
After OAuth, MetricSpot shows the list of GA4 properties on your Google account. You pick which one to link, per domain. Mismatched property and audit URL? We show no GA4 panel and surface a helpful warning.
Your tokens are encrypted at rest.
OAuth refresh tokens live in our database encrypted with our application key. We never log them, never echo them in error messages, never email them.
How to connect
Three steps. Two minutes. No spreadsheet.
- 1
Settings → Integrations → Connect Google
MetricSpot opens Google's standard OAuth consent screen. You sign in with the Google account that owns (or has read access to) the GA4 property.
- 2
Pick your GA4 property
After consent, MetricSpot shows every GA4 property visible to that account. Pick one per audited domain. You can change the binding later.
- 3
Run an audit
The audit ingests the GA4 panels alongside the SEO findings. Re-run anytime. Schedule it on Pro and the panels refresh every week.
Google OAuth verification
MetricSpot's Google integration is going through Google's OAuth app verification process. analytics.readonly is a sensitive scope, so Google reviews how we use it before letting unverified-app warnings stand down. Our submission to Google is in progress. While the review is underway, you may see a 'Google hasn't verified this app' screen during the OAuth consent step. The integration works either way. The screen disappears once Google approves the review.
Pricing
The GA4 integration is included on every paid MetricSpot plan: Starter $29/mo and Pro $49/mo. Free tier accounts can audit without GA4 connected and upgrade when they're ready.
Connecting GA4 alone is fine. For the full picture, pair it with Google Search Console , which surfaces what queries brought the traffic.
FAQ
Do you read user-level data from GA4?
No. We pull aggregated reports only: sessions, top landing pages, country/language/device breakdowns. We never request user-level events or user IDs.
Where is the data stored?
GA4 responses are cached in our database for up to 24 hours per audit, then evicted. OAuth refresh tokens are encrypted at rest. Both live in our EU-hosted Postgres instance.
What happens if I rotate Google passwords or revoke MetricSpot in Google Account Permissions?
The refresh token becomes invalid. Next audit, MetricSpot detects the 401 from Google, drops the cached panel, and surfaces a Reconnect button in the audit. No data is lost.
Can my client connect their own GA4 to my MetricSpot account?
Each MetricSpot account links its own Google account. The cleanest workflow for agencies is to use a Google account that has read access to all client GA4 properties (Google calls this 'Viewer' or 'Analyst' role). Then link each client's GA4 property to the corresponding audit URL.
Why does MetricSpot show 'Verification in progress' on the consent screen?
Google requires apps requesting sensitive scopes like analytics.readonly to be verified. We submitted for verification (4-6 week queue). Until approval lands, you may see Google's standard 'unverified app' screen. The integration still works. The screen disappears once Google's review is complete.
Is GA4 data shown in the white-label PDF?
Yes. The same four panels render in the white-label PDF, with your brand kit applied (logo, color, footer). Available on Starter $29/mo and above.
Stop writing SEO reports by hand.
Run an audit, brand the PDF, send to your client. In five minutes.
Start your first audit