Getting started on Snowplow Open Source

  1. Home
  2. Docs
  3. Getting started on Snowplow Open Source
  4. Setup Snowplow Open Source on GCP
  5. Setup Validation and Enrich (GCP)
  6. Add additional enrichments
  7. user-agent-utils enrichment

user-agent-utils enrichment

This enrichment is deprecated

The library powering this enrichment has now been declared as end of life and won’t receive any updates: www.bitwalker.eu/software/user-agent-utils. Because this could one day result in a potential security issue (due to lack of maintenance), we encourage everyone to move away from this enrichment in favor of the ua parser enrichment. However, please keep in mind that this is not a drop-in replacement: the ua parser enrichment will fill an external com_snowplowanalytics_snowplow_ua_parser_context_1 table (you can find the Iglu schema here) instead of a few fields in atomic.events. In the future, we will move the fields affected by the user agent utils enrichments out of atomic.events into their own context and, as a follow up, remove it entirely.

Compatibility

JSON Schema iglu:com.snowplowanalytics.snowplow/user_agent_utils_config/jsonschema/1-0-0 Compatibility r63+ Data provider user-agent-utils

Overview

This enrichment uses the user-agent-utils library to parse the useragent into the following fields: br_namebr_familybr_versionbr_typebr_renderengineos_nameos_familyos_manufacturerdvce_typedvce_ismobile

Example

This enrichment has no special configuration: it is either off or on. Enable it with the following JSON:

{
    "schema": "iglu:com.snowplowanalytics.snowplow/user_agent_utils_config/jsonschema/1-0-0",
    "data": {
        "vendor": "com.snowplowanalytics.snowplow",
        "name": "user_agent_utils_config",
        "enabled": true,
        "parameters": {}
  }
}

Note: As an alternative solution, you could enable ua-parser enrichment either in place of this enrichment or as an accopmanying enhancement. There’s no conflict here as the output data of these enrichments will end up in different tables.

Data sources

The input value for the enrichment comes from ua parameter which is mapped to useragent field in atomic.events table.

Algorithm

This enrichment uses 3rd party user-agent-utils library to parse the useragent string.

Data generated

Below is the summary of the fields in atomic.events table driven by the result of this enrichment (no dedicated table).

FieldPurpose
br_nameBrowser name
br_familyBrowser family
br_versionBrowser version
br_typeBrowser type
br_renderengineRendering engine of the browserw
os_nameOperationg sytem name
os_familyOperationg sytem family
os_manufacturerManufacturers of operating system
dvce_typeDevice type
dvce_ismobileIndicates whether divice is moblile