Method: properties.runAccessReport

Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years.

Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators.

These data access records include GA4 UI Reporting, GA4 UI Explorations, GA4 Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see searchChangeHistoryEvents.

HTTP request

POST https://analyticsadmin.googleapis.com/v1alpha/{entity=properties/*}:runAccessReport

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
entity

string

The Data Access Report supports requesting at the property level or account level. If requested at the account level, Data Access Reports include all access for all properties under that account.

To request at the property level, entity should be for example 'properties/123' if "123" is your GA4 property ID. To request at the account level, entity should be for example 'accounts/1234' if "1234" is your GA4 Account ID.

Request body

The request body contains data with the following structure:

JSON representation
{
  "dimensions": [
    {
      object (AccessDimension)
    }
  ],
  "metrics": [
    {
      object (AccessMetric)
    }
  ],
  "dateRanges": [
    {
      object (AccessDateRange)
    }
  ],
  "dimensionFilter": {
    object (AccessFilterExpression)
  },
  "metricFilter": {
    object (AccessFilterExpression)
  },
  "offset": string,
  "limit": string,
  "timeZone": string,
  "orderBys": [
    {
      object (AccessOrderBy)
    }
  ],
  "returnEntityQuota": boolean,
  "includeAllUsers": boolean,
  "expandGroups": boolean
}
Fields
dimensions[]

object (AccessDimension)

The dimensions requested and displayed in the response. Requests are allowed up to 9 dimensions.

metrics[]

object (AccessMetric)

The metrics requested and displayed in the response. Requests are allowed up to 10 metrics.

dateRanges[]

object (AccessDateRange)

Date ranges of access records 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 access records for the overlapping days is included in the response rows for both date ranges. Requests are allowed up to 2 date ranges.

dimensionFilter

object (AccessFilterExpression)

Dimension filters let you restrict report response to specific dimension values which match the filter. For example, filtering on access records of a single user. To learn more, see Fundamentals of Dimension Filters for examples. Metrics cannot be used in this filter.

metricFilter

object (AccessFilterExpression)

Metric filters allow you to restrict report response to specific metric values which match the filter. Metric filters are applied after aggregating the report's rows, similar to SQL having-clause. Dimensions cannot be used in this filter.

offset

string (int64 format)

The row count of the start row. The first row is counted as row 0. If offset is unspecified, it is treated as 0. If offset is zero, then this method will return the first page of results with limit entries.

To learn more about this pagination parameter, see Pagination.

limit

string (int64 format)

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

The API may return fewer rows than the requested limit, if there aren't as many remaining rows 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.

timeZone

string

This request's time zone if specified. If unspecified, the property's time zone is used. The request's time zone is used to interpret the start & end dates of the report.

Formatted as strings from the IANA Time Zone database (https://www.iana.org/time-zones); for example "America/New_York" or "Asia/Tokyo".

orderBys[]

object (AccessOrderBy)

Specifies how rows are ordered in the response.

returnEntityQuota

boolean

Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in AccessQuota. For account-level requests, this field must be false.

includeAllUsers

boolean

Optional. Determines whether to include users who have never made an API call in the response. If true, all users with access to the specified property or account are included in the response, regardless of whether they have made an API call or not. If false, only the users who have made an API call will be included.

expandGroups

boolean

Optional. Decides whether to return the users within user groups. This field works only when includeAllUsers is set to true. If true, it will return all users with access to the specified property or account. If false, only the users with direct access will be returned.

Response body

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

Authorization scopes

Requires one of the following OAuth scopes:

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