What is the recommended approach to get more information about devices and/or models?
This is especially relevant to mobile devices as it would be nice to identify them as “Samsung Galaxy S8” or “Apple iPhone 8”.
We use user-agent-utils enrichment and are considering ua-parser enrichment (according to documentation, it handles mobile events better). However, both only parse user agent value which seems not to be enough to identify a specific device.
Do we need some external libraries? For example IP lookups enrichment uses MaxMind databases to load geographical information.
Is there an analogical service for devices and/or models?
For web (the Javascript tracker) this can be problematic as the user agent string in isolation often doesn’t provide enough information to determine the model of the device (for example to infer that a device is an Apple iPhone 8 - getting the iOS version is significantly easier). I believe it’s possible to extract some of this information out by combining multiple attributes (browser, useragent, browser sizes, feature support etc) though I don’t know how accurate this is for Apple devices.
Yes there is @pranas - the closest equivalent to MaxMind in the world of useragents is WURFL:
We have a good relationship with the WURFL team and we are planning on releasing an enrichment to identify useragents using WURFL; there is no timeline on this enrichment yet, however.
@alex What is the current situation regarding WURFL?
I checked the references in Snowplow documentation. user-agent-utils provider announced their end-of-life already, and ua-parser provider leads to a very old repository.
Throwing my hat into the ring about user agent analysis: We recently discovered discrepancies between the results of ua-utils and ua-parser output with regards to Internet explorer in compat mode. On the search for a better solution we found the “YAUAA” library with more accurate and elaborate results.
Code here: https://github.com/nielsbasjes/yauaa
Try it out here: https://try.yauaa.basjes.nl/
As it does not have to be an exclusive OR decision, wether to use WURFL or YAUAA, but rather a choice to use none, any one or even both: Would you consider integrating the YAUAA library as a new enrichment?
The user agent in question is: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)