Introduction to Snowplow events
Events are the primary way to capture data with Snowplow. Every time something happens that you want to track, you can send an event to your Snowplow pipeline. Each event is a JSON object that describes what happened. Events flow through your pipeline where they're validated, enriched, and loaded into your data warehouse or lake for analysis.
Snowplow event types
All Snowplow events have the same underlying structure and standard fields. However, there are two types of events in Snowplow:
- Schema-less baked-in events
- The baked-in event types are page views, page pings, and structured events
- Self-describing events that are based on a JSON schema
- All other events are self-describing events
- This includes out-of-the-box events that come with Snowplow, and custom events that you define yourself
Whether an event is baked-in or self-describing affects how you'll model the data.
All Snowplow events are by default tracked with schema-defined entities attached to them.
Baked-in events
The following events are "baked in":
In the data warehouse, any event-specific information will be in standard columns in the Snowplow events table. You can find those listed here.
Find out more about how to track and model page view and page ping events here.
We recommend using self-describing events instead of structured events whenever possible. Structured event tracking is a legacy format used to track events that were not natively supported by Snowplow.
The legacy transaction and transaction_item events are also "baked-in". Several Snowplow trackers provide ecommerce tracking APIs; we recommend using these instead, as they support current Snowplow best practise, and are compatible with the Snowplow ecommerce dbt package.