- [HTTP request](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#body.PATH_PARAMETERS)
- [Request body](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#body.request_body)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#body.response_body)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#body.RunFunnelReportResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#body.aspect)
- [Funnel](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Funnel)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Funnel.SCHEMA_REPRESENTATION)
- [FunnelStep](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelStep)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelStep.SCHEMA_REPRESENTATION)
- [FunnelFilterExpression](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression.SCHEMA_REPRESENTATION)
- [FunnelFilterExpressionList](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpressionList)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpressionList.SCHEMA_REPRESENTATION)
- [FunnelFieldFilter](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFieldFilter)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFieldFilter.SCHEMA_REPRESENTATION)
- [FunnelEventFilter](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelEventFilter)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelEventFilter.SCHEMA_REPRESENTATION)
- [FunnelParameterFilterExpression](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression.SCHEMA_REPRESENTATION)
- [FunnelParameterFilterExpressionList](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpressionList)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpressionList.SCHEMA_REPRESENTATION)
- [FunnelParameterFilter](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilter)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilter.SCHEMA_REPRESENTATION)
- [FunnelBreakdown](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelBreakdown)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelBreakdown.SCHEMA_REPRESENTATION)
- [FunnelNextAction](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelNextAction)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelNextAction.SCHEMA_REPRESENTATION)
- [FunnelVisualizationType](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelVisualizationType)
- [Segment](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Segment)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Segment.SCHEMA_REPRESENTATION)
- [UserSegment](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegment)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegment.SCHEMA_REPRESENTATION)
- [UserSegmentCriteria](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentCriteria)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentCriteria.SCHEMA_REPRESENTATION)
- [UserSegmentConditionGroup](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentConditionGroup)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentConditionGroup.SCHEMA_REPRESENTATION)
- [UserCriteriaScoping](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserCriteriaScoping)
- [SegmentFilterExpression](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression.SCHEMA_REPRESENTATION)
- [SegmentFilterExpressionList](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpressionList)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpressionList.SCHEMA_REPRESENTATION)
- [SegmentFilter](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilter)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilter.SCHEMA_REPRESENTATION)
- [SegmentFilterScoping](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterScoping)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterScoping.SCHEMA_REPRESENTATION)
- [SegmentEventFilter](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentEventFilter)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentEventFilter.SCHEMA_REPRESENTATION)
- [SegmentParameterFilterExpression](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression.SCHEMA_REPRESENTATION)
- [SegmentParameterFilterExpressionList](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpressionList)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpressionList.SCHEMA_REPRESENTATION)
- [SegmentParameterFilter](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilter)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilter.SCHEMA_REPRESENTATION)
- [SegmentParameterFilterScoping](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterScoping)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterScoping.SCHEMA_REPRESENTATION)
- [UserSegmentSequenceGroup](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentSequenceGroup)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentSequenceGroup.SCHEMA_REPRESENTATION)
- [UserSequenceStep](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSequenceStep)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSequenceStep.SCHEMA_REPRESENTATION)
- [UserSegmentExclusion](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentExclusion)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentExclusion.SCHEMA_REPRESENTATION)
- [UserExclusionDuration](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserExclusionDuration)
- [SessionSegment](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegment)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegment.SCHEMA_REPRESENTATION)
- [SessionSegmentCriteria](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentCriteria)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentCriteria.SCHEMA_REPRESENTATION)
- [SessionSegmentConditionGroup](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentConditionGroup)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentConditionGroup.SCHEMA_REPRESENTATION)
- [SessionCriteriaScoping](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionCriteriaScoping)
- [SessionSegmentExclusion](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentExclusion)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentExclusion.SCHEMA_REPRESENTATION)
- [SessionExclusionDuration](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionExclusionDuration)
- [EventSegment](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegment)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegment.SCHEMA_REPRESENTATION)
- [EventSegmentCriteria](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentCriteria)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentCriteria.SCHEMA_REPRESENTATION)
- [EventSegmentConditionGroup](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentConditionGroup)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentConditionGroup.SCHEMA_REPRESENTATION)
- [EventCriteriaScoping](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventCriteriaScoping)
- [EventSegmentExclusion](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentExclusion)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentExclusion.SCHEMA_REPRESENTATION)
- [EventExclusionDuration](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventExclusionDuration)
- [FunnelSubReport](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelSubReport)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelSubReport.SCHEMA_REPRESENTATION)
- [FunnelResponseMetadata](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelResponseMetadata)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelResponseMetadata.SCHEMA_REPRESENTATION)
- [Try it!](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#try-it)

Returns a customized funnel report of your Google Analytics event data. The data returned from the API is as a table with columns for the requested dimensions and metrics.

Funnel exploration lets you visualize the steps your users take to complete a task and quickly see how well they are succeeding or failing at each step. For example, how do prospects become shoppers and then become buyers? How do one time buyers become repeat buyers? With this information, you can improve inefficient or abandoned customer journeys. To learn more, see [GA4 Funnel Explorations](https://support.google.com/analytics/answer/9327974).

This method is introduced at alpha stability with the intention of gathering feedback on syntax and capabilities before entering beta. To give your feedback on this API, complete the [Google Analytics Data API Funnel Reporting Feedback](https://docs.google.com/forms/d/e/1FAIpQLSdwOlQDJAUoBiIgUZZ3S_Lwi8gr7Bb0k1jhvc-DEg7Rol3UjA/viewform).

### HTTP request

`POST https://analyticsdata.googleapis.com/v1alpha/{property=properties/*}:runFunnelReport`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `property` | `string` Optional. A Google Analytics 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 |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "dateRanges": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#DateRange`) } ], "funnel": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Funnel`) }, "funnelBreakdown": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelBreakdown`) }, "funnelNextAction": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelNextAction`) }, "funnelVisualizationType": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelVisualizationType`), "segments": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Segment`) } ], "limit": string, "dimensionFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#FilterExpression`) }, "returnPropertyQuota": boolean } ``` |

| Fields ||
|---|---|
| `dateRanges[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#DateRange`)`` Optional. 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. |
| `funnel` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Funnel`)`` Optional. The configuration of this request's funnel. This funnel configuration is required. |
| `funnelBreakdown` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelBreakdown`)`` Optional. If specified, this breakdown adds a dimension to the funnel table sub report response. This breakdown dimension expands each funnel step to the unique values of the breakdown dimension. For example, a breakdown by the `deviceCategory` dimension will create rows for `mobile`, `tablet`, `desktop`, and the total. |
| `funnelNextAction` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelNextAction`)`` Optional. If specified, next action adds a dimension to the funnel visualization sub report response. This next action dimension expands each funnel step to the unique values of the next action. For example a next action of the `eventName` dimension will create rows for several events (for example `session_start` \& `click`) and the total. Next action only supports `eventName` and most Page / Screen dimensions like `pageTitle` and `pagePath`. |
| `funnelVisualizationType` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelVisualizationType`)`` Optional. The funnel visualization type controls the dimensions present in the funnel visualization sub report response. If not specified, `STANDARD_FUNNEL` is used. |
| `segments[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#Segment`)`` Optional. The configurations of segments. Segments are subsets of a property's data. In a funnel report with segments, the funnel is evaluated in each segment. Each segment specified in this request produces a separate row in the response; in the response, each segment identified by its name. The segments parameter is optional. Requests are limited to 4 segments. |
| `limit` | `string (https://developers.google.com/discovery/v1/type-format format)` Optional. 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`. |
| `dimensionFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#FilterExpression`)`` Optional. Dimension filters allow you to ask for only specific dimension values in the report. To learn more, see [Creating a Report: Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter. |
| `returnPropertyQuota` | `boolean` Optional. Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in [PropertyQuota](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#PropertyQuota). |

### Response body

The funnel report response contains two sub reports. The two sub reports are different combinations of dimensions and metrics.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "funnelTable": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelSubReport`) }, "funnelVisualization": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelSubReport`) }, "propertyQuota": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/PropertyQuota`) }, "kind": string } ``` |

| Fields ||
|---|---|
| `funnelTable` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelSubReport`)`` The funnel table is a report with the funnel step, segment, breakdown dimension, active users, completion rate, abandonments, and abandonments rate. The segment dimension is only present in this response if a segment was requested. The breakdown dimension is only present in this response if it was requested. |
| `funnelVisualization` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelSubReport`)`` The funnel visualization is a report with the funnel step, segment, date, next action dimension, and active users. The segment dimension is only present in this response if a segment was requested. The date dimension is only present in this response if it was requested through the `TRENDED_FUNNEL` funnel type. The next action dimension is only present in the response if it was requested. |
| `propertyQuota` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/PropertyQuota`)`` This Analytics Property's quota state including this request. |
| `kind` | `string` Identifies what kind of resource this message is. This `kind` is always the fixed string "analyticsData#runFunnelReport". Useful to distinguish between response types in JSON. |

### Authorization scopes

Requires one of the following OAuth scopes:

- `https://www.googleapis.com/auth/analytics.readonly`
- `https://www.googleapis.com/auth/analytics`

## Funnel

Configures the funnel in a funnel report request. A funnel reports on users as they pass through a sequence of steps.

Funnel exploration lets you visualize the steps your users take to complete a task and quickly see how well they are succeeding or failing at each step. For example, how do prospects become shoppers and then become buyers? How do one time buyers become repeat buyers? With this information, you can improve inefficient or abandoned customer journeys.

| JSON representation |
|---|
| ``` { "isOpenFunnel": boolean, "steps": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelStep`) } ] } ``` |

| Fields ||
|---|---|
| `isOpenFunnel` | `boolean` In an open funnel, users can enter the funnel in any step, and in a closed funnel, users must enter the funnel in the first step. Optional. If unspecified, a closed funnel is used. |
| `steps[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelStep`)`` The sequential steps of this funnel. |

## FunnelStep

Steps define the user journey you want to measure. Steps contain one or more conditions that your users must meet to be included in that step of the funnel journey.

| JSON representation |
|---|
| ``` { "name": string, "isDirectlyFollowedBy": boolean, "filterExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression`) }, "withinDurationFromPriorStep": string } ``` |

| Fields ||
|---|---|
| `name` | `string` The distinctive name for this step. If unspecified, steps will be named by a 1 based indexed name (for example "0. ", "1. ", etc.). This name defines string value returned by the `funnelStepName` dimension. For example, specifying `name = Purchase` in the request's third funnel step will produce `3. Purchase` in the funnel report response. |
| `isDirectlyFollowedBy` | `boolean` If true, this step must directly follow the previous step. If false, there can be events between the previous step and this step. If unspecified, `isDirectlyFollowedBy` is treated as false. |
| `filterExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression`)`` The condition that your users must meet to be included in this step of the funnel journey. |
| `withinDurationFromPriorStep` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` If specified, this step must complete within this duration of the completion of the prior step. `withinDurationFromPriorStep` is inclusive of the endpoint at the microsecond granularity. For example a duration of 5 seconds can be completed at 4.9 or 5.0 seconds, but not 5 seconds and 1 microsecond. `withinDurationFromPriorStep` is optional, and if unspecified, steps may be separated by any time duration. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |

## FunnelFilterExpression

Expresses combinations of funnel filters.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "andGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpressionList`) }, "orGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpressionList`) }, "notExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression`) }, "funnelFieldFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFieldFilter`) }, "funnelEventFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelEventFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| Specify one type of filter for `FunnelFilterExpression`. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `andGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpressionList`)`` The FunnelFilterExpression in `andGroup` have an AND relationship. |
| `orGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpressionList`)`` The FunnelFilterExpression in `orGroup` have an OR relationship. |
| `notExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression`)`` The FunnelFilterExpression is NOT of `notExpression`. |
| `funnelFieldFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFieldFilter`)`` A funnel filter for a dimension or metric. |
| `funnelEventFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelEventFilter`)`` Creates a filter that matches events of a single event name. If a parameter filter expression is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter. |
| End of mutually exclusive fields. ||

## FunnelFilterExpressionList

A list of funnel filter expressions.

| JSON representation |
|---|
| ``` { "expressions": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression`) } ] } ``` |

| Fields ||
|---|---|
| `expressions[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelFilterExpression`)`` The list of funnel filter expressions. |

## FunnelFieldFilter

An expression to filter dimension or metric values.

| JSON representation |
|---|
| ``` { "fieldName": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "stringFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`) }, "inListFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`) }, "numericFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`) }, "betweenFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `fieldName` | `string` The dimension name or metric name. |
| Specify one type of filter. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `stringFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`)`` Strings related filter. |
| `inListFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`)`` A filter for in list values. |
| `numericFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`)`` A filter for numeric or date values. |
| `betweenFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`)`` A filter for between two values. |
| End of mutually exclusive fields. ||

## FunnelEventFilter

Creates a filter that matches events of a single event name. If a parameter filter expression is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter.

| JSON representation |
|---|
| ``` { "eventName": string, "funnelParameterFilterExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression`) } } ``` |

| Fields ||
|---|---|
| `eventName` | `string` This filter matches events of this single event name. Event name is required. |
| `funnelParameterFilterExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression`)`` If specified, this filter matches events that match both the single event name and the parameter filter expressions. Inside the parameter filter expression, only parameter filters are available. |

## FunnelParameterFilterExpression

Expresses combinations of funnel filters on parameters.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "andGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpressionList`) }, "orGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpressionList`) }, "notExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression`) }, "funnelParameterFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| Specify one type of filter for `FunnelParameterFilterExpression`. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `andGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpressionList`)`` The FunnelParameterFilterExpression in `andGroup` have an AND relationship. |
| `orGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpressionList`)`` The FunnelParameterFilterExpression in `orGroup` have an OR relationship. |
| `notExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression`)`` The FunnelParameterFilterExpression is NOT of `notExpression`. |
| `funnelParameterFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilter`)`` A primitive funnel parameter filter. |
| End of mutually exclusive fields. ||

## FunnelParameterFilterExpressionList

A list of funnel parameter filter expressions.

| JSON representation |
|---|
| ``` { "expressions": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression`) } ] } ``` |

| Fields ||
|---|---|
| `expressions[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelParameterFilterExpression`)`` The list of funnel parameter filter expressions. |

## FunnelParameterFilter

An expression to filter parameter values in a funnel.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "eventParameterName": string, "itemParameterName": string // End of mutually exclusive fields. // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "stringFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`) }, "inListFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`) }, "numericFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`) }, "betweenFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| The field that is being filtered. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `eventParameterName` | `string` This filter will be evaluated on the specified event parameter. Event parameters are logged as parameters of the event. Event parameters include fields like "firebase_screen" \& "currency". Event parameters can only be used in segments \& funnels and can only be used in a descendent filter from an EventFilter. In a descendent filter from an EventFilter either event or item parameters should be used. |
| `itemParameterName` | `string` This filter will be evaluated on the specified item parameter. Item parameters are logged as parameters in the item array. Item parameters include fields like "item_name" \& "item_category". Item parameters can only be used in segments \& funnels and can only be used in a descendent filter from an EventFilter. In a descendent filter from an EventFilter either event or item parameters should be used. Item parameters are only available in ecommerce events. To learn more about ecommerce events, see the [Measure ecommerce](https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) guide. |
| End of mutually exclusive fields. ||
| Specify one type of filter. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `stringFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`)`` Strings related filter. |
| `inListFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`)`` A filter for in list values. |
| `numericFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`)`` A filter for numeric or date values. |
| `betweenFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`)`` A filter for between two values. |
| End of mutually exclusive fields. ||

## FunnelBreakdown

Breakdowns add a dimension to the funnel table sub report response.

| JSON representation |
|---|
| ``` { "breakdownDimension": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#Dimension`) }, "limit": string } ``` |

| Fields ||
|---|---|
| `breakdownDimension` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#Dimension`)`` The dimension column added to the funnel table sub report response. The breakdown dimension breaks down each funnel step. A valid `breakdownDimension` is required if `funnelBreakdown` is specified. |
| `limit` | `string (https://developers.google.com/discovery/v1/type-format format)` The maximum number of distinct values of the breakdown dimension to return in the response. A `limit` of `5` is used if limit is not specified. Limit must exceed zero and cannot exceed 15. |

## FunnelNextAction

Next actions state the value for a dimension after the user has achieved a step but before the same user has achieved the next step. For example if the `nextActionDimension` is `eventName`, then `nextActionDimension` in the `i`th funnel step row will return first event after the event that qualified the user into the `i`th funnel step but before the user achieved the `i+1`th funnel step.

| JSON representation |
|---|
| ``` { "nextActionDimension": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#Dimension`) }, "limit": string } ``` |

| Fields ||
|---|---|
| `nextActionDimension` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#Dimension`)`` The dimension column added to the funnel visualization sub report response. The next action dimension returns the next dimension value of this dimension after the user has attained the `i`th funnel step. `nextActionDimension` currently only supports `eventName` and most Page / Screen dimensions like `pageTitle` and `pagePath`. `nextActionDimension` cannot be a dimension expression. |
| `limit` | `string (https://developers.google.com/discovery/v1/type-format format)` The maximum number of distinct values of the breakdown dimension to return in the response. A `limit` of `5` is used if limit is not specified. Limit must exceed zero and cannot exceed 5. |

## FunnelVisualizationType

Controls the dimensions present in the funnel visualization sub report response.

| Enums ||
|---|---|
| `FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED` | Unspecified type. |
| `STANDARD_FUNNEL` | A standard (stepped) funnel. The funnel visualization sub report in the response will not contain date. |
| `TRENDED_FUNNEL` | A trended (line chart) funnel. The funnel visualization sub report in the response will contain the date dimension. |

## Segment

A segment is a subset of your Analytics data. For example, of your entire set of users, one segment might be users from a particular country or city. Another segment might be users who purchase a particular line of products or who visit a specific part of your site or trigger certain events in your app.

To learn more, see [Segment Builder](https://support.google.com/analytics/answer/9304353).

| JSON representation |
|---|
| ``` { "name": string, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "userSegment": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegment`) }, "sessionSegment": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegment`) }, "eventSegment": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegment`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `name` | `string` The name for this segment. If unspecified, segments are named "Segment". This name defines string value returned by the `segment` dimension. The `segment` dimension prefixes segment names by the 1-based index number of the segment in the request (for example "1. Segment", "2. Segment", etc.). |
| A segment is specified in one scope. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `userSegment` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegment`)`` User segments are subsets of users who engaged with your site or app. |
| `sessionSegment` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegment`)`` Session segments are subsets of the sessions that occurred on your site or app. |
| `eventSegment` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegment`)`` Event segments are subsets of events that were triggered on your site or app. |
| End of mutually exclusive fields. ||

## UserSegment

User segments are subsets of users who engaged with your site or app. For example, users who have previously purchased; users who added items to their shopping carts, but didn't complete a purchase.

| JSON representation |
|---|
| ``` { "userInclusionCriteria": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentCriteria`) }, "exclusion": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentExclusion`) } } ``` |

| Fields ||
|---|---|
| `userInclusionCriteria` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentCriteria`)`` Defines which users are included in this segment. Optional. |
| `exclusion` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentExclusion`)`` Defines which users are excluded in this segment. Optional. |

## UserSegmentCriteria

A user matches a criteria if the user's events meet the conditions in the criteria.

| JSON representation |
|---|
| ``` { "andConditionGroups": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentConditionGroup`) } ], "andSequenceGroups": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentSequenceGroup`) } ] } ``` |

| Fields ||
|---|---|
| `andConditionGroups[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentConditionGroup`)`` A user matches this criteria if the user matches each of these `andConditionGroups` and each of the `andSequenceGroups`. `andConditionGroups` may be empty if `andSequenceGroups` are specified. |
| `andSequenceGroups[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentSequenceGroup`)`` A user matches this criteria if the user matches each of these `andSequenceGroups` and each of the `andConditionGroups`. `andSequenceGroups` may be empty if `andConditionGroups` are specified. |

## UserSegmentConditionGroup

Conditions tell Analytics what data to include in or exclude from the segment.

| JSON representation |
|---|
| ``` { "conditionScoping": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserCriteriaScoping`), "segmentFilterExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`) } } ``` |

| Fields ||
|---|---|
| `conditionScoping` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserCriteriaScoping`)`` Data is included or excluded from the segment based on if it matches the condition group. This scoping defines how many events the `segmentFilterExpression` is evaluated on before the condition group is determined to be matched or not. For example if `conditionScoping = USER_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all events in a session, and then, the condition group is determined to be matched or not for this user. For example if `conditionScoping = USER_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a single event, and then, the condition group is determined to be matched or not for this user. Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is used. |
| `segmentFilterExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`)`` Data is included or excluded from the segment based on if it matches this expression. Expressions express criteria on dimension, metrics, and/or parameters. |

## UserCriteriaScoping

Scoping specifies which events are considered when evaluating if a user meets a criteria.

| Enums ||
|---|---|
| `USER_CRITERIA_SCOPING_UNSPECIFIED` | Unspecified criteria scoping. Do not specify. |
| `USER_CRITERIA_WITHIN_SAME_EVENT` | If the criteria is satisfied within one event, the user matches the criteria. |
| `USER_CRITERIA_WITHIN_SAME_SESSION` | If the criteria is satisfied within one session, the user matches the criteria. |
| `USER_CRITERIA_ACROSS_ALL_SESSIONS` | If the criteria is satisfied by any events for the user, the user matches the criteria. |

## SegmentFilterExpression

Expresses combinations of segment filters.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "andGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpressionList`) }, "orGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpressionList`) }, "notExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`) }, "segmentFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilter`) }, "segmentEventFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentEventFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| Specify one type of filter for `SegmentFilterExpression`. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `andGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpressionList`)`` The SegmentFilterExpression in `andGroup` have an AND relationship. |
| `orGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpressionList`)`` The SegmentFilterExpression in `orGroup` have an OR relationship. |
| `notExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`)`` The SegmentFilterExpression is NOT of `notExpression`. |
| `segmentFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilter`)`` A primitive segment filter. |
| `segmentEventFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentEventFilter`)`` Creates a filter that matches events of a single event name. If a parameter filter expression is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter. |
| End of mutually exclusive fields. ||

## SegmentFilterExpressionList

A list of segment filter expressions.

| JSON representation |
|---|
| ``` { "expressions": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`) } ] } ``` |

| Fields ||
|---|---|
| `expressions[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`)`` The list of segment filter expressions |

## SegmentFilter

An expression to filter dimension or metric values.

| JSON representation |
|---|
| ``` { "fieldName": string, "filterScoping": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterScoping`) }, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "stringFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`) }, "inListFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`) }, "numericFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`) }, "betweenFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `fieldName` | `string` The dimension name or metric name. |
| `filterScoping` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterScoping`)`` Specifies the scope for the filter. |
| Specify one type of filter for `Filter`. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `stringFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`)`` Strings related filter. |
| `inListFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`)`` A filter for in list values. |
| `numericFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`)`` A filter for numeric or date values. |
| `betweenFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`)`` A filter for between two values. |
| End of mutually exclusive fields. ||

## SegmentFilterScoping

Scopings specify how the dimensions \& metrics of multiple events should be considered when evaluating a segment filter.

| JSON representation |
|---|
| ``` { "atAnyPointInTime": boolean } ``` |

| Fields ||
|---|---|
| `atAnyPointInTime` | `boolean` If `atAnyPointInTime` is true, this filter evaluates to true for all events if it evaluates to true for any event in the date range of the request. This `atAnyPointInTime` parameter does not extend the date range of events in the report. If `atAnyPointInTime` is true, only events within the report's date range are considered when evaluating this filter. This `atAnyPointInTime` is only able to be specified if the criteria scoping is `ACROSS_ALL_SESSIONS` and is not able to be specified in sequences. If the criteria scoping is `ACROSS_ALL_SESSIONS`, `atAnyPointInTime` = false is used if unspecified. |

## SegmentEventFilter

Creates a filter that matches events of a single event name. If a parameter filter expression is specified, only the subset of events that match both the single event name and the parameter filter expressions match this event filter.

| JSON representation |
|---|
| ``` { "eventName": string, "segmentParameterFilterExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression`) } } ``` |

| Fields ||
|---|---|
| `eventName` | `string` This filter matches events of this single event name. Event name is required. |
| `segmentParameterFilterExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression`)`` If specified, this filter matches events that match both the single event name and the parameter filter expressions. Inside the parameter filter expression, only parameter filters are available. |

## SegmentParameterFilterExpression

Expresses combinations of segment filter on parameters.

| JSON representation |
|---|
| ``` { // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "andGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpressionList`) }, "orGroup": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpressionList`) }, "notExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression`) }, "segmentParameterFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| Specify one type of filter for `SegmentParameterFilterExpression`. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `andGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpressionList`)`` The SegmentParameterFilterExpression in `andGroup` have an AND relationship. |
| `orGroup` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpressionList`)`` The SegmentParameterFilterExpression in `orGroup` have an OR relationship. |
| `notExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression`)`` The SegmentParameterFilterExpression is NOT of `notExpression`. |
| `segmentParameterFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilter`)`` A primitive segment parameter filter. |
| End of mutually exclusive fields. ||

## SegmentParameterFilterExpressionList

A list of segment parameter filter expressions.

| JSON representation |
|---|
| ``` { "expressions": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression`) } ] } ``` |

| Fields ||
|---|---|
| `expressions[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterExpression`)`` The list of segment parameter filter expressions. |

## SegmentParameterFilter

An expression to filter parameter values in a segment.

| JSON representation |
|---|
| ``` { "filterScoping": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterScoping`) }, // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "eventParameterName": string, "itemParameterName": string // End of mutually exclusive fields. // The following is a list of mutually exclusive fields. At most one of the // fields will be set in a response: "stringFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`) }, "inListFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`) }, "numericFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`) }, "betweenFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`) } // End of mutually exclusive fields. } ``` |

| Fields ||
|---|---|
| `filterScoping` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentParameterFilterScoping`)`` Specifies the scope for the filter. |
| The field that is being filtered. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `eventParameterName` | `string` This filter will be evaluated on the specified event parameter. Event parameters are logged as parameters of the event. Event parameters include fields like "firebase_screen" \& "currency". Event parameters can only be used in segments \& funnels and can only be used in a descendent filter from an EventFilter. In a descendent filter from an EventFilter either event or item parameters should be used. |
| `itemParameterName` | `string` This filter will be evaluated on the specified item parameter. Item parameters are logged as parameters in the item array. Item parameters include fields like "item_name" \& "item_category". Item parameters can only be used in segments \& funnels and can only be used in a descendent filter from an EventFilter. In a descendent filter from an EventFilter either event or item parameters should be used. Item parameters are only available in ecommerce events. To learn more about ecommerce events, see the [Measure ecommerce](https://developers.google.com/analytics/devguides/collection/ga4/ecommerce) guide. |
| End of mutually exclusive fields. ||
| Specify one type of filter. The following is a list of mutually exclusive fields. At most one of the fields will be set in a response: ||
| `stringFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#StringFilter`)`` Strings related filter. |
| `inListFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#InListFilter`)`` A filter for in list values. |
| `numericFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#NumericFilter`)`` A filter for numeric or date values. |
| `betweenFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties.reportTasks#BetweenFilter`)`` A filter for between two values. |
| End of mutually exclusive fields. ||

## SegmentParameterFilterScoping

Scopings specify how multiple events should be considered when evaluating a segment parameter filter.

| JSON representation |
|---|
| ``` { "inAnyNDayPeriod": string } ``` |

| Fields ||
|---|---|
| `inAnyNDayPeriod` | `string (https://developers.google.com/discovery/v1/type-format format)` Accumulates the parameter over the specified period of days before applying the filter. Only supported if criteria scoping is `ACROSS_ALL_SESSIONS` or `WITHIN_SAME_SESSION`. Only supported if the parameter is `event_count`. For example if `inAnyNDayPeriod` is 3, the eventName is "purchase", the event parameter is "event_count", and the Filter's criteria is greater than 5, this filter will accumulate the event count of purchase events over every 3 consecutive day period in the report's date range; a user will pass this Filter's criteria to be included in this segment if their count of purchase events exceeds 5 in any 3 consecutive day period. For example, the periods 2021-11-01 to 2021-11-03, 2021-11-02 to 2021-11-04, 2021-11-03 to 2021-11-05, and etc. will be considered. The date range is not extended for the purpose of having a full N day window near the start of the date range. For example if a report is for 2021-11-01 to 2021-11-10 and `inAnyNDayPeriod` = 3, the first two day period will be effectively shortened because no event data outside the report's date range will be read. For example, the first four periods will effectively be: 2021-11-01 to 2021-11-01, 2021-11-01 to 2021-11-02, 2021-11-01 to 2021-11-03, and 2021-11-02 to 2021-11-04. `inAnyNDayPeriod` is optional. If not specified, the `segmentParameterFilter` is applied to each event individually. |

## UserSegmentSequenceGroup

Define conditions that must occur in a specific order for the user to be a member of the segment.

| JSON representation |
|---|
| ``` { "sequenceScoping": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserCriteriaScoping`), "sequenceMaximumDuration": string, "userSequenceSteps": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSequenceStep`) } ] } ``` |

| Fields ||
|---|---|
| `sequenceScoping` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserCriteriaScoping`)`` All sequence steps must be satisfied in the scoping for the user to match the sequence. For example if `sequenceScoping = USER_CRITERIA_WITHIN_SAME_SESSION`, all sequence steps must complete within one session for the user to match the sequence. `sequenceScoping = USER_CRITERIA_WITHIN_SAME_EVENT` is not supported. Optional. If unspecified, `conditionScoping = ACROSS_ALL_SESSIONS` is used. |
| `sequenceMaximumDuration` | ``string (`https://protobuf.dev/reference/protobuf/google.protobuf#duration` format)`` Defines the time period in which the whole sequence must occur; for example, 30 Minutes. `sequenceMaximumDuration` is inclusive of the endpoint at the microsecond granularity. For example a sequence with a maximum duration of 5 seconds can be completed at 4.9 or 5.0 seconds, but not 5 seconds and 1 microsecond. `sequenceMaximumDuration` is optional, and if unspecified, sequences can be completed in any time duration. A duration in seconds with up to nine fractional digits, ending with '`s`'. Example: `"3.5s"`. |
| `userSequenceSteps[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSequenceStep`)`` An ordered sequence of condition steps. A user's events must complete each step in order for the user to match the `UserSegmentSequenceGroup`. |

## UserSequenceStep

A condition that must occur in the specified step order for this user to match the sequence.

| JSON representation |
|---|
| ``` { "isDirectlyFollowedBy": boolean, "stepScoping": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserCriteriaScoping`), "segmentFilterExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`) } } ``` |

| Fields ||
|---|---|
| `isDirectlyFollowedBy` | `boolean` If true, the event satisfying this step must be the very next event after the event satifying the last step. If false, this step indirectly follows the prior step; for example, there may be events between the prior step and this step. `isDirectlyFollowedBy` must be false for the first step. |
| `stepScoping` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserCriteriaScoping`)`` This sequence step must be satisfied in the scoping for the user to match the sequence. For example if `sequenceScoping = WITHIN_SAME_SESSION`, this sequence steps must complete within one session for the user to match the sequence. `stepScoping = ACROSS_ALL_SESSIONS` is only allowed if the `sequenceScoping = ACROSS_ALL_SESSIONS`. Optional. If unspecified, `stepScoping` uses the same `UserCriteriaScoping` as the `sequenceScoping`. |
| `segmentFilterExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`)`` A user matches this sequence step if their events match this expression. Expressions express criteria on dimension, metrics, and/or parameters. |

## UserSegmentExclusion

Specifies which users are excluded in this segment.

| JSON representation |
|---|
| ``` { "userExclusionDuration": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserExclusionDuration`), "userExclusionCriteria": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentCriteria`) } } ``` |

| Fields ||
|---|---|
| `userExclusionDuration` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserExclusionDuration`)`` Specifies how long an exclusion will last if a user matches the `userExclusionCriteria`. Optional. If unspecified, `userExclusionDuration` of `USER_EXCLUSION_TEMPORARY` is used. |
| `userExclusionCriteria` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#UserSegmentCriteria`)`` If a user meets this condition, the user is excluded from membership in the segment for the `userExclusionDuration`. |

## UserExclusionDuration

Enumerates options for how long an exclusion will last if a user matches the `userExclusionCriteria`.

| Enums ||
|---|---|
| `USER_EXCLUSION_DURATION_UNSPECIFIED` | Unspecified exclusion duration. Do not specify. |
| `USER_EXCLUSION_TEMPORARY` | Temporarily exclude users from the segment during periods when the user meets the `userExclusionCriteria` condition. |
| `USER_EXCLUSION_PERMANENT` | Permanently exclude users from the segment if the user ever meets the `userExclusionCriteria` condition. |

## SessionSegment

Session segments are subsets of the sessions that occurred on your site or app: for example, all the sessions that originated from a particular advertising campaign.

| JSON representation |
|---|
| ``` { "sessionInclusionCriteria": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentCriteria`) }, "exclusion": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentExclusion`) } } ``` |

| Fields ||
|---|---|
| `sessionInclusionCriteria` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentCriteria`)`` Defines which sessions are included in this segment. Optional. |
| `exclusion` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentExclusion`)`` Defines which sessions are excluded in this segment. Optional. |

## SessionSegmentCriteria

A session matches a criteria if the session's events meet the conditions in the criteria.

| JSON representation |
|---|
| ``` { "andConditionGroups": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentConditionGroup`) } ] } ``` |

| Fields ||
|---|---|
| `andConditionGroups[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentConditionGroup`)`` A session matches this criteria if the session matches each of these `andConditionGroups`. |

## SessionSegmentConditionGroup

Conditions tell Analytics what data to include in or exclude from the segment.

| JSON representation |
|---|
| ``` { "conditionScoping": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionCriteriaScoping`), "segmentFilterExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`) } } ``` |

| Fields ||
|---|---|
| `conditionScoping` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionCriteriaScoping`)`` Data is included or excluded from the segment based on if it matches the condition group. This scoping defines how many events the `segmentFilterExpression` is evaluated on before the condition group is determined to be matched or not. For example if `conditionScoping = SESSION_CRITERIA_WITHIN_SAME_SESSION`, the expression is evaluated on all events in a session, and then, the condition group is determined to be matched or not for this session. For example if `conditionScoping = SESSION_CRITERIA_WITHIN_SAME_EVENT`, the expression is evaluated on a single event, and then, the condition group is determined to be matched or not for this session. Optional. If unspecified, a `conditionScoping` of `WITHIN_SAME_SESSION` is used. |
| `segmentFilterExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`)`` Data is included or excluded from the segment based on if it matches this expression. Expressions express criteria on dimension, metrics, and/or parameters. |

## SessionCriteriaScoping

Scoping specifies which events are considered when evaluating if a session meets a criteria.

| Enums ||
|---|---|
| `SESSION_CRITERIA_SCOPING_UNSPECIFIED` | Unspecified criteria scoping. Do not specify. |
| `SESSION_CRITERIA_WITHIN_SAME_EVENT` | If the criteria is satisfied within one event, the session matches the criteria. |
| `SESSION_CRITERIA_WITHIN_SAME_SESSION` | If the criteria is satisfied within one session, the session matches the criteria. |

## SessionSegmentExclusion

Specifies which sessions are excluded in this segment.

| JSON representation |
|---|
| ``` { "sessionExclusionDuration": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionExclusionDuration`), "sessionExclusionCriteria": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentCriteria`) } } ``` |

| Fields ||
|---|---|
| `sessionExclusionDuration` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionExclusionDuration`)`` Specifies how long an exclusion will last if a session matches the `sessionExclusionCriteria`. Optional. If unspecified, a `sessionExclusionDuration` of `SESSION_EXCLUSION_TEMPORARY` is used. |
| `sessionExclusionCriteria` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SessionSegmentCriteria`)`` If a session meets this condition, the session is excluded from membership in the segment for the `sessionExclusionDuration`. |

## SessionExclusionDuration

Enumerates options for how long an exclusion will last if a session matches the `sessionExclusionCriteria`.

| Enums ||
|---|---|
| `SESSION_EXCLUSION_DURATION_UNSPECIFIED` | Unspecified exclusion duration. Do not specify. |
| `SESSION_EXCLUSION_TEMPORARY` | Temporarily exclude sessions from the segment during periods when the session meets the `sessionExclusionCriteria` condition. |
| `SESSION_EXCLUSION_PERMANENT` | Permanently exclude sessions from the segment if the session ever meets the `sessionExclusionCriteria` condition. |

## EventSegment

Event segments are subsets of events that were triggered on your site or app. for example, all purchase events made in a particular location; app_exception events that occurred on a specific operating system.

| JSON representation |
|---|
| ``` { "eventInclusionCriteria": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentCriteria`) }, "exclusion": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentExclusion`) } } ``` |

| Fields ||
|---|---|
| `eventInclusionCriteria` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentCriteria`)`` Defines which events are included in this segment. Optional. |
| `exclusion` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentExclusion`)`` Defines which events are excluded in this segment. Optional. |

## EventSegmentCriteria

An event matches a criteria if the event meet the conditions in the criteria.

| JSON representation |
|---|
| ``` { "andConditionGroups": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentConditionGroup`) } ] } ``` |

| Fields ||
|---|---|
| `andConditionGroups[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentConditionGroup`)`` An event matches this criteria if the event matches each of these `andConditionGroups`. |

## EventSegmentConditionGroup

Conditions tell Analytics what data to include in or exclude from the segment.

| JSON representation |
|---|
| ``` { "conditionScoping": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventCriteriaScoping`), "segmentFilterExpression": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`) } } ``` |

| Fields ||
|---|---|
| `conditionScoping` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventCriteriaScoping`)`` `conditionScoping` should always be `EVENT_CRITERIA_WITHIN_SAME_EVENT`. Optional. If unspecified, a `conditionScoping` of `EVENT_CRITERIA_WITHIN_SAME_EVENT` is used. |
| `segmentFilterExpression` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#SegmentFilterExpression`)`` Data is included or excluded from the segment based on if it matches this expression. Expressions express criteria on dimension, metrics, and/or parameters. |

## EventCriteriaScoping

Scoping specifies which events are considered when evaluating if an event meets a criteria.

| Enums ||
|---|---|
| `EVENT_CRITERIA_SCOPING_UNSPECIFIED` | Unspecified criteria scoping. Do not specify. |
| `EVENT_CRITERIA_WITHIN_SAME_EVENT` | If the criteria is satisfied within one event, the event matches the criteria. |

## EventSegmentExclusion

Specifies which events are excluded in this segment.

| JSON representation |
|---|
| ``` { "eventExclusionDuration": enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventExclusionDuration`), "eventExclusionCriteria": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentCriteria`) } } ``` |

| Fields ||
|---|---|
| `eventExclusionDuration` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventExclusionDuration`)`` `eventExclusionDuration` should always be `PERMANENTLY_EXCLUDE`. Optional. If unspecified, an `eventExclusionDuration` of `EVENT_EXCLUSION_PERMANENT` is used. |
| `eventExclusionCriteria` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#EventSegmentCriteria`)`` If an event meets this condition, the event is excluded from membership in the segment for the `eventExclusionDuration`. |

## EventExclusionDuration

Enumerates options for how long an exclusion will last if an event matches the `eventExclusionCriteria`.

| Enums ||
|---|---|
| `EVENT_EXCLUSION_DURATION_UNSPECIFIED` | Unspecified exclusion duration. Do not specify. |
| `EVENT_EXCLUSION_PERMANENT` | Permanently exclude events from the segment if the event ever meets the `eventExclusionCriteria` condition. |

## FunnelSubReport

Funnel sub reports contain the dimension and metric data values. For example, 12 users reached the second step of the funnel.

| JSON representation |
|---|
| ``` { "dimensionHeaders": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/DimensionHeader`) } ], "metricHeaders": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/MetricHeader`) } ], "rows": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/Row`) } ], "metadata": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelResponseMetadata`) } } ``` |

| Fields ||
|---|---|
| `dimensionHeaders[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/DimensionHeader`)`` Describes dimension columns. Funnel reports always include the funnel step dimension in sub report responses. Additional dimensions like breakdowns, dates, and next actions may be present in the response if requested. |
| `metricHeaders[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/MetricHeader`)`` Describes metric columns. Funnel reports always include active users in sub report responses. The funnel table includes additional metrics like completion rate, abandonments, and abandonments rate. |
| `rows[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/Row`)`` Rows of dimension value combinations and metric values in the report. |
| `metadata` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/properties/runFunnelReport#FunnelResponseMetadata`)`` Metadata for the funnel report. |

## FunnelResponseMetadata

The funnel report's response metadata carries additional information about the funnel report.

| JSON representation |
|---|
| ``` { "samplingMetadatas": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/SamplingMetadata`) } ] } ``` |

| Fields ||
|---|---|
| `samplingMetadatas[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1alpha/SamplingMetadata`)`` If funnel report results are [sampled](https://support.google.com/analytics/answer/13331292), this describes what percentage of events were used in this funnel report. One `samplingMetadatas` is populated for each date range. Each `samplingMetadatas` corresponds to a date range in order that date ranges were specified in the request. However if the results are not sampled, this field will not be defined. |