Google Analytics 4 integration
We read Google Analytics 4, and label what it told us.
We pull sessions, engagement, and conversions per landing page so content is judged on outcomes, not rankings alone.
How it works
Google Analytics 4 connects through Google OAuth, and we read reports with the Data API, using runReport and batchRunReports to pull sessions, engagement, and conversions broken down by landing page. The figures match what you see in the GA4 interface, because the API respects your property's reporting-identity and threshold settings rather than computing its own version of the truth.
In the loop, GA4 is the measure step past the search results page. Search Console tells us a page ranks and earns clicks; GA4 tells us what those visitors did next. Pages that rank but do not convert get flagged for rework, and pages that quietly convert get more internal links and follow-up content, so the opportunity engine learns from behavior, not just positions.
Best forTeams who want published content evaluated on sessions, engagement, and conversions, not just where it ranks.
Setup, step by step
- Confirm your site runs GA4, since Universal Analytics properties are not supported.
- Click Connect on the Google Analytics card and sign in with an account that has at least Viewer access to the property.
- Approve the read-only scope in Google's consent screen.
- Select the GA4 property and, if relevant, confirm the conversion events we should treat as outcomes.
- Review the first landing-page report we pull to confirm the numbers match your GA4 interface.
Best practices
Mark the conversions that matter
GA4 tracks many events, and only some of them are business outcomes. Tell us which conversion events count during setup, so content reports measure signups and purchases instead of scrolls.
Expect the numbers to match the UI
The Data API returns the same figures the GA4 interface shows, including your property's identity and threshold settings. If our report and your GA4 screen agree, the connection is working exactly as intended.
Know what thresholding hides
Depending on your property settings, GA4 can withhold rows for small segments to protect privacy. A new page with little traffic may show gaps at first, and the rows appear as traffic grows.
Keep the property tidy
Landing-page attribution is only as good as your GA4 setup. Consistent UTM conventions and a single property per site keep the per-page numbers we pull meaningful.
Use it in the full SEO workflow
The connector is the last mile, not the strategy. Read the GA4 organic search attribution workflow for the evidence gates, draft state, review rules, publish checks, and measurement loop that surround this integration.
Known issues
What practitioners actually report, from official docs, issue trackers, and community forums.
GA4 only, no Universal Analytics
The Data API serves GA4 properties only, so sites still holding Universal Analytics data cannot connect that history.
How we handle itWe detect the property type at connect and say so plainly. GA4 has been the only collecting version for years now, so for current measurement this rarely bites, but old UA history stays outside the integration.
developers.google.com/analytics
Thresholding can hide small-segment rows
Rows for small user segments can be withheld depending on the property's settings, so low-traffic pages sometimes show fewer rows than expected.
How we handle itWe aggregate at the landing-page level and over longer windows where thresholding bites less, and we mark reports where withheld rows may affect totals instead of presenting them as complete.
developers.google.com/analytics
API quotas per property
The Data API enforces per-property quotas, so heavy reporting can hit limits and delay refreshes.
How we handle itWe batch requests with batchRunReports and refresh on a schedule sized to the quotas, so dashboards stay current without ever exhausting your property's allowance.
developers.google.com/analytics
Questions teams ask
- Will SearchHandled's numbers match what I see in GA4?
Yes. We read through the official Data API, which returns the same figures as the GA4 interface and respects your property's reporting-identity settings. Where thresholding withholds rows, it does so in both places.
- Can SearchHandled change our analytics configuration?
No. The connection is read-only. We run reports and nothing else, so your property settings, events, and audiences are untouched.
- What if we do not use Google Analytics?
The loop still works with Search Console alone, measuring rankings and clicks. You can also import conversion reports manually. GA4 just adds the behavioral layer that ties content to outcomes automatically.
Connect Google Analytics 4
Your own numbers, not an estimate of them.
Connect Google Analytics 4 and the Growth Map is built from what your site actually reports, with every measured figure labelled as measured.

