apple_search_ads/objects/
row.rs

1// https://developer.apple.com/documentation/apple_search_ads/row
2
3use serde::{Deserialize, Serialize};
4
5use crate::objects::{
6    extended_spend_row::ExtendedSpendRow, reporting_ad_group::ReportingAdGroup,
7    reporting_campaign::ReportingCampaign, reporting_keyword::ReportingKeyword,
8    reporting_search_term::ReportingSearchTerm, spend_row::SpendRow,
9};
10
11//
12#[derive(Deserialize, Serialize, Debug, Clone)]
13pub struct Row<M, I>
14where
15    M: Sized,
16    I: Sized,
17{
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub granularity: Option<Vec<ExtendedSpendRow>>,
20
21    pub other: bool,
22
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub total: Option<SpendRow>,
25
26    pub metadata: M,
27
28    #[serde(skip_serializing_if = "Option::is_none")]
29    pub insights: Option<I>,
30}
31
32pub type CampaignLevelRowMetaData = ReportingCampaign;
33pub type AdGroupLevelRowMetaData = ReportingAdGroup;
34pub type KeywordLevelRowMetaData = ReportingKeyword;
35pub type SearchTermLevelRowMetaData = ReportingSearchTerm;