ga4_run_report
Run GA4 Report
Ga4Description
Run a GA4 report (Data API runReport): arbitrary dimensions × metrics over one or more date ranges, with an optional simple dimension filter and ordering. Use ga4_get_metadata first to look up valid dimension/metric API names. Args: property_id (string, required): GA4 property ID (numeric) or full resource name. dimensions (string[], optional): Up to 9 dimension API names (e.g. sessionDefaultChannelGroup, date). metrics (string[], required): 1-10 metric API names (e.g. sessions, totalUsers, keyEvents, purchaseRevenue). date_ranges (array, required): 1-4 ranges of { start_date, end_date, name? }. Dates are YYYY-MM-DD or relative (30daysAgo, yesterday, today). dimension_filter (object, optional): Single-field filter { field, values[], match_type?, case_sensitive?, negate? }. order_by (object, optional): { type: 'metric'|'dimension', name, desc? }. limit (number, optional): Max rows, default 100, max 10000. offset (number, optional): Row offset for pagination. Returns: row_count (total rows before pagination), returned_rows, and rows flattened as { dimension: value, metric: value } objects. For a single date range: metric_totals ({ metric: total }). For multiple date ranges: metric_totals_by_range ({ "date_range_0": { metric: total }, ... }) keyed by the dateRange dimension value (or the range's name).
Usage
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "ga4_run_report",
"arguments": {
"property_id": "123456789",
"dimensions": [
"sessionDefaultChannelGroup"
],
"metrics": [
"sessions",
"totalUsers",
"keyEvents"
],
"date_ranges": [
{
"start_date": "30daysAgo",
"end_date": "yesterday"
}
],
"reason": "Channel mix overview for the last 30 days"
}
}
}
hopkin ga4 report
| Flag | Type | Required | Description |
|---|---|---|---|
--property-id | string | Required | GA4 property ID (numeric) or full resource name. |
--dimensions | array | Optional | GA4 dimension API names, e.g. sessionDefaultChannelGroup, landingPagePlusQueryString, date. Use ga4_get_metadata for valid names. |
--metrics | array | Required | GA4 metric API names, e.g. sessions, totalUsers, keyEvents, purchaseRevenue. |
--date-ranges | array | Required | One to 4 date ranges. |
--dimension-filter | object | Optional | Simple single-field dimension filter. |
--order-by | object | Optional | |
--limit | integer | Optional | Max rows (default 100). Range: 1-10000. |
--offset | integer | Optional | Row offset for pagination. |
{
"mcpServers": {
"ga4": {
"url": "https://ga4.mcp.hopkin.ai",
"transport": "sse"
}
}
}
- Sessions by channel (30 days)
- Landing page revenue, filtered
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
property_id |
string |
Required | GA4 property ID (numeric) or full resource name.minLength: 1 |
metrics |
array |
Required | GA4 metric API names, e.g. sessions, totalUsers, keyEvents, purchaseRevenue. |
date_ranges |
array |
Required | One to 4 date ranges. |
reason |
string |
Required | Why this tool call is neededminLength: 1, maxLength: 500 |
Optional parameters (5)
| Name | Type | Required | Description |
|---|---|---|---|
dimensions |
array |
Optional | GA4 dimension API names, e.g. sessionDefaultChannelGroup, landingPagePlusQueryString, date. Use ga4_get_metadata for valid names. |
dimension_filter |
object |
Optional | Simple single-field dimension filter. |
order_by |
object |
Optional | |
limit |
integer |
Optional | Max rows (default 100). Range: 1-10000.min: 1, max: 10000 |
offset |
integer |
Optional | Row offset for pagination.min: 0 |
Examples
Sessions by channel (30 days)
{
"property_id": "123456789",
"dimensions": [
"sessionDefaultChannelGroup"
],
"metrics": [
"sessions",
"totalUsers",
"keyEvents"
],
"date_ranges": [
{
"start_date": "30daysAgo",
"end_date": "yesterday"
}
],
"reason": "Channel mix overview for the last 30 days"
}
hopkin ga4 report --property-id 123456789 --dimensions sessionDefaultChannelGroup --metrics sessions,totalUsers,keyEvents --date-ranges [object Object]
Landing page revenue, filtered
{
"property_id": "123456789",
"dimensions": [
"landingPagePlusQueryString"
],
"metrics": [
"sessions",
"purchaseRevenue"
],
"date_ranges": [
{
"start_date": "2024-01-01",
"end_date": "2024-01-31"
}
],
"dimension_filter": {
"field": "sessionDefaultChannelGroup",
"values": [
"Paid Search"
]
},
"order_by": {
"type": "metric",
"name": "purchaseRevenue"
},
"limit": 25,
"reason": "Top paid-search landing pages by revenue"
}
hopkin ga4 report --property-id 123456789 --dimensions landingPagePlusQueryString --metrics sessions,purchaseRevenue --date-ranges [object Object] --dimension-filter [object Object] --order-by [object Object] --limit 25