search console SEO ableitungen

This commit is contained in:
2026-03-23 19:01:52 -05:00
parent d47108d27c
commit e6b19e7a1c
150 changed files with 26257 additions and 25909 deletions

View File

@@ -1,50 +1,50 @@
export type TrendType = 'up' | 'down' | 'flat';
export interface TrendData {
trend: TrendType;
percentage: number;
isNegative?: boolean;
isNew?: boolean; // When growing from 0 previous data
}
export interface AnalyticsSummary {
totalScans: number;
uniqueScans: number;
avgScansPerQR: number;
mobilePercentage: number;
topCountry: string;
topCountryPercentage: number;
scansTrend?: TrendData;
avgScansTrend?: TrendData;
comparisonPeriod: 'week' | 'month';
comparisonDays: number;
}
export interface CountryStats {
country: string;
count: number;
percentage: number;
trend: TrendType;
trendPercentage: number;
isNew?: boolean;
}
export interface QRPerformance {
id: string;
title: string;
type: string;
totalScans: number;
uniqueScans: number;
conversion: number;
trend: TrendType;
trendPercentage: number;
isNew?: boolean;
}
export interface AnalyticsResponse {
summary: AnalyticsSummary;
deviceStats: Record<string, number>;
countryStats: CountryStats[];
dailyScans: Record<string, number>;
qrPerformance: QRPerformance[];
}
export type TrendType = 'up' | 'down' | 'flat';
export interface TrendData {
trend: TrendType;
percentage: number;
isNegative?: boolean;
isNew?: boolean; // When growing from 0 previous data
}
export interface AnalyticsSummary {
totalScans: number;
uniqueScans: number;
avgScansPerQR: number;
mobilePercentage: number;
topCountry: string;
topCountryPercentage: number;
scansTrend?: TrendData;
avgScansTrend?: TrendData;
comparisonPeriod: 'week' | 'month';
comparisonDays: number;
}
export interface CountryStats {
country: string;
count: number;
percentage: number;
trend: TrendType;
trendPercentage: number;
isNew?: boolean;
}
export interface QRPerformance {
id: string;
title: string;
type: string;
totalScans: number;
uniqueScans: number;
conversion: number;
trend: TrendType;
trendPercentage: number;
isNew?: boolean;
}
export interface AnalyticsResponse {
summary: AnalyticsSummary;
deviceStats: Record<string, number>;
countryStats: CountryStats[];
dailyScans: Record<string, number>;
qrPerformance: QRPerformance[];
}