GrowReach — Unified Data Access: GSC / GA4 / GTM for the CRO Agent
Date: August 17, 2026 Author: CRO Agent (GrowReach) Question: What’s the best way to give the CRO agent access to Google Search Console, Google Analytics, and Google Tag Manager — so all data lands in one place for correlation, analysis, reporting, and decisions?
1. Executive Summary
| Question | Answer |
|---|---|
| Is there an MCP/CLI for Google products? | Yes. Composio (already connected) has google_search_console and google_analytics toolkits. GSC is already connected and verified working. GA4 needs a one-click OAuth connect. GTM has no analytics API (it’s config, not data — see §4). |
| Can Google data be pulled into PostHog? | Yes. PostHog Data Warehouse has native Google Analytics and Google Search Console sources (daily sync, OAuth). Currently none are connected in your project. |
| What’s the recommended architecture? | Both, layered: ① PostHog Data Warehouse sources (GA4 + GSC) = unified correlated analysis in one place. ② Composio MCP = on-demand real-time queries + reporting. |
| What does Rahul need to do? | ~10 minutes of OAuth clicks. Connect GA4 in Composio + link GA4 & GSC sources in PostHog. GSC is already done. |
2. What’s Already Working (verified today)
| Access path | Status | Proof |
|---|---|---|
| PostHog MCP (eu.posthog.com, project 136693) | ✅ Active | All CRO analysis runs through this |
| Composio → Google Search Console | ✅ ACTIVE | Verified: sc-domain:growreach.app + https://growreach.app/ both listed as siteOwner. Live query returned real data: 88–182 impressions/day, avg position 47–61, 0 clicks (Aug 10–14, 2026) |
| Composio → Google Analytics | ⚠️ Toolkit exists, no connection yet | GOOGLE_ANALYTICS_RUN_REPORT, BATCH_RUN_REPORTS, GET_METADATA, LIST_PROPERTIES available — needs OAuth |
| PostHog Data Warehouse | ⚠️ No sources connected | system.information_schema.tables WHERE table_type='data_warehouse' returns empty |
3. The Three Options Compared
| Option | How it works | Setup effort | Data freshness | Best for |
|---|---|---|---|---|
| A. PostHog Data Warehouse sources (recommended primary) | Native GA4 + GSC connectors sync daily into PostHog’s warehouse; query with HogQL alongside events | ~15 min OAuth (Rahul) | Daily | Correlated analysis: “signups by organic query”, “bounce by landing page + GSC position” — everything in 1 SQL |
| B. Composio MCP direct access (recommended on-demand) | Agent calls GA4 Data API / GSC API live via MCP | GSC: done ✅ / GA4: ~5 min OAuth | Real-time | Spot queries, ad-hoc reports, quick answers in chat |
| C. Google Sheets export pipeline | Script pulls GA4/GSC → Sheets, agent reads via gws | Medium (scripting + scheduling) | Depends on schedule | Only if you want human-editable data; not needed here |
Recommendation: A + B together. A gives you the “one place to correlate” — GA4, GSC, and PostHog event data queryable in a single SQL statement. B gives you instant access without waiting for daily syncs. Skip C entirely.
4. What About Google Tag Manager?
GTM is configuration, not analytics data. It doesn’t collect anything — it fires tags (GA4, pixels) that collect data elsewhere. There is no meaningful “GTM data” to query, which is why neither PostHog nor Composio offers a GTM analytics source.
| What people mean by “GTM access” | What it actually is | How the CRO agent gets it |
|---|---|---|
| ”What tags are deployed?” | GTM container config (GTM-MQDVLQ6P) | Read the live site’s HTML (done — see pixel guide) or Rahul screenshots the container |
| ”Are tags firing correctly?” | Tag health / Preview mode | GA4 DebugView + browser console + Tag Assistant |
| ”What data do tags send?” | GA4 events, pixel events | PostHog + GA4 (once connected) |
Bottom line: GTM itself never needs to be connected. Its output (GA4 data, pixel data) is what matters, and that flows through options A and B.
5. Recommended Architecture
┌──────────────────────────────────────┐
│ growreach.app (browser) │
│ PostHog JS + GTM → GA4 + pixels │
└──────────────┬───────────────────────┘
│
┌────────────────────────┼────────────────────────┐
▼ ▼ ▼
┌────────────────────┐ ┌────────────────────┐ ┌────────────────────┐
│ PostHog (EU) │ │ GA4 G-2DSCDB28FB │ │ GSC growreach.app │
│ events, persons, │ │ (via Composio MCP │ │ (via Composio MCP │
│ sessions, replay │ │ OR PostHog src) │ │ OR PostHog src) │
└─────────┬──────────┘ └─────────┬──────────┘ └─────────┬──────────┘
│ │ │
└──────────┬─────────────┴─────────────┬──────────┘
▼ ▼
┌───────────────────────────┐ ┌───────────────────────────┐
│ POSTHOG DATA WAREHOUSE │ │ COMPOSIO MCP (agent) │
│ GA4 source + GSC source │ │ GOOGLE_ANALYTICS_RUN_… │
│ = unified HogQL queries │ │ GOOGLE_SEARCH_CONSOLE_… │
│ across all data │ │ = real-time spot queries │
└───────────────────────────┘ └───────────────────────────┘
6. Setup Steps for Rahul (~15 minutes total)
Step 1 — Connect GA4 in Composio (5 min) — gives the agent real-time GA4 access
- Nothing to install — the toolkit exists. Rahul needs to authorize one connection:
- In Composio dashboard → Connections → Google Analytics → Connect
- Sign in with the Google account that owns GA4 (3rd.rahul@gmail.com presumably)
- Agent can then run
GOOGLE_ANALYTICS_RUN_REPORTwithproperty: properties/<numeric GA4 property ID> - Find the numeric Property ID: GA4 → Admin → Property settings → Property details (NOT
G-2DSCDB28FB— that’s the Measurement ID)
✅ GSC is already connected — no action needed there.
Step 2 — Link GA4 + GSC as PostHog Data Warehouse sources (10 min) — enables one-place correlation
In PostHog (eu.posthog.com → project 136693):
- Data pipeline → Sources tab → + New source
- Google Analytics → Link → sign in with Google → enter the numeric Property ID → select tables:
website_overview,traffic_sources,campaigns,landing_pages,pages,key_events,events,devices,locations,user_acquisition,daily/weekly/four_weekly_active_users
- Google Search Console → Link → sign in → select property (
sc-domain:growreach.app) → select tables:search_analytics_by_date,_by_query,_by_page,_by_country,_by_device,_by_query_page,_by_search_appearance
- Sync frequency: daily incremental (default) — GSC data lags 2–3 days anyway; GA4 daily is plenty for correlation
- Docs: https://posthog.com/docs/cdp/sources/google-analytics · https://posthog.com/docs/cdp/sources/google-search-console
Step 3 — (Optional) Verify
Agent runs a test HogQL join to confirm both sources landed.
7. What This Unlocks (example correlated queries once Step 2 is done)
| Question | How it’s answered |
|---|---|
| ”Which organic queries drive signups?” | Join search_analytics_by_query ↔ PostHog user_signed_up events by landing page/date |
| ”Do high-impression pages convert better?” | Join search_analytics_by_page ↔ PostHog $pageview → funnel by page |
| ”Is the GA4 traffic story consistent with PostHog?” | Compare website_overview (GA4) vs query-web-overview (PostHog) — flag discrepancies |
| ”Which campaigns bring the best users?” | campaigns table (GA4) ↔ PostHog signup/retention events |
| ”Real-time: what are our top queries right now?” | Composio GOOGLE_SEARCH_CONSOLE_SEARCH_ANALYTICS_QUERY (already works) |
| “Real-time: 7-day acquisition by source?” | Composio GOOGLE_ANALYTICS_RUN_REPORT (after Step 1) |
8. Caveats & Notes
| Caveat | Detail |
|---|---|
| GA4 source is alpha in PostHog | Interface/tables may change; docs recommend the wizard for auto-setup |
| GA4 source needs numeric Property ID | Measurement ID (G-2DSCDB28FB) and UA IDs won’t work — must be the numeric one from Admin → Property settings |
| GSC API caps ~50K rows/property/date/dimension-set | Long-tail queries/pages can be dropped above the cap; acceptable at GrowReach’s traffic level (88–182 impressions/day) |
| GA4 Data API limits | Max 9 dimensions + 10 metrics per report call; metric values come back as strings |
| Consent/privacy | Both paths are read-only analytics scopes (analytics.readonly) — no PII exposure, no write access |
| PostHog source sync = daily, not real-time | Use Composio MCP for anything fresher than 24h |
| Data lags | GSC data lags 2–3 days by Google’s design — normal |
9. Reference Links
| Resource | URL |
|---|---|
| PostHog GA4 source docs | https://posthog.com/docs/cdp/sources/google-analytics |
| PostHog GSC source docs | https://posthog.com/docs/cdp/sources/google-search-console |
| PostHog sources overview | https://posthog.com/docs/cdp/sources |
| PostHog data warehouse | https://posthog.com/docs/data-warehouse |
| Google GA4 MCP server (official) | https://developers.google.com/analytics/devguides/MCP |
| Composio dashboard (connections) | https://app.composio.dev |
10. One-Line Ask for Rahul
“Give me ~15 minutes: (1) connect Google Analytics in Composio, (2) link Google Analytics + Search Console as PostHog data warehouse sources. GSC via Composio is already done and verified. Then I can correlate organic search, GA4 traffic, and product events in one place and pull real-time numbers on demand.”