// Copyright 2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.analytics.data.v1alpha;
import "google/analytics/data/v1alpha/data.proto";
import "google/api/annotations.proto";
import "google/api/client.proto";
option go_package = "google.golang.org/genproto/googleapis/analytics/data/v1alpha;data";
option java_multiple_files = true;
option java_outer_classname = "AnalyticsDataApiProto";
option java_package = "com.google.analytics.data.v1alpha";
// Google Analytics reporting data service.
service AlphaAnalyticsData {
option (google.api.default_host) = "analyticsdata.googleapis.com";
option (google.api.oauth_scopes) =
"https://www.googleapis.com/auth/analytics,"
"https://www.googleapis.com/auth/analytics.readonly";
// 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).
rpc RunFunnelReport(RunFunnelReportRequest) returns (RunFunnelReportResponse) {
option (google.api.http) = {
post: "/v1alpha/{property=properties/*}:runFunnelReport"
body: "*"
};
}
}
// The request for a funnel report.
message RunFunnelReportRequest {
// Controls the dimensions present in the funnel visualization sub report
// response.
enum FunnelVisualizationType {
// Unspecified type.
FUNNEL_VISUALIZATION_TYPE_UNSPECIFIED = 0;
// A standard (stepped) funnel. The funnel visualization sub report in the
// response will not contain date.
STANDARD_FUNNEL = 1;
// A trended (line chart) funnel. The funnel visualization sub report in the
// response will contain the date dimension.
TRENDED_FUNNEL = 2;
}
// 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
string property = 1;
// 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.
repeated DateRange date_ranges = 2;
// The configuration of this request's funnel. This funnel configuration is
// required.
Funnel funnel = 3;
// 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.
FunnelBreakdown funnel_breakdown = 4;
// 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 (i.e.
// `session_start` & `click`) and the total.
//
// Next action only supports `eventName` and most Page / Screen dimensions
// like `pageTitle` and `pagePath`.
FunnelNextAction funnel_next_action = 5;
// The funnel visualization type controls the dimensions present in the funnel
// visualization sub report response. If not specified, `STANDARD_FUNNEL` is
// used.
FunnelVisualizationType funnel_visualization_type = 6;
// 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.
repeated Segment segments = 7;
// 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 can also return fewer rows than the requested `limit`, if there
// aren't as many dimension values as the `limit`.
int64 limit = 9;
// 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.
FilterExpression dimension_filter = 10;
// Toggles whether to return the current state of this Analytics Property's
// quota. Quota is returned in [PropertyQuota](#PropertyQuota).
bool return_property_quota = 12;
}
// The funnel report response contains two sub reports. The two sub reports are
// different combinations of dimensions and metrics.
message RunFunnelReportResponse {
// 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.
FunnelSubReport funnel_table = 1;
// 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 via the `TRENDED_FUNNEL` funnel type. The next action dimension
// is only present in the response if it was requested.
FunnelSubReport funnel_visualization = 2;
// This Analytics Property's quota state including this request.
PropertyQuota property_quota = 3;
// 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.
string kind = 4;
}