Skip to main content
Release Version

Snowplow Mobile Package

The package source code can be found in the snowplow/dbt-snowplow-mobile repo, and the docs for the model design here.

The package contains a fully incremental model that transforms raw mobile event data generated by the Snowplow iOS or android trackers into a series of derived tables of varying levels of aggregation.

The Snowplow mobile data model aggregates Snowplow's out-of-the-box mobile events to create a set of derived tables - screen views, sessions, and users. These contain many useful dimensions, as well as calculated measures such as screen views per session.

Mobile Package data flowMobile Package data flow


This model consists of a series of modules, each producing a table which serves as the input to the next module. The 'standard' modules are:

  • Base: Performs the incremental logic, outputting the table snowplow_mobile_base_events_this_run which contains a de-duped data set of all events required for the current run of the model.
  • Screen Views: Aggregates event level data to a screen view level, on screen_view_id, outputting the table snowplow_mobile_screen_views.
  • Sessions: Aggregates screen view level data to a session level, on session_id, outputting the table snowplow_mobile_sessions.
  • Users: Aggregates session level data to a users level, on device_user_id, outputting the table snowplow_mobile_users.
  • User Mapping: Provides a mapping between user identifiers, device_user_id and user_id, outputting the table snowplow_mobile_user_mapping. This can be used for session stitching.


The following contexts can be enabled depending on your tracker configuration:

  • Mobile context
  • Geolocation context
  • Application context
  • Screen context

By default they are disabled. They can be enabled by configuring the dbt_project.yml file and setting the appropriate snowplow__enable_{context_type}_context variable to true.

Optional Modulesโ€‹

Currently the App Errors module, used for crash reporting, is the only optional module. More will be added in the future as the tracker's functionality expands.

App Errorsโ€‹

Assuming your tracker is capturing application_error events, the module can be enabled by configuring the dbt_project.yml file:

snowplow__enable_app_errors_module: true
Was this page helpful?