HomeGuidesAPI Reference
Submit Documentation FeedbackJoin Developer CommunityOptimizely GitHubOptimizely NuGetLog In


Events describe actions your [customers](🔗) perform or actions that result in an update to their customer record such as viewing your web page or visiting your store in New York.

## Composing events

Events are composed using a two-tier connection including a **type** and **action**. You can set additional metadata via fields on the event.

  • The event **type** is a categorical name associated with the event.

  • The event **action** is the activity a user did within that event type.

For example:

  • order and product would be event **types**

  • purchase, return or add_to_cart would be **actions**

At minimum, events require an event type and an identifier to associate the event with a customer. The `event()` method automatically passes the VUID (cookie ID) to ODP. You can include additional identifiers, like email or phone number which will associate that cooke ID with the other identifiers. Refer to [Overview of customer identity and resolution](🔗) to learn more.

Important

All ODP events are immutable, **meaning they cannot be changed once uploaded to ODP.**

## Standard events

A standard event is an event that has a predefined event type and action. Using standard events makes using ODP simpler for common use cases.

Reference and examples:

  • [ODP Web SDK](🔗)

  • [ODP REST API](🔗)

  • [ODP React Native SDK](🔗)

### Account event

Set the event type to `account` to track your users actions for login, logout, register and update.

`type``action`
accountlogin
accountlogout
accountregister
accountupdate

### Pageview event

Set the event type to `pageview` to track which pages your user visits.

`type``page`
pageview/products/12345

Note

The Web SDK will automatically populate the `page` field when event type is `pageview`.

### Wishlist

Set the event type to `product` to track a user adding or removing an item from a wishlist.

`type``action`
productadd_to_wishlist
productremove_from_wishlist

### Navigation events

Set the event type to `navigation` to track what your user's search.

`type``action``search_term`
navigationsearchcameras
navigationsort
navigationfilter

## Custom events

A custom event is where you create the event type and action and choose additional fields to use.

Custom events display on the customer profile (**Customers > Profiles**) in ODP.

Note

See how to [Create custom fields](🔗). You must select **Events** from the **Object Containing New Field** drop-down list.

### Example

`type``action``venue_name`
venuevisitedTD Garden

Reference:

  • [ODP Web SDK](🔗)

  • [ODP REST API](🔗)

  • [ODP React Native SDK](🔗)

## Active events

Warning

Use this only for the rare case where you have an event that is not triggered by a customer. Abuse of this functionality may result in a loss of data.

An active event is helpful for events like campaign sends, subscription and support ticket events generated by an agent where the customer was not the direct source of the event.

This field lets ODP determine if an event was active or not. If it is set to `true`, then that is considered customer activity. This means that **the event will impact the calculation of Monthly Active Users (MAUs)**. It also may exclude reporting from certain engagements, like Customer Lifecycle, when appropriate.

### Automatic active events

Caution

If the field is left blank, the default value is `true`, meaning it is assumed that the event is active.

Field Display NameField NameField TypeField Description
Is Active Event?active_eventTrue / False booleanIndicates whether this event should contribute to Monthly Active User (MAU) calculations. Is false if the event is not triggered directly by the customer. Examples include campaign sends and support tickets being closed. If not set, is set to “true”, making the event active.
`type``action`
customer_discovered
campaign
consent
reachability
list
emailany action not open or click
pushany action not open or click

Some events are set to `inactive` by default (`active_event` = `false`).

Note

If needed, a developer can override by including the field on the event payload.