feat: improved analytics

This commit is contained in:
2026-02-09 23:47:56 +01:00
parent 2052d4c136
commit eb258b7780
5 changed files with 84 additions and 14 deletions

View File

@@ -10,6 +10,23 @@ import { getServerAppServices } from '@/lib/services/create-services.server';
export async function sendContactFormAction(formData: FormData) {
const services = getServerAppServices();
const logger = services.logger.child({ action: 'sendContactFormAction' });
// Set analytics context from request headers for high-fidelity server-side tracking
const { headers } = await import('next/headers');
const requestHeaders = await headers();
if ('setServerContext' in services.analytics) {
(services.analytics as any).setServerContext({
userAgent: requestHeaders.get('user-agent') || undefined,
language: requestHeaders.get('accept-language')?.split(',')[0] || undefined,
referrer: requestHeaders.get('referer') || undefined,
ip: requestHeaders.get('x-forwarded-for')?.split(',')[0] || undefined,
});
}
// Track attempt
services.analytics.track('contact-form-attempt');
const name = formData.get('name') as string;
const email = formData.get('email') as string;
const message = formData.get('message') as string;
@@ -110,6 +127,11 @@ export async function sendContactFormAction(formData: FormData) {
priority: 5,
});
// Track success
services.analytics.track('contact-form-success', {
is_product_request: !!productName,
});
return { success: true };
} catch (error) {
const errorMsg = error instanceof Error ? error.message : String(error);