# Google Analytics tools

> Your own sites' sessions, users, conversions and revenue by channel, page, campaign or date, from Google Analytics 4. Free.

Read your own sites' Google Analytics 4 data: sessions, users, engagement, key events, conversions and revenue, by any dimension your property reports. The data comes from your own account, so these tools cost no credits. They share the console tools' rate limit per workspace instead.

**Connect your account.** The analytics tools use the Google account you connect for Search Console. Open [Connections](https://app.manifoldmcp.com/connections) in the app and connect Google. Google asks for permission to view your Search Console data and your Google Analytics data; leave both ticked.

If you connected Google before Analytics was added, or unticked Analytics, the tools return `NotConnected` and ask you to reconnect. The Connections page marks those accounts **No Analytics**. Choose **Reconnect**, and your Search Console access carries on as before.

**Properties.** A property is one GA4 property, as `properties/123456789`. Every analytics tool except [`analytics_list_properties`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_list_properties) takes a `property`, so start there. The bare number works too.

**Reports.** [`analytics_get_report`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_get_report) takes GA4's own names for metrics and dimensions, such as `sessions`, `keyEvents` and `sessionDefaultChannelGroup`. Its description lists the common ones. [`analytics_get_fields`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_get_fields) lists every name a property reports, custom dimensions and metrics included. Pass `compare_start_date` and `compare_end_date` to set a period against the one before; each row then carries `dateRange`, `current` or `previous`.

A good first report takes two steps. Run [`analytics_list_properties`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_list_properties), then [`analytics_get_report`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_get_report) with `sessions` and `keyEvents` by `sessionDefaultChannelGroup`. For organic traffic, set it next to [`console_get_search_analytics`](https://www.manifoldmcp.com/docs/tools/console#console_get_search_analytics) for the same dates.


To connect these tools to your agent, see the [Google Analytics MCP](https://www.manifoldmcp.com/mcp/google-analytics) page.

| Tool | What it does | Cost |
| --- | --- | --- |
| [`analytics_list_properties`](#analytics_list_properties) | List your Analytics properties | Free |
| [`analytics_get_fields`](#analytics_get_fields) | Get a property's dimensions and metrics | Free |
| [`analytics_get_report`](#analytics_get_report) | Get an Analytics report | Free |

## `analytics_list_properties`: List your Analytics properties

The Google Analytics 4 properties the workspace's connected Google account can read, with the account each sits under. The first analytics call; the other analytics tools take a property from here.

**Use when:** "what's in my Google Analytics", "which GA4 property is example.com", before any analytics_get_* call.

**Not for:** Search Console sites, use [`console_list_properties`](https://www.manifoldmcp.com/docs/tools/console#console_list_properties). Traffic to a site the user does not own, use [`seo_get_traffic_estimates`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_traffic_estimates).

**Returns:** List. `rows[]`: property (the id to pass on: properties/123456789), `property_name`, `property_type` (PROPERTY_TYPE_ORDINARY, SUBPROPERTY or ROLLUP), account (accounts/123), `account_name`. NotConnected when no Google account is connected, or when the connected one has not granted Analytics; its `connect_url` is where the user connects or reconnects.

**Cost:** 0 credits. The user's own data is free; it shares the console's 60 calls per minute per workspace. Cached 1 hour.

Also takes `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters).

```json
{}
```

## `analytics_get_fields`: Get a property's dimensions and metrics

Every dimension and metric one Google Analytics 4 property reports, with the api_name analytics_get_report takes, custom dimensions and metrics included.

**Use when:** a report needs a field outside the common ones, "what custom dimensions do we track", checking a conversion or event-scoped field's name before asking for it, or after [`analytics_get_report`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_get_report) rejected a field name.

**Not for:** the numbers themselves, use [`analytics_get_report`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_get_report).

**Returns:** List, dimensions then metrics, in Google's order. `rows[]`: kind (dimension | metric), `api_name`, `ui_name`, description, category, custom (defined on this property: customEvent:x, customUser:x), `metric_type` (metrics only: TYPE_INTEGER, TYPE_FLOAT, TYPE_SECONDS, TYPE_CURRENCY and so on). Several hundred rows; filter with custom or category.

**Cost:** 0 credits. Cached 1 day.

| Parameter | Default and notes |
| --- | --- |
| `property` | Required, from [`analytics_list_properties`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_list_properties) |
| `limit` | 100, cap 1000 |

Also takes `cursor`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters).

```json
{
  "property": "properties/123456789",
  "limit": 1000
}
```

## `analytics_get_report`: Get an Analytics report

A Google Analytics 4 report from the user's own property: any metrics by any dimensions over a date range, optionally against a second range.

**Use when:** "how much traffic did we get last month", sessions or conversions by channel, landing page or campaign, "which pages convert", revenue by source, a traffic drop by channel against the period before, organic sessions next to Search Console clicks.

**Not for:** Google search queries, use [`console_get_search_analytics`](https://www.manifoldmcp.com/docs/tools/console#console_get_search_analytics). A site the user does not own, use [`seo_get_traffic_estimates`](https://www.manifoldmcp.com/docs/tools/seo#seo_get_traffic_estimates).

**Returns:** List. `rows[]`: one object per row keyed by `api_name`, dimensions as strings and metrics as numbers; with a comparison each row also carries dateRange (current | previous). `metric_types` (TYPE_SECONDS is seconds, TYPE_CURRENCY is in `currency_code`), `currency_code`, `time_zone`, `subject_to_thresholding` (Google withheld small rows for privacy), `data_loss_from_other_row` (rows folded into (other)). meta.rows_available is Google's row count. Rates such as engagementRate are 0 to 1. Data settles within about a day.

**Cost:** 0 credits. Cached 1 hour.

| Parameter | Default and notes |
| --- | --- |
| `property` | Required |
| `metrics[]` | ["sessions"], up to 10: sessions, totalUsers, newUsers, engagedSessions, engagementRate, averageSessionDuration, screenPageViews, keyEvents, conversions, eventCount, totalRevenue, purchaseRevenue, transactions |
| `dimensions[]` | [], up to 9: date, sessionDefaultChannelGroup, sessionSource, sessionMedium, sessionSourceMedium, sessionCampaignName, landingPage, landingPagePlusQueryString, pagePath, pageTitle, eventName, country, deviceCategory; [`analytics_get_fields`](https://www.manifoldmcp.com/docs/tools/analytics#analytics_get_fields) lists the rest |
| `start_date` | Default 28 days before `end_date` |
| `end_date` | Default yesterday |
| `filters[]` | Dimension, operator equals \| `not_equals` \| contains \| `not_contains` \| `begins_with` \| `ends_with` \| regex \| `not_regex`, value; case-insensitive, all must match |
| `order_by` | Field, desc true; default the first metric, highest first |
| `limit` | 100, cap 1000 |

**Note:** `compare_start_date` and `compare_end_date` (both or neither).

Also takes `cursor`, `max_credits`, `dry_run`: see [common parameters](https://www.manifoldmcp.com/docs/tools#common-parameters).

```json
{
  "property": "properties/123456789",
  "metrics": [
    "sessions",
    "keyEvents"
  ],
  "dimensions": [
    "sessionDefaultChannelGroup"
  ],
  "start_date": "2026-09-01",
  "end_date": "2026-09-30",
  "compare_start_date": "2026-08-01",
  "compare_end_date": "2026-08-31"
}
```

