Analytics API
Track website analytics including page views, sessions, events, and custom metrics.
📡 Endpoints
Create Analytics Entry
Endpoint: POST /api/analytics
Request Body:
{
"websiteId": "web_abc123",
"eventType": "page_view",
"page": "/projects",
"referrer": "https://google.com",
"userAgent": "Mozilla/5.0...",
"sessionId": "sess_xyz789",
"metadata": {
"loadTime": 1234,
"screenResolution": "1920x1080"
}
}Response: 201 Created
{
"success": true,
"data": {
"id": "ana_123",
"timestamp": "2025-12-18T10:00:00.000Z"
}
}Get Analytics
Endpoint: GET /api/analytics
Query Parameters:
?websiteId=web_abc123&startDate=2025-12-01&endDate=2025-12-31Response:
{
"success": true,
"data": {
"pageViews": 15420,
"uniqueVisitors": 3821,
"sessions": 4932,
"avgSessionDuration": 245,
"topPages": [
{ "page": "/", "views": 5420 },
{ "page": "/projects", "views": 3821 }
],
"referrers": [
{ "source": "google.com", "count": 1234 },
{ "source": "direct", "count": 987 }
]
}
}Get Analytics by Website
Endpoint: GET /api/analytics/website/:websiteId
Get Analytics by Date Range
Endpoint: GET /api/analytics/date-range
Query Parameters:
?startDate=2025-12-01&endDate=2025-12-31&websiteId=web_abc123📊 Analytics Schema
interface AnalyticsEntry {
id: string;
websiteId: string;
eventType: 'page_view' | 'click' | 'form_submit' | 'custom';
page: string;
referrer?: string;
userAgent: string;
sessionId: string;
userId?: string;
metadata?: Record<string, any>;
createdAt: Date;
}📈 Metrics Tracked
- Page Views: Total views per page
- Unique Visitors: De-duplicated visitors
- Sessions: User sessions with duration
- Bounce Rate: Single-page sessions
- Referrers: Traffic sources
- Device Types: Desktop, mobile, tablet
- Load Times: Page performance metrics