Skip to content

@web-engine-dev/telemetry

Game analytics and event tracking for web-engine-dev.

Features

  • Event Tracking: Custom game events
  • Session Tracking: Player sessions
  • Performance Metrics: Frame time, memory
  • Error Tracking: Crash and error reports
  • Funnels: Conversion tracking
  • A/B Testing: Experiment integration

Installation

bash
npm install @web-engine-dev/telemetry
# or
pnpm add @web-engine-dev/telemetry

Quick Start

typescript
import { Telemetry } from '@web-engine-dev/telemetry';

// Initialize
const telemetry = new Telemetry({
  apiKey: 'your-api-key',
  gameId: 'my-game',
  enabled: true,
});

// Track events
telemetry.track('level_start', { level: 1 });
telemetry.track('item_collected', { item: 'coin', value: 10 });
telemetry.track('level_complete', { level: 1, time: 120 });

// Track errors
telemetry.trackError(error, { context: 'loading' });

// End session
telemetry.endSession();

API Overview

Event Tracking

typescript
// Simple event
telemetry.track('button_click');

// Event with properties
telemetry.track('purchase', {
  item: 'sword',
  price: 100,
  currency: 'gold',
});

// Timed event
const timer = telemetry.startTimer('level_duration');
// ... level gameplay ...
timer.stop({ level: 1, score: 5000 });

Session Management

typescript
// Session starts automatically

// Get session info
const session = telemetry.getSession();
console.log(session.id);
console.log(session.startTime);
console.log(session.duration);

// Set user properties
telemetry.setUser({
  id: userId,
  level: playerLevel,
  isPremium: true,
});

// End session
telemetry.endSession();

Performance Metrics

typescript
// Automatic metrics
telemetry.enablePerformanceTracking();

// Manual metrics
telemetry.trackPerformance({
  fps: averageFps,
  frameTime: avgFrameTime,
  memoryUsed: memoryMB,
  drawCalls: drawCallCount,
});

Error Tracking

typescript
// Track errors
try {
  riskyOperation();
} catch (error) {
  telemetry.trackError(error, {
    context: 'level_loading',
    level: currentLevel,
  });
}

// Automatic error tracking
telemetry.enableErrorTracking();

Funnels

typescript
// Track funnel steps
telemetry.trackFunnel('onboarding', 'step1_welcome');
telemetry.trackFunnel('onboarding', 'step2_tutorial');
telemetry.trackFunnel('onboarding', 'step3_play');
telemetry.trackFunnel('onboarding', 'complete');

Privacy

typescript
// Opt out
telemetry.setEnabled(false);

// Check status
if (telemetry.isEnabled()) {
  // ...
}

// Clear stored data
telemetry.clearData();

Proprietary software. All rights reserved.