namespace GoogleApi.Models;
///
/// Represents an audience segment from Google Ads (affinity, in-market, life events, etc.)
///
public class AudienceSegment
{
public long Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Type { get; set; } = string.Empty; // AFFINITY, IN_MARKET, LIFE_EVENT, DETAILED_DEMOGRAPHIC
public string? ParentName { get; set; }
public int? ParentId { get; set; }
}
///
/// Response containing all available audience segments
///
public class AudienceSegmentsResponse
{
public List Affinity { get; set; } = new();
public List InMarket { get; set; } = new();
public List LifeEvents { get; set; } = new();
public List DetailedDemographics { get; set; } = new();
public int TotalCount => Affinity.Count + InMarket.Count + LifeEvents.Count + DetailedDemographics.Count;
public DateTimeOffset RetrievedAt { get; set; } = DateTimeOffset.UtcNow;
}
///
/// Geo target constant for location targeting
///
public class GeoTarget
{
public long Id { get; set; }
public string Name { get; set; } = string.Empty;
public string CanonicalName { get; set; } = string.Empty;
public string TargetType { get; set; } = string.Empty; // City, State, Country, etc.
public string? CountryCode { get; set; }
public string? ParentGeoTarget { get; set; }
}
///
/// Response for geo target search
///
public class GeoTargetSearchResponse
{
public List Results { get; set; } = new();
public string Query { get; set; } = string.Empty;
}
///
/// Payload for searching geo targets
///
public class GeoTargetSearchPayload
{
public string Query { get; set; } = string.Empty;
public string? CountryCode { get; set; }
public int MaxResults { get; set; } = 20;
}