1. Home
  2. Docs
  3. Enriching your data
  4. Available enrichments
  5. YAUAA enrichment

YAUAA enrichment

YAUAA (Yet Another User Agent Analyzer) enrichment is a powerful user agent parser and analyzer.

It uses YAUAA API to parse and analyze the user agent string of an HTTP request and extract as many relevant information as possible about the user’s device and browser, like for instance the device class (Phone, Tablet, etc.).

YAUAA parsing relies entirely on in-memory HashMaps and require roughly 400 MB of RAM (see here). Additional memory is also needed if caching is enabled (by default).

There is no interaction with an external system.

Configuration

Only one parameter can be set in the configuration : cacheSize. This field determines the number of already parsed user agents that are kept in memory for faster processing. If set to 0, caching is disabled. If not set, a default size is used for the cache (10000).

Input

This enrichment uses the field useragent.

Output

This enrichment adds a new derived context to the enriched event with this schema (since enrich 1.4.0).

If a field can’t be figured out by the algorithm, it won’t be in the output. But some fields can have value UNKNOWN.

The only field that will always be present is deviceClass.

Here is an example of a derived context attached by this enrichment for a page visited with a Samsung Galaxy S9:

{ "schema":"iglu:com.snowplowanalytics.snowplow/yauaa_context/jsonschema/1-0-1", "data": { "deviceClass":"Phone", "deviceName":"Samsung SM-G960F", "deviceBrand":"Samsung", "operatingSystemClass":"Mobile", "operatingSystemName":"Android", "operatingSystemVersion":"8.0.0", "operatingSystemNameVersion":"Android 8.0.0", "operatingSystemVersionBuild":"R16NW", "layoutEngineClass":"Browser", "layoutEngineName":"Blink", "layoutEngineVersion":"62.0", "layoutEngineVersionMajor":"62", "layoutEngineNameVersion":"Blink 62.0", "layoutEngineNameVersionMajor":"Blink 62", "agentClass":"Browser", "agentName":"Chrome", "agentVersion":"62.0.3202.84", "agentVersionMajor":"62", "agentNameVersion":"Chrome 62.0.3202.84", "agentNameVersionMajor":"Chrome 62" } }
Code language: JSON / JSON with Comments (json)

The full output possiblities generated by the YAUAA algorithm can be found here.

If you’d like to learn more about Snowplow Insights you can book a demo with our team, or if you’d prefer, you can try Snowplow technology for yourself quickly and easily.