Skip to main content

Track Events

The setEventProperties and setEventNameProperties methods are used to send custom events to Zeotap along with specified event properties and name.

Syntax​

setEventNameProperties(eventName, callback)
setEventProperties(eventName, eventProperties, callback)

Parameters​

ParameterTypeRequiredDescription
eventNameStringYesThe name of the event to track
eventPropertiesObjectNoKey-value pairs of event properties
callbackFunctionNoCallback function to handle response

Usage Examples​

Event Name Only​

If you only need to track the event name without additional properties, use setEventNameProperties:

import { setEventNameProperties } from 'zeo-collect';

// Track event with name only
setEventNameProperties("app_opened");

// With callback
setEventNameProperties("user_logout", (response) => {
console.log("Logout event tracked:", response);
});

The payload with event name only:

Event name only in payload
    "events": [
{
"event": {
"eventName": "app_opened",
"eventTimestamp": 1745959356443
},
"user": {
"zi": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
"page": { /* ... */ },
"version": "1.3.8"
}
]

Basic Event Tracking​

import { setEventProperties } from 'zeo-collect';

// Track a simple event with properties
setEventProperties("product_viewed", {
product_name: "Wireless Headphones",
category: "Electronics",
price: 99.99,
currency: "USD"
});

The payload with event name and properties that passed to the function:

Event with properties in payload
    "events": [
{
"event": {
"eventName": "product_viewed",
"product_name": "Wireless Headphones",
"category": "Electronics",
"price": 99.99,
"currency": "USD",
"eventTimestamp": 1745959356443
},
"user": {
"zi": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
},
"page": { /* ... */ },
"version": "1.3.8"
}
]

Event with Callback​

import { setEventProperties } from 'zeo-collect';

setEventProperties("purchase_completed", {
order_id: "ORD-12345",
total_amount: 249.99,
payment_method: "credit_card",
items_count: 3
}, (response) => {
console.log("Event tracked:", response);
// Handle success/error response
});

Best Practices​

Event Naming​

  • Use descriptive, snake_case names: product_viewed, checkout_completed
  • Be consistent across your application
  • Avoid special characters and spaces

Property Structure​

// Good: Flat structure with descriptive keys
{
"product_id": "PROD-123",
"product_name": "Wireless Mouse",
"category": "Electronics",
"price": 29.99
}

// Avoid: Deeply nested objects
{
"product": {
"details": {
"info": {
"name": "Wireless Mouse"
}
}
}
}

Error Handling​

Common issues and solutions:

  • Invalid event name: Ensure event names are strings and follow naming conventions
  • Large payloads: Limit property object size to avoid network issues
  • Network failures: Implement callback error handling for critical events

For more examples and advanced usage patterns, see our Examples Guide.