---
title: Fields reference (pageview) - APIs
description: Data Export pageview fields reference
lastUpdated: 12 June 2025
source_url:
  html: https://docs.contentsquare.com/en/api/export/fields-reference-pageview/
  md: https://docs.contentsquare.com/en/api/export/fields-reference-pageview/index.md
---

## Errors

### `errors.message`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of descriptions of the JavaScript error events. Each event has the same index in all `errors.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['Uncaught Error: Mismatched anonymous define() module...', 'Uncaught TypeError: Cannot read properties of undefined'] |

### `errors.error_time`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of timestamps of the JavaScript error events. Each event has the same index in all `errors.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['2020-07-11 18:55','2020-07-11 18:55'] |

### `errors.filename`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of URLs of the files where the JavaScript error events occurred. Each event has the same index in all `errors.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['https\://a.site.com/static/scripts/lib1.js', 'https\://b.site.com/static/scripts/lib2.js'] |

### `errors.line_number`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of line numbers in the files where the JavaScript error events occurred. Each event has the same index in all `errors.*` fields.

| Data type | Example value |
| - | - |
| Array(Number) | \[2, 1998] |

### `errors.col_number`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of column numbers in the files where the JavaScript error events occurred. Each event has the same index in all `errors.*` fields.

| Data type | Example value |
| - | - |
| Array(Number) | \[55, 44] |

### `errors.group_id`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of Group IDs of the JavaScript error events, used to regroup similar errors together in Contentsquare. Each event has the same index in all `errors.*` fields.

| Data type | Example value |
| - | - |
| Array(Number) | \[2406037528566246307, 17923195893144918451] |

### `errors_api.url`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of URL endpoints of the API error events. Each event has the same index in all `errors_api.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['https\://some.site.com/login', 'https\://someother.site.com/login'] |

### `errors_api.method`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of HTTP methods of the API error events. Each event has the same index in all `errors_api.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['GET', 'POST'] |

### `errors_api.status_code`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of HTTP status codes of the API error events. Each event has the same index in all `errors_api.*` fields.

| Data type | Example value |
| - | - |
| Array(Number) | \[500, 501] |

### `errors_api.request_time`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of the API call start timestamps of the API error events. Each event has the same index in all `errors_api.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['2023-01-19 01:50', '2023-01-21 01:50'] |

### `errors_api.group_id`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of Group IDs of the API error events, used to regroup similar errors together in Contentsquare. Each event has the same index in all `errors_api.*` fields.

| Data type | Example value |
| - | - |
| Array(Number) | \[2406037528566246307, 17923195893144918451] |

### `custom_errors.message`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of descriptions of the custom error events. Each event has the same index in all `custom_errors.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['An error happened', 'Another error happened'] |

### `custom_errors.error_time`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of timestamps of the custom error events. Each event has the same index in all `custom_errors.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['2023-01-19 01:50', '2023-01-20 01:50'] |

### `custom_errors.attributes`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of key/value pairs of custom tags of the custom error events. Each event can have a list of several key/value pairs. Each event has the same index in all `custom_errors.*` fields.

| Data type | Example value |
| - | - |
| Array(Array(String)) | \[\[('severity', 'high'), ('category', 'login')]] |

### `custom_errors.group_id`

Note

This field is only available for [DEM ↗](https://contentsquare.com/platform/digital-experience-monitoring/) customers.\
Contact your CSM if you don't have access to the Errors module.

The list of Group IDs of the custom error events, used to regroup similar errors together in Contentsquare. Each event has the same index in all `custom_errors.*` fields.

| Data type | Example value |
| - | - |
| Array(Number) | \[2406037528566246307, 17923195893144918451] |

## Events

### `has_all_interaction_events`

If we got all kinds of events (clicks, mouse moves etc.) on the page, value is 1, else 0.

| Data type | Example value |
| - | - |
| Integer | 0 |

### `page_events`

List of page events.

| Data type | Example value |
| - | - |
| Array(String) | \['Config: Release\_20201112','FB\_MD\_Feedback Submitted'] |

### `raw_clicks.event_time`

The list of the dates and UTC times of the click events. Each event has the same index in all `raw_click.*` fields.

| Data type | Example value |
| - | - |
| String | \['2020-07-26 05:53', '2020-07-26 05:54'] |

### `raw_clicks.event_type`

The list of the raw events types. Can be either:

* `5`: CLICK
* `10`: CHANGE
* `11`: FOCUS
* `12`: BLUR

Each event has the same index in all `raw_click.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[5, 11] |

### `raw_clicks.relative_time_ms`

Number of milliseconds between the beginning of the view and each of the raw events. Each event has the same index in all `raw_click.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[3981, 1782] |

### `raw_clicks.target_blank_field`

Whether the event was an interaction with a blank field in a form. Can be either:

* `0`: Not applicable
* `1`: False
* `2`: True

Each event has the same index in all `raw_click.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[1, 2] |

### `raw_clicks.target_path`

The list of the paths that were clicked. Each event has the same index in all `raw_click.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['html:eq(0)>form:eq(0)>div:eq(0)>button:eq(0)', 'html:eq(0)>button:eq(0)'] |

### `targets_clicks.path`

The list of the paths of the target zone. Each target has the same index in all `targets_clicks.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['html:eq(0)>form:eq(0)>div:eq(0)>button:eq(0)', 'html:eq(0)>button:eq(0)'] |

### `targets_clicks.sum`

The number of times the target was clicked on (aggregation of `raw_clicks`). Each target has the same index in all `targets_clicks.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[2, 1] |

### `targets_clicks.time_before_msec`

The delay between the loading of the page and the time the user clicked on the target for the first time (in milliseconds). Each target has the same index in all `targets_clicks.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[779, 391] |

### `targets_clicks.time_between_last_hover_and_first_click`

Time before last hover and first select the target (in milliseconds). Each target has the same index in all `targets_clicks.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[13533, 30791] |

### `targets_focus.path`

List of the raw path of the targets. Each target has the same index in all `targets_focus.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['html:eq(0)>form:eq(0)>div:eq(0)>button:eq(0)', 'html:eq(0)>button:eq(0)'] |

### `targets_focus.sum`

List of the number of times the target was focused on. Each target has the same index in all `targets_focus.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[2, 5] |

### `targets_focus.time_before_msec`

List of times before first focus on a zone (in milliseconds). Each target has the same index in all `targets_focus.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[13533, 30791] |

### `targets_hover.path`

List of the raw path of the targets. Each target has the same index in all `targets_hover.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['html:eq(0)>form:eq(0)>div:eq(0)>button:eq(0)', 'html:eq(0)>button:eq(0)'] |

### `targets_hover.sum`

List of the number of times the target was hovered on. Each target has the same index in all `targets_hover.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[2, 5] |

### `targets_hover.sum_times`

List of the total time the target was hovered on (in milliseconds). Each target has the same index in all `targets_hover.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[2563 ,252] |

### `targets_hover.time_before_msec`

List of times before first hover on a zone (in milliseconds). Each target has the same index in all `targets_hover.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[13533, 30791] |

## Frustration

Those fields are only exportable for projects with access to the frustration score in Contentsquare.

### `any_api_error_ind`

A normalized score between 0 and 1 to indicate whether any API error occurred on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 0.27 |

### `any_js_error_ind`

A normalized score between 0 and 1 to indicate whether any JavaScript error occurred on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 0.27 |

### `api_error_after_click_ind`

A normalized score between 0 and 2 to indicate whether API errors occurred after some clicks. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 0.27 |

### `excessive_hovers_ind`

A normalized score between 0 and 2 to indicate whether excessive hovers occurred on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 1.64 |

### `frustration_score`

A normalized score between 0 and 100 computed based on all other frustration indicators, to express an overall frustration level on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 0.27 |

### `is_watchable`

Whether the page is considered watchable (1) or not (0). Only pages that are watchable have a frustration score. To be considered watchable, the page view must respect the following conditions:

* Be part of a collected session ([`is_recorded`](#is_recorded) = 1)
* Its duration should be at least 2 seconds
* There should be at least 2 clicks on the page

This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Integer | 0 |

### `js_error_after_click_ind`

A normalized score between 0 and 2 to indicate whether any JavaScript error occurred after clicks on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 1.64 |

### `loading_time_ind`

A normalized score between 0 and 1 to indicate whether loading time was slow on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 0.27 |

### `multiple_button_interaction_ind`

A normalized score between 0 and 2 to indicate multiple interactions on button targets on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 1.64 |

### `multiple_field_interaction_ind`

A normalized score between 0 and 2 to indicate multiple interactions on field targets on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 1.64 |

### `multiple_used_targets_ind`

A normalized score between 0 and 1 to indicate multiple interactions on targets on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 0.27 |

### `no_clicks_on_page_ind`

A normalized score between 0 and 1 to indicate low activity on the page. This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 0.27 |

### `rage_click_all_targets_ind`

A normalized score between 0 and 2 to indicate rage clicks (multiple clicks in a short time frame). This field is only exportable for projects with access to the frustration score in Contentsquare.

| Data type | Example value |
| - | - |
| Float | 1.64 |

## Geography

### `city`

City associated to the user.

| Data type | Example value |
| - | - |
| String | Paris |

### `country_code`

Country associated to the user.

| Data type | Example value |
| - | - |
| String | FR |

### `language`

Language associated to the user.

| Data type | Example value |
| - | - |
| String | fr |

## Identifiers

### `project_id`

Unique project identifier.

| Data type | Example value |
| - | - |
| Integer | 42 |

### `user_id`

Unique user identifier. This is the hash of the `user_id_unashed` identifier.

| Data type | Example value |
| - | - |
| Integer | 5066017809039612144 |

### `user_id_unhashed`

Unique user identifier. User id stored in a cookie named `_cs_id`, which has a lifetime of 13 months.

Note

This field will be empty for dates prior to September, 5th 2023, as this identifier was not collected before that date.

| Data type | Example value |
| - | - |
| String | ae267-6g87D-88Nn6od |

## Mobile (CS App)

### `app_events.event_name`

List of the app event names. Each app event has the same index in all `app_events.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['appStartEvent', 'appShowEvent', 'appHideEvent'] |

### `app_events.event_time`

List of dates and UTC time of the app events. Each app event has the same index in all `app_events.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['2020-06-24 17:07', '2020-06-24 17:07', '2020-06-24 17:08'] |

### `app_events.event_type`

List of the app events types related to the session:

* `0`: app start
* `1`: app show
* `2`: app hide

Each app event has the same index in all `app_events.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[0, 1, 2] |

### `app_events.view_number`

The pageview number related to the event. Each app event has the same index in all `app_events.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[0, 0, 1] |

### `app_version`

The client app version.

| Data type | Example value |
| - | - |
| String | 10.8.2.0 |

### `density`

Pixel density measured in Pixels Per Inch (PPI) on the display.

| Data type | Example value |
| - | - |
| Float | 38912.312 |

### `manufacturer`

The mobile device manufacturer.

| Data type | Example value |
| - | - |
| String | HUAWEI |

### `model`

The mobile device model.

| Data type | Example value |
| - | - |
| String | SNE-LX1 |

### `os_version`

Version of Android or iOS used by the visitor (iOS 13.1. or iOS 13.2 etc.)

| Data type | Example value |
| - | - |
| Integer | 2251799813685248 |

### `screen_name`

The screen name.

| Data type | Example value |
| - | - |
| String | Showroom |

### `targets_drag.finger_direction`

List of finger directions related to the swipe events:

* `1`: up
* `2`: down
* `3`: left
* `4`: right
* `5`: complex

Each target has the same index in all `targets_drag.*` fields.

| Data type | Example value |
| - | - |
| List(Integer) | \[2, 5] |

### `targets_drag.sum`

The number of times the target was swiped.

| Data type | Example value |
| - | - |
| List(Integer) | \[3, 1] |

Each target has the same index in all `targets_drag.*` fields.

### `targets_drag_and_flick.finger_direction`

List of finger directions related to the swipe or fast swipe events:

* `1`: up
* `2`: down
* `3`: left
* `4`: right
* `5`: complex

Each target has the same index in all `targets_drag_and_flick.*` fields.

| Data type | Example value |
| - | - |
| List(Integer) | \[2, 5] |

### `targets_drag_and_flick.orientation`

List of orientations related to the swipe or fast swipe events:

* `0`: portrait
* `1`: landscape

Each target has the same index in all `targets_drag_and_flick.*` fields.

| Data type | Example value |
| - | - |
| List(Integer) | \[1, 0] |

### `targets_drag_and_flick.sum`

Each target has the same index in all `targets_drag_and_flick.*` fields.

| Data type | Example value |
| - | - |
| List(Integer) | \[3, 1] |

Each value has the same array index as their corresponding `targets_drag_and_flick.finger_direction` and `targets_drag_and_flick.orientation`.

### `targets_flick.finger_direction`

List of finger directions related to the fast swiped events:

* `1`: up
* `2`: down
* `3`: left
* `4`: right
* `5`: complex

Each target has the same index in all `targets_flick.*` fields.

| Data type | Example value |
| - | - |
| List(Integer) | \[2, 5] |

### `targets_flick.sum`

The number of times the target was fast swiped.

| Data type | Example value |
| - | - |
| List(Integer) | \[3, 1] |

Each target has the same index in all `targets_flick.*` fields.

### `targets_long_press.sum`

List of the number of times the target was long press (a target is considered long pressed after at least 500ms).

| Data type | Example value |
| - | - |
| List(Integer) | \[3, 1] |

### `targets_tap.responsive`

List of values equal to 1 if the App reacted to the tap, else 0. Each target has the same index in all `targets_tap.*` fields.

| Data type | Example value |
| - | - |
| Aray(Integer) | \[0, 1] |

### `targets_tap.sum`

List of the number of times the target was tapped. Each target has the same index in all `targets_tap.*` fields.

| Data type | Example value |
| - | - |
| Aray(Integer) | \[3, 1] |

### `targets_tap.time_before_msec`

List of delays between the loading of the page and the time the user taps on the target for the first time (in milliseconds). Each target has the same index in all `targets_tap.*` fields.

| Data type | Example value |
| - | - |
| Aray(Integer) | \[31029, 26496] |

## Page

### `custom_vars_view.key`

Array of keys of custom variables extracted from the website datalayer. Each variable has the same index in all `custom_vars_view.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['pageType', 'page\_error', 'user\_logged'] |

### `custom_vars_view.position`

Array of positions of custom variables extracted from the website datalayer. Each variable has the same index in all `custom_vars_view.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[1, 7, 16] |

### `custom_vars_view.value`

Array of values of custom variables extracted from the website datalayer. Each variable has the same index in all `custom_vars_view.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['catalogsearch\_result\_index', '200', 'not\_logged'] |

### `document_height`

Page height in pixels.

| Data type | Example value |
| - | - |
| Integer | 4326 |

### `document_width`

Page width in pixels.

| Data type | Example value |
| - | - |
| Integer | 1280 |

### `dom_interactive_after_msec`

The time in milliseconds required before the user is able to interact with the page (although all resources may not be fully loaded yet).

| Data type | Example value |
| - | - |
| Integer | 5356 |

### `dynamic_vars_int_in_view.key`

Array of keys of integer dynamic variables extracted from the website datalayer of the pageview. Each variable has the same index in all `dynamic_vars_int_in_view.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['VAR\_name\_123', VAR\_name\_456'] |

### `dynamic_vars_int_in_view.value`

Array of values of integer dynamic variables extracted from the website datalayer of the pageview. Each variable has the same index in all `dynamic_vars_int_in_view.*` fields.

| Data type | Example value |
| - | - |
| Array(Integer) | \[123, 456] |

### `dynamic_vars_string_in_view.key`

Array of keys of string dynamic variables extracted from the website datalayer of the pageview. Each variable has the same index in all `dynamic_vars_string_in_view.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['VAR\_name\_123', VAR\_name\_456'] |

### `dynamic_vars_string_in_view.value`

Array of values of string dynamic variables extracted from the website datalayer of the pageview. Each variable has the same index in all `dynamic_vars_string_in_view.*` fields.

| Data type | Example value |
| - | - |
| Array(String) | \['VAR\_value\_123', 'VAR\_value\_456'] |

### `fully_loaded`

The time in milliseconds required to fully load all the resources of the page, from initiation of the pageview to load completion in the browser.

| Data type | Example value |
| - | - |
| Integer | 8186 |

### `is_first`

If the page is the entry page then value is 1, otherwise value is 0.

| Data type | Example value |
| - | - |
| Integer | 0 |

### `is_last`

If the page is the exit page then value is 1, otherwise value is 0.

| Data type | Example value |
| - | - |
| Integer | 1 |

### `last_hover_path`

The last path that was hovered by the visitor.

| Data type | Example value |
| - | - |
| String | html:eq(0)>body:eq(0)>div(4)>input:eq(0) |

### `page_interaction_time_msec`

Interaction time in milliseconds.

| Data type | Example value |
| - | - |
| Integer | 4967 |

### `path`

Path of the pageview URL.

| Data type | Example value |
| - | - |
| String | /cs-squad-3307216025801.html |

### `prefix`

Host of the pageview URL.

| Data type | Example value |
| - | - |
| String | www\.contentsquare.com |

### `query`

Query of the pageview URL.

| Data type | Example value |
| - | - |
| String | cs=42\&lang=fr |

### `scheme`

Protocol (HTTP or HTTPS).

| Data type | Example value |
| - | - |
| String | https |

### `scroll_rate`

The portion of the page which was displayed (in percentage points).

| Data type | Example value |
| - | - |
| Float | 61.4 |

### `start_render`

Timestamp sent by tag when the rendering of the page started.

| Data type | Example value |
| - | - |
| Integer | 112 |

### `url`

The complete URL of the page (concatenation of [prefix](#prefix), [path](#path) and [query](#query)).

| Data type | Example value |
| - | - |
| String | https\://contentsquare.com/?s=ux |

### `url_no_query_param`

The URL of the page excluding query parameters (concatenation of [prefix](#prefix) and [path](#path)).

| Data type | Example value |
| - | - |
| String | https\://contentsquare.com/ |

### `view_duration_msec`

Duration between the page view event time (`view_time`) and the timestamp of the last interaction event (in milliseconds).

| Data type | Example value |
| - | - |
| Integer | 49118 |

### `view_number`

The pageview number in the session.

| Data type | Example value |
| - | - |
| Integer | 2 |

### `view_time`

The pageview date and UTC time.

| Data type | Example value |
| - | - |
| String | 2020-07-26 05:53 |

### `viewports.bottom_screen_position`

Array of bottom positions of the screen of the user. A new value is appended in the array after each scroll event if it's not already present in the array.

| Data type | Example value |
| - | - |
| Array(Integer) | \[754, 2332, 2620] |

The values in this array can be combined with the values at the same index in the arrays `viewports.top_screen_position` and `viewports.exposition_time_msec` to find corresponding top position of viewports and the total time the viewport was exposed in a given position.

For example, say a user:

* Starts at a viewport position (top=0, bottom=800) and stays in that position for 30 seconds; then
* Scrolls down to a viewport position (top=600, bottom=1400) and stays there for 10 seconds; then
* Scrolls up again back to the original viewport position (top=0, bottom=800) and stays there for another 20 seconds

Then the 3 `viewports` array fields will look like this:

* `viewports.bottom_screen_position`: \[0, 600]
* `viewports.top_screen_position`: \[800, 1400]
* `viewports.exposition_time_msec`: \[50000, 10000] (30s + 20s = 50s = 50000ms)

### `viewports.exposition_time_msec`

The exposition time in milliseconds of the areas that were exposed to the user. A new value is appended in the array after each scroll event.

| Data type | Example value |
| - | - |
| Array(Integer) | \[22740, 679, 1338] |

The values in this array can be combined with the values at the same index in the arrays `viewports.bottom_screen_position` and `viewports.top_screen_position` to find corresponding top position of viewports and the total time the viewport was exposed in a given position.

For example, say a user:

* Starts at a viewport position (top=0, bottom=800) and stays in that position for 30 seconds; then
* Scrolls down to a viewport position (top=600, bottom=1400) and stays there for 10 seconds; then
* Scrolls up again back to the original viewport position (top=0, bottom=800) and stays there for another 20 seconds

Then the 3 `viewports` array fields will look like this:

* `viewports.bottom_screen_position`: \[0, 600]
* `viewports.top_screen_position`: \[800, 1400]
* `viewports.exposition_time_msec`: \[50000, 10000] (30s + 20s = 50s = 50000ms)

### `viewports.top_screen_position`

Array of top positions of the screen of the user. A new value is appended in the array after each scroll event if it's not already present in the array.

| Data type | Example value |
| - | - |
| Array(Integer) | \[0, 1578, 1866] |

The values in this array can be combined with the values at the same index in the arrays `viewports.bottom_screen_position` and `viewports.exposition_time_msec` to find corresponding top position of viewports and the total time the viewport was exposed in a given position.

For example, say a user:

* Starts at a viewport position (top=0, bottom=800) and stays in that position for 30 seconds; then
* Scrolls down to a viewport position (top=600, bottom=1400) and stays there for 10 seconds; then
* Scrolls up again back to the original viewport position (top=0, bottom=800) and stays there for another 20 seconds

Then the 3 `viewports` array fields will look like this:

* `viewports.bottom_screen_position`: \[0, 600]
* `viewports.top_screen_position`: \[800, 1400]
* `viewports.exposition_time_msec`: \[50000, 10000] (30s + 20s = 50s = 50000ms)

### `window_height`

Height of the window in which the page is opened.

| Data type | Example value |
| - | - |
| Integer | 720 |

### `window_width`

Width of the window in which the page is opened.

| Data type | Example value |
| - | - |
| Integer | 1280 |

## Session

### `is_excludable`

Values are either 1 or 0, to indicate whether the session is generated from bot traffic (1) or not (0).

| Data type | Example value |
| - | - |
| Integer | 1 |

### `is_recorded`

For Session Replay, indicates whether the session was collected (1) or not (0).

| Data type | Example value |
| - | - |
| Integer | 1 |

### `session_date`

Session start date.

| Data type | Example value |
| - | - |
| String | 2020-07-26 |

### `session_duration_msec`

Session duration in milliseconds.

| Data type | Example value |
| - | - |
| Integer | 881633 |

### `session_id`

Unique session identifier.

| Data type | Example value |
| - | - |
| Integer | 5066017809039605767 |

### `session_number`

The number of sessions of the user (takes into account how many times the user visited before).

| Data type | Example value |
| - | - |
| Integer | 7 |

### `session_number_of_transactions`

Number of transactions placed during the session.

| Data type | Example value |
| - | - |
| Integer | 2 |

### `session_number_of_views`

The number of page views in the session.

| Data type | Example value |
| - | - |
| Integer | 5 |

### `session_replay_link`

The replay link, if the session was collected (see `is_recorded` field).

| Data type | Example value |
| - | - |
| String | https\://app.contentsquare.com/quick-playback/index.html?pid=... |

### `session_time`

Session start date and UTC time.

| Data type | Example value |
| - | - |
| String | 2020-07-26 05:53 |

### `session_transactions_revenue_cents`

Total revenue generated by the session (in US dollar cents).

| Data type | Example value |
| - | - |
| Integer | 37655 |

### `referer_url`

The referring URL to the first page view of the session.

| Data type | Example value |
| - | - |
| String | https\://www\.google.fr/ |

## Speed Analysis

Those fields are only exportable for projects with access to the Speed Analysis module in Contentsquare.

### `time_to_first_byte`

Delay (in milliseconds) between the request for the web page and when the web browser received the first piece of data. This field is only exportable for projects with access to the Speed Analysis module in Contentsquare.

| Data type | Example value |
| - | - |
| Integer | 83 |

### `first_contentful_paint`

Delay (in milliseconds) to render the first piece of content. This field is only exportable for projects with access to the Speed Analysis module in Contentsquare.

| Data type | Example value |
| - | - |
| Integer | 196 |

### `largest_contentful_paint`

Delay (in milliseconds) to render the largest piece of content (part of Core Web Vitals). This field is only exportable for projects with access to the Speed Analysis module in Contentsquare.

| Data type | Example value |
| - | - |
| Integer | 297 |

### `cumulative_layout_shift`

Score about the layout stability of the page rendering (part of Core Web Vitals). This field is only exportable for projects with access to the Speed Analysis module in Contentsquare.

| Data type | Example value |
| - | - |
| Integer | 7 |

### `first_input_delay`

Delay (in milliseconds) between the first user interaction and when the web browser can handle it (part of Core Web Vitals). This field is only exportable for projects with access to the Speed Analysis module in Contentsquare. This metric has been deprecated in favor of [`interaction_to_next_paint`](#interaction_to_next_paint) and will be removed in the future.

| Data type | Example value |
| - | - |
| Integer | 42 |

### `interaction_to_next_paint`

Longest visual delay (in milliseconds) experienced by a user when interacting with the page (clicks or keystrokes). This field is only exportable for projects with access to the Speed Analysis module in Contentsquare.

| Data type | Example value |
| - | - |
| Integer | 61 |

## Technology

### `browser_major_version`

The browser major version.

| Data type | Example value |
| - | - |
| Integer | 83 |

### `browser_name`

The browser name.

| Data type | Example value |
| - | - |
| String | Chrome |

### `browser_version`

The browser version.

| Data type | Example value |
| - | - |
| String | 83.0.4103.116 |

### `device_id`

Unique device identifier:

* `0`: Unknown
* `1`: Desktop
* `2`: Mobile (Web)
* `3`: Tablet (Web)
* `4`: Mobile (App)
* `5`: Tablet (App)

| Data type | Example value |
| - | - |
| Integer | 2 |

### `platform_name`

The operating system name.

| Data type | Example value |
| - | - |
| String | Windows |

### `platform_version`

The operating system version.

| Data type | Example value |
| - | - |
| Integer | 10 |

### `screen_height`

The screen height in pixels.

| Data type | Example value |
| - | - |
| Integer | 700 |

### `screen_width`

The screen width in pixels.

| Data type | Example value |
| - | - |
| Integer | 1280 |
