60 lines
1.9 KiB
C#
60 lines
1.9 KiB
C#
namespace GoogleApi.Models;
|
|
|
|
#region Forecast Payloads
|
|
|
|
/// <summary>
|
|
/// Payload for KeywordForecast operation.
|
|
/// Gateway sends targeting + budget; we translate to GenerateKeywordForecastMetrics.
|
|
/// </summary>
|
|
public sealed class KeywordForecastPayload
|
|
{
|
|
/// <summary>Keywords to forecast (from wizard Step 1 URL analysis)</summary>
|
|
public List<string> Keywords { get; set; } = new();
|
|
|
|
/// <summary>Geo target IDs (Google Ads geo constants)</summary>
|
|
public List<long> GeoTargetIds { get; set; } = new();
|
|
|
|
/// <summary>Monthly budget in whole currency units allocated to this channel</summary>
|
|
public decimal MonthlyBudget { get; set; }
|
|
|
|
/// <summary>Currency code</summary>
|
|
public string CurrencyCode { get; set; } = "USD";
|
|
|
|
/// <summary>Forecast period in days (default 30)</summary>
|
|
public int ForecastDays { get; set; } = 30;
|
|
|
|
/// <summary>Campaign type for bid simulation</summary>
|
|
public CampaignType CampaignType { get; set; } = CampaignType.Search;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Response from keyword forecast — monthly estimated metrics.
|
|
/// </summary>
|
|
public sealed class KeywordForecastResponse
|
|
{
|
|
public string Provider { get; set; } = "google";
|
|
public ForecastEstimates Monthly { get; set; } = new();
|
|
public ForecastMetrics Metrics { get; set; } = new();
|
|
public string Confidence { get; set; } = "none";
|
|
public string DataSource { get; set; } = "emulated";
|
|
}
|
|
|
|
public sealed class ForecastEstimates
|
|
{
|
|
public double Impressions { get; set; }
|
|
public double Clicks { get; set; }
|
|
public decimal Cost { get; set; }
|
|
public double Conversions { get; set; }
|
|
public double? Reach { get; set; }
|
|
}
|
|
|
|
public sealed class ForecastMetrics
|
|
{
|
|
public decimal AvgCpc { get; set; }
|
|
public decimal AvgCpm { get; set; }
|
|
public double Ctr { get; set; }
|
|
public decimal? EstimatedCpa { get; set; }
|
|
}
|
|
|
|
#endregion
|