# Device and browser information
> Track device, browser, and platform information in atomic fields and context entities including YAUAA parsing, Client Hints, and mobile context.
> Source: https://docs.snowplow.io/docs/events/ootb-data/device-and-browser/
> Documentation index: https://docs.snowplow.io/llms.txt

Snowplow trackers track information about the device or browser that's sending the events to Snowplow in two ways: setting [atomic event properties](/docs/fundamentals/canonical-event/), or in browser or application entities. You can also choose to configure additional entities through [enrichment](/docs/pipeline/enrichments/).

## Atomic event properties

Track these properties manually or automatically, depending on your tracker.

### Browser

Some trackers can populate the [browser atomic event properties](/docs/fundamentals/canonical-event/#browser-fields): `br_lang`, `br_cookies`, `br_colordepth`, `br_viewheight` and `br_viewwidth`.

Depending on the tracker, you may have to provide the values, as not all trackers capture these fields themselves. The tracker will then add the values automatically to all sent events.

> **Note: Cookies field**
>
> Only the JavaScript tracker can populate the `br_cookies` field.

| Tracker                                                                      | Supported | Since version | Auto-tracking | Notes                                         |
| ---------------------------------------------------------------------------- | --------- | ------------- | ------------- | --------------------------------------------- |
| [Web](/docs/sources/web-trackers/tracking-events/browsers/)                  | ✅         | 0.1.0         | ✅             | All values set automatically                  |
| [iOS](/docs/sources/mobile-trackers/client-side-properties/)                 | ✅         | 0.5.0         | ✅             |                                               |
| [Android](/docs/sources/mobile-trackers/client-side-properties/)             | ✅         | 0.1.0         | ✅             |                                               |
| [React Native](/docs/sources/react-native-tracker/client-side-properties/)   | ✅         | 0.1.0         | ✅             |                                               |
| [Flutter](/docs/sources/flutter-tracker/initialization-and-configuration/)   | ✅         | 0.1.0         | ✅             |                                               |
| [Roku](/docs/sources/roku-tracker/adding-data/)                              | ✅         | 0.2.0         | ✅             | Set automatically; language and viewport only |
| [Node.js](/docs/sources/node-js-tracker/configuration/)                      | ✅         | 0.8.0         | ✅             |                                               |
| [Golang](/docs/sources/golang-tracker/adding-extra-data-the-subject-class/)  | ✅         | 1.0.0         | ✅             |                                               |
| [.NET](/docs/sources/net-tracker/subject/)                                   | ✅         | 0.1.0         | ✅             |                                               |
| [Java](/docs/sources/java-tracker/tracking-specific-client-side-properties/) | ✅         | 0.10.0        | ✅             |                                               |
| [Python](/docs/sources/python-tracker/subject/)                              | ✅         | 0.13.0        | ✅             |                                               |
| [Scala](/docs/sources/scala-tracker/subject-methods/)                        | ✅         | 0.6.0         | ✅             |                                               |
| [Ruby](/docs/sources/ruby-tracker/adding-data-events/)                       | ✅         | 0.3.0         | ✅             |                                               |
| [Rust](/docs/sources/rust-tracker/initialization-and-configuration/)         | ✅         | 0.1.0         | ✅             | Set language only                             |
| [PHP](/docs/sources/php-tracker/subjects/)                                   | ✅         | 0.1.0         | ✅             | Set language and color depth only             |
| [C++](/docs/sources/c-tracker/adding-extra-data-the-subject-class/)          | ✅         | 0.1.0         | ✅             |                                               |
| [Unity](/docs/sources/unity-tracker/subject/)                                | ✅         | 0.1.0         | ✅             |                                               |
| [Lua](/docs/sources/lua-tracker/tracking-specific-events/)                   | ✅         | 0.1.0         | ✅             | Set color depth and viewport only             |
| Google Tag Manager                                                           | ❌         |               |               |                                               |

### User agent

No trackers set a [user agent atomic property](/docs/fundamentals/canonical-event/#browser-fields) automatically. See the [YAUAA entity](#yauaa-user-agent-parsing) section below for information about tracking user agents. However, most trackers allow you to manually provide a `useragent`. During enrichment, a provided value will override the one in the HTTP header.

| Tracker                                                                      | Supported | Since version | Auto-tracking |
| ---------------------------------------------------------------------------- | --------- | ------------- | ------------- |
| [Web](/docs/sources/web-trackers/tracking-events/browsers/)                  | ✅         | 0.1.0         | ❌             |
| [iOS](/docs/sources/mobile-trackers/client-side-properties/)                 | ✅         | 0.5.0         | ❌             |
| [Android](/docs/sources/mobile-trackers/client-side-properties/)             | ✅         | 0.1.0         | ❌             |
| [React Native](/docs/sources/react-native-tracker/client-side-properties/)   | ✅         | 0.1.0         | ❌             |
| [Flutter](/docs/sources/flutter-tracker/initialization-and-configuration/)   | ✅         | 0.1.0         | ❌             |
| Roku                                                                         | ❌         |               |               |
| [Node.js](/docs/sources/node-js-tracker/configuration/)                      | ✅         | 0.8.0         | ❌             |
| [Golang](/docs/sources/golang-tracker/adding-extra-data-the-subject-class/)  | ✅         | 1.0.0         | ❌             |
| [.NET](/docs/sources/net-tracker/subject/)                                   | ✅         | 0.1.0         | ❌             |
| [Java](/docs/sources/java-tracker/tracking-specific-client-side-properties/) | ✅         | 0.8.0         | ❌             |
| [Python](/docs/sources/python-tracker/subject/)                              | ✅         | 0.6.0         | ❌             |
| [Scala](/docs/sources/scala-tracker/subject-methods/)                        | ✅         | 0.3.0         | ❌             |
| [Ruby](/docs/sources/ruby-tracker/adding-data-events/)                       | ✅         | 0.4.0         | ❌             |
| [Rust](/docs/sources/rust-tracker/initialization-and-configuration/)         | ✅         | 0.1.0         | ❌             |
| [PHP](/docs/sources/php-tracker/subjects/)                                   | ✅         | 0.1.0         | ❌             |
| [C++](/docs/sources/c-tracker/adding-extra-data-the-subject-class/)          | ✅         | 0.1.0         | ❌             |
| [Unity](/docs/sources/unity-tracker/subject/)                                | ✅         | 0.1.0         | ❌             |
| Lua                                                                          | ❌         |               |               |
| Google Tag Manager                                                           | ❌         |               |               |

### Document

The [document](/docs/fundamentals/canonical-event/#document-fields) atomic properties `doc_charset`, `doc_lang` and `doc_title` are only supported by the [JavaScript tracker](//docs/sources/web-trackers/index.md), which automatically captures these values from the DOM.

### Screen resolution

Some trackers track the [device resolution](/docs/fundamentals/canonical-event/#device-fields) atomic properties `dvce_screenheight` and `dvce_screenwidth` automatically.

| Tracker                                                                      | Supported | Since version | Auto-tracking | Notes                            |
| ---------------------------------------------------------------------------- | --------- | ------------- | ------------- | -------------------------------- |
| [Web](/docs/sources/web-trackers/tracking-events/browsers/)                  | ✅         | 0.1.0         | ✅             | Autotracking only, no setter API |
| [iOS](/docs/sources/mobile-trackers/client-side-properties/)                 | ✅         | 0.1.0         | ✅             |                                  |
| [Android](/docs/sources/mobile-trackers/client-side-properties/)             | ✅         | 0.1.0         | ✅             |                                  |
| [React Native](/docs/sources/react-native-tracker/client-side-properties/)   | ✅         | 0.1.0         | ❌             |                                  |
| [Flutter](/docs/sources/flutter-tracker/initialization-and-configuration/)   | ✅         | 0.1.0         | ✅/❌           | Autotracking for mobile only     |
| [Roku](/docs/sources/roku-tracker/adding-data/)                              | ✅         | 0.1.0         | ✅             | Autotracking only, no setter API |
| [Node.js](/docs/sources/node-js-tracker/configuration/)                      | ✅         | 0.8.0         | ❌             |                                  |
| [Golang](/docs/sources/golang-tracker/adding-extra-data-the-subject-class/)  | ✅         | 1.0.0         | ❌             |                                  |
| [.NET](/docs/sources/net-tracker/subject/)                                   | ✅         | 0.1.0         | ❌             |                                  |
| [Java](/docs/sources/java-tracker/tracking-specific-client-side-properties/) | ✅         | 0.4.0         | ❌             |                                  |
| [Python](/docs/sources/python-tracker/subject/)                              | ✅         | 0.4.0         | ❌             |                                  |
| [Scala](/docs/sources/scala-tracker/subject-methods/)                        | ✅         | 0.1.0         | ❌             |                                  |
| [Ruby](/docs/sources/ruby-tracker/adding-data-events/)                       | ✅         | 0.3.0         | ❌             |                                  |
| [Rust](/docs/sources/rust-tracker/initialization-and-configuration/)         | ✅         | 0.1.0         | ❌             |                                  |
| [PHP](/docs/sources/php-tracker/subjects/)                                   | ✅         | 0.1.0         | ❌             |                                  |
| [C++](/docs/sources/c-tracker/adding-extra-data-the-subject-class/)          | ✅         | 0.1.0         | ❌             |                                  |
| [Unity](/docs/sources/unity-tracker/subject/)                                | ✅         | 0.1.0         | ❌             |                                  |
| [Lua](/docs/sources/lua-tracker/)                                            | ✅         | 0.1.0         | ❌             |                                  |
| Google Tag Manager                                                           | ❌         |               |               |                                  |

## Entities added by trackers

Configure your trackers to add these entities to tracked events.

### Browser entity

You can configure the web trackers to automatically include a browser entity with all tracked events.

| Tracker                                                                              | Supported | Since version | Auto-tracking |
| ------------------------------------------------------------------------------------ | --------- | ------------- | ------------- |
| [Web](/docs/sources/web-trackers/tracking-events/#add-contextual-data-with-entities) | ✅         | 3.9.0         | ✅             |
| iOS                                                                                  | ❌         |               |               |
| Android                                                                              | ❌         |               |               |
| React Native                                                                         | ❌         |               |               |
| Flutter                                                                              | ❌         |               |               |
| Google Tag Manager                                                                   | ❌         |               |               |

The browser entity is only available on web trackers since it captures browser-specific information from the DOM and browser APIs. These APIs aren't available to React Native or Flutter.

### `browser_context`

**Type:** Schema

Schema for browser contexts

**Properties:**

| Property                        | Description                                                                                                                                                   |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `viewport` _string_             | _Required._ Viewport dimensions of the browser. Arrives in the form of WidthxHeight e.g. 1200x900.                                                            |
| `documentSize` _string_         | _Required._ Document dimensions. Arrives in the form of WidthxHeight e.g. 1200x900                                                                            |
| `resolution` _string_           | _Required._ Device native resolution. Arrives in the form of WidthxHeight e.g. 1200x900                                                                       |
| `colorDepth` _integer_          | _Required._ The number of bits allocated to colors for a pixel in the output device, excluding the alpha channel.                                             |
| `devicePixelRatio` _number_     | _Optional._ Ratio of the resolution in physical pixels to the resolution in CSS pixels for the current display device.                                        |
| `cookiesEnabled` _boolean_      | _Required._ Indicates whether cookies are enabled or not. More info and caveats at https\://developer.mozilla.org/en-US/docs/Web/API/Navigator/cookieEnabled. |
| `online` _boolean_              | _Required._ Returns the online status of the browser. Important caveats are described in https\://developer.mozilla.org/en-US/docs/Web/API/Navigator/onLine.  |
| `browserLanguage` _string_      | _Optional._ The preferred language of the user, usually the language of the browser UI. RFC 5646 https\://datatracker.ietf.org/doc/html/rfc5646.              |
| `documentLanguage` _string_     | _Optional._ The language of the HTML document. RFC 5646 https\://datatracker.ietf.org/doc/html/rfc5646.                                                       |
| `webdriver` _boolean_           | _Optional._ Indicates whether the user agent is controlled by automation.                                                                                     |
| `deviceMemory` _integer_        | _Optional._ Approximate amount of device memory in gigabytes.                                                                                                 |
| `hardwareConcurrency` _integer_ | _Optional._ Number of logical processors available to run threads on the user's computer.                                                                     |
| `tabId` _string_                | _Optional._ An identifier for the client browser tab the event is sent from.                                                                                  |

### Mobile entity

The mobile entity gives information about the mobile device platform, including identifiers such as IDFA and IDFV. It's sometimes referred to as the platform entity.

It's enabled by default in all supported trackers. You can configure which of the optional properties to track.

This table shows the support for the mobile entity across the main client-side Snowplow [tracker SDKs](/docs/sources/).

| Tracker                                                                                                               | Supported | Since version | Auto-tracking | Notes                             |
| --------------------------------------------------------------------------------------------------------------------- | --------- | ------------- | ------------- | --------------------------------- |
| Web                                                                                                                   | ❌         |               |               |                                   |
| [iOS](/docs/sources/mobile-trackers/tracking-events/platform-and-application-context/#platform-mobile-context)        | ✅         | 1.0.0         | ✅             |                                   |
| [Android](/docs/sources/mobile-trackers/tracking-events/platform-and-application-context/#platform-mobile-context)    | ✅         | 1.0.0         | ✅             |                                   |
| [React Native](/docs/sources/react-native-tracker/tracking-events/platform-and-application-context/#platform-context) | ✅         | 1.0.0         | ✅             | Only relevant for mobile tracking |
| [Flutter](/docs/sources/flutter-tracker/initialization-and-configuration/)                                            | ✅         | 0.1.0         | ✅             | Only relevant for mobile tracking |
| Roku                                                                                                                  | ❌         |               |               |                                   |
| Google Tag Manager                                                                                                    | ❌         |               |               |                                   |

### `mobile_context`

**Type:** Schema

Schema for mobile contexts

**Properties:**

| Property                          | Description                                                                                                                                                                                                                 |
| --------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `osType` _string_                 | _Required._ Operating system type (e.g., ios, tvos, watchos, osx, android)                                                                                                                                                  |
| `osVersion` _string_              | _Required._ The current version of the operating system                                                                                                                                                                     |
| `deviceManufacturer` _string_     | _Required._ The manufacturer of the product/hardware                                                                                                                                                                        |
| `deviceModel` _string_            | _Required._ The end-user-visible name for the end product                                                                                                                                                                   |
| `carrier` _string_                | _Optional._ The carrier of the SIM inserted in the device                                                                                                                                                                   |
| `networkType` _string_            | _Optional._ Type of network the device is connected to Must be one of: `mobile`, `wifi`, `offline`,``                                                                                                                       |
| `networkTechnology` _string_      | _Optional._ Radio access technology that the device is using                                                                                                                                                                |
| `openIdfa` _string_               | _Optional._ Deprecated tracking identifier for iOS                                                                                                                                                                          |
| `appleIdfa` _string_              | _Optional._ Advertising identifier on iOS                                                                                                                                                                                   |
| `appleIdfv` _string_              | _Optional._ UUID identifier for vendors on iOS                                                                                                                                                                              |
| `androidIdfa` _string_            | _Optional._ Advertising identifier on Android                                                                                                                                                                               |
| `physicalMemory` _integer_        | _Optional._ Total physical system memory in bytes                                                                                                                                                                           |
| `systemAvailableMemory` _integer_ | _Optional._ Available memory on the system in bytes (Android only)                                                                                                                                                          |
| `appAvailableMemory` _integer_    | _Optional._ Amount of memory in bytes available to the current app (iOS only)                                                                                                                                               |
| `batteryLevel` _integer_          | _Optional._ Remaining battery level as an integer percentage of total battery capacity                                                                                                                                      |
| `batteryState` _string_           | _Optional._ Battery state for the device Must be one of: `unplugged`, `charging`, `full`,``                                                                                                                                 |
| `lowPowerMode` _boolean_          | _Optional._ A Boolean indicating whether Low Power Mode is enabled (iOS only)                                                                                                                                               |
| `availableStorage` _integer_      | _Optional._ Bytes of storage remaining                                                                                                                                                                                      |
| `totalStorage` _integer_          | _Optional._ Total size of storage in bytes                                                                                                                                                                                  |
| `isPortrait` _boolean_            | _Optional._ A Boolean indicating whether the device orientation is portrait (either upright or upside down)                                                                                                                 |
| `resolution` _string_             | _Optional._ Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes                                                                               |
| `scale` _number_                  | _Optional._ Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS and DisplayMetrics.density on Android)                                                         |
| `language` _string_               | _Optional._ System language currently used on the device (ISO 639)                                                                                                                                                          |
| `appSetId` _string_               | _Optional._ Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https\://developer.android.com/training/articles/app-set-id)                                            |
| `appSetIdScope` _string_          | _Optional._ Scope of the \`appSetId\`. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID) Must be one of: `app`, `developer`,`` |

### Client hints entity

[Client hints](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Client_hints) are an alternative to user agent strings for capturing browser and device information. You can configure the JavaScript tracker to automatically include a client hints entity with all tracked events.

For other trackers, use the YAUAA enrichment to capture client hints information. See the [YAUAA user agent parsing](#yauaa-user-agent-parsing) section below for more details.

| Tracker                                                         | Supported | Since version | Auto-tracking |
| --------------------------------------------------------------- | --------- | ------------- | ------------- |
| [Web](/docs/sources/web-trackers/tracking-events/client-hints/) | ✅         | 3.0.0         | ✅             |
| iOS                                                             | ❌         |               |               |
| Android                                                         | ❌         |               |               |
| React Native                                                    | ❌         |               |               |
| Flutter                                                         | ❌         |               |               |
| Roku                                                            | ❌         |               |               |
| Google Tag Manager                                              | ❌         |               |               |

### `http_client_hints`

**Type:** Schema

Schema for HTTP Client Hints context

**Properties:**

| Property                   | Description                                           |
| -------------------------- | ----------------------------------------------------- |
| `isMobile` _boolean_       | _Optional._ Whether the browser is on a mobile device |
| `brands` _array_           | _Optional._ List of browser brands and versions       |
| `architecture` _string_    | _Optional._ CPU architecture (high entropy)           |
| `model` _string_           | _Optional._ Device model (high entropy)               |
| `platform` _string_        | _Optional._ Operating system name (high entropy)      |
| `platformVersion` _string_ | _Optional._ Operating system version (high entropy)   |
| `uaFullVersion` _string_   | _Optional._ Full browser version (high entropy)       |

## Entities added during enrichment

You can configure your pipeline to add these entities to tracked web events.

### YAUAA user agent parsing

The [YAUAA (Yet Another User Agent Analyzer) enrichment](/docs/pipeline/enrichments/available-enrichments/yauaa-enrichment/) enables parsing the user agent string tracked in web events. It extracts information about the user's device and browser.

This enrichment can also use client hints headers.

### `yauaa_context`

**Type:** Schema

Schema for a context generated by the YAUAA enrichment after parsing the user agent

**Properties:**

| Property                                   | Description                                                                                                                                                                                                                                                                                                                                                                    |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `deviceClass` __                           | _Required._ See https\://yauaa.basjes.nl/README-Output.html Must be one of: `Desktop`, `Anonymized`, `Unknown`, `UNKNOWN`, `Mobile`, `Tablet`, `Phone`, `Watch`, `Virtual Reality`, `eReader`, `Set-top box`, `TV`, `Game Console`, `Home Appliance`, `Handheld Game Console`, `Voice`, `Car`, `Robot`, `Robot Mobile`, `Spy`, `Hacker`, `Augmented Reality`, `Robot Imitator` |
| `deviceName` _string_                      | _Optional._ Example: Google Nexus 6                                                                                                                                                                                                                                                                                                                                            |
| `deviceBrand` _string_                     | _Optional._ Example: Google                                                                                                                                                                                                                                                                                                                                                    |
| `deviceCpu` _string_                       | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `deviceCpuBits` _string_                   | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `deviceFirmwareVersion` _string_           | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `deviceVersion` _string_                   | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `operatingSystemClass` _string_            | _Optional._ See https\://yauaa.basjes.nl/README-Output.html Must be one of: `Desktop`, `Mobile`, `Cloud`, `Embedded`, `Game Console`, `Hacker`, `Anonymized`, `Unknown`                                                                                                                                                                                                        |
| `operatingSystemName` _string_             | _Optional._ Examples: Linux, Android.                                                                                                                                                                                                                                                                                                                                          |
| `operatingSystemVersion` _string_          | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `operatingSystemNameVersion` _string_      | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `operatingSystemVersionBuild` _string_     | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `layoutEngineClass` _string_               | _Optional._ See https\://yauaa.basjes.nl/README-Output.html Must be one of: `Browser`, `Mobile App`, `Hacker`, `Robot`, `Unknown`, `Special`, `Cloud`, `eReader`                                                                                                                                                                                                               |
| `layoutEngineName` _string_                | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `layoutEngineVersion` _string_             | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `layoutEngineVersionMajor` _string_        | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `layoutEngineNameVersion` _string_         | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `layoutEngineNameVersionMajor` _string_    | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `layoutEngineBuild` _string_               | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentClass` _string_                      | _Optional._ See https\://yauaa.basjes.nl/README-Output.html Must be one of: `Browser`, `Browser Webview`, `Mobile App`, `Robot`, `Robot Mobile`, `Cloud Application`, `Email Client`, `Voice`, `Special`, `Testclient`, `Hacker`, `Unknown`, `Desktop App`, `eReader`                                                                                                          |
| `agentName` _string_                       | _Optional._ Example: Chrome.                                                                                                                                                                                                                                                                                                                                                   |
| `agentVersion` _string_                    | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentVersionMajor` _string_               | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentNameVersion` _string_                | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentNameVersionMajor` _string_           | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentBuild` _string_                      | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentLanguage` _string_                   | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentLanguageCode` _string_               | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentInformationEmail` _string_           | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentInformationUrl` _string_             | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `agentSecurity` _string_                   | _Optional._ Must be one of: `Weak security`, `Strong security`, `Unknown`, `Hacker`, `No security`                                                                                                                                                                                                                                                                             |
| `agentUuid` _string_                       | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `webviewAppName` _string_                  | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `webviewAppVersion` _string_               | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `webviewAppVersionMajor` _string_          | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `webviewAppNameVersionMajor` _string_      | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookCarrier` _string_                 | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookDeviceClass` _string_             | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookDeviceName` _string_              | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookDeviceVersion` _string_           | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookFBOP` _string_                    | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookFBSS` _string_                    | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookOperatingSystemName` _string_     | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `facebookOperatingSystemVersion` _string_  | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `anonymized` _string_                      | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `hackerAttackVector` _string_              | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `hackerToolkit` _string_                   | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `koboAffiliate` _string_                   | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `koboPlatformId` _string_                  | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `iECompatibilityVersion` _string_          | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `iECompatibilityVersionMajor` _string_     | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `iECompatibilityNameVersion` _string_      | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `iECompatibilityNameVersionMajor` _string_ | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `carrier` _string_                         | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `gSAInstallationID` _string_               | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `networkType` _string_                     | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `operatingSystemNameVersionMajor` _string_ | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |
| `operatingSystemVersionMajor` _string_     | _Optional._                                                                                                                                                                                                                                                                                                                                                                    |

### Spiders and robots

The [IAB Spiders and Robots enrichment](/docs/pipeline/enrichments/available-enrichments/iab-enrichment/) uses the IAB/ABC International Spiders and Bots List to determine whether an event was produced by a user or a robot or spider based on its IP address and user agent.

### `spiders_and_robots`

**Type:** Schema

Schema for a context generated by the IAB Spiders & Robots enrichment

**Properties:**

| Property                  | Description                                                                                                                                                                                                                  |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `spiderOrRobot` _boolean_ | _Required._ true if the IP address or user agent checked against the list is a spider or robot, false otherwise                                                                                                              |
| `category` __             | _Required._ Category based on activity if the IP/UA is a spider or robot, BROWSER otherwise Must be one of: `SPIDER_OR_ROBOT`, `ACTIVE_SPIDER_OR_ROBOT`, `INACTIVE_SPIDER_OR_ROBOT`, `BROWSER`                               |
| `reason` __               | _Required._ Type of failed check if the IP/UA is a spider or robot, PASSED\_ALL otherwise Must be one of: `FAILED_IP_EXCLUDE`, `FAILED_UA_INCLUDE`, `FAILED_UA_EXCLUDE`, `PASSED_ALL`                                        |
| `primaryImpact` __        | _Required._ Whether the spider or robot would affect page impression measurement, ad impression measurement, both or none Must be one of: `PAGE_IMPRESSIONS`, `AD_IMPRESSIONS`, `PAGE_AND_AD_IMPRESSIONS`, `UNKNOWN`, `NONE` |
