ua parser enrichment - chuwy/snowplow-ci GitHub Wiki
HOME > SNOWPLOW SETUP GUIDE > Step 3: Setting up Enrich > Configurable enrichments > ua-parser enrichment
JSON Schema iglu:com.snowplowanalytics.snowplow/ua_parser_config/jsonschema/1-0-0
Compatibility r63+
Data provider ua-parser
This enrichment uses the ua-parser library to parse the useragent and attach a ua_parser_context to each event. It can be used alongside or instead of the user_agent_utils enrichment.
{
"schema": "iglu:com.snowplowanalytics.snowplow/ua_parser_config/jsonschema/1-0-0",
"data": {
"vendor": "com.snowplowanalytics.snowplow",
"name": "ua_parser_config",
"enabled": true,
"parameters": {}
}
}
Note that this enrichment configuration always takes an empty dictionary ({}
) of parameters.
The context generated by the enrichment adheres to this schema.
Note: As an alternative solution, you could enable user-agent-utils
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 ua_parser Java library. This library handles some useragent strings (such as mobile app useragents) better than user-agent-utils
, which is relied on in User agent utils enrichment.
As an example, the useragent string
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
Will be parsed with the following result:
Parameter | Value |
---|---|
useragent_family |
Chrome |
useragent_major |
48 |
useragent_minor |
|
useragent_patch |
2564 |
os_family |
Windows 7 |
os_major |
|
os_minor |
|
os_patch_minor |
|
device_family |
Other |
###Data generated
If ua-parser
is enabled, then the Snowplow Enrichment process will write its results into a new context, ua_parser_context
. As a result the following fields in the dedicated com_snowplowanalytics_snowplow_ua_parser_context_1
table would be populated.
Field | Purpose |
---|---|
useragent_family |
Useragent family (browser) name |
useragent_major |
Useragent major version |
useragent_minor |
Useragent minor version |
useragent_patch |
Useragent patch version |
useragent_version |
Full version of the useragent |
os_family |
Operation system name |
os_major |
Operation system major version |
os_minor |
Operation system minor version |
os_patch |
Operation system patch version |
os_patch_minor |
Operation system patch minor version |
os_version |
Operation system full version |
device_family |
Device type |