// Copyright 2020 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 report of your Google Analytics event data. Reports // contain statistics derived from data collected by the Google Analytics // tracking code. The data returned from the API is as a table with columns // for the requested dimensions and metrics. Metrics are individual // measurements of user activity on your property, such as active users or // event count. Dimensions break down metrics across some common criteria, // such as country or event name. rpc RunReport(RunReportRequest) returns (RunReportResponse) { option (google.api.http) = { post: "/v1alpha:runReport" body: "*" }; } // Returns a customized pivot report of your Google Analytics event data. // Pivot reports are more advanced and expressive formats than regular // reports. In a pivot report, dimensions are only visible if they are // included in a pivot. Multiple pivots can be specified to further dissect // your data. rpc RunPivotReport(RunPivotReportRequest) returns (RunPivotReportResponse) { option (google.api.http) = { post: "/v1alpha:runPivotReport" body: "*" }; } // Returns multiple reports in a batch. All reports must be for the same // Entity. rpc BatchRunReports(BatchRunReportsRequest) returns (BatchRunReportsResponse) { option (google.api.http) = { post: "/v1alpha:batchRunReports" body: "*" }; } // Returns multiple pivot reports in a batch. All reports must be for the same // Entity. rpc BatchRunPivotReports(BatchRunPivotReportsRequest) returns (BatchRunPivotReportsResponse) { option (google.api.http) = { post: "/v1alpha:batchRunPivotReports" body: "*" }; } } // The request to generate a report. message RunReportRequest { // A property whose events are tracked. Within a batch request, this entity // should either be unspecified or consistent with the batch-level entity. Entity entity = 1; // The dimensions requested and displayed. repeated Dimension dimensions = 2; // The metrics requested and displayed. repeated Metric metrics = 3; // 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 = 4; // The row count of the start row. The first row is counted as row 0. int64 offset = 5; // The number of rows to return. // If zero or unspecified, all rows are returned. int64 limit = 6; // Aggregation of metrics. Aggregated metric values will be shown in rows // where the dimension_values are set to "RESERVED_(MetricAggregation)". repeated MetricAggregation metric_aggregations = 7; // The filter clause of dimensions. FilterExpression dimension_filter = 8; // The filter clause of metrics. Applied at post aggregation phase, similar to // SQL having-clause. FilterExpression metric_filter = 9; // Specifies how rows are ordered in the response. repeated OrderBy order_bys = 10; // A currency code in ISO4217 format, such as "AED", "USD", "JPY". // If the field is empty, the report uses the entity's default currency. string currency_code = 11; // Cohort group associated with this request. If there is a cohort group // in the request the 'cohort' dimension must be present. CohortSpec cohort_spec = 12; // If false, rows with metrics being 0 will not be returned. bool keep_empty_rows = 13; // Toggles whether to return the current state of this Analytics Property's // quota. Quota is returned in [PropertyQuota](#PropertyQuota). bool return_property_quota = 14; } // The response report table corresponding to a request. message RunReportResponse { // Describes metric columns. repeated MetricHeader metric_headers = 1; // Rows of dimension value combinations and metric values in the report. repeated Row rows = 2; // If requested, the totaled values of metrics. repeated Row totals = 8; // If requested, the maximum values of metrics. repeated Row maximums = 9; // If requested, the minimum values of metrics. repeated Row minimums = 10; // Metadata for the report. ResponseMetaData metadata = 6; // This Analytics Property's quota state including this request. PropertyQuota property_quota = 7; } // The request to generate a pivot report. message RunPivotReportRequest { // A property whose events are tracked. Within a batch request, this entity // should either be unspecified or consistent with the batch-level entity. Entity entity = 1; // The dimensions requested. All defined dimensions must be used by one of the // following: dimension_expression, dimension_filter, pivots, order_bys. repeated Dimension dimensions = 2; // The metrics requested, at least one metric needs to be specified. All // defined metrics must be used by one of the following: metric_expression, // metric_filter, order_bys. repeated Metric metrics = 3; // The filter clause of dimensions. Requests are validated that all // field_names in the dimension_filter are dimensions and are defined in // Dimensions. FilterExpression dimension_filter = 4; // The filter clause of metrics. Applied at post aggregation phase, similar to // SQL having-clause. Requests are validated that all field_names in the // metric_filter are metrics and are defined in Metrics. FilterExpression metric_filter = 5; // Describes the visual format of the report's dimensions in columns or rows. // The union of the fieldNames (dimension names) in all pivots must be a // subset of dimension names defined in Dimensions. No two pivots can share a // dimension. A dimension is only visible if it appears in a pivot. repeated Pivot pivots = 6; // The date range to retrieve event data for the report. If multiple date // ranges are specified, event data from each date range is used in the // report. A special dimension with field name "dateRange" can be included in // a Pivot's field names; if included, the report compares between date // ranges. This dateRanges field is not used in cohorts reports. repeated DateRange date_ranges = 7; // A currency code in ISO4217 format, such as "AED", "USD", "JPY". // If the field is empty, the report uses the entity's default currency. string currency_code = 8; // Cohort group associated with this request. If there is a cohort group // in the request the 'cohort' dimension must be present. CohortSpec cohort_spec = 9; // If false, rows with metrics being 0 will not be returned. bool keep_empty_rows = 10; // Toggles whether to return the current state of this Analytics Property's // quota. Quota is returned in [PropertyQuota](#PropertyQuota). bool return_property_quota = 11; } // The response pivot report table corresponding to a pivot request. message RunPivotReportResponse { // Summarizes the columns and rows created by a pivot. Each pivot in the // request produces one header in the response. If we have a request like // this: // // "pivots": [{ // "fieldNames": ["country", // "city"] // }, // { // "fieldNames": "eventName" // }] // // We will have the following `pivotHeaders` in the response: // // "pivotHeaders" : [{ // "dimensionHeaders": [{ // "dimensionValues": [ // { "value": "United Kingdom" }, // { "value": "London" } // ] // }, // { // "dimensionValues": [ // { "value": "Japan" }, // { "value": "Osaka" } // ] // }] // }, // { // "dimensionHeaders": [{ // "dimensionValues": [{ "value": "session_start" }] // }, // { // "dimensionValues": [{ "value": "scroll" }] // }] // }] repeated PivotHeader pivot_headers = 1; // Describes metric columns. repeated MetricHeader metric_headers = 2; // Rows of dimension value combinations and metric values in the report. repeated Row rows = 3; // Aggregation of metric values. Can be totals, minimums, or maximums. The // returned aggregations are controlled by the metric_aggregations in the // pivot. The type of aggregation returned in each row is shown by the // dimension_values which are set to "RESERVED_". repeated Row aggregates = 4; // Metadata for the report. ResponseMetaData metadata = 5; // This Analytics Property's quota state including this request. PropertyQuota property_quota = 6; } // The batch request containing multiple report requests. message BatchRunReportsRequest { // A property whose events are tracked. This entity must be specified for the // batch. The entity within RunReportRequest may either be unspecified or // consistent with this entity. Entity entity = 1; // Individual requests. Each request has a separate report response. Each // batch request is allowed up to 5 requests. repeated RunReportRequest requests = 2; } // The batch response containing multiple reports. message BatchRunReportsResponse { // Individual responses. Each response has a separate report request. repeated RunReportResponse reports = 1; } // The batch request containing multiple pivot report requests. message BatchRunPivotReportsRequest { // A property whose events are tracked. This entity must be specified for the // batch. The entity within RunPivotReportRequest may either be unspecified or // consistent with this entity. Entity entity = 1; // Individual requests. Each request has a separate pivot report response. // Each batch request is allowed up to 5 requests. repeated RunPivotReportRequest requests = 2; } // The batch response containing multiple pivot reports. message BatchRunPivotReportsResponse { // Individual responses. Each response has a separate pivot report request. repeated RunPivotReportResponse pivot_reports = 1; }