| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: deprecated_member_use_from_same_package |
| // ignore_for_file: doc_directive_unknown |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unintended_html_in_doc_comment |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| /// Google Analytics Data API - v1beta |
| /// |
| /// Accesses report data in Google Analytics. Warning: Creating multiple |
| /// Customer Applications, Accounts, or Projects to simulate or act as a single |
| /// Customer Application, Account, or Project (respectively) or to circumvent |
| /// Service-specific usage limits or quotas is a direct violation of Google |
| /// Cloud Platform Terms of Service as well as Google APIs Terms of Service. |
| /// These actions can result in immediate termination of your GCP project(s) |
| /// without any warning. |
| /// |
| /// For more information, see |
| /// <https://developers.google.com/analytics/devguides/reporting/data/v1/> |
| /// |
| /// Create an instance of [AnalyticsDataApi] to access these resources: |
| /// |
| /// - [PropertiesResource] |
| /// - [PropertiesAudienceExportsResource] |
| library; |
| |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| import 'dart:core' as core; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| import '../shared.dart'; |
| import '../src/user_agent.dart'; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' |
| show ApiRequestError, DetailedApiRequestError; |
| |
| /// Accesses report data in Google Analytics. |
| /// |
| /// Warning: Creating multiple Customer Applications, Accounts, or Projects to |
| /// simulate or act as a single Customer Application, Account, or Project |
| /// (respectively) or to circumvent Service-specific usage limits or quotas is a |
| /// direct violation of Google Cloud Platform Terms of Service as well as Google |
| /// APIs Terms of Service. These actions can result in immediate termination of |
| /// your GCP project(s) without any warning. |
| class AnalyticsDataApi { |
| /// View and manage your Google Analytics data |
| static const analyticsScope = 'https://www.googleapis.com/auth/analytics'; |
| |
| /// See and download your Google Analytics data |
| static const analyticsReadonlyScope = |
| 'https://www.googleapis.com/auth/analytics.readonly'; |
| |
| final commons.ApiRequester _requester; |
| |
| PropertiesResource get properties => PropertiesResource(_requester); |
| |
| AnalyticsDataApi( |
| http.Client client, { |
| core.String rootUrl = 'https://analyticsdata.googleapis.com/', |
| core.String servicePath = '', |
| }) : _requester = commons.ApiRequester( |
| client, |
| rootUrl, |
| servicePath, |
| requestHeaders, |
| ); |
| } |
| |
| class PropertiesResource { |
| final commons.ApiRequester _requester; |
| |
| PropertiesAudienceExportsResource get audienceExports => |
| PropertiesAudienceExportsResource(_requester); |
| |
| PropertiesResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Returns multiple pivot reports in a batch. |
| /// |
| /// All reports must be for the same Google Analytics property. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [property] - 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). |
| /// This property must be specified for the batch. The property within |
| /// RunPivotReportRequest may either be unspecified or consistent with this |
| /// property. Example: properties/1234 |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [BatchRunPivotReportsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<BatchRunPivotReportsResponse> batchRunPivotReports( |
| BatchRunPivotReportsRequest request, |
| core.String property, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = |
| 'v1beta/' + core.Uri.encodeFull('$property') + ':batchRunPivotReports'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return BatchRunPivotReportsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Returns multiple reports in a batch. |
| /// |
| /// All reports must be for the same Google Analytics property. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [property] - 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). |
| /// This property must be specified for the batch. The property within |
| /// RunReportRequest may either be unspecified or consistent with this |
| /// property. Example: properties/1234 |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [BatchRunReportsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<BatchRunReportsResponse> batchRunReports( |
| BatchRunReportsRequest request, |
| core.String property, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = |
| 'v1beta/' + core.Uri.encodeFull('$property') + ':batchRunReports'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return BatchRunReportsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// 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. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [property] - A Google Analytics 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 |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [CheckCompatibilityResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<CheckCompatibilityResponse> checkCompatibility( |
| CheckCompatibilityRequest request, |
| core.String property, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = |
| 'v1beta/' + core.Uri.encodeFull('$property') + ':checkCompatibility'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return CheckCompatibilityResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// Returns metadata for dimensions and metrics available in reporting |
| /// methods. |
| /// |
| /// Used to explore the dimensions and metrics. In this method, a Google |
| /// Analytics 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`. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - 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 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. |
| /// Value must have pattern `^properties/\[^/\]+/metadata$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Metadata]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Metadata> getMetadata( |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = 'v1beta/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return Metadata.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [property] - 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 |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [RunPivotReportResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<RunPivotReportResponse> runPivotReport( |
| RunPivotReportRequest request, |
| core.String property, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = |
| 'v1beta/' + core.Uri.encodeFull('$property') + ':runPivotReport'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return RunPivotReportResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// 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). |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [property] - 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). |
| /// Example: properties/1234 |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [RunRealtimeReportResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<RunRealtimeReportResponse> runRealtimeReport( |
| RunRealtimeReportRequest request, |
| core.String property, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = |
| 'v1beta/' + core.Uri.encodeFull('$property') + ':runRealtimeReport'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return RunRealtimeReportResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// 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). |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [property] - 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 |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [RunReportResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<RunReportResponse> runReport( |
| RunReportRequest request, |
| core.String property, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = 'v1beta/' + core.Uri.encodeFull('$property') + ':runReport'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return RunReportResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| class PropertiesAudienceExportsResource { |
| final commons.ApiRequester _requester; |
| |
| PropertiesAudienceExportsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// 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. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. The parent resource where this audience export will |
| /// be created. Format: `properties/{property}` |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Operation]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<Operation> create( |
| AudienceExport request, |
| core.String parent, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = |
| 'v1beta/' + core.Uri.encodeFull('$parent') + '/audienceExports'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return Operation.fromJson(response_ as core.Map<core.String, core.dynamic>); |
| } |
| |
| /// 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. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The audience export resource name. Format: |
| /// `properties/{property}/audienceExports/{audience_export}` |
| /// Value must have pattern `^properties/\[^/\]+/audienceExports/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [AudienceExport]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<AudienceExport> get( |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = 'v1beta/' + core.Uri.encodeFull('$name'); |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return AudienceExport.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// 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. |
| /// |
| /// Request parameters: |
| /// |
| /// [parent] - Required. All audience exports for this property will be listed |
| /// in the response. Format: `properties/{property}` |
| /// Value must have pattern `^properties/\[^/\]+$`. |
| /// |
| /// [pageSize] - 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). |
| /// |
| /// [pageToken] - 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. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListAudienceExportsResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<ListAudienceExportsResponse> list( |
| core.String parent, { |
| core.int? pageSize, |
| core.String? pageToken, |
| core.String? $fields, |
| }) async { |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if (pageSize != null) 'pageSize': ['${pageSize}'], |
| if (pageToken != null) 'pageToken': [pageToken], |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = |
| 'v1beta/' + core.Uri.encodeFull('$parent') + '/audienceExports'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'GET', |
| queryParams: queryParams_, |
| ); |
| return ListAudienceExportsResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| |
| /// 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. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Required. The name of the audience export to retrieve users from. |
| /// Format: `properties/{property}/audienceExports/{audience_export}` |
| /// Value must have pattern `^properties/\[^/\]+/audienceExports/\[^/\]+$`. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [QueryAudienceExportResponse]. |
| /// |
| /// Completes with a [commons.ApiRequestError] if the API endpoint returned an |
| /// error. |
| /// |
| /// If the used [http.Client] completes with an error when making a REST call, |
| /// this method will complete with the same error. |
| async.Future<QueryAudienceExportResponse> query( |
| QueryAudienceExportRequest request, |
| core.String name, { |
| core.String? $fields, |
| }) async { |
| final body_ = convert.json.encode(request); |
| final queryParams_ = <core.String, core.List<core.String>>{ |
| if ($fields != null) 'fields': [$fields], |
| }; |
| |
| final url_ = 'v1beta/' + core.Uri.encodeFull('$name') + ':query'; |
| |
| final response_ = await _requester.request( |
| url_, |
| 'POST', |
| body: body_, |
| queryParams: queryParams_, |
| ); |
| return QueryAudienceExportResponse.fromJson( |
| response_ as core.Map<core.String, core.dynamic>, |
| ); |
| } |
| } |
| |
| /// A metric actively restricted in creating the report. |
| class ActiveMetricRestriction { |
| /// The name of the restricted metric. |
| core.String? metricName; |
| |
| /// The reason for this metric's restriction. |
| core.List<core.String>? restrictedMetricTypes; |
| |
| ActiveMetricRestriction({this.metricName, this.restrictedMetricTypes}); |
| |
| ActiveMetricRestriction.fromJson(core.Map json_) |
| : this( |
| metricName: json_['metricName'] as core.String?, |
| restrictedMetricTypes: |
| (json_['restrictedMetricTypes'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (metricName != null) 'metricName': metricName!, |
| if (restrictedMetricTypes != null) |
| 'restrictedMetricTypes': restrictedMetricTypes!, |
| }; |
| } |
| |
| /// 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. |
| class AudienceExport { |
| /// 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}` |
| /// |
| /// Required. |
| core.String? audience; |
| |
| /// The descriptive display name for this audience. |
| /// |
| /// For example, "Purchasers". |
| /// |
| /// Output only. |
| core.String? audienceDisplayName; |
| |
| /// The time when CreateAudienceExport was called and the AudienceExport began |
| /// the `CREATING` state. |
| /// |
| /// Output only. |
| core.String? beginCreatingTime; |
| |
| /// 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. |
| /// |
| /// Output only. |
| core.int? creationQuotaTokensCharged; |
| |
| /// The dimensions requested and displayed in the query response. |
| /// |
| /// Required. |
| core.List<V1betaAudienceDimension>? dimensions; |
| |
| /// Error message is populated when an audience export fails during creation. |
| /// |
| /// A common reason for such a failure is quota exhaustion. |
| /// |
| /// Output only. |
| core.String? errorMessage; |
| |
| /// Identifier. |
| /// |
| /// The audience export resource name assigned during creation. This resource |
| /// name identifies this `AudienceExport`. Format: |
| /// `properties/{property}/audienceExports/{audience_export}` |
| /// |
| /// Output only. |
| core.String? name; |
| |
| /// The percentage completed for this audience export ranging between 0 to |
| /// 100. |
| /// |
| /// Output only. |
| core.double? percentageCompleted; |
| |
| /// The total number of rows in the AudienceExport result. |
| /// |
| /// Output only. |
| core.int? rowCount; |
| |
| /// The current state for this AudienceExport. |
| /// |
| /// Output only. |
| /// Possible string values are: |
| /// - "STATE_UNSPECIFIED" : Unspecified state will never be used. |
| /// - "CREATING" : The AudienceExport is currently creating and will be |
| /// available in the future. Creating occurs immediately after the |
| /// CreateAudienceExport call. |
| /// - "ACTIVE" : 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. |
| /// - "FAILED" : The AudienceExport failed to be created. It is possible that |
| /// re-requesting this audience export will succeed. |
| core.String? state; |
| |
| AudienceExport({ |
| this.audience, |
| this.audienceDisplayName, |
| this.beginCreatingTime, |
| this.creationQuotaTokensCharged, |
| this.dimensions, |
| this.errorMessage, |
| this.name, |
| this.percentageCompleted, |
| this.rowCount, |
| this.state, |
| }); |
| |
| AudienceExport.fromJson(core.Map json_) |
| : this( |
| audience: json_['audience'] as core.String?, |
| audienceDisplayName: json_['audienceDisplayName'] as core.String?, |
| beginCreatingTime: json_['beginCreatingTime'] as core.String?, |
| creationQuotaTokensCharged: |
| json_['creationQuotaTokensCharged'] as core.int?, |
| dimensions: |
| (json_['dimensions'] as core.List?) |
| ?.map( |
| (value) => V1betaAudienceDimension.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| errorMessage: json_['errorMessage'] as core.String?, |
| name: json_['name'] as core.String?, |
| percentageCompleted: |
| (json_['percentageCompleted'] as core.num?)?.toDouble(), |
| rowCount: json_['rowCount'] as core.int?, |
| state: json_['state'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (audience != null) 'audience': audience!, |
| if (audienceDisplayName != null) |
| 'audienceDisplayName': audienceDisplayName!, |
| if (beginCreatingTime != null) 'beginCreatingTime': beginCreatingTime!, |
| if (creationQuotaTokensCharged != null) |
| 'creationQuotaTokensCharged': creationQuotaTokensCharged!, |
| if (dimensions != null) 'dimensions': dimensions!, |
| if (errorMessage != null) 'errorMessage': errorMessage!, |
| if (name != null) 'name': name!, |
| if (percentageCompleted != null) |
| 'percentageCompleted': percentageCompleted!, |
| if (rowCount != null) 'rowCount': rowCount!, |
| if (state != null) 'state': state!, |
| }; |
| } |
| |
| /// The batch request containing multiple pivot report requests. |
| class BatchRunPivotReportsRequest { |
| /// Individual requests. |
| /// |
| /// Each request has a separate pivot report response. Each batch request is |
| /// allowed up to 5 requests. |
| core.List<RunPivotReportRequest>? requests; |
| |
| BatchRunPivotReportsRequest({this.requests}); |
| |
| BatchRunPivotReportsRequest.fromJson(core.Map json_) |
| : this( |
| requests: |
| (json_['requests'] as core.List?) |
| ?.map( |
| (value) => RunPivotReportRequest.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (requests != null) 'requests': requests!, |
| }; |
| } |
| |
| /// The batch response containing multiple pivot reports. |
| class BatchRunPivotReportsResponse { |
| /// 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. |
| core.String? kind; |
| |
| /// Individual responses. |
| /// |
| /// Each response has a separate pivot report request. |
| core.List<RunPivotReportResponse>? pivotReports; |
| |
| BatchRunPivotReportsResponse({this.kind, this.pivotReports}); |
| |
| BatchRunPivotReportsResponse.fromJson(core.Map json_) |
| : this( |
| kind: json_['kind'] as core.String?, |
| pivotReports: |
| (json_['pivotReports'] as core.List?) |
| ?.map( |
| (value) => RunPivotReportResponse.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (kind != null) 'kind': kind!, |
| if (pivotReports != null) 'pivotReports': pivotReports!, |
| }; |
| } |
| |
| /// The batch request containing multiple report requests. |
| class BatchRunReportsRequest { |
| /// Individual requests. |
| /// |
| /// Each request has a separate report response. Each batch request is allowed |
| /// up to 5 requests. |
| core.List<RunReportRequest>? requests; |
| |
| BatchRunReportsRequest({this.requests}); |
| |
| BatchRunReportsRequest.fromJson(core.Map json_) |
| : this( |
| requests: |
| (json_['requests'] as core.List?) |
| ?.map( |
| (value) => RunReportRequest.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (requests != null) 'requests': requests!, |
| }; |
| } |
| |
| /// The batch response containing multiple reports. |
| class BatchRunReportsResponse { |
| /// 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. |
| core.String? kind; |
| |
| /// Individual responses. |
| /// |
| /// Each response has a separate report request. |
| core.List<RunReportResponse>? reports; |
| |
| BatchRunReportsResponse({this.kind, this.reports}); |
| |
| BatchRunReportsResponse.fromJson(core.Map json_) |
| : this( |
| kind: json_['kind'] as core.String?, |
| reports: |
| (json_['reports'] as core.List?) |
| ?.map( |
| (value) => RunReportResponse.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (kind != null) 'kind': kind!, |
| if (reports != null) 'reports': reports!, |
| }; |
| } |
| |
| /// To express that the result needs to be between two numbers (inclusive). |
| class BetweenFilter { |
| /// Begins with this number. |
| NumericValue? fromValue; |
| |
| /// Ends with this number. |
| NumericValue? toValue; |
| |
| BetweenFilter({this.fromValue, this.toValue}); |
| |
| BetweenFilter.fromJson(core.Map json_) |
| : this( |
| fromValue: |
| json_.containsKey('fromValue') |
| ? NumericValue.fromJson( |
| json_['fromValue'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| toValue: |
| json_.containsKey('toValue') |
| ? NumericValue.fromJson( |
| json_['toValue'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (fromValue != null) 'fromValue': fromValue!, |
| if (toValue != null) 'toValue': toValue!, |
| }; |
| } |
| |
| /// Used to convert a dimension value to a single case. |
| class CaseExpression { |
| /// Name of a dimension. |
| /// |
| /// The name must refer back to a name in dimensions field of the request. |
| core.String? dimensionName; |
| |
| CaseExpression({this.dimensionName}); |
| |
| CaseExpression.fromJson(core.Map json_) |
| : this(dimensionName: json_['dimensionName'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionName != null) 'dimensionName': dimensionName!, |
| }; |
| } |
| |
| /// 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. |
| class CheckCompatibilityRequest { |
| /// Filters the dimensions and metrics in the response to just this |
| /// compatibility. |
| /// |
| /// Commonly used as `”compatibilityFilter”: “COMPATIBLE”` to only return |
| /// compatible dimensions & metrics. |
| /// Possible string values are: |
| /// - "COMPATIBILITY_UNSPECIFIED" : Unspecified compatibility. |
| /// - "COMPATIBLE" : The dimension or metric is compatible. This dimension or |
| /// metric can be successfully added to a report. |
| /// - "INCOMPATIBLE" : The dimension or metric is incompatible. This dimension |
| /// or metric cannot be successfully added to a report. |
| core.String? compatibilityFilter; |
| |
| /// The filter clause of dimensions. |
| /// |
| /// `dimensionFilter` should be the same value as in your `runReport` request. |
| FilterExpression? dimensionFilter; |
| |
| /// The dimensions in this report. |
| /// |
| /// `dimensions` should be the same value as in your `runReport` request. |
| core.List<Dimension>? dimensions; |
| |
| /// The filter clause of metrics. |
| /// |
| /// `metricFilter` should be the same value as in your `runReport` request |
| FilterExpression? metricFilter; |
| |
| /// The metrics in this report. |
| /// |
| /// `metrics` should be the same value as in your `runReport` request. |
| core.List<Metric>? metrics; |
| |
| CheckCompatibilityRequest({ |
| this.compatibilityFilter, |
| this.dimensionFilter, |
| this.dimensions, |
| this.metricFilter, |
| this.metrics, |
| }); |
| |
| CheckCompatibilityRequest.fromJson(core.Map json_) |
| : this( |
| compatibilityFilter: json_['compatibilityFilter'] as core.String?, |
| dimensionFilter: |
| json_.containsKey('dimensionFilter') |
| ? FilterExpression.fromJson( |
| json_['dimensionFilter'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dimensions: |
| (json_['dimensions'] as core.List?) |
| ?.map( |
| (value) => Dimension.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| metricFilter: |
| json_.containsKey('metricFilter') |
| ? FilterExpression.fromJson( |
| json_['metricFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metrics: |
| (json_['metrics'] as core.List?) |
| ?.map( |
| (value) => Metric.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (compatibilityFilter != null) |
| 'compatibilityFilter': compatibilityFilter!, |
| if (dimensionFilter != null) 'dimensionFilter': dimensionFilter!, |
| if (dimensions != null) 'dimensions': dimensions!, |
| if (metricFilter != null) 'metricFilter': metricFilter!, |
| if (metrics != null) 'metrics': metrics!, |
| }; |
| } |
| |
| /// The compatibility response with the compatibility of each dimension & |
| /// metric. |
| class CheckCompatibilityResponse { |
| /// The compatibility of each dimension. |
| core.List<DimensionCompatibility>? dimensionCompatibilities; |
| |
| /// The compatibility of each metric. |
| core.List<MetricCompatibility>? metricCompatibilities; |
| |
| CheckCompatibilityResponse({ |
| this.dimensionCompatibilities, |
| this.metricCompatibilities, |
| }); |
| |
| CheckCompatibilityResponse.fromJson(core.Map json_) |
| : this( |
| dimensionCompatibilities: |
| (json_['dimensionCompatibilities'] as core.List?) |
| ?.map( |
| (value) => DimensionCompatibility.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| metricCompatibilities: |
| (json_['metricCompatibilities'] as core.List?) |
| ?.map( |
| (value) => MetricCompatibility.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionCompatibilities != null) |
| 'dimensionCompatibilities': dimensionCompatibilities!, |
| if (metricCompatibilities != null) |
| 'metricCompatibilities': metricCompatibilities!, |
| }; |
| } |
| |
| /// Defines a cohort selection criteria. |
| /// |
| /// A cohort is a group of users who share a common characteristic. For example, |
| /// users with the same `firstSessionDate` belong to the same cohort. |
| class Cohort { |
| /// The cohort selects users whose first touch date is between start date and |
| /// end date defined in the `dateRange`. |
| /// |
| /// This `dateRange` does not specify the full date range of event data that |
| /// is present in a cohort report. In a cohort report, this `dateRange` is |
| /// extended by the granularity and offset present in the `cohortsRange`; |
| /// event data for the extended reporting date range is present in a cohort |
| /// report. In a cohort request, this `dateRange` is required and the |
| /// `dateRanges` in the `RunReportRequest` or `RunPivotReportRequest` must be |
| /// unspecified. This `dateRange` should generally be aligned with the |
| /// cohort's granularity. If `CohortsRange` uses daily granularity, this |
| /// `dateRange` can be a single day. If `CohortsRange` uses weekly |
| /// granularity, this `dateRange` can be aligned to a week boundary, starting |
| /// at Sunday and ending Saturday. If `CohortsRange` uses monthly granularity, |
| /// this `dateRange` can be aligned to a month, starting at the first and |
| /// ending on the last day of the month. |
| DateRange? dateRange; |
| |
| /// Dimension used by the cohort. |
| /// |
| /// Required and only supports `firstSessionDate`. |
| core.String? dimension; |
| |
| /// Assigns a name to this cohort. |
| /// |
| /// The dimension `cohort` is valued to this name in a report response. If |
| /// set, cannot begin with `cohort_` or `RESERVED_`. If not set, cohorts are |
| /// named by their zero based index `cohort_0`, `cohort_1`, etc. |
| core.String? name; |
| |
| Cohort({this.dateRange, this.dimension, this.name}); |
| |
| Cohort.fromJson(core.Map json_) |
| : this( |
| dateRange: |
| json_.containsKey('dateRange') |
| ? DateRange.fromJson( |
| json_['dateRange'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dimension: json_['dimension'] as core.String?, |
| name: json_['name'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dateRange != null) 'dateRange': dateRange!, |
| if (dimension != null) 'dimension': dimension!, |
| if (name != null) 'name': name!, |
| }; |
| } |
| |
| /// Optional settings of a cohort report. |
| class CohortReportSettings { |
| /// If true, accumulates the result from first touch day to the end day. |
| /// |
| /// Not supported in `RunReportRequest`. |
| core.bool? accumulate; |
| |
| CohortReportSettings({this.accumulate}); |
| |
| CohortReportSettings.fromJson(core.Map json_) |
| : this(accumulate: json_['accumulate'] as core.bool?); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (accumulate != null) 'accumulate': accumulate!, |
| }; |
| } |
| |
| /// The specification of cohorts for a cohort report. |
| /// |
| /// Cohort reports create a time series of user retention for the cohort. For |
| /// example, you could select the cohort of users that were acquired in the |
| /// first week of September and follow that cohort for the next six weeks. |
| /// Selecting the users acquired in the first week of September cohort is |
| /// specified in the `cohort` object. Following that cohort for the next six |
| /// weeks is specified in the `cohortsRange` object. For examples, see |
| /// [Cohort Report Examples](https://developers.google.com/analytics/devguides/reporting/data/v1/advanced#cohort_report_examples). |
| /// The report response could show a weekly time series where say your app has |
| /// retained 60% of this cohort after three weeks and 25% of this cohort after |
| /// six weeks. These two percentages can be calculated by the metric |
| /// `cohortActiveUsers/cohortTotalUsers` and will be separate rows in the |
| /// report. |
| class CohortSpec { |
| /// Optional settings for a cohort report. |
| CohortReportSettings? cohortReportSettings; |
| |
| /// Defines the selection criteria to group users into cohorts. |
| /// |
| /// Most cohort reports define only a single cohort. If multiple cohorts are |
| /// specified, each cohort can be recognized in the report by their name. |
| core.List<Cohort>? cohorts; |
| |
| /// Cohort reports follow cohorts over an extended reporting date range. |
| /// |
| /// This range specifies an offset duration to follow the cohorts over. |
| CohortsRange? cohortsRange; |
| |
| CohortSpec({this.cohortReportSettings, this.cohorts, this.cohortsRange}); |
| |
| CohortSpec.fromJson(core.Map json_) |
| : this( |
| cohortReportSettings: |
| json_.containsKey('cohortReportSettings') |
| ? CohortReportSettings.fromJson( |
| json_['cohortReportSettings'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| cohorts: |
| (json_['cohorts'] as core.List?) |
| ?.map( |
| (value) => Cohort.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| cohortsRange: |
| json_.containsKey('cohortsRange') |
| ? CohortsRange.fromJson( |
| json_['cohortsRange'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (cohortReportSettings != null) |
| 'cohortReportSettings': cohortReportSettings!, |
| if (cohorts != null) 'cohorts': cohorts!, |
| if (cohortsRange != null) 'cohortsRange': cohortsRange!, |
| }; |
| } |
| |
| /// Configures the extended reporting date range for a cohort report. |
| /// |
| /// Specifies an offset duration to follow the cohorts over. |
| class CohortsRange { |
| /// `endOffset` specifies the end date of the extended reporting date range |
| /// for a cohort report. |
| /// |
| /// `endOffset` can be any positive integer but is commonly set to 5 to 10 so |
| /// that reports contain data on the cohort for the next several granularity |
| /// time periods. If `granularity` is `DAILY`, the `endDate` of the extended |
| /// reporting date range is `endDate` of the cohort plus `endOffset` days. If |
| /// `granularity` is `WEEKLY`, the `endDate` of the extended reporting date |
| /// range is `endDate` of the cohort plus `endOffset * 7` days. If |
| /// `granularity` is `MONTHLY`, the `endDate` of the extended reporting date |
| /// range is `endDate` of the cohort plus `endOffset * 30` days. |
| /// |
| /// Required. |
| core.int? endOffset; |
| |
| /// The granularity used to interpret the `startOffset` and `endOffset` for |
| /// the extended reporting date range for a cohort report. |
| /// |
| /// Required. |
| /// Possible string values are: |
| /// - "GRANULARITY_UNSPECIFIED" : Should never be specified. |
| /// - "DAILY" : Daily granularity. Commonly used if the cohort's `dateRange` |
| /// is a single day and the request contains `cohortNthDay`. |
| /// - "WEEKLY" : Weekly granularity. Commonly used if the cohort's `dateRange` |
| /// is a week in duration (starting on Sunday and ending on Saturday) and the |
| /// request contains `cohortNthWeek`. |
| /// - "MONTHLY" : Monthly granularity. Commonly used if the cohort's |
| /// `dateRange` is a month in duration and the request contains |
| /// `cohortNthMonth`. |
| core.String? granularity; |
| |
| /// `startOffset` specifies the start date of the extended reporting date |
| /// range for a cohort report. |
| /// |
| /// `startOffset` is commonly set to 0 so that reports contain data from the |
| /// acquisition of the cohort forward. If `granularity` is `DAILY`, the |
| /// `startDate` of the extended reporting date range is `startDate` of the |
| /// cohort plus `startOffset` days. If `granularity` is `WEEKLY`, the |
| /// `startDate` of the extended reporting date range is `startDate` of the |
| /// cohort plus `startOffset * 7` days. If `granularity` is `MONTHLY`, the |
| /// `startDate` of the extended reporting date range is `startDate` of the |
| /// cohort plus `startOffset * 30` days. |
| core.int? startOffset; |
| |
| CohortsRange({this.endOffset, this.granularity, this.startOffset}); |
| |
| CohortsRange.fromJson(core.Map json_) |
| : this( |
| endOffset: json_['endOffset'] as core.int?, |
| granularity: json_['granularity'] as core.String?, |
| startOffset: json_['startOffset'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (endOffset != null) 'endOffset': endOffset!, |
| if (granularity != null) 'granularity': granularity!, |
| if (startOffset != null) 'startOffset': startOffset!, |
| }; |
| } |
| |
| /// Defines an individual comparison. |
| /// |
| /// Most requests will include multiple comparisons so that the report compares |
| /// between the comparisons. |
| class Comparison { |
| /// A saved comparison identified by the comparison's resource name. |
| /// |
| /// For example, 'comparisons/1234'. |
| core.String? comparison; |
| |
| /// A basic comparison. |
| FilterExpression? dimensionFilter; |
| |
| /// Each comparison produces separate rows in the response. |
| /// |
| /// In the response, this comparison is identified by this name. If name is |
| /// unspecified, we will use the saved comparisons display name. |
| core.String? name; |
| |
| Comparison({this.comparison, this.dimensionFilter, this.name}); |
| |
| Comparison.fromJson(core.Map json_) |
| : this( |
| comparison: json_['comparison'] as core.String?, |
| dimensionFilter: |
| json_.containsKey('dimensionFilter') |
| ? FilterExpression.fromJson( |
| json_['dimensionFilter'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| name: json_['name'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (comparison != null) 'comparison': comparison!, |
| if (dimensionFilter != null) 'dimensionFilter': dimensionFilter!, |
| if (name != null) 'name': name!, |
| }; |
| } |
| |
| /// The metadata for a single comparison. |
| class ComparisonMetadata { |
| /// This comparison's resource name. |
| /// |
| /// Useable in \[Comparison\](#Comparison)'s `comparison` field. For example, |
| /// 'comparisons/1234'. |
| core.String? apiName; |
| |
| /// This comparison's description. |
| core.String? description; |
| |
| /// This comparison's name within the Google Analytics user interface. |
| core.String? uiName; |
| |
| ComparisonMetadata({this.apiName, this.description, this.uiName}); |
| |
| ComparisonMetadata.fromJson(core.Map json_) |
| : this( |
| apiName: json_['apiName'] as core.String?, |
| description: json_['description'] as core.String?, |
| uiName: json_['uiName'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (apiName != null) 'apiName': apiName!, |
| if (description != null) 'description': description!, |
| if (uiName != null) 'uiName': uiName!, |
| }; |
| } |
| |
| /// Used to combine dimension values to a single dimension. |
| class ConcatenateExpression { |
| /// The delimiter placed between dimension names. |
| /// |
| /// Delimiters are often single characters such as "|" or "," but can be |
| /// longer strings. If a dimension value contains the delimiter, both will be |
| /// present in response with no distinction. For example if dimension 1 value |
| /// = "US,FR", dimension 2 value = "JP", and delimiter = ",", then the |
| /// response will contain "US,FR,JP". |
| core.String? delimiter; |
| |
| /// Names of dimensions. |
| /// |
| /// The names must refer back to names in the dimensions field of the request. |
| core.List<core.String>? dimensionNames; |
| |
| ConcatenateExpression({this.delimiter, this.dimensionNames}); |
| |
| ConcatenateExpression.fromJson(core.Map json_) |
| : this( |
| delimiter: json_['delimiter'] as core.String?, |
| dimensionNames: |
| (json_['dimensionNames'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (delimiter != null) 'delimiter': delimiter!, |
| if (dimensionNames != null) 'dimensionNames': dimensionNames!, |
| }; |
| } |
| |
| /// A contiguous set of days: `startDate`, `startDate + 1`, ..., `endDate`. |
| /// |
| /// Requests are allowed up to 4 date ranges. |
| class DateRange { |
| /// The inclusive end date for the query in the format `YYYY-MM-DD`. |
| /// |
| /// Cannot be before `start_date`. The format `NdaysAgo`, `yesterday`, or |
| /// `today` is also accepted, and in that case, the date is inferred based on |
| /// the property's reporting time zone. |
| core.String? endDate; |
| |
| /// Assigns a name to this date range. |
| /// |
| /// The dimension `dateRange` is valued to this name in a report response. If |
| /// set, cannot begin with `date_range_` or `RESERVED_`. If not set, date |
| /// ranges are named by their zero based index in the request: `date_range_0`, |
| /// `date_range_1`, etc. |
| core.String? name; |
| |
| /// The inclusive start date for the query in the format `YYYY-MM-DD`. |
| /// |
| /// Cannot be after `end_date`. The format `NdaysAgo`, `yesterday`, or `today` |
| /// is also accepted, and in that case, the date is inferred based on the |
| /// property's reporting time zone. |
| core.String? startDate; |
| |
| DateRange({this.endDate, this.name, this.startDate}); |
| |
| DateRange.fromJson(core.Map json_) |
| : this( |
| endDate: json_['endDate'] as core.String?, |
| name: json_['name'] as core.String?, |
| startDate: json_['startDate'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (endDate != null) 'endDate': endDate!, |
| if (name != null) 'name': name!, |
| if (startDate != null) 'startDate': startDate!, |
| }; |
| } |
| |
| /// Dimensions are attributes of your data. |
| /// |
| /// For example, the dimension city indicates the city from which an event |
| /// originates. Dimension values in report responses are strings; for example, |
| /// the city could be "Paris" or "New York". Requests are allowed up to 9 |
| /// dimensions. |
| class Dimension { |
| /// One dimension can be the result of an expression of multiple dimensions. |
| /// |
| /// For example, dimension "country, city": concatenate(country, ", ", city). |
| DimensionExpression? dimensionExpression; |
| |
| /// The name of the dimension. |
| /// |
| /// See the |
| /// [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions) |
| /// for the list of dimension names supported by core reporting methods such |
| /// as `runReport` and `batchRunReports`. See |
| /// [Realtime Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-api-schema#dimensions) |
| /// for the list of dimension names supported by the `runRealtimeReport` |
| /// method. See |
| /// [Funnel Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/exploration-api-schema#dimensions) |
| /// for the list of dimension names supported by the `runFunnelReport` method. |
| /// If `dimensionExpression` is specified, `name` can be any string that you |
| /// would like within the allowed character set. For example if a |
| /// `dimensionExpression` concatenates `country` and `city`, you could call |
| /// that dimension `countryAndCity`. Dimension names that you choose must |
| /// match the regular expression `^[a-zA-Z0-9_]$`. Dimensions are referenced |
| /// by `name` in `dimensionFilter`, `orderBys`, `dimensionExpression`, and |
| /// `pivots`. |
| core.String? name; |
| |
| Dimension({this.dimensionExpression, this.name}); |
| |
| Dimension.fromJson(core.Map json_) |
| : this( |
| dimensionExpression: |
| json_.containsKey('dimensionExpression') |
| ? DimensionExpression.fromJson( |
| json_['dimensionExpression'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| name: json_['name'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionExpression != null) |
| 'dimensionExpression': dimensionExpression!, |
| if (name != null) 'name': name!, |
| }; |
| } |
| |
| /// The compatibility for a single dimension. |
| class DimensionCompatibility { |
| /// The compatibility of this dimension. |
| /// |
| /// If the compatibility is COMPATIBLE, this dimension can be successfully |
| /// added to the report. |
| /// Possible string values are: |
| /// - "COMPATIBILITY_UNSPECIFIED" : Unspecified compatibility. |
| /// - "COMPATIBLE" : The dimension or metric is compatible. This dimension or |
| /// metric can be successfully added to a report. |
| /// - "INCOMPATIBLE" : The dimension or metric is incompatible. This dimension |
| /// or metric cannot be successfully added to a report. |
| core.String? compatibility; |
| |
| /// The dimension metadata contains the API name for this compatibility |
| /// information. |
| /// |
| /// The dimension metadata also contains other helpful information like the UI |
| /// name and description. |
| DimensionMetadata? dimensionMetadata; |
| |
| DimensionCompatibility({this.compatibility, this.dimensionMetadata}); |
| |
| DimensionCompatibility.fromJson(core.Map json_) |
| : this( |
| compatibility: json_['compatibility'] as core.String?, |
| dimensionMetadata: |
| json_.containsKey('dimensionMetadata') |
| ? DimensionMetadata.fromJson( |
| json_['dimensionMetadata'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (compatibility != null) 'compatibility': compatibility!, |
| if (dimensionMetadata != null) 'dimensionMetadata': dimensionMetadata!, |
| }; |
| } |
| |
| /// Used to express a dimension which is the result of a formula of multiple |
| /// dimensions. |
| /// |
| /// Example usages: 1) lower_case(dimension) 2) concatenate(dimension1, symbol, |
| /// dimension2). |
| class DimensionExpression { |
| /// Used to combine dimension values to a single dimension. |
| /// |
| /// For example, dimension "country, city": concatenate(country, ", ", city). |
| ConcatenateExpression? concatenate; |
| |
| /// Used to convert a dimension value to lower case. |
| CaseExpression? lowerCase; |
| |
| /// Used to convert a dimension value to upper case. |
| CaseExpression? upperCase; |
| |
| DimensionExpression({this.concatenate, this.lowerCase, this.upperCase}); |
| |
| DimensionExpression.fromJson(core.Map json_) |
| : this( |
| concatenate: |
| json_.containsKey('concatenate') |
| ? ConcatenateExpression.fromJson( |
| json_['concatenate'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| lowerCase: |
| json_.containsKey('lowerCase') |
| ? CaseExpression.fromJson( |
| json_['lowerCase'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| upperCase: |
| json_.containsKey('upperCase') |
| ? CaseExpression.fromJson( |
| json_['upperCase'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (concatenate != null) 'concatenate': concatenate!, |
| if (lowerCase != null) 'lowerCase': lowerCase!, |
| if (upperCase != null) 'upperCase': upperCase!, |
| }; |
| } |
| |
| /// Describes a dimension column in the report. |
| /// |
| /// Dimensions requested in a report produce column entries within rows and |
| /// DimensionHeaders. However, dimensions used exclusively within filters or |
| /// expressions do not produce columns in a report; correspondingly, those |
| /// dimensions do not produce headers. |
| class DimensionHeader { |
| /// The dimension's name. |
| core.String? name; |
| |
| DimensionHeader({this.name}); |
| |
| DimensionHeader.fromJson(core.Map json_) |
| : this(name: json_['name'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (name != null) 'name': name!, |
| }; |
| } |
| |
| /// Explains a dimension. |
| class DimensionMetadata { |
| /// This dimension's name. |
| /// |
| /// Useable in \[Dimension\](#Dimension)'s `name`. For example, `eventName`. |
| core.String? apiName; |
| |
| /// The display name of the category that this dimension belongs to. |
| /// |
| /// Similar dimensions and metrics are categorized together. |
| core.String? category; |
| |
| /// True if the dimension is custom to this property. |
| /// |
| /// This includes user, event, & item scoped custom dimensions; to learn more |
| /// about custom dimensions, see |
| /// https://support.google.com/analytics/answer/14240153. This also include |
| /// custom channel groups; to learn more about custom channel groups, see |
| /// https://support.google.com/analytics/answer/13051316. |
| core.bool? customDefinition; |
| |
| /// Still usable but deprecated names for this dimension. |
| /// |
| /// If populated, this dimension is available by either `apiName` or one of |
| /// `deprecatedApiNames` for a period of time. After the deprecation period, |
| /// the dimension will be available only by `apiName`. |
| core.List<core.String>? deprecatedApiNames; |
| |
| /// Description of how this dimension is used and calculated. |
| core.String? description; |
| |
| /// This dimension's name within the Google Analytics user interface. |
| /// |
| /// For example, `Event name`. |
| core.String? uiName; |
| |
| DimensionMetadata({ |
| this.apiName, |
| this.category, |
| this.customDefinition, |
| this.deprecatedApiNames, |
| this.description, |
| this.uiName, |
| }); |
| |
| DimensionMetadata.fromJson(core.Map json_) |
| : this( |
| apiName: json_['apiName'] as core.String?, |
| category: json_['category'] as core.String?, |
| customDefinition: json_['customDefinition'] as core.bool?, |
| deprecatedApiNames: |
| (json_['deprecatedApiNames'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| description: json_['description'] as core.String?, |
| uiName: json_['uiName'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (apiName != null) 'apiName': apiName!, |
| if (category != null) 'category': category!, |
| if (customDefinition != null) 'customDefinition': customDefinition!, |
| if (deprecatedApiNames != null) 'deprecatedApiNames': deprecatedApiNames!, |
| if (description != null) 'description': description!, |
| if (uiName != null) 'uiName': uiName!, |
| }; |
| } |
| |
| /// Sorts by dimension values. |
| typedef DimensionOrderBy = $DimensionOrderBy; |
| |
| /// The value of a dimension. |
| typedef DimensionValue = $DimensionValue; |
| |
| /// Filter for empty values. |
| typedef EmptyFilter = $Empty; |
| |
| /// An expression to filter dimension or metric values. |
| class Filter { |
| /// A filter for two values. |
| BetweenFilter? betweenFilter; |
| |
| /// A filter for empty values such as "(not set)" and "" values. |
| EmptyFilter? emptyFilter; |
| |
| /// The dimension name or metric name. |
| /// |
| /// In most methods, dimensions & metrics can be used for the first time in |
| /// this field. However in a RunPivotReportRequest, this field must be |
| /// additionally specified by name in the RunPivotReportRequest's dimensions |
| /// or metrics. |
| core.String? fieldName; |
| |
| /// A filter for in list values. |
| InListFilter? inListFilter; |
| |
| /// A filter for numeric or date values. |
| NumericFilter? numericFilter; |
| |
| /// Strings related filter. |
| StringFilter? stringFilter; |
| |
| Filter({ |
| this.betweenFilter, |
| this.emptyFilter, |
| this.fieldName, |
| this.inListFilter, |
| this.numericFilter, |
| this.stringFilter, |
| }); |
| |
| Filter.fromJson(core.Map json_) |
| : this( |
| betweenFilter: |
| json_.containsKey('betweenFilter') |
| ? BetweenFilter.fromJson( |
| json_['betweenFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| emptyFilter: |
| json_.containsKey('emptyFilter') |
| ? EmptyFilter.fromJson( |
| json_['emptyFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| fieldName: json_['fieldName'] as core.String?, |
| inListFilter: |
| json_.containsKey('inListFilter') |
| ? InListFilter.fromJson( |
| json_['inListFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| numericFilter: |
| json_.containsKey('numericFilter') |
| ? NumericFilter.fromJson( |
| json_['numericFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| stringFilter: |
| json_.containsKey('stringFilter') |
| ? StringFilter.fromJson( |
| json_['stringFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (betweenFilter != null) 'betweenFilter': betweenFilter!, |
| if (emptyFilter != null) 'emptyFilter': emptyFilter!, |
| if (fieldName != null) 'fieldName': fieldName!, |
| if (inListFilter != null) 'inListFilter': inListFilter!, |
| if (numericFilter != null) 'numericFilter': numericFilter!, |
| if (stringFilter != null) 'stringFilter': stringFilter!, |
| }; |
| } |
| |
| /// To express dimension or metric filters. |
| /// |
| /// The fields in the same FilterExpression need to be either all dimensions or |
| /// all metrics. |
| class FilterExpression { |
| /// The FilterExpressions in and_group have an AND relationship. |
| FilterExpressionList? andGroup; |
| |
| /// A primitive filter. |
| /// |
| /// In the same FilterExpression, all of the filter's field names need to be |
| /// either all dimensions or all metrics. |
| Filter? filter; |
| |
| /// The FilterExpression is NOT of not_expression. |
| FilterExpression? notExpression; |
| |
| /// The FilterExpressions in or_group have an OR relationship. |
| FilterExpressionList? orGroup; |
| |
| FilterExpression({ |
| this.andGroup, |
| this.filter, |
| this.notExpression, |
| this.orGroup, |
| }); |
| |
| FilterExpression.fromJson(core.Map json_) |
| : this( |
| andGroup: |
| json_.containsKey('andGroup') |
| ? FilterExpressionList.fromJson( |
| json_['andGroup'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| filter: |
| json_.containsKey('filter') |
| ? Filter.fromJson( |
| json_['filter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| notExpression: |
| json_.containsKey('notExpression') |
| ? FilterExpression.fromJson( |
| json_['notExpression'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| orGroup: |
| json_.containsKey('orGroup') |
| ? FilterExpressionList.fromJson( |
| json_['orGroup'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (andGroup != null) 'andGroup': andGroup!, |
| if (filter != null) 'filter': filter!, |
| if (notExpression != null) 'notExpression': notExpression!, |
| if (orGroup != null) 'orGroup': orGroup!, |
| }; |
| } |
| |
| /// A list of filter expressions. |
| class FilterExpressionList { |
| /// A list of filter expressions. |
| core.List<FilterExpression>? expressions; |
| |
| FilterExpressionList({this.expressions}); |
| |
| FilterExpressionList.fromJson(core.Map json_) |
| : this( |
| expressions: |
| (json_['expressions'] as core.List?) |
| ?.map( |
| (value) => FilterExpression.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (expressions != null) 'expressions': expressions!, |
| }; |
| } |
| |
| /// The result needs to be in a list of string values. |
| typedef InListFilter = $InListFilter; |
| |
| /// A list of all audience exports for a property. |
| class ListAudienceExportsResponse { |
| /// Each audience export for a property. |
| core.List<AudienceExport>? audienceExports; |
| |
| /// A token, which can be sent as `page_token` to retrieve the next page. |
| /// |
| /// If this field is omitted, there are no subsequent pages. |
| core.String? nextPageToken; |
| |
| ListAudienceExportsResponse({this.audienceExports, this.nextPageToken}); |
| |
| ListAudienceExportsResponse.fromJson(core.Map json_) |
| : this( |
| audienceExports: |
| (json_['audienceExports'] as core.List?) |
| ?.map( |
| (value) => AudienceExport.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| nextPageToken: json_['nextPageToken'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (audienceExports != null) 'audienceExports': audienceExports!, |
| if (nextPageToken != null) 'nextPageToken': nextPageToken!, |
| }; |
| } |
| |
| /// The dimensions, metrics and comparisons currently accepted in reporting |
| /// methods. |
| class Metadata { |
| /// The comparison descriptions. |
| core.List<ComparisonMetadata>? comparisons; |
| |
| /// The dimension descriptions. |
| core.List<DimensionMetadata>? dimensions; |
| |
| /// The metric descriptions. |
| core.List<MetricMetadata>? metrics; |
| |
| /// Resource name of this metadata. |
| core.String? name; |
| |
| Metadata({this.comparisons, this.dimensions, this.metrics, this.name}); |
| |
| Metadata.fromJson(core.Map json_) |
| : this( |
| comparisons: |
| (json_['comparisons'] as core.List?) |
| ?.map( |
| (value) => ComparisonMetadata.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| dimensions: |
| (json_['dimensions'] as core.List?) |
| ?.map( |
| (value) => DimensionMetadata.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| metrics: |
| (json_['metrics'] as core.List?) |
| ?.map( |
| (value) => MetricMetadata.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| name: json_['name'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (comparisons != null) 'comparisons': comparisons!, |
| if (dimensions != null) 'dimensions': dimensions!, |
| if (metrics != null) 'metrics': metrics!, |
| if (name != null) 'name': name!, |
| }; |
| } |
| |
| /// The quantitative measurements of a report. |
| /// |
| /// For example, the metric `eventCount` is the total number of events. Requests |
| /// are allowed up to 10 metrics. |
| class Metric { |
| /// A mathematical expression for derived metrics. |
| /// |
| /// For example, the metric Event count per user is `eventCount/totalUsers`. |
| core.String? expression; |
| |
| /// Indicates if a metric is invisible in the report response. |
| /// |
| /// If a metric is invisible, the metric will not produce a column in the |
| /// response, but can be used in `metricFilter`, `orderBys`, or a metric |
| /// `expression`. |
| core.bool? invisible; |
| |
| /// The name of the metric. |
| /// |
| /// See the |
| /// [API Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#metrics) |
| /// for the list of metric names supported by core reporting methods such as |
| /// `runReport` and `batchRunReports`. See |
| /// [Realtime Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/realtime-api-schema#metrics) |
| /// for the list of metric names supported by the `runRealtimeReport` method. |
| /// See |
| /// [Funnel Metrics](https://developers.google.com/analytics/devguides/reporting/data/v1/exploration-api-schema#metrics) |
| /// for the list of metric names supported by the `runFunnelReport` method. If |
| /// `expression` is specified, `name` can be any string that you would like |
| /// within the allowed character set. For example if `expression` is |
| /// `screenPageViews/sessions`, you could call that metric's name = |
| /// `viewsPerSession`. Metric names that you choose must match the regular |
| /// expression `^[a-zA-Z0-9_]$`. Metrics are referenced by `name` in |
| /// `metricFilter`, `orderBys`, and metric `expression`. |
| core.String? name; |
| |
| Metric({this.expression, this.invisible, this.name}); |
| |
| Metric.fromJson(core.Map json_) |
| : this( |
| expression: json_['expression'] as core.String?, |
| invisible: json_['invisible'] as core.bool?, |
| name: json_['name'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (expression != null) 'expression': expression!, |
| if (invisible != null) 'invisible': invisible!, |
| if (name != null) 'name': name!, |
| }; |
| } |
| |
| /// The compatibility for a single metric. |
| class MetricCompatibility { |
| /// The compatibility of this metric. |
| /// |
| /// If the compatibility is COMPATIBLE, this metric can be successfully added |
| /// to the report. |
| /// Possible string values are: |
| /// - "COMPATIBILITY_UNSPECIFIED" : Unspecified compatibility. |
| /// - "COMPATIBLE" : The dimension or metric is compatible. This dimension or |
| /// metric can be successfully added to a report. |
| /// - "INCOMPATIBLE" : The dimension or metric is incompatible. This dimension |
| /// or metric cannot be successfully added to a report. |
| core.String? compatibility; |
| |
| /// The metric metadata contains the API name for this compatibility |
| /// information. |
| /// |
| /// The metric metadata also contains other helpful information like the UI |
| /// name and description. |
| MetricMetadata? metricMetadata; |
| |
| MetricCompatibility({this.compatibility, this.metricMetadata}); |
| |
| MetricCompatibility.fromJson(core.Map json_) |
| : this( |
| compatibility: json_['compatibility'] as core.String?, |
| metricMetadata: |
| json_.containsKey('metricMetadata') |
| ? MetricMetadata.fromJson( |
| json_['metricMetadata'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (compatibility != null) 'compatibility': compatibility!, |
| if (metricMetadata != null) 'metricMetadata': metricMetadata!, |
| }; |
| } |
| |
| /// Describes a metric column in the report. |
| /// |
| /// Visible metrics requested in a report produce column entries within rows and |
| /// MetricHeaders. However, metrics used exclusively within filters or |
| /// expressions do not produce columns in a report; correspondingly, those |
| /// metrics do not produce headers. |
| class MetricHeader { |
| /// The metric's name. |
| core.String? name; |
| |
| /// The metric's data type. |
| /// Possible string values are: |
| /// - "METRIC_TYPE_UNSPECIFIED" : Unspecified type. |
| /// - "TYPE_INTEGER" : Integer type. |
| /// - "TYPE_FLOAT" : Floating point type. |
| /// - "TYPE_SECONDS" : A duration of seconds; a special floating point type. |
| /// - "TYPE_MILLISECONDS" : A duration in milliseconds; a special floating |
| /// point type. |
| /// - "TYPE_MINUTES" : A duration in minutes; a special floating point type. |
| /// - "TYPE_HOURS" : A duration in hours; a special floating point type. |
| /// - "TYPE_STANDARD" : A custom metric of standard type; a special floating |
| /// point type. |
| /// - "TYPE_CURRENCY" : An amount of money; a special floating point type. |
| /// - "TYPE_FEET" : A length in feet; a special floating point type. |
| /// - "TYPE_MILES" : A length in miles; a special floating point type. |
| /// - "TYPE_METERS" : A length in meters; a special floating point type. |
| /// - "TYPE_KILOMETERS" : A length in kilometers; a special floating point |
| /// type. |
| core.String? type; |
| |
| MetricHeader({this.name, this.type}); |
| |
| MetricHeader.fromJson(core.Map json_) |
| : this( |
| name: json_['name'] as core.String?, |
| type: json_['type'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (name != null) 'name': name!, |
| if (type != null) 'type': type!, |
| }; |
| } |
| |
| /// Explains a metric. |
| class MetricMetadata { |
| /// A metric name. |
| /// |
| /// Useable in \[Metric\](#Metric)'s `name`. For example, `eventCount`. |
| core.String? apiName; |
| |
| /// If reasons are specified, your access is blocked to this metric for this |
| /// property. |
| /// |
| /// API requests from you to this property for this metric will succeed; |
| /// however, the report will contain only zeros for this metric. API requests |
| /// with metric filters on blocked metrics will fail. If reasons are empty, |
| /// you have access to this metric. To learn more, see \[Access and |
| /// data-restriction |
| /// management\](https://support.google.com/analytics/answer/10851388). |
| core.List<core.String>? blockedReasons; |
| |
| /// The display name of the category that this metrics belongs to. |
| /// |
| /// Similar dimensions and metrics are categorized together. |
| core.String? category; |
| |
| /// True if the metric is a custom metric for this property. |
| core.bool? customDefinition; |
| |
| /// Still usable but deprecated names for this metric. |
| /// |
| /// If populated, this metric is available by either `apiName` or one of |
| /// `deprecatedApiNames` for a period of time. After the deprecation period, |
| /// the metric will be available only by `apiName`. |
| core.List<core.String>? deprecatedApiNames; |
| |
| /// Description of how this metric is used and calculated. |
| core.String? description; |
| |
| /// The mathematical expression for this derived metric. |
| /// |
| /// Can be used in \[Metric\](#Metric)'s `expression` field for equivalent |
| /// reports. Most metrics are not expressions, and for non-expressions, this |
| /// field is empty. |
| core.String? expression; |
| |
| /// The type of this metric. |
| /// Possible string values are: |
| /// - "METRIC_TYPE_UNSPECIFIED" : Unspecified type. |
| /// - "TYPE_INTEGER" : Integer type. |
| /// - "TYPE_FLOAT" : Floating point type. |
| /// - "TYPE_SECONDS" : A duration of seconds; a special floating point type. |
| /// - "TYPE_MILLISECONDS" : A duration in milliseconds; a special floating |
| /// point type. |
| /// - "TYPE_MINUTES" : A duration in minutes; a special floating point type. |
| /// - "TYPE_HOURS" : A duration in hours; a special floating point type. |
| /// - "TYPE_STANDARD" : A custom metric of standard type; a special floating |
| /// point type. |
| /// - "TYPE_CURRENCY" : An amount of money; a special floating point type. |
| /// - "TYPE_FEET" : A length in feet; a special floating point type. |
| /// - "TYPE_MILES" : A length in miles; a special floating point type. |
| /// - "TYPE_METERS" : A length in meters; a special floating point type. |
| /// - "TYPE_KILOMETERS" : A length in kilometers; a special floating point |
| /// type. |
| core.String? type; |
| |
| /// This metric's name within the Google Analytics user interface. |
| /// |
| /// For example, `Event count`. |
| core.String? uiName; |
| |
| MetricMetadata({ |
| this.apiName, |
| this.blockedReasons, |
| this.category, |
| this.customDefinition, |
| this.deprecatedApiNames, |
| this.description, |
| this.expression, |
| this.type, |
| this.uiName, |
| }); |
| |
| MetricMetadata.fromJson(core.Map json_) |
| : this( |
| apiName: json_['apiName'] as core.String?, |
| blockedReasons: |
| (json_['blockedReasons'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| category: json_['category'] as core.String?, |
| customDefinition: json_['customDefinition'] as core.bool?, |
| deprecatedApiNames: |
| (json_['deprecatedApiNames'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| description: json_['description'] as core.String?, |
| expression: json_['expression'] as core.String?, |
| type: json_['type'] as core.String?, |
| uiName: json_['uiName'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (apiName != null) 'apiName': apiName!, |
| if (blockedReasons != null) 'blockedReasons': blockedReasons!, |
| if (category != null) 'category': category!, |
| if (customDefinition != null) 'customDefinition': customDefinition!, |
| if (deprecatedApiNames != null) 'deprecatedApiNames': deprecatedApiNames!, |
| if (description != null) 'description': description!, |
| if (expression != null) 'expression': expression!, |
| if (type != null) 'type': type!, |
| if (uiName != null) 'uiName': uiName!, |
| }; |
| } |
| |
| /// Sorts by metric values. |
| typedef MetricOrderBy = $MetricOrderBy; |
| |
| /// The value of a metric. |
| class MetricValue { |
| /// Measurement value. |
| /// |
| /// See MetricHeader for type. |
| core.String? value; |
| |
| MetricValue({this.value}); |
| |
| MetricValue.fromJson(core.Map json_) |
| : this(value: json_['value'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (value != null) 'value': value!, |
| }; |
| } |
| |
| /// A contiguous set of minutes: `startMinutesAgo`, `startMinutesAgo + 1`, ..., |
| /// `endMinutesAgo`. |
| /// |
| /// Requests are allowed up to 2 minute ranges. |
| class MinuteRange { |
| /// The inclusive end minute for the query as a number of minutes before now. |
| /// |
| /// Cannot be before `startMinutesAgo`. For example, `"endMinutesAgo": 15` |
| /// specifies the report should include event data from prior to 15 minutes |
| /// ago. If unspecified, `endMinutesAgo` is defaulted to 0. Standard Analytics |
| /// properties can request any minute in the last 30 minutes of event data |
| /// (`endMinutesAgo <= 29`), and 360 Analytics properties can request any |
| /// minute in the last 60 minutes of event data (`endMinutesAgo <= 59`). |
| core.int? endMinutesAgo; |
| |
| /// Assigns a name to this minute range. |
| /// |
| /// The dimension `dateRange` is valued to this name in a report response. If |
| /// set, cannot begin with `date_range_` or `RESERVED_`. If not set, minute |
| /// ranges are named by their zero based index in the request: `date_range_0`, |
| /// `date_range_1`, etc. |
| core.String? name; |
| |
| /// The inclusive start minute for the query as a number of minutes before |
| /// now. |
| /// |
| /// For example, `"startMinutesAgo": 29` specifies the report should include |
| /// event data from 29 minutes ago and after. Cannot be after `endMinutesAgo`. |
| /// If unspecified, `startMinutesAgo` is defaulted to 29. Standard Analytics |
| /// properties can request up to the last 30 minutes of event data |
| /// (`startMinutesAgo <= 29`), and 360 Analytics properties can request up to |
| /// the last 60 minutes of event data (`startMinutesAgo <= 59`). |
| core.int? startMinutesAgo; |
| |
| MinuteRange({this.endMinutesAgo, this.name, this.startMinutesAgo}); |
| |
| MinuteRange.fromJson(core.Map json_) |
| : this( |
| endMinutesAgo: json_['endMinutesAgo'] as core.int?, |
| name: json_['name'] as core.String?, |
| startMinutesAgo: json_['startMinutesAgo'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (endMinutesAgo != null) 'endMinutesAgo': endMinutesAgo!, |
| if (name != null) 'name': name!, |
| if (startMinutesAgo != null) 'startMinutesAgo': startMinutesAgo!, |
| }; |
| } |
| |
| /// Filters for numeric or date values. |
| class NumericFilter { |
| /// The operation type for this filter. |
| /// Possible string values are: |
| /// - "OPERATION_UNSPECIFIED" : Unspecified. |
| /// - "EQUAL" : Equal |
| /// - "LESS_THAN" : Less than |
| /// - "LESS_THAN_OR_EQUAL" : Less than or equal |
| /// - "GREATER_THAN" : Greater than |
| /// - "GREATER_THAN_OR_EQUAL" : Greater than or equal |
| core.String? operation; |
| |
| /// A numeric value or a date value. |
| NumericValue? value; |
| |
| NumericFilter({this.operation, this.value}); |
| |
| NumericFilter.fromJson(core.Map json_) |
| : this( |
| operation: json_['operation'] as core.String?, |
| value: |
| json_.containsKey('value') |
| ? NumericValue.fromJson( |
| json_['value'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (operation != null) 'operation': operation!, |
| if (value != null) 'value': value!, |
| }; |
| } |
| |
| /// To represent a number. |
| typedef NumericValue = $NumericValue; |
| |
| /// This resource represents a long-running operation that is the result of a |
| /// network API call. |
| class Operation { |
| /// If the value is `false`, it means the operation is still in progress. |
| /// |
| /// If `true`, the operation is completed, and either `error` or `response` is |
| /// available. |
| core.bool? done; |
| |
| /// The error result of the operation in case of failure or cancellation. |
| Status? error; |
| |
| /// Service-specific metadata associated with the operation. |
| /// |
| /// It typically contains progress information and common metadata such as |
| /// create time. Some services might not provide such metadata. Any method |
| /// that returns a long-running operation should document the metadata type, |
| /// if any. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object?>? metadata; |
| |
| /// The server-assigned name, which is only unique within the same service |
| /// that originally returns it. |
| /// |
| /// If you use the default HTTP mapping, the `name` should be a resource name |
| /// ending with `operations/{unique_id}`. |
| core.String? name; |
| |
| /// The normal, successful response of the operation. |
| /// |
| /// If the original method returns no data on success, such as `Delete`, the |
| /// response is `google.protobuf.Empty`. If the original method is standard |
| /// `Get`/`Create`/`Update`, the response should be the resource. For other |
| /// methods, the response should have the type `XxxResponse`, where `Xxx` is |
| /// the original method name. For example, if the original method name is |
| /// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. |
| /// |
| /// The values for Object must be JSON objects. It can consist of `num`, |
| /// `String`, `bool` and `null` as well as `Map` and `List` values. |
| core.Map<core.String, core.Object?>? response; |
| |
| Operation({this.done, this.error, this.metadata, this.name, this.response}); |
| |
| Operation.fromJson(core.Map json_) |
| : this( |
| done: json_['done'] as core.bool?, |
| error: |
| json_.containsKey('error') |
| ? Status.fromJson( |
| json_['error'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metadata: |
| json_.containsKey('metadata') |
| ? json_['metadata'] as core.Map<core.String, core.dynamic> |
| : null, |
| name: json_['name'] as core.String?, |
| response: |
| json_.containsKey('response') |
| ? json_['response'] as core.Map<core.String, core.dynamic> |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (done != null) 'done': done!, |
| if (error != null) 'error': error!, |
| if (metadata != null) 'metadata': metadata!, |
| if (name != null) 'name': name!, |
| if (response != null) 'response': response!, |
| }; |
| } |
| |
| /// Order bys define how rows will be sorted in the response. |
| /// |
| /// For example, ordering rows by descending event count is one ordering, and |
| /// ordering rows by the event name string is a different ordering. |
| class OrderBy { |
| /// If true, sorts by descending order. |
| core.bool? desc; |
| |
| /// Sorts results by a dimension's values. |
| DimensionOrderBy? dimension; |
| |
| /// Sorts results by a metric's values. |
| MetricOrderBy? metric; |
| |
| /// Sorts results by a metric's values within a pivot column group. |
| PivotOrderBy? pivot; |
| |
| OrderBy({this.desc, this.dimension, this.metric, this.pivot}); |
| |
| OrderBy.fromJson(core.Map json_) |
| : this( |
| desc: json_['desc'] as core.bool?, |
| dimension: |
| json_.containsKey('dimension') |
| ? DimensionOrderBy.fromJson( |
| json_['dimension'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metric: |
| json_.containsKey('metric') |
| ? MetricOrderBy.fromJson( |
| json_['metric'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| pivot: |
| json_.containsKey('pivot') |
| ? PivotOrderBy.fromJson( |
| json_['pivot'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (desc != null) 'desc': desc!, |
| if (dimension != null) 'dimension': dimension!, |
| if (metric != null) 'metric': metric!, |
| if (pivot != null) 'pivot': pivot!, |
| }; |
| } |
| |
| /// Describes the visible dimension columns and rows in the report response. |
| class Pivot { |
| /// Dimension names for visible columns in the report response. |
| /// |
| /// Including "dateRange" produces a date range column; for each row in the |
| /// response, dimension values in the date range column will indicate the |
| /// corresponding date range from the request. |
| core.List<core.String>? fieldNames; |
| |
| /// The number of unique combinations of dimension values to return in this |
| /// pivot. |
| /// |
| /// The `limit` parameter is required. A `limit` of 10,000 is common for |
| /// single pivot requests. The product of the `limit` for each `pivot` in a |
| /// `RunPivotReportRequest` must not exceed 250,000. For example, a two pivot |
| /// request with `limit: 1000` in each pivot will fail because the product is |
| /// `1,000,000`. |
| core.String? limit; |
| |
| /// Aggregate the metrics by dimensions in this pivot using the specified |
| /// metric_aggregations. |
| core.List<core.String>? metricAggregations; |
| |
| /// The row count of the start row. |
| /// |
| /// The first row is counted as row 0. |
| core.String? offset; |
| |
| /// Specifies how dimensions are ordered in the pivot. |
| /// |
| /// In the first Pivot, the OrderBys determine Row and PivotDimensionHeader |
| /// ordering; in subsequent Pivots, the OrderBys determine only |
| /// PivotDimensionHeader ordering. Dimensions specified in these OrderBys must |
| /// be a subset of Pivot.field_names. |
| core.List<OrderBy>? orderBys; |
| |
| Pivot({ |
| this.fieldNames, |
| this.limit, |
| this.metricAggregations, |
| this.offset, |
| this.orderBys, |
| }); |
| |
| Pivot.fromJson(core.Map json_) |
| : this( |
| fieldNames: |
| (json_['fieldNames'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| limit: json_['limit'] as core.String?, |
| metricAggregations: |
| (json_['metricAggregations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| offset: json_['offset'] as core.String?, |
| orderBys: |
| (json_['orderBys'] as core.List?) |
| ?.map( |
| (value) => OrderBy.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (fieldNames != null) 'fieldNames': fieldNames!, |
| if (limit != null) 'limit': limit!, |
| if (metricAggregations != null) 'metricAggregations': metricAggregations!, |
| if (offset != null) 'offset': offset!, |
| if (orderBys != null) 'orderBys': orderBys!, |
| }; |
| } |
| |
| /// Summarizes dimension values from a row for this pivot. |
| class PivotDimensionHeader { |
| /// Values of multiple dimensions in a pivot. |
| core.List<DimensionValue>? dimensionValues; |
| |
| PivotDimensionHeader({this.dimensionValues}); |
| |
| PivotDimensionHeader.fromJson(core.Map json_) |
| : this( |
| dimensionValues: |
| (json_['dimensionValues'] as core.List?) |
| ?.map( |
| (value) => DimensionValue.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionValues != null) 'dimensionValues': dimensionValues!, |
| }; |
| } |
| |
| /// Dimensions' values in a single pivot. |
| class PivotHeader { |
| /// The size is the same as the cardinality of the corresponding dimension |
| /// combinations. |
| core.List<PivotDimensionHeader>? pivotDimensionHeaders; |
| |
| /// The cardinality of the pivot. |
| /// |
| /// The total number of rows for this pivot's fields regardless of how the |
| /// parameters `offset` and `limit` are specified in the request. |
| core.int? rowCount; |
| |
| PivotHeader({this.pivotDimensionHeaders, this.rowCount}); |
| |
| PivotHeader.fromJson(core.Map json_) |
| : this( |
| pivotDimensionHeaders: |
| (json_['pivotDimensionHeaders'] as core.List?) |
| ?.map( |
| (value) => PivotDimensionHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| rowCount: json_['rowCount'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (pivotDimensionHeaders != null) |
| 'pivotDimensionHeaders': pivotDimensionHeaders!, |
| if (rowCount != null) 'rowCount': rowCount!, |
| }; |
| } |
| |
| /// Sorts by a pivot column group. |
| class PivotOrderBy { |
| /// In the response to order by, order rows by this column. |
| /// |
| /// Must be a metric name from the request. |
| core.String? metricName; |
| |
| /// Used to select a dimension name and value pivot. |
| /// |
| /// If multiple pivot selections are given, the sort occurs on rows where all |
| /// pivot selection dimension name and value pairs match the row's dimension |
| /// name and value pair. |
| core.List<PivotSelection>? pivotSelections; |
| |
| PivotOrderBy({this.metricName, this.pivotSelections}); |
| |
| PivotOrderBy.fromJson(core.Map json_) |
| : this( |
| metricName: json_['metricName'] as core.String?, |
| pivotSelections: |
| (json_['pivotSelections'] as core.List?) |
| ?.map( |
| (value) => PivotSelection.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (metricName != null) 'metricName': metricName!, |
| if (pivotSelections != null) 'pivotSelections': pivotSelections!, |
| }; |
| } |
| |
| /// A pair of dimension names and values. |
| /// |
| /// Rows with this dimension pivot pair are ordered by the metric's value. For |
| /// example if pivots = {{"browser", "Chrome"}} and metric_name = "Sessions", |
| /// then the rows will be sorted based on Sessions in Chrome. |
| /// ---------|----------|----------------|----------|---------------- | Chrome | |
| /// Chrome | Safari | Safari |
| /// ---------|----------|----------------|----------|---------------- Country | |
| /// Sessions | Pages/Sessions | Sessions | Pages/Sessions |
| /// ---------|----------|----------------|----------|---------------- US | 2 | 2 |
| /// | 3 | 1 ---------|----------|----------------|----------|---------------- |
| /// Canada | 3 | 1 | 4 | 1 |
| /// ---------|----------|----------------|----------|---------------- |
| class PivotSelection { |
| /// Must be a dimension name from the request. |
| core.String? dimensionName; |
| |
| /// Order by only when the named dimension is this value. |
| core.String? dimensionValue; |
| |
| PivotSelection({this.dimensionName, this.dimensionValue}); |
| |
| PivotSelection.fromJson(core.Map json_) |
| : this( |
| dimensionName: json_['dimensionName'] as core.String?, |
| dimensionValue: json_['dimensionValue'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionName != null) 'dimensionName': dimensionName!, |
| if (dimensionValue != null) 'dimensionValue': dimensionValue!, |
| }; |
| } |
| |
| /// Current state of all quotas for this Analytics Property. |
| /// |
| /// If any quota for a property is exhausted, all requests to that property will |
| /// return Resource Exhausted errors. |
| class PropertyQuota { |
| /// Standard Analytics Properties can send up to 10 concurrent requests; |
| /// Analytics 360 Properties can use up to 50 concurrent requests. |
| QuotaStatus? concurrentRequests; |
| |
| /// Analytics Properties can send up to 120 requests with potentially |
| /// thresholded dimensions per hour. |
| /// |
| /// In a batch request, each report request is individually counted for this |
| /// quota if the request contains potentially thresholded dimensions. |
| QuotaStatus? potentiallyThresholdedRequestsPerHour; |
| |
| /// Standard Analytics Properties and cloud project pairs can have up to 10 |
| /// server errors per hour; Analytics 360 Properties and cloud project pairs |
| /// can have up to 50 server errors per hour. |
| QuotaStatus? serverErrorsPerProjectPerHour; |
| |
| /// Standard Analytics Properties can use up to 200,000 tokens per day; |
| /// Analytics 360 Properties can use 2,000,000 tokens per day. |
| /// |
| /// Most requests consume fewer than 10 tokens. |
| QuotaStatus? tokensPerDay; |
| |
| /// Standard Analytics Properties can use up to 40,000 tokens per hour; |
| /// Analytics 360 Properties can use 400,000 tokens per hour. |
| /// |
| /// An API request consumes a single number of tokens, and that number is |
| /// deducted from all of the hourly, daily, and per project hourly quotas. |
| QuotaStatus? tokensPerHour; |
| |
| /// Analytics Properties can use up to 35% of their tokens per project per |
| /// hour. |
| /// |
| /// This amounts to standard Analytics Properties can use up to 14,000 tokens |
| /// per project per hour, and Analytics 360 Properties can use 140,000 tokens |
| /// per project per hour. An API request consumes a single number of tokens, |
| /// and that number is deducted from all of the hourly, daily, and per project |
| /// hourly quotas. |
| QuotaStatus? tokensPerProjectPerHour; |
| |
| PropertyQuota({ |
| this.concurrentRequests, |
| this.potentiallyThresholdedRequestsPerHour, |
| this.serverErrorsPerProjectPerHour, |
| this.tokensPerDay, |
| this.tokensPerHour, |
| this.tokensPerProjectPerHour, |
| }); |
| |
| PropertyQuota.fromJson(core.Map json_) |
| : this( |
| concurrentRequests: |
| json_.containsKey('concurrentRequests') |
| ? QuotaStatus.fromJson( |
| json_['concurrentRequests'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| potentiallyThresholdedRequestsPerHour: |
| json_.containsKey('potentiallyThresholdedRequestsPerHour') |
| ? QuotaStatus.fromJson( |
| json_['potentiallyThresholdedRequestsPerHour'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| serverErrorsPerProjectPerHour: |
| json_.containsKey('serverErrorsPerProjectPerHour') |
| ? QuotaStatus.fromJson( |
| json_['serverErrorsPerProjectPerHour'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| tokensPerDay: |
| json_.containsKey('tokensPerDay') |
| ? QuotaStatus.fromJson( |
| json_['tokensPerDay'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| tokensPerHour: |
| json_.containsKey('tokensPerHour') |
| ? QuotaStatus.fromJson( |
| json_['tokensPerHour'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| tokensPerProjectPerHour: |
| json_.containsKey('tokensPerProjectPerHour') |
| ? QuotaStatus.fromJson( |
| json_['tokensPerProjectPerHour'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (concurrentRequests != null) 'concurrentRequests': concurrentRequests!, |
| if (potentiallyThresholdedRequestsPerHour != null) |
| 'potentiallyThresholdedRequestsPerHour': |
| potentiallyThresholdedRequestsPerHour!, |
| if (serverErrorsPerProjectPerHour != null) |
| 'serverErrorsPerProjectPerHour': serverErrorsPerProjectPerHour!, |
| if (tokensPerDay != null) 'tokensPerDay': tokensPerDay!, |
| if (tokensPerHour != null) 'tokensPerHour': tokensPerHour!, |
| if (tokensPerProjectPerHour != null) |
| 'tokensPerProjectPerHour': tokensPerProjectPerHour!, |
| }; |
| } |
| |
| /// A request to list users in an audience export. |
| class QueryAudienceExportRequest { |
| /// 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). |
| /// |
| /// Optional. |
| core.String? limit; |
| |
| /// 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). |
| /// |
| /// Optional. |
| core.String? offset; |
| |
| QueryAudienceExportRequest({this.limit, this.offset}); |
| |
| QueryAudienceExportRequest.fromJson(core.Map json_) |
| : this( |
| limit: json_['limit'] as core.String?, |
| offset: json_['offset'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (limit != null) 'limit': limit!, |
| if (offset != null) 'offset': offset!, |
| }; |
| } |
| |
| /// A list of users in an audience export. |
| class 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. |
| AudienceExport? audienceExport; |
| |
| /// 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. |
| core.List<V1betaAudienceRow>? audienceRows; |
| |
| /// 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). |
| core.int? rowCount; |
| |
| QueryAudienceExportResponse({ |
| this.audienceExport, |
| this.audienceRows, |
| this.rowCount, |
| }); |
| |
| QueryAudienceExportResponse.fromJson(core.Map json_) |
| : this( |
| audienceExport: |
| json_.containsKey('audienceExport') |
| ? AudienceExport.fromJson( |
| json_['audienceExport'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| audienceRows: |
| (json_['audienceRows'] as core.List?) |
| ?.map( |
| (value) => V1betaAudienceRow.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| rowCount: json_['rowCount'] as core.int?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (audienceExport != null) 'audienceExport': audienceExport!, |
| if (audienceRows != null) 'audienceRows': audienceRows!, |
| if (rowCount != null) 'rowCount': rowCount!, |
| }; |
| } |
| |
| /// Current state for a particular quota group. |
| typedef QuotaStatus = $QuotaStatus; |
| |
| /// Response's metadata carrying additional information about the report |
| /// content. |
| class ResponseMetaData { |
| /// The currency code used in this report. |
| /// |
| /// Intended to be used in formatting currency metrics like `purchaseRevenue` |
| /// for visualization. If currency_code was specified in the request, this |
| /// response parameter will echo the request parameter; otherwise, this |
| /// response parameter is the property's current currency_code. Currency codes |
| /// are string encodings of currency types from the ISO 4217 standard |
| /// (https://en.wikipedia.org/wiki/ISO_4217); for example "USD", "EUR", "JPY". |
| /// To learn more, see https://support.google.com/analytics/answer/9796179. |
| core.String? currencyCode; |
| |
| /// If true, indicates some buckets of dimension combinations are rolled into |
| /// "(other)" row. |
| /// |
| /// This can happen for high cardinality reports. The metadata parameter |
| /// dataLossFromOtherRow is populated based on the aggregated data table used |
| /// in the report. The parameter will be accurately populated regardless of |
| /// the filters and limits in the report. For example, the (other) row could |
| /// be dropped from the report because the request contains a filter on |
| /// sessionSource = google. This parameter will still be populated if data |
| /// loss from other row was present in the input aggregate data used to |
| /// generate this report. To learn more, see \[About the (other) row and data |
| /// sampling\](https://support.google.com/analytics/answer/13208658#reports). |
| core.bool? dataLossFromOtherRow; |
| |
| /// If empty reason is specified, the report is empty for this reason. |
| core.String? emptyReason; |
| |
| /// If this report results is |
| /// [sampled](https://support.google.com/analytics/answer/13331292), this |
| /// describes the percentage of events used in this 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. |
| core.List<SamplingMetadata>? samplingMetadatas; |
| |
| /// Describes the schema restrictions actively enforced in creating this |
| /// report. |
| /// |
| /// To learn more, see \[Access and data-restriction |
| /// management\](https://support.google.com/analytics/answer/10851388). |
| SchemaRestrictionResponse? schemaRestrictionResponse; |
| |
| /// If `subjectToThresholding` is true, this report is subject to thresholding |
| /// and only returns data that meets the minimum aggregation thresholds. |
| /// |
| /// It is possible for a request to be subject to thresholding thresholding |
| /// and no data is absent from the report, and this happens when all data is |
| /// above the thresholds. To learn more, see |
| /// [Data thresholds](https://support.google.com/analytics/answer/9383630). |
| core.bool? subjectToThresholding; |
| |
| /// The property's current timezone. |
| /// |
| /// Intended to be used to interpret time-based dimensions like `hour` and |
| /// `minute`. Formatted as strings from the IANA Time Zone database |
| /// (https://www.iana.org/time-zones); for example "America/New_York" or |
| /// "Asia/Tokyo". |
| core.String? timeZone; |
| |
| ResponseMetaData({ |
| this.currencyCode, |
| this.dataLossFromOtherRow, |
| this.emptyReason, |
| this.samplingMetadatas, |
| this.schemaRestrictionResponse, |
| this.subjectToThresholding, |
| this.timeZone, |
| }); |
| |
| ResponseMetaData.fromJson(core.Map json_) |
| : this( |
| currencyCode: json_['currencyCode'] as core.String?, |
| dataLossFromOtherRow: json_['dataLossFromOtherRow'] as core.bool?, |
| emptyReason: json_['emptyReason'] as core.String?, |
| samplingMetadatas: |
| (json_['samplingMetadatas'] as core.List?) |
| ?.map( |
| (value) => SamplingMetadata.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| schemaRestrictionResponse: |
| json_.containsKey('schemaRestrictionResponse') |
| ? SchemaRestrictionResponse.fromJson( |
| json_['schemaRestrictionResponse'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| subjectToThresholding: json_['subjectToThresholding'] as core.bool?, |
| timeZone: json_['timeZone'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (currencyCode != null) 'currencyCode': currencyCode!, |
| if (dataLossFromOtherRow != null) |
| 'dataLossFromOtherRow': dataLossFromOtherRow!, |
| if (emptyReason != null) 'emptyReason': emptyReason!, |
| if (samplingMetadatas != null) 'samplingMetadatas': samplingMetadatas!, |
| if (schemaRestrictionResponse != null) |
| 'schemaRestrictionResponse': schemaRestrictionResponse!, |
| if (subjectToThresholding != null) |
| 'subjectToThresholding': subjectToThresholding!, |
| if (timeZone != null) 'timeZone': timeZone!, |
| }; |
| } |
| |
| /// Report data for each row. |
| /// |
| /// For example if RunReportRequest contains: ```none "dimensions": [ { "name": |
| /// "eventName" }, { "name": "countryId" } ], "metrics": [ { "name": |
| /// "eventCount" } ] ``` One row with 'in_app_purchase' as the eventName, 'JP' |
| /// as the countryId, and 15 as the eventCount, would be: ```none |
| /// "dimensionValues": [ { "value": "in_app_purchase" }, { "value": "JP" } ], |
| /// "metricValues": [ { "value": "15" } ] ``` |
| class Row { |
| /// List of requested dimension values. |
| /// |
| /// In a PivotReport, dimension_values are only listed for dimensions included |
| /// in a pivot. |
| core.List<DimensionValue>? dimensionValues; |
| |
| /// List of requested visible metric values. |
| core.List<MetricValue>? metricValues; |
| |
| Row({this.dimensionValues, this.metricValues}); |
| |
| Row.fromJson(core.Map json_) |
| : this( |
| dimensionValues: |
| (json_['dimensionValues'] as core.List?) |
| ?.map( |
| (value) => DimensionValue.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| metricValues: |
| (json_['metricValues'] as core.List?) |
| ?.map( |
| (value) => MetricValue.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionValues != null) 'dimensionValues': dimensionValues!, |
| if (metricValues != null) 'metricValues': metricValues!, |
| }; |
| } |
| |
| /// The request to generate a pivot report. |
| class RunPivotReportRequest { |
| /// Cohort group associated with this request. |
| /// |
| /// If there is a cohort group in the request the 'cohort' dimension must be |
| /// present. |
| CohortSpec? cohortSpec; |
| |
| /// 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. |
| /// |
| /// Optional. |
| core.List<Comparison>? comparisons; |
| |
| /// A currency code in ISO4217 format, such as "AED", "USD", "JPY". |
| /// |
| /// If the field is empty, the report uses the property's default currency. |
| core.String? currencyCode; |
| |
| /// 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. |
| core.List<DateRange>? dateRanges; |
| |
| /// The filter clause of dimensions. |
| /// |
| /// Dimensions must be requested to be used in this filter. Metrics cannot be |
| /// used in this filter. |
| FilterExpression? dimensionFilter; |
| |
| /// The dimensions requested. |
| /// |
| /// All defined dimensions must be used by one of the following: |
| /// dimension_expression, dimension_filter, pivots, order_bys. |
| core.List<Dimension>? dimensions; |
| |
| /// 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 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. |
| core.bool? keepEmptyRows; |
| |
| /// 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? metricFilter; |
| |
| /// 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. |
| core.List<Metric>? metrics; |
| |
| /// 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. |
| core.List<Pivot>? pivots; |
| |
| /// 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 |
| core.String? property; |
| |
| /// Toggles whether to return the current state of this Google Analytics |
| /// property's quota. |
| /// |
| /// Quota is returned in \[PropertyQuota\](#PropertyQuota). |
| core.bool? returnPropertyQuota; |
| |
| RunPivotReportRequest({ |
| this.cohortSpec, |
| this.comparisons, |
| this.currencyCode, |
| this.dateRanges, |
| this.dimensionFilter, |
| this.dimensions, |
| this.keepEmptyRows, |
| this.metricFilter, |
| this.metrics, |
| this.pivots, |
| this.property, |
| this.returnPropertyQuota, |
| }); |
| |
| RunPivotReportRequest.fromJson(core.Map json_) |
| : this( |
| cohortSpec: |
| json_.containsKey('cohortSpec') |
| ? CohortSpec.fromJson( |
| json_['cohortSpec'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| comparisons: |
| (json_['comparisons'] as core.List?) |
| ?.map( |
| (value) => Comparison.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| currencyCode: json_['currencyCode'] as core.String?, |
| dateRanges: |
| (json_['dateRanges'] as core.List?) |
| ?.map( |
| (value) => DateRange.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| dimensionFilter: |
| json_.containsKey('dimensionFilter') |
| ? FilterExpression.fromJson( |
| json_['dimensionFilter'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dimensions: |
| (json_['dimensions'] as core.List?) |
| ?.map( |
| (value) => Dimension.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| keepEmptyRows: json_['keepEmptyRows'] as core.bool?, |
| metricFilter: |
| json_.containsKey('metricFilter') |
| ? FilterExpression.fromJson( |
| json_['metricFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metrics: |
| (json_['metrics'] as core.List?) |
| ?.map( |
| (value) => Metric.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| pivots: |
| (json_['pivots'] as core.List?) |
| ?.map( |
| (value) => Pivot.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| property: json_['property'] as core.String?, |
| returnPropertyQuota: json_['returnPropertyQuota'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (cohortSpec != null) 'cohortSpec': cohortSpec!, |
| if (comparisons != null) 'comparisons': comparisons!, |
| if (currencyCode != null) 'currencyCode': currencyCode!, |
| if (dateRanges != null) 'dateRanges': dateRanges!, |
| if (dimensionFilter != null) 'dimensionFilter': dimensionFilter!, |
| if (dimensions != null) 'dimensions': dimensions!, |
| if (keepEmptyRows != null) 'keepEmptyRows': keepEmptyRows!, |
| if (metricFilter != null) 'metricFilter': metricFilter!, |
| if (metrics != null) 'metrics': metrics!, |
| if (pivots != null) 'pivots': pivots!, |
| if (property != null) 'property': property!, |
| if (returnPropertyQuota != null) |
| 'returnPropertyQuota': returnPropertyQuota!, |
| }; |
| } |
| |
| /// The response pivot report table corresponding to a pivot request. |
| class RunPivotReportResponse { |
| /// 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_". |
| core.List<Row>? aggregates; |
| |
| /// Describes dimension columns. |
| /// |
| /// The number of DimensionHeaders and ordering of DimensionHeaders matches |
| /// the dimensions present in rows. |
| core.List<DimensionHeader>? dimensionHeaders; |
| |
| /// 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. |
| core.String? kind; |
| |
| /// Metadata for the report. |
| ResponseMetaData? metadata; |
| |
| /// Describes metric columns. |
| /// |
| /// The number of MetricHeaders and ordering of MetricHeaders matches the |
| /// metrics present in rows. |
| core.List<MetricHeader>? metricHeaders; |
| |
| /// 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" }\] }\] |
| /// }\] |
| core.List<PivotHeader>? pivotHeaders; |
| |
| /// This Google Analytics property's quota state including this request. |
| PropertyQuota? propertyQuota; |
| |
| /// Rows of dimension value combinations and metric values in the report. |
| core.List<Row>? rows; |
| |
| RunPivotReportResponse({ |
| this.aggregates, |
| this.dimensionHeaders, |
| this.kind, |
| this.metadata, |
| this.metricHeaders, |
| this.pivotHeaders, |
| this.propertyQuota, |
| this.rows, |
| }); |
| |
| RunPivotReportResponse.fromJson(core.Map json_) |
| : this( |
| aggregates: |
| (json_['aggregates'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| dimensionHeaders: |
| (json_['dimensionHeaders'] as core.List?) |
| ?.map( |
| (value) => DimensionHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| kind: json_['kind'] as core.String?, |
| metadata: |
| json_.containsKey('metadata') |
| ? ResponseMetaData.fromJson( |
| json_['metadata'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metricHeaders: |
| (json_['metricHeaders'] as core.List?) |
| ?.map( |
| (value) => MetricHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| pivotHeaders: |
| (json_['pivotHeaders'] as core.List?) |
| ?.map( |
| (value) => PivotHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| propertyQuota: |
| json_.containsKey('propertyQuota') |
| ? PropertyQuota.fromJson( |
| json_['propertyQuota'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| rows: |
| (json_['rows'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (aggregates != null) 'aggregates': aggregates!, |
| if (dimensionHeaders != null) 'dimensionHeaders': dimensionHeaders!, |
| if (kind != null) 'kind': kind!, |
| if (metadata != null) 'metadata': metadata!, |
| if (metricHeaders != null) 'metricHeaders': metricHeaders!, |
| if (pivotHeaders != null) 'pivotHeaders': pivotHeaders!, |
| if (propertyQuota != null) 'propertyQuota': propertyQuota!, |
| if (rows != null) 'rows': rows!, |
| }; |
| } |
| |
| /// The request to generate a realtime report. |
| class RunRealtimeReportRequest { |
| /// The filter clause of dimensions. |
| /// |
| /// Metrics cannot be used in this filter. |
| FilterExpression? dimensionFilter; |
| |
| /// The dimensions requested and displayed. |
| core.List<Dimension>? dimensions; |
| |
| /// 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. |
| core.String? limit; |
| |
| /// Aggregation of metrics. |
| /// |
| /// Aggregated metric values will be shown in rows where the dimension_values |
| /// are set to "RESERVED_(MetricAggregation)". |
| core.List<core.String>? metricAggregations; |
| |
| /// The filter clause of metrics. |
| /// |
| /// Applied at post aggregation phase, similar to SQL having-clause. |
| /// Dimensions cannot be used in this filter. |
| FilterExpression? metricFilter; |
| |
| /// The metrics requested and displayed. |
| core.List<Metric>? metrics; |
| |
| /// 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. |
| core.List<MinuteRange>? minuteRanges; |
| |
| /// Specifies how rows are ordered in the response. |
| core.List<OrderBy>? orderBys; |
| |
| /// Toggles whether to return the current state of this Google Analytics |
| /// property's Realtime quota. |
| /// |
| /// Quota is returned in \[PropertyQuota\](#PropertyQuota). |
| core.bool? returnPropertyQuota; |
| |
| RunRealtimeReportRequest({ |
| this.dimensionFilter, |
| this.dimensions, |
| this.limit, |
| this.metricAggregations, |
| this.metricFilter, |
| this.metrics, |
| this.minuteRanges, |
| this.orderBys, |
| this.returnPropertyQuota, |
| }); |
| |
| RunRealtimeReportRequest.fromJson(core.Map json_) |
| : this( |
| dimensionFilter: |
| json_.containsKey('dimensionFilter') |
| ? FilterExpression.fromJson( |
| json_['dimensionFilter'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dimensions: |
| (json_['dimensions'] as core.List?) |
| ?.map( |
| (value) => Dimension.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| limit: json_['limit'] as core.String?, |
| metricAggregations: |
| (json_['metricAggregations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| metricFilter: |
| json_.containsKey('metricFilter') |
| ? FilterExpression.fromJson( |
| json_['metricFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metrics: |
| (json_['metrics'] as core.List?) |
| ?.map( |
| (value) => Metric.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| minuteRanges: |
| (json_['minuteRanges'] as core.List?) |
| ?.map( |
| (value) => MinuteRange.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| orderBys: |
| (json_['orderBys'] as core.List?) |
| ?.map( |
| (value) => OrderBy.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| returnPropertyQuota: json_['returnPropertyQuota'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionFilter != null) 'dimensionFilter': dimensionFilter!, |
| if (dimensions != null) 'dimensions': dimensions!, |
| if (limit != null) 'limit': limit!, |
| if (metricAggregations != null) 'metricAggregations': metricAggregations!, |
| if (metricFilter != null) 'metricFilter': metricFilter!, |
| if (metrics != null) 'metrics': metrics!, |
| if (minuteRanges != null) 'minuteRanges': minuteRanges!, |
| if (orderBys != null) 'orderBys': orderBys!, |
| if (returnPropertyQuota != null) |
| 'returnPropertyQuota': returnPropertyQuota!, |
| }; |
| } |
| |
| /// The response realtime report table corresponding to a request. |
| class RunRealtimeReportResponse { |
| /// Describes dimension columns. |
| /// |
| /// The number of DimensionHeaders and ordering of DimensionHeaders matches |
| /// the dimensions present in rows. |
| core.List<DimensionHeader>? dimensionHeaders; |
| |
| /// 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. |
| core.String? kind; |
| |
| /// If requested, the maximum values of metrics. |
| core.List<Row>? maximums; |
| |
| /// Describes metric columns. |
| /// |
| /// The number of MetricHeaders and ordering of MetricHeaders matches the |
| /// metrics present in rows. |
| core.List<MetricHeader>? metricHeaders; |
| |
| /// If requested, the minimum values of metrics. |
| core.List<Row>? minimums; |
| |
| /// This Google Analytics property's Realtime quota state including this |
| /// request. |
| PropertyQuota? propertyQuota; |
| |
| /// 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. |
| core.int? rowCount; |
| |
| /// Rows of dimension value combinations and metric values in the report. |
| core.List<Row>? rows; |
| |
| /// If requested, the totaled values of metrics. |
| core.List<Row>? totals; |
| |
| RunRealtimeReportResponse({ |
| this.dimensionHeaders, |
| this.kind, |
| this.maximums, |
| this.metricHeaders, |
| this.minimums, |
| this.propertyQuota, |
| this.rowCount, |
| this.rows, |
| this.totals, |
| }); |
| |
| RunRealtimeReportResponse.fromJson(core.Map json_) |
| : this( |
| dimensionHeaders: |
| (json_['dimensionHeaders'] as core.List?) |
| ?.map( |
| (value) => DimensionHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| kind: json_['kind'] as core.String?, |
| maximums: |
| (json_['maximums'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| metricHeaders: |
| (json_['metricHeaders'] as core.List?) |
| ?.map( |
| (value) => MetricHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| minimums: |
| (json_['minimums'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| propertyQuota: |
| json_.containsKey('propertyQuota') |
| ? PropertyQuota.fromJson( |
| json_['propertyQuota'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| rowCount: json_['rowCount'] as core.int?, |
| rows: |
| (json_['rows'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| totals: |
| (json_['totals'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionHeaders != null) 'dimensionHeaders': dimensionHeaders!, |
| if (kind != null) 'kind': kind!, |
| if (maximums != null) 'maximums': maximums!, |
| if (metricHeaders != null) 'metricHeaders': metricHeaders!, |
| if (minimums != null) 'minimums': minimums!, |
| if (propertyQuota != null) 'propertyQuota': propertyQuota!, |
| if (rowCount != null) 'rowCount': rowCount!, |
| if (rows != null) 'rows': rows!, |
| if (totals != null) 'totals': totals!, |
| }; |
| } |
| |
| /// The request to generate a report. |
| class RunReportRequest { |
| /// Cohort group associated with this request. |
| /// |
| /// If there is a cohort group in the request the 'cohort' dimension must be |
| /// present. |
| CohortSpec? cohortSpec; |
| |
| /// The configuration of comparisons requested and displayed. |
| /// |
| /// The request only requires a comparisons field in order to receive a |
| /// comparison column in the response. |
| /// |
| /// Optional. |
| core.List<Comparison>? comparisons; |
| |
| /// A currency code in ISO4217 format, such as "AED", "USD", "JPY". |
| /// |
| /// If the field is empty, the report uses the property's default currency. |
| core.String? currencyCode; |
| |
| /// 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. |
| core.List<DateRange>? dateRanges; |
| |
| /// 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? dimensionFilter; |
| |
| /// The dimensions requested and displayed. |
| core.List<Dimension>? dimensions; |
| |
| /// 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 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. |
| core.bool? keepEmptyRows; |
| |
| /// 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). |
| core.String? limit; |
| |
| /// Aggregation of metrics. |
| /// |
| /// Aggregated metric values will be shown in rows where the dimension_values |
| /// are set to "RESERVED_(MetricAggregation)". Aggregates including both |
| /// comparisons and multiple date ranges will be aggregated based on the date |
| /// ranges. |
| core.List<core.String>? metricAggregations; |
| |
| /// 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? metricFilter; |
| |
| /// The metrics requested and displayed. |
| core.List<Metric>? metrics; |
| |
| /// 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). |
| core.String? offset; |
| |
| /// Specifies how rows are ordered in the response. |
| /// |
| /// Requests including both comparisons and multiple date ranges will have |
| /// order bys applied on the comparisons. |
| core.List<OrderBy>? orderBys; |
| |
| /// 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 |
| core.String? property; |
| |
| /// Toggles whether to return the current state of this Google Analytics |
| /// property's quota. |
| /// |
| /// Quota is returned in \[PropertyQuota\](#PropertyQuota). |
| core.bool? returnPropertyQuota; |
| |
| RunReportRequest({ |
| this.cohortSpec, |
| this.comparisons, |
| this.currencyCode, |
| this.dateRanges, |
| this.dimensionFilter, |
| this.dimensions, |
| this.keepEmptyRows, |
| this.limit, |
| this.metricAggregations, |
| this.metricFilter, |
| this.metrics, |
| this.offset, |
| this.orderBys, |
| this.property, |
| this.returnPropertyQuota, |
| }); |
| |
| RunReportRequest.fromJson(core.Map json_) |
| : this( |
| cohortSpec: |
| json_.containsKey('cohortSpec') |
| ? CohortSpec.fromJson( |
| json_['cohortSpec'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| comparisons: |
| (json_['comparisons'] as core.List?) |
| ?.map( |
| (value) => Comparison.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| currencyCode: json_['currencyCode'] as core.String?, |
| dateRanges: |
| (json_['dateRanges'] as core.List?) |
| ?.map( |
| (value) => DateRange.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| dimensionFilter: |
| json_.containsKey('dimensionFilter') |
| ? FilterExpression.fromJson( |
| json_['dimensionFilter'] |
| as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| dimensions: |
| (json_['dimensions'] as core.List?) |
| ?.map( |
| (value) => Dimension.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| keepEmptyRows: json_['keepEmptyRows'] as core.bool?, |
| limit: json_['limit'] as core.String?, |
| metricAggregations: |
| (json_['metricAggregations'] as core.List?) |
| ?.map((value) => value as core.String) |
| .toList(), |
| metricFilter: |
| json_.containsKey('metricFilter') |
| ? FilterExpression.fromJson( |
| json_['metricFilter'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metrics: |
| (json_['metrics'] as core.List?) |
| ?.map( |
| (value) => Metric.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| offset: json_['offset'] as core.String?, |
| orderBys: |
| (json_['orderBys'] as core.List?) |
| ?.map( |
| (value) => OrderBy.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| property: json_['property'] as core.String?, |
| returnPropertyQuota: json_['returnPropertyQuota'] as core.bool?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (cohortSpec != null) 'cohortSpec': cohortSpec!, |
| if (comparisons != null) 'comparisons': comparisons!, |
| if (currencyCode != null) 'currencyCode': currencyCode!, |
| if (dateRanges != null) 'dateRanges': dateRanges!, |
| if (dimensionFilter != null) 'dimensionFilter': dimensionFilter!, |
| if (dimensions != null) 'dimensions': dimensions!, |
| if (keepEmptyRows != null) 'keepEmptyRows': keepEmptyRows!, |
| if (limit != null) 'limit': limit!, |
| if (metricAggregations != null) 'metricAggregations': metricAggregations!, |
| if (metricFilter != null) 'metricFilter': metricFilter!, |
| if (metrics != null) 'metrics': metrics!, |
| if (offset != null) 'offset': offset!, |
| if (orderBys != null) 'orderBys': orderBys!, |
| if (property != null) 'property': property!, |
| if (returnPropertyQuota != null) |
| 'returnPropertyQuota': returnPropertyQuota!, |
| }; |
| } |
| |
| /// The response report table corresponding to a request. |
| class RunReportResponse { |
| /// Describes dimension columns. |
| /// |
| /// The number of DimensionHeaders and ordering of DimensionHeaders matches |
| /// the dimensions present in rows. |
| core.List<DimensionHeader>? dimensionHeaders; |
| |
| /// 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. |
| core.String? kind; |
| |
| /// If requested, the maximum values of metrics. |
| core.List<Row>? maximums; |
| |
| /// Metadata for the report. |
| ResponseMetaData? metadata; |
| |
| /// Describes metric columns. |
| /// |
| /// The number of MetricHeaders and ordering of MetricHeaders matches the |
| /// metrics present in rows. |
| core.List<MetricHeader>? metricHeaders; |
| |
| /// If requested, the minimum values of metrics. |
| core.List<Row>? minimums; |
| |
| /// This Google Analytics property's quota state including this request. |
| PropertyQuota? propertyQuota; |
| |
| /// 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). |
| core.int? rowCount; |
| |
| /// Rows of dimension value combinations and metric values in the report. |
| core.List<Row>? rows; |
| |
| /// If requested, the totaled values of metrics. |
| core.List<Row>? totals; |
| |
| RunReportResponse({ |
| this.dimensionHeaders, |
| this.kind, |
| this.maximums, |
| this.metadata, |
| this.metricHeaders, |
| this.minimums, |
| this.propertyQuota, |
| this.rowCount, |
| this.rows, |
| this.totals, |
| }); |
| |
| RunReportResponse.fromJson(core.Map json_) |
| : this( |
| dimensionHeaders: |
| (json_['dimensionHeaders'] as core.List?) |
| ?.map( |
| (value) => DimensionHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| kind: json_['kind'] as core.String?, |
| maximums: |
| (json_['maximums'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| metadata: |
| json_.containsKey('metadata') |
| ? ResponseMetaData.fromJson( |
| json_['metadata'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| metricHeaders: |
| (json_['metricHeaders'] as core.List?) |
| ?.map( |
| (value) => MetricHeader.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| minimums: |
| (json_['minimums'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| propertyQuota: |
| json_.containsKey('propertyQuota') |
| ? PropertyQuota.fromJson( |
| json_['propertyQuota'] as core.Map<core.String, core.dynamic>, |
| ) |
| : null, |
| rowCount: json_['rowCount'] as core.int?, |
| rows: |
| (json_['rows'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| totals: |
| (json_['totals'] as core.List?) |
| ?.map( |
| (value) => Row.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionHeaders != null) 'dimensionHeaders': dimensionHeaders!, |
| if (kind != null) 'kind': kind!, |
| if (maximums != null) 'maximums': maximums!, |
| if (metadata != null) 'metadata': metadata!, |
| if (metricHeaders != null) 'metricHeaders': metricHeaders!, |
| if (minimums != null) 'minimums': minimums!, |
| if (propertyQuota != null) 'propertyQuota': propertyQuota!, |
| if (rowCount != null) 'rowCount': rowCount!, |
| if (rows != null) 'rows': rows!, |
| if (totals != null) 'totals': totals!, |
| }; |
| } |
| |
| /// If this report results is |
| /// [sampled](https://support.google.com/analytics/answer/13331292), this |
| /// describes the percentage of events used in this report. |
| /// |
| /// Sampling is the practice of analyzing a subset of all data in order to |
| /// uncover the meaningful information in the larger data set. |
| class SamplingMetadata { |
| /// The total number of events read in this sampled report for a date range. |
| /// |
| /// This is the size of the subset this property's data that was analyzed in |
| /// this report. |
| core.String? samplesReadCount; |
| |
| /// The total number of events present in this property's data that could have |
| /// been analyzed in this report for a date range. |
| /// |
| /// Sampling uncovers the meaningful information about the larger data set, |
| /// and this is the size of the larger data set. To calculate the percentage |
| /// of available data that was used in this report, compute |
| /// `samplesReadCount/samplingSpaceSize`. |
| core.String? samplingSpaceSize; |
| |
| SamplingMetadata({this.samplesReadCount, this.samplingSpaceSize}); |
| |
| SamplingMetadata.fromJson(core.Map json_) |
| : this( |
| samplesReadCount: json_['samplesReadCount'] as core.String?, |
| samplingSpaceSize: json_['samplingSpaceSize'] as core.String?, |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (samplesReadCount != null) 'samplesReadCount': samplesReadCount!, |
| if (samplingSpaceSize != null) 'samplingSpaceSize': samplingSpaceSize!, |
| }; |
| } |
| |
| /// The schema restrictions actively enforced in creating this report. |
| /// |
| /// To learn more, see \[Access and data-restriction |
| /// management\](https://support.google.com/analytics/answer/10851388). |
| class SchemaRestrictionResponse { |
| /// All restrictions actively enforced in creating the report. |
| /// |
| /// For example, `purchaseRevenue` always has the restriction type |
| /// `REVENUE_DATA`. However, this active response restriction is only |
| /// populated if the user's custom role disallows access to `REVENUE_DATA`. |
| core.List<ActiveMetricRestriction>? activeMetricRestrictions; |
| |
| SchemaRestrictionResponse({this.activeMetricRestrictions}); |
| |
| SchemaRestrictionResponse.fromJson(core.Map json_) |
| : this( |
| activeMetricRestrictions: |
| (json_['activeMetricRestrictions'] as core.List?) |
| ?.map( |
| (value) => ActiveMetricRestriction.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (activeMetricRestrictions != null) |
| 'activeMetricRestrictions': activeMetricRestrictions!, |
| }; |
| } |
| |
| /// The `Status` type defines a logical error model that is suitable for |
| /// different programming environments, including REST APIs and RPC APIs. |
| /// |
| /// It is used by [gRPC](https://github.com/grpc). Each `Status` message |
| /// contains three pieces of data: error code, error message, and error details. |
| /// You can find out more about this error model and how to work with it in the |
| /// [API Design Guide](https://cloud.google.com/apis/design/errors). |
| typedef Status = $Status; |
| |
| /// The filter for string |
| typedef StringFilter = $StringFilter; |
| |
| /// An audience dimension is a user attribute. |
| /// |
| /// Specific user attributed are requested and then later returned in the |
| /// `QueryAudienceExportResponse`. |
| class V1betaAudienceDimension { |
| /// 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. |
| /// |
| /// Optional. |
| core.String? dimensionName; |
| |
| V1betaAudienceDimension({this.dimensionName}); |
| |
| V1betaAudienceDimension.fromJson(core.Map json_) |
| : this(dimensionName: json_['dimensionName'] as core.String?); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionName != null) 'dimensionName': dimensionName!, |
| }; |
| } |
| |
| /// The value of a dimension. |
| typedef V1betaAudienceDimensionValue = $DimensionValue; |
| |
| /// Dimension value attributes for the audience user row. |
| class V1betaAudienceRow { |
| /// Each dimension value attribute for an audience user. |
| /// |
| /// One dimension value will be added for each dimension column requested. |
| core.List<V1betaAudienceDimensionValue>? dimensionValues; |
| |
| V1betaAudienceRow({this.dimensionValues}); |
| |
| V1betaAudienceRow.fromJson(core.Map json_) |
| : this( |
| dimensionValues: |
| (json_['dimensionValues'] as core.List?) |
| ?.map( |
| (value) => V1betaAudienceDimensionValue.fromJson( |
| value as core.Map<core.String, core.dynamic>, |
| ), |
| ) |
| .toList(), |
| ); |
| |
| core.Map<core.String, core.dynamic> toJson() => { |
| if (dimensionValues != null) 'dimensionValues': dimensionValues!, |
| }; |
| } |