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.


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.


### Pageview event

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



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.


### Navigation events

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


## 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.


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

### Example

venuevisitedTD Garden


  • [ODP Web SDK](🔗)

  • [ODP REST API](🔗)

  • [ODP React Native SDK](🔗)

## Active events


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


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.
emailany action not open or click
pushany action not open or click

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


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