---
title: Event objects
slug: web-experimentation/docs/event-objects
docTags: 
createdAt: 2026-07-23T11:40:26.461Z
---

## Event object fields

Each event object has the following fields:

- **type** – `pageview`, `click`, or `custom`
- **name** – A page name, click event name, or custom event name. If you filter by name, you probably want to filter by type as well.
- **category** – A category name. All events with a given name and type will necessarily have the same category.
- **various tags** – All events from a given page will have those pages' tag values, although additional or overridden tag values may be present on custom events.
- **session\_index** – Identifier for the session in which the event occurred. The sessions are indexed such that the current session is 0, the previous session is 1, and each subsequent `session_index` is one more than the session that follows it (chronologically).
- **time** – The time at which the event occurred (number of milliseconds after January 1, 1970).

Each field can be a number, a Boolean, or a string.

Tag fields may also be undefined or some arbitrary JSON value, so be prepared for anything if you are retrieving tag values using the query API.

```json
// A single event
{
  "type": "pageview",
  "name": "full_product_page",
  "category": "product_detail",
  "tags": {
    "product_sku": "428977",
    "product_desc": "Clamshell Button 12mm",
    "product_cat": "button"
  },
  "session_index": 2,
  "time": 1447046231000
}
```

## Event object field identifiers

When defining a behavioral query, you may need to refer to a particular event field. You can do this using field identifiers.

For top-level fields like time, the identifier is an array containing the name of the field.

- **\["type"]** – Identifies the type field.
- **\["name"]** – Identifies the name field.
- **\["category"]** – Identifies the category field.
- **\["time"]** – Identifies the time field.

For tag fields, the identifier is an array containing the string "tags" and then the name of the tag.

- **\["tags", "material"]** – Identifies the material tag.
- **\["tags", "color"]** – Identifies the color tag.
- **\["tags", "revenue"]** – Identifies the special revenue tag. Its value is extracted in Optimizely's analytics backend and used to compute advanced statistics.

When filtering, you can also refer to an event's age. `age` is not a real event field, so it is never actually included in event objects (compare with time). \["age"] identifies the amount of time since an event occurred (number of milliseconds before the time at which the query is executed).
