# NestJS Backend Integration

Server-side analytics tracking for NestJS applications.

## Use Cases

- Track events from server-side rendered pages
- Track API events (signups, purchases, etc.)
- Add analytics context via interceptors
- Automatic request tracking with decorators

## Files

- `analytics.module.ts` - Module setup
- `analytics.interceptor.ts` - Automatic request tracking
- `track-analytics.decorator.ts` - Method-level tracking
- `user.controller.ts` - Example controller with tracking
- `order.service.ts` - Example service with tracking

## Key Concepts

### 1. Backend Client

The `BackendAnalyticsClient` is designed for server-side use:
- Generates its own session IDs (from headers or fresh)
- No browser APIs required
- Batch processing for performance

### 2. Interceptor vs Decorator

- **Interceptor**: Automatic tracking on all routes (or specific ones)
- **Decorator**: Explicit tracking on specific methods

### 3. Request Context

Pass request headers to extract:
- Session ID (`x-session-id` header from client)
- User ID (from auth middleware)
- IP address (for geolocation)
- User agent (for device detection)
