Run GA4 report
run_reportQuery Google Analytics 4 properties to return traffic, top pages, conversions, or revenue as JSON rows keyed by dimension and metric name.
Instructions
Run a Google Analytics 4 report (Data API runReport). Returns rows as JSON records keyed by dimension/metric name. Examples: traffic by channel, top pages, conversions by campaign, revenue by country, daily trend with dimension "date".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return (default 100; capped by GA4_MCP_MAX_ROWS). | |
| offset | No | Row offset for paging. | |
| metrics | Yes | Metric API names, e.g. ["activeUsers","sessions","keyEvents","totalRevenue"]. | |
| orderBys | No | Sort order, e.g. [{"field":"sessions","desc":true}]. | |
| property | No | GA4 property: numeric ID ("123456789"), resource name ("properties/123456789") or display name ("My Website"). Defaults to GA4_DEFAULT_PROPERTY if set. | |
| dateRanges | No | Up to 4 date ranges. Defaults to the last 28 days (28daysAgo → yesterday). | |
| dimensions | No | Dimension API names, e.g. ["date","sessionDefaultChannelGroup"]. Use get_metadata to discover names. | |
| currencyCode | No | ISO 4217 code, e.g. "USD". Defaults to the property currency. | |
| metricFilter | No | A GA4 Data API FilterExpression object. Examples: {"filter":{"fieldName":"country","stringFilter":{"matchType":"EXACT","value":"United States"}}} {"filter":{"fieldName":"eventName","inListFilter":{"values":["purchase","sign_up"]}}} {"filter":{"fieldName":"sessions","numericFilter":{"operation":"GREATER_THAN","value":{"int64Value":"100"}}}} {"andGroup":{"expressions":[<expr>,<expr>]}} · {"orGroup":{"expressions":[...]}} · {"notExpression":<expr>} stringFilter.matchType: EXACT | BEGINS_WITH | ENDS_WITH | CONTAINS | FULL_REGEXP | PARTIAL_REGEXP. Use dimension fields in dimensionFilter and metric fields in metricFilter. | |
| includeTotals | No | Also return metric totals across all rows. | |
| keepEmptyRows | No | ||
| dimensionFilter | No | A GA4 Data API FilterExpression object. Examples: {"filter":{"fieldName":"country","stringFilter":{"matchType":"EXACT","value":"United States"}}} {"filter":{"fieldName":"eventName","inListFilter":{"values":["purchase","sign_up"]}}} {"filter":{"fieldName":"sessions","numericFilter":{"operation":"GREATER_THAN","value":{"int64Value":"100"}}}} {"andGroup":{"expressions":[<expr>,<expr>]}} · {"orGroup":{"expressions":[...]}} · {"notExpression":<expr>} stringFilter.matchType: EXACT | BEGINS_WITH | ENDS_WITH | CONTAINS | FULL_REGEXP | PARTIAL_REGEXP. Use dimension fields in dimensionFilter and metric fields in metricFilter. |