// Copyright 2024 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.v1beta; import "google/analytics/data/v1beta/data.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; import "google/api/resource.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/timestamp.proto"; option go_package = "google.golang.org/genproto/googleapis/analytics/data/v1beta;data"; option java_multiple_files = true; option java_outer_classname = "AnalyticsDataApiProto"; option java_package = "com.google.analytics.data.v1beta"; option (google.api.resource_definition) = { type: "analyticsadmin.googleapis.com/Property" pattern: "properties/{property}" }; // Google Analytics reporting data service. service BetaAnalyticsData { 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. // // For a guide to constructing requests & understanding responses, see // [Creating a // Report](https://developers.google.com/analytics/devguides/reporting/data/v1/basics). rpc RunReport(RunReportRequest) returns (RunReportResponse) { option (google.api.http) = { post: "/v1beta/{property=properties/*}: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: "/v1beta/{property=properties/*}:runPivotReport" body: "*" }; } // Returns multiple reports in a batch. All reports must be for the same // GA4 Property. rpc BatchRunReports(BatchRunReportsRequest) returns (BatchRunReportsResponse) { option (google.api.http) = { post: "/v1beta/{property=properties/*}:batchRunReports" body: "*" }; } // Returns multiple pivot reports in a batch. All reports must be for the same // GA4 Property. rpc BatchRunPivotReports(BatchRunPivotReportsRequest) returns (BatchRunPivotReportsResponse) { option (google.api.http) = { post: "/v1beta/{property=properties/*}:batchRunPivotReports" body: "*" }; } // Returns metadata for dimensions and metrics available in reporting methods. // Used to explore the dimensions and metrics. In this method, a Google // Analytics GA4 Property Identifier is specified in the request, and // the metadata response includes Custom dimensions and metrics as well as // Universal metadata. // // For example if a custom metric with parameter name `levels_unlocked` is // registered to a property, the Metadata response will contain // `customEvent:levels_unlocked`. Universal metadata are dimensions and // metrics applicable to any property such as `country` and `totalUsers`. rpc GetMetadata(GetMetadataRequest) returns (Metadata) { option (google.api.http) = { get: "/v1beta/{name=properties/*/metadata}" }; option (google.api.method_signature) = "name"; } // Returns a customized report of realtime event data for your property. // Events appear in realtime reports seconds after they have been sent to // the Google Analytics. Realtime reports show events and usage data for the // periods of time ranging from the present moment to 30 minutes ago (up to // 60 minutes for Google Analytics 360 properties). // // For a guide to constructing realtime requests & understanding responses, // see [Creating a Realtime // Report](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-basics). rpc RunRealtimeReport(RunRealtimeReportRequest) returns (RunRealtimeReportResponse) { option (google.api.http) = { post: "/v1beta/{property=properties/*}:runRealtimeReport" body: "*" }; } // This compatibility method lists dimensions and metrics that can be added to // a report request and maintain compatibility. This method fails if the // request's dimensions and metrics are incompatible. // // In Google Analytics, reports fail if they request incompatible dimensions // and/or metrics; in that case, you will need to remove dimensions and/or // metrics from the incompatible report until the report is compatible. // // The Realtime and Core reports have different compatibility rules. This // method checks compatibility for Core reports. rpc CheckCompatibility(CheckCompatibilityRequest) returns (CheckCompatibilityResponse) { option (google.api.http) = { post: "/v1beta/{property=properties/*}:checkCompatibility" body: "*" }; } // Creates an audience export for later retrieval. This method quickly returns // the audience export's resource name and initiates a long running // asynchronous request to form an audience export. To export the users in an // audience export, first create the audience export through this method and // then send the audience resource name to the `QueryAudienceExport` method. // // See [Creating an Audience // Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) // for an introduction to Audience Exports with examples. // // An audience export is a snapshot of the users currently in the audience at // the time of audience export creation. Creating audience exports for one // audience on different days will return different results as users enter and // exit the audience. // // Audiences in Google Analytics 4 allow you to segment your users in the ways // that are important to your business. To learn more, see // https://support.google.com/analytics/answer/9267572. Audience exports // contain the users in each audience. // // Audience Export APIs have some methods at alpha and other methods at beta // stability. The intention is to advance methods to beta stability after some // feedback and adoption. To give your feedback on this API, complete the // [Google Analytics Audience Export API // Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form. rpc CreateAudienceExport(CreateAudienceExportRequest) returns (google.longrunning.Operation) { option (google.api.http) = { post: "/v1beta/{parent=properties/*}/audienceExports" body: "audience_export" }; option (google.api.method_signature) = "parent,audience_export"; option (google.longrunning.operation_info) = { response_type: "AudienceExport" metadata_type: "AudienceExportMetadata" }; } // Retrieves an audience export of users. After creating an audience, the // users are not immediately available for exporting. First, a request to // `CreateAudienceExport` is necessary to create an audience export of users, // and then second, this method is used to retrieve the users in the audience // export. // // See [Creating an Audience // Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) // for an introduction to Audience Exports with examples. // // Audiences in Google Analytics 4 allow you to segment your users in the ways // that are important to your business. To learn more, see // https://support.google.com/analytics/answer/9267572. // // Audience Export APIs have some methods at alpha and other methods at beta // stability. The intention is to advance methods to beta stability after some // feedback and adoption. To give your feedback on this API, complete the // [Google Analytics Audience Export API // Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form. rpc QueryAudienceExport(QueryAudienceExportRequest) returns (QueryAudienceExportResponse) { option (google.api.http) = { post: "/v1beta/{name=properties/*/audienceExports/*}:query" body: "*" }; option (google.api.method_signature) = "name"; } // Gets configuration metadata about a specific audience export. This method // can be used to understand an audience export after it has been created. // // See [Creating an Audience // Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) // for an introduction to Audience Exports with examples. // // Audience Export APIs have some methods at alpha and other methods at beta // stability. The intention is to advance methods to beta stability after some // feedback and adoption. To give your feedback on this API, complete the // [Google Analytics Audience Export API // Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form. rpc GetAudienceExport(GetAudienceExportRequest) returns (AudienceExport) { option (google.api.http) = { get: "/v1beta/{name=properties/*/audienceExports/*}" }; option (google.api.method_signature) = "name"; } // Lists all audience exports for a property. This method can be used for you // to find and reuse existing audience exports rather than creating // unnecessary new audience exports. The same audience can have multiple // audience exports that represent the export of users that were in an // audience on different days. // // See [Creating an Audience // Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) // for an introduction to Audience Exports with examples. // // Audience Export APIs have some methods at alpha and other methods at beta // stability. The intention is to advance methods to beta stability after some // feedback and adoption. To give your feedback on this API, complete the // [Google Analytics Audience Export API // Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form. rpc ListAudienceExports(ListAudienceExportsRequest) returns (ListAudienceExportsResponse) { option (google.api.http) = { get: "/v1beta/{parent=properties/*}/audienceExports" }; option (google.api.method_signature) = "parent"; } } // The request for compatibility information for a report's dimensions and // metrics. Check compatibility provides a preview of the compatibility of a // report; fields shared with the `runReport` request should be the same values // as in your `runReport` request. message CheckCompatibilityRequest { // A Google Analytics GA4 property identifier whose events are tracked. To // learn more, see [where to find your Property // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). // `property` should be the same value as in your `runReport` request. // // Example: properties/1234 string property = 1; // The dimensions in this report. `dimensions` should be the same value as in // your `runReport` request. repeated Dimension dimensions = 2; // The metrics in this report. `metrics` should be the same value as in your // `runReport` request. repeated Metric metrics = 3; // The filter clause of dimensions. `dimensionFilter` should be the same value // as in your `runReport` request. FilterExpression dimension_filter = 4; // The filter clause of metrics. `metricFilter` should be the same value as in // your `runReport` request FilterExpression metric_filter = 5; // Filters the dimensions and metrics in the response to just this // compatibility. Commonly used as `”compatibilityFilter”: “COMPATIBLE”` // to only return compatible dimensions & metrics. Compatibility compatibility_filter = 6; } // The compatibility response with the compatibility of each dimension & metric. message CheckCompatibilityResponse { // The compatibility of each dimension. repeated DimensionCompatibility dimension_compatibilities = 1; // The compatibility of each metric. repeated MetricCompatibility metric_compatibilities = 2; } // The dimensions, metrics and comparisons currently accepted in reporting // methods. message Metadata { option (google.api.resource) = { type: "analyticsdata.googleapis.com/Metadata" pattern: "properties/{property}/metadata" }; // Resource name of this metadata. string name = 3; // The dimension descriptions. repeated DimensionMetadata dimensions = 1; // The metric descriptions. repeated MetricMetadata metrics = 2; // The comparison descriptions. repeated ComparisonMetadata comparisons = 4; } // The request to generate a report. message RunReportRequest { // 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; // 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. In a cohort request, this `dateRanges` // must be unspecified. repeated DateRange date_ranges = 4; // Dimension filters let you ask for only specific dimension values in // the report. To learn more, see [Fundamentals of Dimension // Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) // for examples. Metrics cannot be used in this filter. FilterExpression dimension_filter = 5; // The filter clause of metrics. Applied after aggregating the report's rows, // similar to SQL having-clause. Dimensions cannot be used in this filter. FilterExpression metric_filter = 6; // The row count of the start row. The first row is counted as row 0. // // When paging, the first request does not specify offset; or equivalently, // sets offset to 0; the first request returns the first `limit` of rows. The // second request sets offset to the `limit` of the first request; the second // request returns the second `limit` of rows. // // To learn more about this pagination parameter, see // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). int64 offset = 7; // The number of rows to return. If unspecified, 10,000 rows are returned. The // API returns a maximum of 250,000 rows per request, no matter how many you // ask for. `limit` must be positive. // // The API can also return fewer rows than the requested `limit`, if there // aren't as many dimension values as the `limit`. For instance, there are // fewer than 300 possible values for the dimension `country`, so when // reporting on only `country`, you can't get more than 300 rows, even if you // set `limit` to a higher value. // // To learn more about this pagination parameter, see // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). int64 limit = 8; // Aggregation of metrics. Aggregated metric values will be shown in rows // where the dimension_values are set to "RESERVED_(MetricAggregation)". repeated MetricAggregation metric_aggregations = 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 property'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 or unspecified, each row with all metrics equal to 0 will not be // returned. If true, these rows will be returned if they are not separately // removed by a filter. // // Regardless of this `keep_empty_rows` setting, only data recorded by the // Google Analytics (GA4) property can be displayed in a report. // // For example if a property never logs a `purchase` event, then a query for // the `eventName` dimension and `eventCount` metric will not have a row // eventName: "purchase" and eventCount: 0. 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; // Optional. The configuration of comparisons requested and displayed. The // request only requires a comparisons field in order to receive a comparison // column in the response. repeated Comparison comparisons = 15 [(google.api.field_behavior) = OPTIONAL]; } // The response report table corresponding to a request. message RunReportResponse { // Describes dimension columns. The number of DimensionHeaders and ordering of // DimensionHeaders matches the dimensions present in rows. repeated DimensionHeader dimension_headers = 1; // Describes metric columns. The number of MetricHeaders and ordering of // MetricHeaders matches the metrics present in rows. repeated MetricHeader metric_headers = 2; // Rows of dimension value combinations and metric values in the report. repeated Row rows = 3; // If requested, the totaled values of metrics. repeated Row totals = 4; // If requested, the maximum values of metrics. repeated Row maximums = 5; // If requested, the minimum values of metrics. repeated Row minimums = 6; // The total number of rows in the query result. `rowCount` is independent of // the number of rows returned in the response, the `limit` request // parameter, and the `offset` request parameter. For example if a query // returns 175 rows and includes `limit` of 50 in the API request, the // response will contain `rowCount` of 175 but only 50 rows. // // To learn more about this pagination parameter, see // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). int32 row_count = 7; // Metadata for the report. ResponseMetaData metadata = 8; // This Analytics Property's quota state including this request. PropertyQuota property_quota = 9; // Identifies what kind of resource this message is. This `kind` is always the // fixed string "analyticsData#runReport". Useful to distinguish between // response types in JSON. string kind = 10; } // The request to generate a pivot report. message RunPivotReportRequest { // 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; // 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 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. In a cohort request, this `dateRanges` must be unspecified. repeated DateRange date_ranges = 4; // 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 = 5; // The filter clause of dimensions. Dimensions must be requested to be used in // this filter. Metrics cannot be used in this filter. FilterExpression dimension_filter = 6; // The filter clause of metrics. Applied at post aggregation phase, similar to // SQL having-clause. Metrics must be requested to be used in this filter. // Dimensions cannot be used in this filter. FilterExpression metric_filter = 7; // A currency code in ISO4217 format, such as "AED", "USD", "JPY". // If the field is empty, the report uses the property'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 or unspecified, each row with all metrics equal to 0 will not be // returned. If true, these rows will be returned if they are not separately // removed by a filter. // // Regardless of this `keep_empty_rows` setting, only data recorded by the // Google Analytics (GA4) property can be displayed in a report. // // For example if a property never logs a `purchase` event, then a query for // the `eventName` dimension and `eventCount` metric will not have a row // eventName: "purchase" and eventCount: 0. 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; // Optional. The configuration of comparisons requested and displayed. The // request requires both a comparisons field and a comparisons dimension to // receive a comparison column in the response. repeated Comparison comparisons = 12 [(google.api.field_behavior) = OPTIONAL]; } // 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 dimension columns. The number of DimensionHeaders and ordering of // DimensionHeaders matches the dimensions present in rows. repeated DimensionHeader dimension_headers = 2; // Describes metric columns. The number of MetricHeaders and ordering of // MetricHeaders matches the metrics present in rows. repeated MetricHeader metric_headers = 3; // Rows of dimension value combinations and metric values in the report. repeated Row rows = 4; // 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 = 5; // Metadata for the report. ResponseMetaData metadata = 6; // This Analytics Property's quota state including this request. PropertyQuota property_quota = 7; // Identifies what kind of resource this message is. This `kind` is always the // fixed string "analyticsData#runPivotReport". Useful to distinguish between // response types in JSON. string kind = 8; } // The batch request containing multiple report requests. message BatchRunReportsRequest { // 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). // This property must be specified for the batch. The property within // RunReportRequest may either be unspecified or consistent with this // property. // // Example: properties/1234 string property = 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; // Identifies what kind of resource this message is. This `kind` is always the // fixed string "analyticsData#batchRunReports". Useful to distinguish between // response types in JSON. string kind = 2; } // The batch request containing multiple pivot report requests. message BatchRunPivotReportsRequest { // 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). // This property must be specified for the batch. The property within // RunPivotReportRequest may either be unspecified or consistent with this // property. // // Example: properties/1234 string property = 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; // Identifies what kind of resource this message is. This `kind` is always the // fixed string "analyticsData#batchRunPivotReports". Useful to distinguish // between response types in JSON. string kind = 2; } // Request for a property's dimension and metric metadata. message GetMetadataRequest { // Required. The resource name of the metadata to retrieve. This name field is // specified in the URL path and not URL parameters. Property is a numeric // Google Analytics GA4 Property identifier. To learn more, see [where to find // your Property // ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). // // Example: properties/1234/metadata // // Set the Property ID to 0 for dimensions and metrics common to all // properties. In this special mode, this method will not return custom // dimensions and metrics. string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "analyticsdata.googleapis.com/Metadata" } ]; } // The request to generate a realtime report. message RunRealtimeReportRequest { // 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). // // Example: properties/1234 string property = 1; // The dimensions requested and displayed. repeated Dimension dimensions = 2; // The metrics requested and displayed. repeated Metric metrics = 3; // The filter clause of dimensions. Metrics cannot be used in this filter. FilterExpression dimension_filter = 4; // The filter clause of metrics. Applied at post aggregation phase, similar to // SQL having-clause. Dimensions cannot be used in this filter. FilterExpression metric_filter = 5; // The number of rows to return. If unspecified, 10,000 rows are returned. The // API returns a maximum of 250,000 rows per request, no matter how many you // ask for. `limit` must be positive. // // The API can also return fewer rows than the requested `limit`, if there // aren't as many dimension values as the `limit`. For instance, there are // fewer than 300 possible values for the dimension `country`, so when // reporting on only `country`, you can't get more than 300 rows, even if you // set `limit` to a higher value. 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; // Specifies how rows are ordered in the response. repeated OrderBy order_bys = 8; // Toggles whether to return the current state of this Analytics Property's // Realtime quota. Quota is returned in [PropertyQuota](#PropertyQuota). bool return_property_quota = 9; // The minute ranges of event data to read. If unspecified, one minute range // for the last 30 minutes will be used. If multiple minute ranges are // requested, each response row will contain a zero based minute range index. // If two minute ranges overlap, the event data for the overlapping minutes is // included in the response rows for both minute ranges. repeated MinuteRange minute_ranges = 10; } // The response realtime report table corresponding to a request. message RunRealtimeReportResponse { // Describes dimension columns. The number of DimensionHeaders and ordering of // DimensionHeaders matches the dimensions present in rows. repeated DimensionHeader dimension_headers = 1; // Describes metric columns. The number of MetricHeaders and ordering of // MetricHeaders matches the metrics present in rows. repeated MetricHeader metric_headers = 2; // Rows of dimension value combinations and metric values in the report. repeated Row rows = 3; // If requested, the totaled values of metrics. repeated Row totals = 4; // If requested, the maximum values of metrics. repeated Row maximums = 5; // If requested, the minimum values of metrics. repeated Row minimums = 6; // The total number of rows in the query result. `rowCount` is independent of // the number of rows returned in the response and the `limit` request // parameter. For example if a query returns 175 rows and includes `limit` // of 50 in the API request, the response will contain `rowCount` of 175 but // only 50 rows. int32 row_count = 7; // This Analytics Property's Realtime quota state including this request. PropertyQuota property_quota = 8; // Identifies what kind of resource this message is. This `kind` is always the // fixed string "analyticsData#runRealtimeReport". Useful to distinguish // between response types in JSON. string kind = 9; } // A request to retrieve configuration metadata about a specific audience // export. message GetAudienceExportRequest { // Required. The audience export resource name. // Format: `properties/{property}/audienceExports/{audience_export}` string name = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { type: "analyticsdata.googleapis.com/AudienceExport" } ]; } // A request to list all audience exports for a property. message ListAudienceExportsRequest { // Required. All audience exports for this property will be listed in the // response. Format: `properties/{property}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "analyticsdata.googleapis.com/AudienceExport" } ]; // Optional. The maximum number of audience exports to return. The service may // return fewer than this value. If unspecified, at most 200 audience exports // will be returned. The maximum value is 1000 (higher values will be coerced // to the maximum). int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; // Optional. A page token, received from a previous `ListAudienceExports` // call. Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to `ListAudienceExports` // must match the call that provided the page token. string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } // A list of all audience exports for a property. message ListAudienceExportsResponse { // Each audience export for a property. repeated AudienceExport audience_exports = 1; // A token, which can be sent as `page_token` to retrieve the next page. // If this field is omitted, there are no subsequent pages. optional string next_page_token = 2; } // A request to create a new audience export. message CreateAudienceExportRequest { // Required. The parent resource where this audience export will be created. // Format: `properties/{property}` string parent = 1 [ (google.api.field_behavior) = REQUIRED, (google.api.resource_reference) = { child_type: "analyticsdata.googleapis.com/AudienceExport" } ]; // Required. The audience export to create. AudienceExport audience_export = 2 [(google.api.field_behavior) = REQUIRED]; } // An audience export is a list of users in an audience at the time of the // list's creation. One audience may have multiple audience exports created for // different days. message AudienceExport { option (google.api.resource) = { type: "analyticsdata.googleapis.com/AudienceExport" pattern: "properties/{property}/audienceExports/{audience_export}" plural: "audienceExports" singular: "audienceExport" }; // The AudienceExport currently exists in this state. enum State { // Unspecified state will never be used. STATE_UNSPECIFIED = 0; // The AudienceExport is currently creating and will be available in the // future. Creating occurs immediately after the CreateAudienceExport call. CREATING = 1; // The AudienceExport is fully created and ready for querying. An // AudienceExport is updated to active asynchronously from a request; this // occurs some time (for example 15 minutes) after the initial create call. ACTIVE = 2; // The AudienceExport failed to be created. It is possible that // re-requesting this audience export will succeed. FAILED = 3; } // Output only. Identifier. The audience export resource name assigned during // creation. This resource name identifies this `AudienceExport`. // // Format: `properties/{property}/audienceExports/{audience_export}` string name = 1 [ (google.api.field_behavior) = IDENTIFIER, (google.api.field_behavior) = OUTPUT_ONLY ]; // Required. The audience resource name. This resource name identifies the // audience being listed and is shared between the Analytics Data & Admin // APIs. // // Format: `properties/{property}/audiences/{audience}` string audience = 2 [(google.api.field_behavior) = REQUIRED]; // Output only. The descriptive display name for this audience. For example, // "Purchasers". string audience_display_name = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Required. The dimensions requested and displayed in the query response. repeated AudienceDimension dimensions = 4 [(google.api.field_behavior) = REQUIRED]; // Output only. The current state for this AudienceExport. optional State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The time when CreateAudienceExport was called and the // AudienceExport began the `CREATING` state. optional google.protobuf.Timestamp begin_creating_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The total quota tokens charged during creation of the // AudienceExport. Because this token count is based on activity from the // `CREATING` state, this tokens charged will be fixed once an AudienceExport // enters the `ACTIVE` or `FAILED` states. int32 creation_quota_tokens_charged = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The total number of rows in the AudienceExport result. optional int32 row_count = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Error message is populated when an audience export fails // during creation. A common reason for such a failure is quota exhaustion. optional string error_message = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. The percentage completed for this audience export ranging // between 0 to 100. optional double percentage_completed = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; } // This metadata is currently blank. message AudienceExportMetadata {} // A request to list users in an audience export. message QueryAudienceExportRequest { // Required. The name of the audience export to retrieve users from. // Format: `properties/{property}/audienceExports/{audience_export}` string name = 1 [(google.api.field_behavior) = REQUIRED]; // Optional. The row count of the start row. The first row is counted as row // 0. // // When paging, the first request does not specify offset; or equivalently, // sets offset to 0; the first request returns the first `limit` of rows. The // second request sets offset to the `limit` of the first request; the second // request returns the second `limit` of rows. // // To learn more about this pagination parameter, see // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). int64 offset = 2 [(google.api.field_behavior) = OPTIONAL]; // 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`. // // To learn more about this pagination parameter, see // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). int64 limit = 3 [(google.api.field_behavior) = OPTIONAL]; } // A list of users in an audience export. message QueryAudienceExportResponse { // Configuration data about AudienceExport being queried. Returned to help // interpret the audience rows in this response. For example, the dimensions // in this AudienceExport correspond to the columns in the AudienceRows. optional AudienceExport audience_export = 1; // Rows for each user in an audience export. The number of rows in this // response will be less than or equal to request's page size. repeated AudienceRow audience_rows = 2; // The total number of rows in the AudienceExport result. `rowCount` is // independent of the number of rows returned in the response, the `limit` // request parameter, and the `offset` request parameter. For example if a // query returns 175 rows and includes `limit` of 50 in the API request, the // response will contain `rowCount` of 175 but only 50 rows. // // To learn more about this pagination parameter, see // [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). optional int32 row_count = 3; } // Dimension value attributes for the audience user row. message AudienceRow { // Each dimension value attribute for an audience user. One dimension value // will be added for each dimension column requested. repeated AudienceDimensionValue dimension_values = 1; } // An audience dimension is a user attribute. Specific user attributed are // requested and then later returned in the `QueryAudienceExportResponse`. message AudienceDimension { // Optional. The API name of the dimension. See the [API // Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-api-schema#dimensions) // for the list of dimension names. string dimension_name = 1 [(google.api.field_behavior) = OPTIONAL]; } // The value of a dimension. message AudienceDimensionValue { // One kind of dimension value. oneof one_value { // Value as a string if the dimension type is a string. string value = 1; } }