Skip to main content

late/models/
create_ad_insights_report_request.rs

1/*
2 * Zernio API
3 *
4 * API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5 *
6 * The version of the OpenAPI document: 1.0.4
7 * Contact: support@zernio.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct CreateAdInsightsReportRequest {
16    /// Zernio SocialAccount id (posting or ads variant).
17    #[serde(rename = "accountId")]
18    pub account_id: String,
19    /// Meta insights node: act_<n>, campaign id, ad set id or ad id.
20    #[serde(rename = "objectId")]
21    pub object_id: String,
22    #[serde(rename = "level", skip_serializing_if = "Option::is_none")]
23    pub level: Option<Level>,
24    /// Comma-separated Graph insights fields.
25    #[serde(rename = "fields", skip_serializing_if = "Option::is_none")]
26    pub fields: Option<String>,
27    /// Comma-separated Graph breakdowns.
28    #[serde(rename = "breakdowns", skip_serializing_if = "Option::is_none")]
29    pub breakdowns: Option<String>,
30    /// Comma-separated Graph action breakdowns (e.g. action_type,action_destination).
31    #[serde(rename = "actionBreakdowns", skip_serializing_if = "Option::is_none")]
32    pub action_breakdowns: Option<String>,
33    /// Meta attribution windows (e.g. [\"7d_click\", \"1d_view\"]). Action values are returned keyed per window.
34    #[serde(
35        rename = "actionAttributionWindows",
36        skip_serializing_if = "Option::is_none"
37    )]
38    pub action_attribution_windows: Option<Vec<String>>,
39    /// When actions are counted: impression, conversion or mixed.
40    #[serde(rename = "actionReportTime", skip_serializing_if = "Option::is_none")]
41    pub action_report_time: Option<String>,
42    /// Use the ad sets' own attribution settings for action counting.
43    #[serde(
44        rename = "useUnifiedAttributionSetting",
45        skip_serializing_if = "Option::is_none"
46    )]
47    pub use_unified_attribution_setting: Option<bool>,
48    /// Meta filter objects, applied server-side.
49    #[serde(rename = "filtering", skip_serializing_if = "Option::is_none")]
50    pub filtering: Option<Vec<models::CreateAdInsightsReportRequestFilteringInner>>,
51    /// Mutually exclusive with fromDate/toDate.
52    #[serde(rename = "datePreset", skip_serializing_if = "Option::is_none")]
53    pub date_preset: Option<String>,
54    #[serde(rename = "fromDate", skip_serializing_if = "Option::is_none")]
55    pub from_date: Option<String>,
56    #[serde(rename = "toDate", skip_serializing_if = "Option::is_none")]
57    pub to_date: Option<String>,
58    #[serde(rename = "timeIncrement", skip_serializing_if = "Option::is_none")]
59    pub time_increment: Option<Box<models::CreateAdInsightsReportRequestTimeIncrement>>,
60}
61
62impl CreateAdInsightsReportRequest {
63    pub fn new(account_id: String, object_id: String) -> CreateAdInsightsReportRequest {
64        CreateAdInsightsReportRequest {
65            account_id,
66            object_id,
67            level: None,
68            fields: None,
69            breakdowns: None,
70            action_breakdowns: None,
71            action_attribution_windows: None,
72            action_report_time: None,
73            use_unified_attribution_setting: None,
74            filtering: None,
75            date_preset: None,
76            from_date: None,
77            to_date: None,
78            time_increment: None,
79        }
80    }
81}
82///
83#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
84pub enum Level {
85    #[serde(rename = "ad")]
86    Ad,
87    #[serde(rename = "adset")]
88    Adset,
89    #[serde(rename = "campaign")]
90    Campaign,
91    #[serde(rename = "account")]
92    Account,
93}
94
95impl Default for Level {
96    fn default() -> Level {
97        Self::Ad
98    }
99}