How to track devices and/or models?


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?

Still looking forward to any thoughts or suggestions!

Which tracker are you using?

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.

1 Like

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.

Hi @pranas - we are still keen to do it, but it hasn’t been scheduled yet.

@alex Thanks for the information.

Could you also comment on the two current enrichments?
Specifically, are they keeping up with the underlying provider updates?

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:
Try it out here:

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)

Check WURFL analyzing it:

It does not even mentions a version, neither IE11 nor the IE7 compat mode.

1 Like

@christoph-buente - you should raise this with UAP-core. Perhaps even issue a PR with a test and fixed regex.

I’ve found them to be very helpful and accepting of PRs from newcomers.