Send Custom Events

🎯 Event Tracking with UXCam

Screens tell you where users go; events show what they do.
With a handful of well‑chosen events (5‑15 is ideal) plus descriptive properties, you can build funnels, spot drop‑offs, and debug support tickets in minutes.


Choose the Right Moments to Track

Event typeWhy tag it?Typical name examples
Flow milestonesBuild conversion funnelsSignup_Started, Signup_Completed
Key feature useMeasure adoptionVideo_Export, AR_Scan
Errors / cancelsQuantify frictionPayment_Failed, Upload_Cancelled
A/B exposureCompare cohortsVariant_Shown_A

Tip: Too many events dilute insight and bloat dashboards—focus on what drives decisions.


Send a Basic Event

UXCam.logEvent("Signup_Started");
UXCam.logEvent("Signup_Started")

Best‑practice

  • Use PascalCase or snake_case.
  • Store names as constants to prevent typos.
  • Remember that names are case‑sensitive: signup_startedSignup_Started.

Add Context with Properties

Attach up to 20 key‑value pairs to any event for richer analysis.

HashMap<String, Object> props = new HashMap<>();
props.put("plan",        "pro");
props.put("source",      "google_ads");
props.put("price_cents", 1499);

UXCam.logEvent("Payment_Succeeded", props);
RuleReason
Keys are case‑sensitivePlan and plan create separate properties.
Values must be String or NumberSerialize complex objects to JSON if needed.
Avoid PIIUse hashed values or IDs to stay GDPR‑safe.
Stop at 20 propertiesExtras are discarded and a warning is logged.

Automatic Events (No Code Needed)

Auto eventFires when …
Rage TapUser taps ≥ 3 times within 300 ms at the same coordinates
UI FreezeMain thread blocked for ≥ 2 s

Use these alongside your custom events for a complete picture.
More details in the UXCam Help Center: Rage Tap and UI Freeze articles.


Verify in 3 Minutes

  1. Trigger the event in a debug build and wait for upload.
  2. Open Dashboard → Events.
  3. Confirm the new event and its properties appear.
  4. Play a session replay—the event pin should align with the exact moment.

Troubleshooting Cheat‑Sheet

IssueLikely causeFix
Event missingName typo or called before SDK startUse constants; ensure call occurs after UXCam.startWithConfiguration()
Property not shownSent > 20 propsTrim to 20; bundle extras in one JSON string
Duplicate eventsCalled inside loops / retriesAdd guards (e.g., send once per session)
Mixed‑case duplicatesSignup_started vs Signup_StartedStandardise naming casing

QA Checklist

  • All custom events appear in Events and on session replays.
  • Properties display correct values, types, and casing.
  • No unwanted duplicates (case or spelling).
  • Event pins align with the correct second in replay.
  • No PII present in names or properties.