Custom events
Pageviews tell you where users go. Events tell you what they do. The Tracera event model is intentionally small and intentionally PII-resistant.
Send an event
tracera('event', 'signup_completed'); // simplest form
tracera('event', 'signup_completed', { plan: 'pro' }); // with a label
tracera('event', 'purchase', { plan: 'pro', value: 49 }); // with a numeric value
Naming convention
Event names are snake_case, action-oriented past tense:
signup_completed(notsignup, notSignupComplete)file_uploadedbilling_changedinvite_sent
This makes them sortable in the dashboard and predictable in funnel-builders.
Properties
The third argument is a flat object of string/number/boolean. Avoid nesting; avoid sending PII (names, emails, plain IDs). Anything that uniquely identifies a person should be a hash or omitted.
// Good
tracera('event', 'plan_upgraded', { from: 'starter', to: 'growth', annual: true });
// Bad — PII
tracera('event', 'plan_upgraded', { email: 'jane@example.com', user_id: 1483 });
Values
If a property is numeric and named value, you'll see a sum on the dashboard. Use it for revenue, points, anything you want summed.
From the server
Backends can hit the ingest endpoint directly. See Ingest API for the wire format and example curl calls.