Send Events and Properties

You can send events and events' properties to UXCam to gather more insights about your users' behavior. It will help you to:



  • Create more granular funnels thanks to the combination of Events and Screens.
  • Follow your user journey closely by analyzing all the relevant steps.
  • Easily identify errors in your user journey or conversion process.
  • Track each step of your registration process to easily identify drop-offs.
  • Measure and analyze the adoption of new features.

E.g You have an app to book movie tickets. You’re sending the Event ‘ticket_booked,’ you can then attach several properties to the event to provide more context to that event, such as: ‘Movie_Category’, ‘Movie_Name’, ‘Movie_Time’, ‘Quantity’, ‘Price’, etc.

Need some inspiration? Check this article to find some Events ideas →

All the events will be attached to the respective sessions and users; therefore, you can easily use filters to find sessions or users that triggered a specific event. What’s more, you can analyze your events with Event Analytics or use them to build funnels.

📘

Note: UXCam automatically detects UI Freezes and Rage taps and logs them as an event; for example, Rage taps are registered as "Rage Tap" events.

Log Events

Log an event into the timeline along with custom properties

logEvent(_ eventName: String)
logEvent(_ eventName: String, withProperties properties: [String: Any]?)
    
//Example
UXCam.logEvent("purchased")
UXCam.logEvent("purchased",withProperties: [
    "size": 7,
    "brand": "Nike"
])
logEvent(String eventName)
logEvent(String eventName, Map properties)
logEvent(String eventName, JSONObject properties)

//Example
UXCam.logEvent("purchased");
//With properties
final Map<String, String> properties = new HashMap<String!, Any!>();
properties.put("size", "7");
properties.put("brand", "Nike");
UXCam.logEvent("purchased", properties);
RNUxcam.logEvent: (eventName: string, properties?: any) => void

//Example
RNUxcam.logEvent("purchased");
RNUxcam.logEvent("purchased", {
  "size": 7,
  "brand": "Nike"
});
logEvent(String eventName)
logEventWithProperties(String eventName, Map<String, dynamic> properties)

//Example
FlutterUxcam.logEvent("purchased");
FlutterUxcam.logEventWithProperties("purchased", {
    "size": 7,
    "brand": "Nike"
});
void UXCam.LogEvent(string eventName)
void UXCam.LogEvent(string eventName, JSONObject properties) //Android
void UXCam.LogEvent(string eventName, NSObject properties) //iOS
UXCam.logEvent: (eventName: string) => void
UXCam.logEventWithProperties: (eventName: string, properties: any) => void

//Example
UXCam.logEvent("purchased")
UXCam.logEventWithProperties("purchased", {
    "size": 7,
    "brand": "Nike"
});

📘

The API parameters are:
eventName: A tag to attach to the session recording at the current time
properties: (Optional) A Dictionary of properties to associate with this event. Only number and string property types are supported.

📘

Tips on Sending Dates as Event Properties:

In terms of the date formats, there are many options that will work, but generally we would recommend to use the UTC time format (‘YYYY-MM-DDTHH:MM:SSZ’) or either of the following options:
‘YYYY-MM-DD HH-MM-SS’
‘YYYY/MM/DD HH-MM-SS’
‘YYYY-MM-DD’
‘YYYY/MM/DD’
‘YYYY’.
The separators you use don’t matter as long as they are consistent. For instance if you compare ‘YYYY/MM’ to ‘YYYY-MM’ you will get sensible results.
Alternatively, you can just attach the Unix time (seconds since 1970), and then use simple integer comparison https://www.utctime.net/utc-timestamp which will work already.