Google Analytics · Schema

RunReportRequest

The request to generate a report.

AnalyticsDataGoogleMetricsReportingWeb AnalyticsMachine LearningAttribution

Properties

Name Type Description
cohortSpec object Cohort group associated with this request. If there is a cohort group in the request the 'cohort' dimension must be present.
currencyCode string A currency code in ISO4217 format, such as "AED", "USD", "JPY". If the field is empty, the report uses the property's default currency.
dateRanges array 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
dimensionFilter object Dimension filters let you ask for only specific dimension values in the report. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/
dimensions array The dimensions requested and displayed.
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. Regardless of this `keep_empty_
limit string The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 250,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can als
metricAggregations array Aggregation of metrics. Aggregated metric values will be shown in rows where the dimension_values are set to "RESERVED_(MetricAggregation)".
metricFilter object The filter clause of metrics. Applied after aggregating the report's rows, similar to SQL having-clause. Dimensions cannot be used in this filter.
metrics array The metrics requested and displayed.
offset string The row count of the start row. The first row is counted as row 0. When paging, the first request does not specify offset; or equivalently, sets offset to 0; the first request returns the first `limit
orderBys array Specifies how rows are ordered in the response.
property string A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analy
returnPropertyQuota boolean Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in [PropertyQuota](#PropertyQuota).
View JSON Schema on GitHub

JSON Schema

google-analytics-runreportrequest-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/RunReportRequest",
  "title": "RunReportRequest",
  "description": "The request to generate a report.",
  "properties": {
    "cohortSpec": {
      "$ref": "#/components/schemas/CohortSpec",
      "description": "Cohort group associated with this request. If there is a cohort group in the request the 'cohort' dimension must be present."
    },
    "currencyCode": {
      "description": "A currency code in ISO4217 format, such as \"AED\", \"USD\", \"JPY\". If the field is empty, the report uses the property's default currency.",
      "type": "string"
    },
    "dateRanges": {
      "description": "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.",
      "items": {
        "$ref": "#/components/schemas/DateRange"
      },
      "type": "array"
    },
    "dimensionFilter": {
      "$ref": "#/components/schemas/FilterExpression",
      "description": "Dimension filters let you ask for only specific dimension values in the report. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter."
    },
    "dimensions": {
      "description": "The dimensions requested and displayed.",
      "items": {
        "$ref": "#/components/schemas/Dimension"
      },
      "type": "array"
    },
    "keepEmptyRows": {
      "description": "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. Regardless of this `keep_empty_rows` setting, only data recorded by the Google Analytics (GA4) property can be displayed in a report. For example if a property never logs a `purchase` event, then a query for the `eventName` dimension and `eventCount` metric will not have a row eventName: \"purchase\" and eventCount: 0.",
      "type": "boolean"
    },
    "limit": {
      "description": "The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 250,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren't as many dimension values as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).",
      "format": "int64",
      "type": "string"
    },
    "metricAggregations": {
      "description": "Aggregation of metrics. Aggregated metric values will be shown in rows where the dimension_values are set to \"RESERVED_(MetricAggregation)\".",
      "items": {
        "enum": [
          "METRIC_AGGREGATION_UNSPECIFIED",
          "TOTAL",
          "MINIMUM",
          "MAXIMUM",
          "COUNT"
        ],
        "type": "string"
      },
      "type": "array"
    },
    "metricFilter": {
      "$ref": "#/components/schemas/FilterExpression",
      "description": "The filter clause of metrics. Applied after aggregating the report's rows, similar to SQL having-clause. Dimensions cannot be used in this filter."
    },
    "metrics": {
      "description": "The metrics requested and displayed.",
      "items": {
        "$ref": "#/components/schemas/Metric"
      },
      "type": "array"
    },
    "offset": {
      "description": "The row count of the start row. The first row is counted as row 0. When paging, the first request does not specify offset; or equivalently, sets offset to 0; the first request returns the first `limit` of rows. The second request sets offset to the `limit` of the first request; the second request returns the second `limit` of rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).",
      "format": "int64",
      "type": "string"
    },
    "orderBys": {
      "description": "Specifies how rows are ordered in the response.",
      "items": {
        "$ref": "#/components/schemas/OrderBy"
      },
      "type": "array"
    },
    "property": {
      "description": "A Google Analytics GA4 property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234",
      "type": "string"
    },
    "returnPropertyQuota": {
      "description": "Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in [PropertyQuota](#PropertyQuota).",
      "type": "boolean"
    }
  },
  "type": "object"
}