cosmic-analytics
Version:
Lightweight analytics for Cosmic projects
70 lines (68 loc) • 1.56 kB
TypeScript
interface AnalyticsConfig {
apiEndpoint?: string;
debug?: boolean;
enabled?: boolean;
respectDoNotTrack?: boolean;
projectId?: string;
sendInDevelopment?: boolean;
isDevelopment?: boolean;
}
interface PageViewEvent {
event: 'pageview';
projectId: string;
sessionId: string;
url: string;
title: string;
referrer: string;
timestamp: number;
screenResolution?: string;
viewport?: string;
language?: string;
userAgent?: string;
}
interface PageExitEvent {
event: 'pageexit';
projectId: string;
sessionId: string;
url: string;
duration: number;
timestamp: number;
}
type AnalyticsEvent = PageViewEvent | PageExitEvent;
interface DeviceInfo {
type: 'desktop' | 'mobile' | 'tablet';
os: string;
browser: string;
browserVersion: string;
}
interface AnalyticsMetrics {
visitors: number;
pageViews: number;
bounceRate: number;
pages: Array<{
path: string;
views: number;
}>;
referrers: Array<{
source: string;
count: number;
}>;
countries: Array<{
code: string;
name: string;
count: number;
}>;
devices: Array<{
type: string;
count: number;
}>;
browsers: Array<{
name: string;
count: number;
}>;
operatingSystems: Array<{
name: string;
count: number;
}>;
}
export type { AnalyticsConfig as A, DeviceInfo as D, PageViewEvent as P, AnalyticsEvent as a, PageExitEvent as b, AnalyticsMetrics as c };