Snowplow Canonical Events


I’m new to snowplow and I’m having some problems to send not requeried fields to the collector.

Could anyone help me to understande how do i activate that no required field to send it within the event to the collector?


Typically in order to send these fields you’ll be using one of the Snowplow trackers (e.g., Javascript, .NET etc) Which tracker are you using at the moment?

I’m using javascript tracker.

The Javascript tracker will automatically populate most of these fields for you based on the version of the tracker and the namespace that you provide during the initialisation snippet - so you won’t need to worry about manually sending these.

I created a new tracker.


Sent a trackPageView event, but the output data does not have os_family field filled for example.

I wanna know how can i fill those blank fields.

os_family gets populated by the ua-parser enrichment which you can configure as part of your enrichment process. Although this enrichment still works it’s deprecated in favour of the YAUAA enrichment instead which provides a similar dataset.

Thanks Mike!! You already helped me a lot. One last question: all fields, that have Reqd? == no, must be populated by some enrichment process?

It varies - the canonical model page there is a bit confusing as to what is required and what isn’t.

Most fields (in are either populated by a tracker (and the data it sends) or part of the enrichment process. The long term intention (I believe) is to move the enrichments out of the table (into their own contexts) rather than in the core table itself.

At the moment for the core table the following enrichments will populate data

  • geo_* columns (Maxmind city / country)
  • ip_* columns (Maxmind ISP / Connection Type)
  • mkt_* (Campaign attribution)
  • Some of the br fields (Useragent enrichment)
  • os_*, dvce_type (Useragent enrichment)
  • event_fingerprint (Fingerprint enrichment)
  • refr_* (Referer parser enrichment)

Most of the newer enrichments will populate a context instead e.g.,

  • API enrichment
  • HTTP header etc
1 Like

I see. Thank you man! I’m really glad you could help.

1 Like