Marketing analytics & reporting

Google Analytics MCP: How to Connect GA4 & Cross-Channel Data to Claude

A Google Analytics MCP lets you talk to your GA4 data in plain language on Claude or ChatGPT without having to download and upload spreadsheets.

But the real challenge comes when you want to connect multiple GA4 properties or blend data from GA4 with other channels like Google Ads. 

In this article we'll cover not just how to connect GA4 data to Claude, but also how to do a cross-channel analysis across all your marketing channels and GA4 properties. 

Whatagraph marketing reporting tool
Yamon

Jun 26 202610 min read

Share at:
LinkedIn IconFacebook IconX Icon
Summarize with:
ChatGPT IconPerplexity IconGoogle IconClaude Icon
Whatagraph marketing reporting tool

If you only ran one GA4 property, you wouldn't need much of a guide. Connect it, ask Claude a question, move on.

But if you’re running ten or twenty properties or client accounts, each with its own naming, its own conversions, its own quirks. Connecting that to Claude is a different problem entirely.

A Google Analytics MCP lets you query your GA4 data in plain language without having to download and upload spreadsheets. You can ask Claude about traffic, conversions, and audiences and get an answer back in seconds.

But the trouble starts when you point it at a dozen client properties at once.

Ask “which clients grew traffic last month” and Claude has to make sense of twelve different setups on the fly.

If your channel groupings don't match, your conversions are defined differently across clients, or your campaign names never lined up, you get a confident answer built on a mess. Garbage in, garbage out.

It's usually not Claude getting it wrong. It's the data underneath.

As Whatagraph's CEO Justas puts it, "outputs are only as good as what feeds them." Skip the foundation and you end up, in his words, with "beautiful garbage."

In this article, we’ll cover:

  1. how to connect Google Analytics to Claude across all your properties
  2. how to set the data up so the answers hold across every client

What is a Google Analytics MCP server?

A Google Analytics MCP server is a connector that gives an LLM like Claude direct access to your GA4 properties so you can query GA4 data without exporting to Google Sheets.

You ask a question in plain language, and it pulls the answer back: traffic, conversions, audiences, whatever you'd usually go digging through a report for. You don’t need to wrangle with CSV exports.

Arturas Lazejevas, Whatagraph's CTPO, explains it without the jargon:

MCP is basically a door that an LLM like Claude or ChatGPT can use to access any of your systems that you connect.

In practice that means an MCP can add new tools and update old ones, and Claude adjusts on its own, as long as the server was built with the right tool descriptions behind it.

For GA4 specifically, that opens up a lot. You can pull realtime reports, build funnel reports, query custom dimensions and metrics, and compare time periods, all by asking. The model context protocol for Google Analytics turns GA4 from a place you go to extract data into something you just talk to.

So far, so good. The catch is that not all of these connectors are built the same way, and the differences are exactly what decide whether you can trust what comes back.

Three types of Google Analytics MCP (and why only one gives you answers you can trust)

Before you pick a GA4 MCP server, it's worth asking a few questions about it:

  • Where does it actually pull data from: the raw GA4 API, or a unified data layer?
  • Can it answer a question that spans GA4 and another channel, like paid?
  • Who decides what a "conversion" or "engaged session" means, you or the model, every single time you ask?

The answers depend on which of three types you're dealing with. Arturas breaks them down like this.

Single-platform MCP

Stitched connector MCPs

MCP over a governed data layer (Whatagraph)

What it is

A wrapper over one platform's API

Several platform wrappers side by side, with nothing shared between them

A protocol over a unified data model; metrics, currency, and attribution reconciled before the model sees them

Cross-channel answer

Not its job. One platform by definition

The LLM stitches it together at query time, and the math drifts

Already blended in the data model

Same question, same answer?

Yes, within that one platform

No. Depends on the prompt and the run

Yes. Metrics are defined once

Across many client properties

One property at a time

Each one connected, nothing normalized between them

Normalized once, queried together

Best for

Single-property GA4 questions

Quick answers when one source is enough

Daily multi-channel reporting and client work

Whatagraph’s MCP is the third one - MCP over a governed data layer.

You set up your business logic on Whatagraph once - like what a conversion means to you, how campaign names should be, or which currency you speak, and this logic applies across every client report, internal dashboard, and AI answers.

Claude isn't doing data engineering inside the chat; it's reading numbers that were already settled. As Arturas puts it:

[quote color-variant="2"]
Whatagraph doesn't query separate connectors like Facebook, Google Analytics, and Google Ads on the fly and have Claude reason about it. We unify all of that data as it comes in. The MCP is just the query layer on top.
[author][/author]
[/quote]

This means you can ask the same question on Monday and on Friday and get the same answer - across dozens of client accounts and properties.

That consistency isn't a feature of the MCP itself. It's a feature of what's been built underneath it.

Or as Arturas summed it up: “the connection isn't what's hard. Everything that has to be true after the connection is what's hard.”

How to connect Google Analytics to Claude

Google has an official, open-source GA4 MCP server. It runs locally on your machine, talks to the Google Analytics Admin API and Data API, and gives Claude a handful of tools: listing your properties, running standard reports, funnel reports, realtime reports, and pulling custom dimensions and metrics.

It's free, and if you're comfortable in a terminal, it works. Here's the rough path:

  1. Set up your environment. Install Python 3.10 or newer, then install pipx to run the server.
  2. Create a Google Cloud project. In the Google Cloud Console, enable both the Google Analytics Admin API and the Google Analytics Data API. Skip this and the server connects but returns nothing.
  3. Configure credentials. Set up Application Default Credentials by running gcloud auth application-default login with the analytics.readonly scope. You'll do this through an OAuth client, or by impersonating a service account that has access to your GA4 properties.
  4. Add the server to Claude. In Claude Code you can run claude mcp add analytics-mcp ... -- pipx run analytics-mcp with your credentials path and project ID. For Claude Desktop, you add the same command and environment variables to the claude_desktop_config.json file.
  5. Restart and test. Reopen Claude, confirm the server is listed, and ask it to list your GA4 properties to check the connection.

Worth knowing: the server was built primarily with Gemini CLI in mind, so most of the official walkthroughs assume that setup. It works with Claude, but you're adapting instructions as you go.

Where this falls short. A few things pile up fast, and faster the more clients you add.

  1. It's technical. Python, the gcloud CLI, OAuth clients, JSON config files. Fine for a developer, a real wall for most marketers.
  2. It runs on one person's laptop, and you authenticate per property. Every new client is another credentials setup, and when that one person is out, the whole thing is out with them.
  3. And it hands Claude raw GA4 output, one property at a time. Nothing reconciles naming or conversion definitions across clients, so any portfolio-level answer is yours to assemble by hand, every time you ask.

The third point is the most dangerous. Laurynas Arminas, Whatagraph's Product Manager, has watched teams go down this road:

[quote color-variant="3"]
It's easy to get something 80% done and think you're there. Then you realize how hard that last 20% is.
[author][/author]
[/quote]

And it gets harder the more you grow:

[quote color-variant="1"]
Once you're working with seven different channels and seven different places pulling data, things start getting confusing. Every time you add a client or a channel, you have to update everything, and things slip through the cracks.
[author][/author]
[/quote]

At two clients and one property, the official server does the job. At ten clients across a dozen properties, maintaining it becomes a job of its own.

How to set up Google Analytics MCP for cross-property and cross-channel reporting

If you want to set up and manage multiple GA4 properties or combine GA4 with Google Ads (or any other channel), Whatagraph is the best Google Analytics MCP for you. Here’s how to set it up.

Before you start, you'll need three things:

  1. A Whatagraph account (sign up for free here)
  2. A Claude account
  3. Owner or Full Admin access to your Claude workspace

One trick that saves a headache: log into Whatagraph in the same browser you're using for Claude. It turns the authorization step into one click instead of a separate login.

Step 1: Connect your data sources in Whatagraph

If you haven't already, add your GA4 properties as data sources inside Whatagraph. This is where the data actually lives; the MCP just gives Claude a way to query it.

Connect new source - Google Analytics MCP.pngWhatagraph isn't only a GA4 connector, though. It pulls from 60+ marketing platforms, so the same account can hold your Google Ads, Meta, LinkedIn, and Search Console data alongside GA4, all governed the same way.

That matters if you're an agency working upmarket, because a lot of the questions you care about cross platforms.

Say you want to know whether the conversions GA4 recorded last month actually came from your Google Ads campaigns. That's a GA4 and Google Ads question.

To answer it without Claude guessing, both sources need to live in the same place and share the same definitions. So connect them now, and the cross-channel setup in the next step will work.

If you run SEO, connect Google Search Console too. Same setup, and Claude can then answer organic questions across GA4 and GSC from one connection, with no second Google Search Console MCP server to manage.

Step 2: Set up your governed data layer across properties and channels

This is the step that decides whether you can trust the answers across all those properties and channels.

What a governed data layer does is make sure that once the data is in, Claude isn't piling a second layer of mess on top: mismatched naming, guessed currencies, and math it reinvents on every prompt.

As Arturas Lazejevas, Whatagraph's CTPO, puts it:

[quote color-variant="3"]
My suggestion would be to really embed your business logic into Whatagraph first, so that Claude doesn't need to reason about it every time.
[author][/author]
[/quote]

Here's what to set up before you ask a single question on Claude:

Create Source Groups to combine properties. If a client runs separate GA4 properties per region or brand, roll them into one Source Group so Claude reads them as a single source. This is also how you build a portfolio view: group the properties you want to compare so Claude can answer across all of them in one go.

Source groups - Google Analytics MCP.png

Normalize naming with custom dimensions. This is the one that makes cross-property reporting actually work. Client A calls it "Paid Search," Client B logs "google / cpc," Client C uses "01_PaidSearch." Map them to one taxonomy with a custom dimension, and "which clients grew paid traffic" finally compares like with like. Write the rules by hand, or describe what you want and let IQ Dimensions build the logic. Without this step, querying across properties just surfaces the inconsistency.

IQ dimensions - Google Analytics MCP.png

Build Blends to combine GA4 with Google Ads. Blend your GA4 source with your Google Ads source on a shared key like date or campaign, and now sessions and conversions from GA4 sit next to spend and clicks from Google Ads in one model. Ask Claude "which Google Ads campaigns drove the most GA4 conversions last month" and the answer is pre-joined, not stitched together live in the chat.

Blend data sources - Google Analytics MCP.png

Define custom metrics across those sources. Once GA4 and Google Ads are blended, you can define a metric that spans both, like blended ROAS using Google Ads spend against GA4 revenue, or true cost per conversion using Google Ads cost over GA4 key events. Define it once and Claude uses that exact formula every time, instead of guessing at the math.

Custom metrics - Google Analytics MCP.png

Check your currency settings. Whatagraph detects each source's original currency automatically, so cross-market traffic and revenue line up on their own. In the rare case it can't, you set it manually.

Set currency - Google Analytics MCP.png

Organize your sources and reports into Spaces by client or location. Spaces are Whatagraph's folders, one per client or location, and they hold both the data sources and the reports for that account. Claude scopes its queries by Space, so this keeps a dozen properties from bleeding into each other. Ask "how did this client do" and Claude looks inside that one folder instead of returning a blur of everyone's data.

Set up Spaces - Google Analytics MCP.png

Tag your sources. Label them by client, region, or account manager, then ask Claude to filter by a tag instead of spelling out which sources to include every time.

Assign tags - Google Analytics MCP.png

Optional, but the single best habit for reliable answers: build a report first, then point Claude at it. This one comes straight from our Product Manager, Laurynas Arminas. Put the metrics that matter into one report, then reference that report when you query.

As he explains it, “the numbers in the report will be reliable, because not much can break in there.”

PPC Report Template - A dashboard with metrics on advertising performance, including conversions, impressions, and cost.For anything recurring, like a daily traffic check across clients, a prompt such as "summarize sessions and conversions across all properties last month from Report [name]" gives you a stable answer pulled from a fixed reference, while Claude can still dig into the raw data when you want to explore something one-off.

The more of this you do upfront, the closer Claude's answers land to what you'd see if you checked by hand.

Step 3: Add the Whatagraph MCP connector in Claude

Step 1 of how to connect Google Analytics to Claude - Google Analytics MCP.png

Open Claude, go to Settings, and find Connectors. Look for the option to add a custom connector, then paste in the Whatagraph MCP server URL:

https://mcp.whatagraph.com/mcp

Step 2 of how to connect LinkedIn to Claude - Google Analytics MCP.png

Step 4: Save and authorize

Claude will prompt you to connect your Whatagraph account. If you're already logged into Whatagraph in the same browser, this is a one-click step. (Same process on ChatGPT by the way; you just need Developer access there.)

Step 3 of how to connect LinkedIn to Claude - Google Analytics MCP.png

Step 5: Set your permissions

After authorizing, you'll see the permissions the connector has. If they're set to "Needs approval," Claude asks every time it pulls data. Switch to "Always allow" to skip that on every prompt.

Step 4 of how to connect LinkedIn to Claude - Google Analytics MCP.png

Step 6: Test the connection

Ask Claude: "What do you have access to in my Whatagraph account?" It should respond with your connected sources and account details. That's your sign it's working.

Step 5 of how to connect LinkedIn to Claude - Google Analytics MCP.png

→ Important note

Whatagraph’s MCP already comes with pre-built skills like “cross-channel-analytics” and “generating-marketing-insights” so you don’t need to build your own or upload anything. Just go straight to Claude and start asking questions.

A prompt library for GA4 and Claude, by use case

Once you're connected and your data layer is set, the quality of the answer comes down to the question. Below are prompts that work, grouped by job.

Each group has a mix of single-channel prompts (GA4 on its own) and cross-channel ones (GA4 blended with your ad platforms), since most teams need both.

Traffic and acquisition

When you want to analyze website traffic with Claude or use Claude to compare organic and paid traffic in GA4.

Single channel:

  • "What were my top 10 traffic sources last month by sessions, and how did each change versus the month before?"
  • "Which landing pages brought the most new users in the last 30 days, and what's the engagement rate for each?"

Cross-channel:

  • "Compare organic and paid traffic in GA4 for last month. Which one drove more conversions, and at what cost using Google Ads spend?"
  • "For my Google Ads campaigns last month, show GA4 sessions and engagement rate next to clicks and spend, so I can see which campaigns sent quality traffic, not just clicks."
  • "Organic conversions fell last month. Check whether paid traffic in Google Ads picked up the slack, or whether total conversions dropped across both."
  • "Compare GA4 conversions against Google Ads conversions for last month and flag any campaigns where the two numbers disagree by more than 15%."

Finding traffic drops fast

When you want to use Claude to find traffic drops in Google Analytics.

Single channel:

  • "Did any traffic source drop more than 20% week over week in the last month? Flag the ones worth investigating."
  • "Sessions fell last week. Break the drop down by channel, device category, and landing page to show me where it actually happened."
  • "Compare this month's traffic to the previous period. Which content pieces and channels are down month over month, and by how much?"
  • "Find any landing pages that lost more than [X%] of their organic traffic in the last 30 days, and include conversions so I can prioritize which to fix first."
  • "Why did my organic traffic go down unusually last week? Which content pieces were the most affected?”
  • "Conversions dipped last week. Break it down by channel, device, and landing page to show me where the drop actually happened."

Cross-channel:

  • "Organic conversions fell last month. Check whether paid traffic in Google Ads picked up the slack or whether total conversions dropped across both."
  • "Compare GA4 conversions against Google Ads conversions for last month and flag any campaigns where the two numbers disagree by more than 15%."
  • "Traffic from paid search fell last week in GA4. Cross-check it against Google Ads to see if it was a budget change, a drop in impressions, or a tracking problem."

Conversions and funnels

When you want to understand what's actually converting, not just what's getting visits.

Single channel:

  • "Build a funnel from product page view to add to cart to checkout to purchase for last month, and show the drop-off rate at each step."
  • "Which channels in GA4 have the highest conversion rate, and which bring traffic that never converts?"

Cross-channel:

  • "Calculate blended ROAS for last month using Google Ads spend against GA4 revenue, broken down by campaign."
  • "Which Google Ads campaigns drove the most GA4 key events last month, and what was the true cost per conversion for each?"
  • "My blended ROAS dropped last month. Tell me whether it was a spend increase in Google Ads, a conversion drop in GA4, or both, and which campaigns drove it."

Cross-channel and organic performance

When the question spans platforms, which is most of the questions that drive spend decisions.

Single channel:

  • "Give me a channel comparison from GA4 for this month: sessions, engagement rate, and conversions by default channel grouping."
  • "Which GA4 channels grew the most quarter over quarter, and which lost ground?"
  • "Show me new versus returning user behavior by channel in GA4 for the last 30 days."

Cross-channel:

  • "Build a cross-channel performance report combining GA4 and Google Search Console: organic clicks and impressions from GSC next to sessions and conversions from GA4, by landing page."
  • "How much did we spend across Google Ads, Meta, and LinkedIn last month, and what did GA4 record in conversions and revenue for each?"
  • "Which channel had the best return last month: blended ROAS across all paid sources, ranked."

Client reporting and summaries

When you need a fast read across an account, or a portfolio view across clients.

Single channel:

  • "Give me an executive summary of this client's GA4 performance for the last 14 days: headline traffic, top converting pages, and anything worth flagging."
  • "What were the top 5 landing pages by conversions for this client this month, and how did they move versus last month?"
  • "Summarize the key traffic and conversion trends in this client's GA4 property for the last 30 days in plain language I can paste into an email."

Cross-channel:

  • "Summarize this client's full performance last month across GA4, Google Ads, and Meta from Report [name]: spend, conversions, blended ROAS, and the two biggest wins and concerns."
  • "Give me a GA4 performance summary across all client properties for last month, ranked by conversion growth, so I know which accounts to dig into first."
  • "For each client, pull GA4 conversions next to total ad spend across all their channels, and flag any where spend went up but conversions went down."

Now you’re all set! Sign up for free with Whatagraph and start asking questions about your cross-channel and cross-property Google Analytics data - and trust the answers you get.

Or book a demo with our team for a personalized walkthrough.

Published on Jun 26 2026

Share at:
LinkedIn IconFacebook IconX Icon
Summarize with:
ChatGPT IconPerplexity IconGoogle IconClaude Icon
Whatagraph marketing reporting tool

WRITTEN BY

Yamon

Yamon is a Senior Content Marketing Manager at Whatagraph. With an eye for detail and a knack for always considering context, audience, and business goals to guide the narrative, she's on a mission to create genuinely helpful content for marketers. When she’s not working, she’s hiking, meditating, or practicing yoga.

Save 100+ hours a month on reporting with Whatagraph

Frequently Asked Questions

All your questions answered. And if you can’t find it here, chat to our friendly team.

Is there an official Google Analytics MCP server?

Yes. Google ships an official, open-source Google Analytics MCP server, the model context protocol Google Analytics implementation, that runs locally and connects GA4 to an LLM through the Admin and Data APIs. 

 

It's free and it works, but it's built mainly for Gemini CLI, it's technical to set up, and it only reaches GA4. Good for a developer with a single property, harder to justify for an agency juggling many.

How do I set up and configure Google Analytics MCP?

There are two paths. The official GA4 MCP server: install Python and pipx, enable the Admin and Data APIs in a Google Cloud project, set up Application Default Credentials through gcloud (using an OAuth client or a service account), then add the server to your config file and restart Claude. 

 

The no-code path with Whatagraph: connect your GA4 source, set up your governed data layer, then paste the Whatagraph MCP URL into Claude's connector settings and authorize. 

 

The second is the route most Google Analytics MCP Claude setups take once they need to scale past one property. Full steps are in the walkthrough above.

What is the difference between the official Google Analytics MCP and Whatagraph?

The official server is a single-platform connector that wraps the GA4 API and hands Claude raw output. 

 

Whatagraph is an MCP over a governed data layer, where your metrics, dimensions, currency, and naming are defined once and GA4 sits alongside your other channels.

 

Here are the key differences:

 

 

Official Google Analytics MCP

Whatagraph MCP

What Claude reads

Raw GA4 API output

A governed data layer, normalized before Claude sees it

Setup

Python, pipx, gcloud, OAuth or a service account

Paste a URL into Claude, authorize, done

Where it runs

Locally, on one person's machine

Hosted, available to the whole team

Cross-channel

GA4 only

GA4 blended with Google Ads, Meta, GSC, and 60+ sources

Multiple properties

One at a time

Grouped and queried together

Same question, same answer?

Within GA4, yes

Yes, metrics are defined once and reused

Metric definitions

Whatever Claude infers per prompt

Your definitions (conversions, blended ROAS, channel grouping)

Best for

A developer with a single GA4 property

Agencies running cross-channel, multi-client reporting

Will Claude's GA4 numbers match what I see in the Google Analytics interface?

With Whatagraph, they line up, and they stay consistent every time you ask. 

 

The one caveat is GA4 itself: it samples large or complex queries, applies thresholding that hides low-volume rows, and models some data, all upstream of any connector. 

 

What Whatagraph does is pull through the GA4 API, store the data, and apply your metric and dimension definitions the same way on every query, so the number Claude gives you matches your Whatagraph report and your other destinations, rather than drifting from prompt to prompt the way a raw-API connector does.

 

If you spot a small gap against an ad-hoc view in the GA4 UI, that's GA4's sampling or modeling, not Claude inventing figures. 

Can I analyze website traffic across all client properties at once?

Yes. With Whatagraph's MCP you can query every client property in one go, instead of connecting and checking them one at a time. 

 

The setup is what makes it work: organize each client's GA4 property into its own Space, normalize naming with custom dimensions so channels line up across clients, and group the properties you want to compare into Source Groups. 

 

Then a single prompt like "which clients grew traffic last month, ranked" returns a portfolio-level answer pulled from one governed layer, not stitched together property by property.

 

For a single GA4 property, the official server does the job. Whatagraph is built for the cross-channel, multi-client work where answers have to stay consistent every time you ask.

Does the Whatagraph MCP cover Google Search Console as well as GA4?

Yes. Google Search Console is one of Whatagraph's 60+ sources, so you connect it in the same account and query it through the same connection, with no separate GSC MCP to set up or maintain. 

 

That makes it straightforward to ask for a cross-channel performance report combining GA4 and Google Search Console in Claude, for example organic clicks and impressions from GSC next to sessions and conversions from GA4, broken down by landing page.

How do I create a GA4 performance report for clients using Claude?

Two ways, and they work best together. Build the report in Whatagraph first with the metrics that matter, branded for the client, then ask Claude Google Analytics questions against that report to generate summaries and commentary. 

 

Or ask Claude for a fresh read from your governed data when you just need an internal pulse-check. 

 

For anything client-facing, the Whatagraph report stays the source of truth; Claude's MCP connection is read-only and won't create or edit reports, so the deliverable your client actually sees is always the governed one.

Can I compare multiple GA4 properties?

Yes. Connect each property as a source, normalize their naming so they line up, then either group them with Source Groups or keep them in separate client Spaces. From there Claude can compare them directly, for example ranking properties by conversion growth or flagging the ones that dropped week over week.

How does Whatagraph's Google Analytics MCP work with custom dimensions and metrics?

You define your custom dimensions and custom metrics once in Whatagraph, things like a normalized channel grouping, blended ROAS, or your own definition of a conversion, and the MCP reads them directly. So when Claude answers, it uses your definitions instead of reinventing the math on every prompt. That's what keeps a metric like ROAS meaning the same thing in Claude as it does in your report.

How do I set up the Google Analytics MCP tool for multiple client accounts?

Connect each client's GA4 property, and their ad platforms, in Whatagraph, then organize everything into one Space per client so queries stay scoped to the right account.

 

Normalize naming across clients with custom dimensions so cross-client questions compare like with like, add the Whatagraph MCP connector in Claude once, and from that single connection you can query any one client or all of them. The step-by-step setup is above.

How can I integrate Google Analytics MCP with other data sources?

The simplest way - use Whatagraph. 

 

With Whatagraph you can bring data from 60+ sources in one place and create custom blends, metrics, and dimensions.

 

Once this is done, Claude can answer across all of them in one question, with the joins, naming, and metric definitions already handled.