Take our developer survey. We want your feedback so we can learn how to improve Google Analytics, and make it an even better tool for you.

Method: runReport

Returns a customized report of your Google Analytics event data. Reports contain statistics derived from data collected by the Google Analytics tracking code. The data returned from the API is as a table with columns for the requested dimensions and metrics. Metrics are individual measurements of user activity on your property, such as active users or event count. Dimensions break down metrics across some common criteria, such as country or event name.

HTTP request

POST https://analyticsdata.googleapis.com/v1alpha:runReport

The URL uses gRPC Transcoding syntax.

Request body

The request body contains data with the following structure:

JSON representation
{
  "entity": {
    object (Entity)
  },
  "dimensions": [
    {
      object (Dimension)
    }
  ],
  "metrics": [
    {
      object (Metric)
    }
  ],
  "dateRanges": [
    {
      object (DateRange)
    }
  ],
  "offset": string,
  "limit": string,
  "metricAggregations": [
    enum (MetricAggregation)
  ],
  "dimensionFilter": {
    object (FilterExpression)
  },
  "metricFilter": {
    object (FilterExpression)
  },
  "orderBys": [
    {
      object (OrderBy)
    }
  ],
  "currencyCode": string,
  "cohortSpec": {
    object (CohortSpec)
  },
  "keepEmptyRows": boolean,
  "returnPropertyQuota": boolean
}
Fields
entity

object (Entity)

A property whose events are tracked. Within a batch request, this entity should either be unspecified or consistent with the batch-level entity.

dimensions[]

object (Dimension)

The dimensions requested and displayed.

metrics[]

object (Metric)

The metrics requested and displayed.

dateRanges[]

object (DateRange)

Date ranges of data to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the event data for the overlapping days is included in the response rows for both date ranges. In a cohort request, this dateRanges must be unspecified.

offset

string (int64 format)

The row count of the start row. The first row is counted as row 0.

limit

string (int64 format)

The number of rows to return. If the limit parameter is unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for.

metricAggregations[]

enum (MetricAggregation)

Aggregation of metrics. Aggregated metric values will be shown in rows where the dimensionValues are set to "RESERVED_(MetricAggregation)".

dimensionFilter

object (FilterExpression)

The filter clause of dimensions. Dimensions must be requested to be used in this filter. Metrics cannot be used in this filter.

metricFilter

object (FilterExpression)

The filter clause of metrics. Applied at post aggregation phase, similar to SQL having-clause. Metrics must be requested to be used in this filter. Dimensions cannot be used in this filter.

orderBys[]

object (OrderBy)

Specifies how rows are ordered in the response.

currencyCode

string

A currency code in ISO4217 format, such as "AED", "USD", "JPY". If the field is empty, the report uses the entity's default currency.

cohortSpec

object (CohortSpec)

Cohort group associated with this request. If there is a cohort group in the request the 'cohort' dimension must be present.

keepEmptyRows

boolean

If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter.

returnPropertyQuota

boolean

Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in PropertyQuota.

Response body

If successful, the response body contains an instance of RunReportResponse.

Authorization Scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/analytics.readonly
  • https://www.googleapis.com/auth/analytics