Skip to main content

google_analytics_api_ga4/
run_report.rs

1use crate::types::{
2    CohortSpec, DateRange, Dimension, FilterExpression, Metric, MetricAggregation, OrderBy,
3};
4use serde::{Deserialize, Serialize};
5
6/// <https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/runReport>
7#[derive(Default, Debug, Serialize, Deserialize, Clone)]
8#[serde(rename_all = "camelCase")]
9pub struct RunReportRequest {
10    pub property: String,
11    pub dimensions: Vec<Dimension>,
12    pub metrics: Vec<Metric>,
13    pub date_ranges: Vec<DateRange>,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub dimension_filter: Option<FilterExpression>,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub metric_filter: Option<FilterExpression>,
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub offset: Option<String>,
20    #[serde(skip_serializing_if = "Option::is_none")]
21    pub limit: Option<String>,
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub metric_aggregations: Option<Vec<MetricAggregation>>,
24    #[serde(skip_serializing_if = "Option::is_none")]
25    pub order_bys: Option<Vec<OrderBy>>,
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub currency_code: Option<String>,
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub cohort_spec: Option<CohortSpec>,
30    #[serde(skip_serializing_if = "Option::is_none")]
31    pub keep_empty_rows: Option<bool>,
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub return_property_quota: Option<bool>,
34}