Data sources
How this demo collects events. The browser snippet and mobile TypeScript client both call the same ingestion API.
Aurelia ยท web
Workspace id: web-demo
Primary goal: A user creates their first practice plan and invites a friend within the activation window.
Secondary goal: A user starts an Aurelia+ subscription.
Do not send passwords, tokens, payment details, or health information. The ingest layer redacts obvious secrets and honors a property denylist.
Browser snippet
<script src="/tracker.js"></script>
<script>
trailwise.page("home");
trailwise.track("cta_clicked", { location: "hero" });
trailwise.identify("user_123", { plan: "trial" });
</script>Supports track, identify, page, reset, and disable. Honors Do Not Track unless you opt out.
Mobile client shape
import { createMobileClient } from "@/lib/tracking/client";
const analytics = createMobileClient({ anonymousId: "anon_mobile_1" });
analytics.screen("Home");
analytics.track("session_completed", { durationSec: 60 });
analytics.identify("user_99", { goal: "sleep" });