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

Overviewโ€‹

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.

Contextsโ€‹

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:

dbt_project.yml
vars:
snowplow_mobile:
snowplow__enable_app_errors_module: true
Was this page helpful?