feat: update analytics

This commit is contained in:
ivannoskov
2026-01-12 12:46:29 +03:00
parent 52a4425751
commit 1f36a074af
14 changed files with 1683 additions and 594 deletions

View File

@@ -291,18 +291,21 @@ export interface ViewsHistoryQueryParams extends PaginationParams {
export type DateGrouping = "day" | "week" | "month" | "DAY" | "WEEK" | "MONTH";
// Placements Analytics
// Placements Analytics (Projects Analytics)
export interface PlacementAnalyticsItem {
placement_id: string;
id: string; // UUID
project_id: string; // UUID
project_channel_title: string;
placement_channel_id: string; // UUID
placement_channel_title: string;
placement_channel_username: string | null;
creative_id: string; // UUID
creative_name: string;
placement_date: string;
cost: number | null;
placement_date: string; // ISO 8601
cost: number;
subscriptions_count: number;
views_count: number | null;
cps: number | null; // cost per subscription
cpm: number | null; // cost per mille views
views_count: number;
cpf: number;
cpm: number;
}
// Creatives Analytics (matches actual API response)
@@ -353,6 +356,42 @@ export interface AnalyticsQueryParams extends PaginationParams {
project_id?: string;
}
// Projects Analytics Chart API
export interface ProjectsAnalyticsMetrics {
total_cost: number;
purchases_count: number;
total_subscriptions: number;
total_views: number;
avg_cpf: number | null;
avg_cpm: number | null;
avg_post_cost: number | null;
clicks_count: number;
reach_volume: number;
total_discounts: number | null;
avg_discount_percent: number | null;
avg_conversion: number | null;
}
export interface ProjectsAnalyticsPeriod {
period: string;
period_label: string;
metrics: ProjectsAnalyticsMetrics;
}
export interface ProjectsAnalyticsResponse {
periods: ProjectsAnalyticsPeriod[];
totals: ProjectsAnalyticsMetrics;
}
export interface ProjectsAnalyticsQueryParams {
project_ids?: string[];
date_from?: string;
date_to?: string;
grouping: "day" | "week" | "month" | "quarter";
date_grouping: "purchase_date" | "link_date" | "placement_date";
metrics?: string[];
}
export interface SpendingAnalyticsQueryParams {
project_id?: string;
date_from?: string;