Skip to main content

Introduction to enrichments

CloudPrivate Managed CloudSelf-HostedAddon

During enrichment, events are validated against their schemas, and additional data is attached to the events.

Snowplow runs two kinds of enrichments:

  • Configurable enrichments, which you can opt into. Most produce entities attached to the event, though a few modify atomic event fields directly.
  • Hardcoded enrichments, which always run as part of the common enrichment process. They populate atomic event fields.

Configurable enrichments

See the available enrichments page for the full list, in execution order.

Hardcoded enrichment fields

During enrichment, the Enrich application adds a number of fields to the event.

Always populated

The following fields are always populated during the enrichment process:

Added parameterPurpose
v_etlVersion of the enrichment process.
etl_tstampTimestamp the event began enrichment.
collector_tstampTimestamp for the event recorded by the Collector.
derived_tstampCalculated timestamp.

See the Timestamps overview page for more details on Snowplow timestamps.

Conditionally populated

Some fields are populated depending on whether the tracker provided the corresponding value or not.

These parameters can be provided by the tracker or by the Collector.

Raw parameterEnriched parameterPurpose
eidevent_idThe unique event identifier (UUID). Trackers should always assign this value, but it can be assigned during enrichment as a fallback.
cvv_collectorCollector type/version.
tnuidnetwork_useridUser ID set by Snowplow using a third-party cookie. Overwritten with tracker-set tnuid.
ipuser_ipaddressThe Collector logs IP address by default. You can override the value derived from the Collector by populating this in the tracker.
uauseragentRaw user agent (browser string). Can be overwritten with ua.

The raw tracker payload parameters res, ds, and vp each combine a width and height into a single string, e.g. 1280x1024. During enrichment, each is split into two separate integer fields.

Raw parameterAdded parametersPurpose
resdvce_screenwidth, dvce_screenheightScreen or monitor size.
dsdoc_width, doc_heightPage size.
vpbr_viewwidth, br_viewheightViewport size.

The url parameter provides the atomic page_url field. During enrichment, the following parts are extracted to populate separate fields:

Added parameterPurpose
page_urlschemeScheme (protocol), for example https.
page_urlhostHost (domain), for example www.snowplow.io.
page_urlportPort if specified, 443 or 80 if not.
page_urlpathPath to page, for example /product/index.html.
page_urlqueryQuery string, for example id=GTM-DLRG.
page_urlfragmentFragment (anchor), for example 4-conclusion.

Similarly, the refr parameter provides the atomic page_referrer field. During enrichment, the following parts are extracted to populate separate fields:

Added parameterPurpose
refr_urlschemeScheme (protocol).
refr_urlhostHost (domain).
refr_urlportPort if specified, 443 or 80 if not.
refr_urlpathPath to page.
refr_urlqueryQuery string.
refr_urlfragmentFragment (anchor).

On this page

Want to see a custom demo?

Our technical experts are here to help.