Skip to main content

Page and screen views

Page and screen view tracking is key for understanding your users' navigation within your app.

Snowplow provides implementations for web and mobile platforms:

  • Page view events on web
  • Screen view events on mobile

Both page and screen views are included in the Snowplow Unified Digital dbt package. The legacy Web and Mobile packages handle page and screen views respectively.

Page views

Track page views to record when a user views a web page.

Page view events are baked-in events that have no schema. They populate the page atomic event parameters.

This table shows the support for page view tracking across the main Snowplow tracker SDKs.

TrackerSupportedSince versionAuto-trackingNotes
Web0.1.0✅/❌Web page entity can be automatically added
iOS
Android
React Native0.1.0No web page entity
Flutter0.1.0✅/❌Only on web; web page entity can be automatically added
Roku
Node.js
Golang
.NET
Java0.1.0No web page entity
Python0.1.0No web page entity
Scala
Ruby0.1.0No web page entity
Rust
PHP
C++
Unity
Lua
Google Tag Managerv3

We recommend using the Base web tracking plan template for web tracking. It includes page views.

Web page entity

Some trackers assign a unique identifier to every page load: the page view ID. Where available, you can configure this UUID to be added to every event tracked on that page, by tracking the web_page entity. This identifier can be very useful for sessionization and user journey analysis.

web_page

Entity
Schema for a web page context
Schema URIiglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0
Example
json
{
"id": "024629F0-6B9B-440C-82D4-DB3CF9D31533"
}
Properties and schema
PropertyDescription
id
string
Required.

Screen views

Screen view events are the mobile equivalent of page view events.

This table shows the support for screen view tracking across the main Snowplow tracker SDKs.

TrackerSupportedSince versionAuto-trackingNotes
Web4.2.0✅/❌Requires screen tracking plugin; we recommend using page views instead
iOS0.1.0✅/❌Screen entity can be automatically added; screen view autotracking depends on platform
Android0.1.0✅/❌Screen entity can be automatically added; screen view autotracking depends on platform
React Native0.1.0✅/❌Screen entity can be automatically added; add navigation handler for screen view autotracking
Flutter0.1.0No screen entity
Roku0.1.0No screen entity
Node.js0.1.0No screen entity
Golang1.0.0No screen entity
.NET1.3.0No screen entity
Java0.1.0No screen entity
Python0.2.0No screen entity
Scala
Ruby0.2.0No screen entity
Rust0.1.0No screen entity
PHP0.1.0No screen entity
C++0.1.0No screen entity
Unity0.8.0No screen entity
Lua0.1.0No screen entity
Google Tag Manager

We recommend using the Base mobile tracking plan template for mobile tracking. It includes screen views.

Screen view events record the name and identifier of the current screen, as well as some optional properties such as the ID of the previous screen. Information about the previous screen can be useful for understanding user navigation within your application.

screen_view

Event
Schema for a screen view event
Schema URIiglu:com.snowplowanalytics.mobile/screen_view/jsonschema/1-0-0
Example
json
{
"name": "Screen 2",
"type": "feed",
"id": "024629F0-6B9B-440C-82D4-DB3CF9D31533",
"previousName": "Screen 1",
"previousId": "86ffd23c-b844-4ed4-aae9-7796b8b6f1e4",
"previousType": "feed",
"transitionType": "push"
}
Properties and schema
PropertyDescription
name
string
Required. The name of the screen viewed.
type
string
Optional. The type of screen that was viewed e.g feed / carousel.
id
string
Required. An ID from the associated screenview event.
previousName
string
Optional. The name of the previous screen.
previousId
string
Optional. A screenview ID of the previous screenview.
previousType
string
Optional. The screen type of the previous screenview.
transitionType
string
Optional. The type of transition that led to the screen being viewed.
Warehouse query
sql
select
unstruct_event_com_snowplowanalytics_mobile_screen_view_1_0_0
from
PIPELINE_NAME.events events
where
events.collector_tstamp > timestamp_sub(current_timestamp(), interval 1 hour)
and events.event = 'unstruct'
and events.event_name = 'screen_view'
and events.event_vendor = 'com.snowplowanalytics.mobile'

Screen entity

Some trackers can automatically attach a screen entity to all events after a screen view is tracked. This entity contains information about the current, or last seen, screen.

screen

Entity
Schema for a context that represents information pertaining to the current screen being viewed when an event occurs.
Schema URIiglu:com.snowplowanalytics.mobile/screen/jsonschema/1-0-0
Example
json
{
"name": "Screen 2",
"type": "feed",
"id": "024629F0-6B9B-440C-82D4-DB3CF9D31533"
}
Properties and schema
PropertyDescription
name
string
Required. The name of the screen viewed.
type
string
Optional. The type of screen that was viewed e.g feed / carousel.
id
string
Required. An ID from the associated screenview event.
viewController
string
Optional. iOS specific: class name of the view controller.
topViewController
string
Optional. iOS specific: class name of the top level view controller.
activity
string
Optional. Android specific: name of activity.
fragment
string
Optional. Android specific: name of fragment.

On this page

Want to see a custom demo?

Our technical experts are here to help.