FunnelKeeper + Google Analytics 4
One Google sign-in connects GA4 with read-only scopes. FunnelKeeper reads sessions by channel and landing page, and turns the GA4 events you nominate into funnel stages, so spend has something to be measured against.
What FunnelKeeper reads from Google Analytics 4
- Sessions and engaged sessions by channel, at day grain
- Landing-page traffic, which is what the Pages surface scores
- GA4 events you map to funnel stages, as daily aggregates
What it never does
- No writes to your GA4 property. The OAuth grant asks for read-only analytics scopes
- No user-level export — FunnelKeeper reads the aggregates GA4's Data API returns
- No refresh token is kept from the Log in with Google flow; that is a separate, smaller grant
How to connect Google Analytics 4
Integrations → Google → Connect with Google, or Grant access instead (service-account email) connect_service_account (zero-click if you have GA4 admin) or connect_source_start with kinds: ["ga4"] fk connect google-sa --product <slug> or fk connect ga4 --product <slug> POST /connect/google/service-account/start or POST /connect/google/start Daily. A new property backfills in stages — 30 days, then a year, then everything your plan's history window allows — then restates the last 3. Saving credentials also triggers a sync, so the dashboard fills in one step.
Google Analytics 4 questions
Which GA4 events become funnel stages?
The ones you map. Set them in Integrations → GA4 → Event mapping, with MCP set_ga4_event_maps, or via POST /products/{slug}/connections/ga4/event-maps. Each map is an event name plus the canonical stage it counts as — generate_lead as 'lead', for example.
What happens if I connect both GA4 and PostHog?
GA4 owns traffic. Events from two sources would sum in every volume reader, so PostHog then contributes only its mapped events and session replay. The Integrations panel records and shows which source is the traffic owner.
Does this replace my GA4 reports?
No. GA4 stays the better tool for audience and behaviour reporting. FunnelKeeper reads it for the one thing GA4 does not do: joining that traffic to ad spend and to revenue so each channel gets a payback day.
Usually connected alongside
Google Tag Manager
Catch the broken tag that is quietly spoiling every number you trust.
Read what it pulls →Google Ads
Spend at campaign, ad group, keyword and ad grain — so each row gets a real ROAS.
Read what it pulls →PostHog
Product analytics as the funnel, plus the replay behind each drop-off.
Read what it pulls →Connect Google Analytics 4 on the free tier. The first sync backfills history, so the dashboard opens with something in it.
Start freeAgents: the same page as markdown at /integrations/ga4.md.