Snowplow schemas

This page provides Snowplow schema reference for GitLab events.


We are including the gitlab_standard schema for structured events and page views.

The StandardContext class represents this schema in the application. Some properties are automatically populated for frontend events, and can be provided manually for backend events.

Field NameRequiredDefault valueTypeDescription
project_idCurrent project ID *integer 
namespace_idCurrent group/namespace ID *integer 
user_idCurrent user ID *integerUser database record ID attribute. This value undergoes a pseudonymization process at the collector level.
context_generated_atCurrent timestampstring (date time format)Timestamp indicating when context was generated.
environmentCurrent environmentstring (max 32 chars)Name of the source environment, such as production or staging
sourceEvent sourcestring (max 32 chars)Name of the source application, such as gitlab-rails or gitlab-javascript
planCurrent namespace plan *string (max 32 chars)Name of the plan for the namespace, such as free, premium, or ultimate. Automatically picked from the namespace.
google_analytics_idGA ID value *string (max 32 chars)Google Analytics ID, present when set from our marketing sites.
is_gitlab_team_member booleanIndicates if the events is triggered by a GitLab team member
extra JSONAny additional data associated with the event, in the form of key-value pairs

* Default value present for frontend events only

Default Schema

Frontend events include a web-specific schema provided by Snowplow. All URLs are pseudonymized. The entity identifier replaces personally identifiable information (PII). PII includes usernames, group, and project names. Page titles are hardcoded as GitLab for the same reason.

Field NameRequiredTypeDescription
app_idstringUnique identifier for website / application
base_currencystringReporting currency
br_colordepthintegerBrowser color depth
br_cookiesbooleanDoes the browser permit cookies?
br_familystringBrowser family
br_features_directorbooleanDirector plugin installed?
br_features_flashbooleanFlash plugin installed?
br_features_gearsbooleanGoogle gears installed?
br_features_javabooleanJava plugin installed?
br_features_pdfbooleanAdobe PDF plugin installed?
br_features_quicktimebooleanQuicktime plugin installed?
br_features_realplayerbooleanRealPlayer plugin installed?
br_features_silverlightbooleanSilverlight plugin installed?
br_features_windowsmediabooleanWindows media plugin installed?
br_langstringLanguage the browser is set to
br_namestringBrowser name
br_renderenginestringBrowser rendering engine
br_typestringBrowser type
br_versionstringBrowser version
br_viewheightstringBrowser viewport height
br_viewwidthstringBrowser viewport width
collector_tstamptimestampTime stamp for the event recorded by the collector
derived_contexts Contexts derived in the Enrich process
derived_tstamptimestampTimestamp making allowance for inaccurate device clock
doc_charsetstringWeb page’s character encoding
doc_heightstringWeb page height
doc_widthstringWeb page width
domain_sessionidstringUnique identifier (UUID) for this visit of this user_id to this domain
domain_sessionidxintegerIndex of number of visits that this user_id has made to this domain (The first visit is 1)
domain_useridstringUnique identifier for a user, based on a first party cookie (so domain specific)
dvce_created_tstamptimestampTimestamp when event occurred, as recorded by client device
dvce_ismobilebooleanIndicates whether device is mobile
dvce_screenheightstringScreen / monitor resolution
dvce_screenwidthstringScreen / monitor resolution
dvce_sent_tstamptimestampTimestamp when event was sent by client device to collector
dvce_typestringType of device
etl_tagsstringJSON of tags for this ETL run
etl_tstamptimestampTimestamp event began ETL
eventstringEvent type
event_fingerprintstringHash client-set event fields
event_formatstringFormat for event
event_idstringEvent UUID
event_namestringEvent name
event_vendorstringThe company who developed the event model
event_versionstringVersion of event schema
geo_citystringCity of IP origin
geo_countrystringCountry of IP origin
geo_latitudestringAn approximate latitude
geo_longitudestringAn approximate longitude
geo_regionstringRegion of IP origin
geo_region_namestringRegion of IP origin
geo_timezonestringTime zone of IP origin
geo_zipcodestringZip (postal) code of IP origin
ip_domainstringSecond level domain name associated with the visitor’s IP address
ip_ispstringVisitor’s ISP
ip_netspeedstringVisitor’s connection type
ip_organizationstringOrganization associated with the visitor’s IP address – defaults to ISP name if none is found
mkt_campaignstringThe campaign ID
mkt_clickidstringThe click ID
mkt_contentstringThe content or ID of the ad.
mkt_mediumstringType of traffic source
mkt_networkstringThe ad network to which the click ID belongs
mkt_sourcestringThe company / website where the traffic came from
mkt_termstringKeywords associated with the referrer
name_trackerstringThe tracker namespace
network_useridstringUnique identifier for a user, based on a cookie from the collector (so set at a network level and shouldn’t be set by a tracker)
os_familystringOperating system family
os_manufacturerstringManufacturers of operating system
os_namestringName of operating system
os_timezonestringClient operating system time zone
page_referrerstringReferrer URL
page_titlestringTo not expose personal identifying information, the page title is hardcoded as GitLab
page_urlstringPage URL
page_urlfragmentstringFragment aka anchor
page_urlhoststringHost aka domain
page_urlpathstringPath to page
page_urlportintegerPort if specified, 80 if not
page_urlquerystringQuery string
page_urlschemestringScheme (protocol name)
platformstringThe platform the app runs on
pp_xoffset_maxintegerMaximum page x offset seen in the last ping period
pp_xoffset_minintegerMinimum page x offset seen in the last ping period
pp_yoffset_maxintegerMaximum page y offset seen in the last ping period
pp_yoffset_minintegerMinimum page y offset seen in the last ping period
refr_domain_useridstringThe Snowplow domain_userid of the referring website
refr_dvce_tstamptimestampThe time of attaching the domain_userid to the inbound link
refr_mediumstringType of referer
refr_sourcestringName of referer if recognised
refr_termstringKeywords if source is a search engine
refr_urlfragmentstringReferer URL fragment
refr_urlhoststringReferer host
refr_urlpathstringReferer page path
refr_urlportintegerReferer port
refr_urlquerystringReferer URL query string
refr_urlschemestringReferer scheme
se_actionstringThe action / event itself
se_categorystringThe category of event
se_labelstringA label often used to refer to the ‘object’ the action is performed on
se_propertystringA property associated with either the action or the object
se_valuedecimalA value associated with the user action
ti_categorystringItem category
ti_namestringItem name
ti_orderidstringOrder ID
ti_pricedecimalItem price
ti_price_basedecimalItem price in base currency
ti_quantityintegerItem quantity
ti_skustringItem SKU
tr_affiliationstringTransaction affiliation (such as channel)
tr_citystringDelivery address: city
tr_countrystringDelivery address: country
tr_currencystringTransaction Currency
tr_orderidstringOrder ID
tr_shippingdecimalDelivery cost charged
tr_shipping_basedecimalShipping cost in base currency
tr_statestringDelivery address: state
tr_taxdecimalTransaction tax value (such as amount of VAT included)
tr_tax_basedecimalTax applied in base currency
tr_totaldecimalTransaction total value
tr_total_basedecimalTotal amount of transaction in base currency
true_tstamptimestampUser-set exact timestamp
txn_idstringTransaction ID
unstruct_eventJSONThe properties of the event
user_fingerprintintegerUser identifier based on (hopefully unique) browser features
user_idstringUnique identifier for user, set by the business using setUserId
user_ipaddressstringIP address
useragentstringUser agent (expressed as a browser string)
v_collectorstringCollector version
v_etlstringETL version
v_trackerstringIdentifier for Snowplow tracker


Backend events converted from ServicePing (redis and redis_hll) must include ServicePing context using the helper class.

An example of converted redis_hll event with context.

Field NameRequiredTypeDescription
data_sourcestring (max 64 chars)The data_source attribute from the metrics YAML definition.
event_name*string (max 128 chars)When there is a many-to-many relationship between events and metrics, this field contains the name of a Redis event that can be used for aggregations in downstream systems
key_path*string (max 256 chars)The key_path attribute from the metrics YAML definition

* Either event_name or key_path is required