Files
Emailsorter/server/routes/analytics.mjs
ANDJ abf761db07 Email Sorter Beta
Ich habe soweit automatisiert the Emails sortieren aber ich muss noch schauen was es fur bugs es gibt wenn die app online  ist deswegen wurde ich mit diesen Commit die website veroffentlichen obwohjl es sein konnte  das es noch nicht fertig ist und verkaufs bereit
2026-01-22 19:32:12 +01:00

70 lines
1.6 KiB
JavaScript

/**
* Analytics Routes
* Track events and conversions for marketing analytics
*/
import express from 'express'
import { asyncHandler } from '../middleware/errorHandler.mjs'
import { respond } from '../utils/response.mjs'
const router = express.Router()
/**
* POST /api/analytics/track
* Track analytics events (page views, conversions, etc.)
*
* Body:
* {
* type: 'page_view' | 'signup' | 'trial_start' | 'purchase' | 'email_connected',
* userId?: string,
* tracking?: {
* utm_source?: string,
* utm_medium?: string,
* utm_campaign?: string,
* utm_term?: string,
* utm_content?: string,
* },
* metadata?: Record<string, any>,
* timestamp?: string,
* page?: string,
* referrer?: string,
* }
*/
router.post('/track', asyncHandler(async (req, res) => {
const {
type,
userId,
tracking,
metadata,
timestamp,
page,
referrer,
} = req.body
// Log analytics event (in production, send to analytics service)
if (process.env.NODE_ENV === 'development') {
console.log('📊 Analytics Event:', {
type,
userId,
tracking,
metadata,
timestamp,
page,
referrer,
})
}
// TODO: Store in database for analytics dashboard
// For now, just log to console
// In production, you might want to:
// - Store in database
// - Send to Google Analytics / Plausible / etc.
// - Send to Mixpanel / Amplitude
// - Log to external analytics service
// Return success (client doesn't need to wait)
respond.success(res, { received: true })
}))
export default router