Jetzt Starten

EventTrack

Dokumentation

Installation

npm install @wru/eventtrack

Verwendung

SDK-Nutzung

import { EventTrack } from '@wru/eventtrack' const tracker = new EventTrack('dein-api-key') await tracker.log({ title: 'Titel des Events', })

Direkte API-Anfragen

await fetch('https://eventtrack.dev/api/v1/events', { method: 'POST', headers: { 'Content-Type': 'application/json', Authorization: 'Bearer dein-api-key', }, body: JSON.stringify({ title: 'Dein Eventtitel', }), })

Schema

{ title: string().min(3), category: string().min(3).optional(), notify: boolean().optional(), icon: hexColor().url().emoji().optional(), fields: record(string(), any()).optional(), groupBy: string().optional(), actions: array(object({ url: string().url(), label: string(), }).optional(), }

title

Der Titel des Ereignisses. Zum Beispiel „Benutzer hat sich registriert“. Muss mindestens 3 Zeichen lang sein.

category (optional)

Eine thematische Kategorie für das Ereignis, z. B. „auth“ für Anmeldungen oder „transactions“ für Käufe. Dient zur besseren Sortierung.

notify (optional)

Gibt an, ob dieses Ereignis eine Benachrichtigung auslösen soll (z. B. Email-Nachricht).

icon (optional)

Ein kleines Symbol für das Ereignis. Kann entweder ein Farbcode (hex), ein Emoji oder ein Link zu einem Bild sein.

groupBy (optional)

Gibt an, nach welchem Wert Events gruppiert werden sollen. Entweder nach der angegebenen Kategorie (groupBy: „category“) oder einem der Felder in „fields“.

fields (optional)

Hier können zusätzliche Informationen zum Ereignis gespeichert werden, z. B. eine Bestellnummer, der Preis oder der Benutzername. Als „value“ eines Feldes kann auch ein JSON-String übergeben werden.

actions (optional)

Eine Liste von Schaltflächen (Links), die beim Ereignis angezeigt werden können. Jede Schaltfläche hat einen Text und einen Link (z. B. „Rechnung anzeigen“ oder „Benutzerprofil öffnen“).

Beispiele

Benutzer hat sich registriert

await tracker.log({ title: 'Benutzer hat sich registriert', category: 'auth', fields: { id: '12345', email: 'tester@example.com', }, groupBy: 'email', })

Cronjob ausgeführt

await tracker.log({ title: 'Cronjob ausgeführt', category: 'cron', groupBy: 'category', })

Kauf abgeschlossen

await tracker.log({ title: 'Kauf abgeschlossen', category: 'transactions', fields: { orderId: '12345', amount: 99.99, currency: 'USD', productId: '12345', }, groupBy: 'productId', })