Data discrepancy between ua-parser and user-agent-utils enrichments


We have started using ua-parser-utils enrichment from yesterday. I was looking at the data and found the OS and user-agent details are different in events table and ua_praser_context table. For instance look at below sample:
useragent Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 1320) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537
br_name IE Mobile 11
br_family Internet Explorer
br_type Browser (mobile)
br_renderengine TRIDENT
os_name Windows Phone 8.1
os_family Windows
os_manufacturer Microsoft Corporation
dvce_type Mobile
useragent_family Android
useragent_version Android 4.0
os_family Android
os_version Android 4.0
device_family Lumia 1320

Can anyone point why is this happening? Which is more accurate ua-praser-utils or ua-praser-context table ?

Hi @jimy2004king,

Both enrichments rely on 3rd party libraries (maintained by their respective owners). It is not a Snowplow specific issue.

The user agent utils enrichment utilizes user-agent-utils library by Harald Walker whereas ua parser enrichment relies on ua parser Java library which is based on the community driven project for profiling web browsers called Browserscope.

Probably ua_parser library handles some useragent strings (such as mobile app useragents) better than user-agent-utils. Though I cannot provide you with more definite answer on this. Hopefully, the other community members can share their own experience.


1 Like

Hi @jimy2004king,

Based on what I have seen, the ua_parser library does indeed seem to be more reliable than the user-agent-utils (as @Ihor mentioned).