Internal Events Payload Samples

Internal Events Payload

This guide provides payload samples for internal events tracked across frontend and backend services. Each event type includes a detailed breakdown of its fields and descriptions. Internal events use Snowplow to track events. For more information, see Snowplow event parameters guide.

From GitLab 18.0, Self-Managed and Dedicated instances will be sending structured events, self-describing events, page views, and page pings.

Event Types

At its core, our Internal Events tracking system is designed for granular tracking of events. Each event is denoted by an e=... parameter.

There are three categories of events:

  • Standard events, such as page views and page pings
  • Custom structured events
  • Self-describing events based on a schema
Type of tracking Event type (value of e)
Self-describing event ue
Pageview tracking pv
Page pings pp
Custom structured event se

Common Parameters

Event Parameters

Parameter Table Column Type Description Example values
e event text Event type pv, pp, ue, se
eid event_id text Event UUID 606adff6-9ccc-41f4-8807-db8fdb600df8

Application Parameters

Parameter Table Column Type Description Example values
tna namespace_tracker text The tracker namespace gl
aid app_id text Unique identifier for the application gitlab-sm
p platform text The platform the app runs on web, srv, app
tv v_tracker text Identifier for tracker version js-3.24.2

Timestamp Parameters

Parameter Table Column Type Description Example values
dtm dvce_created_tstamp int Timestamp when event occurred, as recorded by client device 1361553733313
stm dvce_sent_tstamp int Timestamp when event was sent by client device to collector 1361553733371
ttm true_tstamp int User-set exact timestamp 1361553733371
tz os_timezone text Time zone of client devices OS Europe%2FLondon

Note: The Internal Events Collector will also capture collector_tstamp which is the time the event arrived at the collector.

Parameter Table Column Type Description Example values
duid domain_userid text Unique rotating identifier for a user, based on a first-party cookie. aeb1691c5a0ee5a6
uid user_id text user_id, which gets pseudonymized in the snowplow pipeline 1234567890
vid domain_sessionidx int Index of number of visits that this user has made to the application 1
sid domain_sessionid text Unique identifier (UUID) generated to track a user’s activity during a single visit or session. This identifier resets between sessions. The identifier is not linked to personal information. 9c65e7f3-8e8e-470d-b243-910b5b300da0
ip user_ipaddress, we collect Geo information but do not store the IP address in the snowplow pipeline text IP address override 37.157.33.178

Platform Parameters

Parameter Table Column Type Description Example values
url page_url text Page URL. We pseudonymize sensitive data from the URL (see examples). https://gitlab.com/dashboard/projects
ua useragent text Useragent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:105.0) Gecko/20100101 Firefox/105.0
page page_title text This value will always be hardcoded to GitLab GitLab
refr page_referrer text Referrer URL, similar to page_url. We pseudonymize referrer URL. https://gitlab.com/group:123/project:356
cookie br_cookies boolean Does the browser permit cookies? 1
lang br_lang text Browser language en-US
cd br_colordepth integer Browser color depth 24
cs doc_charset text Web page’s character encoding UTF-8
ds doc_width and doc_height text Web page width and height 1090x1152
vp br_viewwidth and br_viewheight text Browser viewport width and height 1105x390
res dvce_screenwidth and dvce_screenheight text Screen/monitor resolution 1280x1024

Self-describing Events

Self-describing events are the recommended way to track custom events with Internal Events tracking. They allow tracking of events according to a predefined schema.

When tracking a self-describing event:

  • The event type is set to e=ue.
  • The event data is base64 encoded and included in the payload.

Specific Event Types

Page Views

Pageview tracking is used to record views of web pages.

Recording a pageview involves recording an event where e=pv. All the fields associated with web events can be tracked.

Page Pings

Page ping events track user engagement by periodically firing while a user remains active on a page. They measure actual time spent on page.

Page pings are identified by e=pp and include these additional fields:

Parameter Table Column Type Description
pp_mix pp_xoffset_min integer Minimum page x offset seen in the last ping period
pp_max pp_xoffset_max integer Maximum page x offset seen in the last ping period
pp_miy pp_yoffset_min integer Minimum page y offset seen in the last ping period
pp_may pp_yoffset_max integer Maximum page y offset seen in the last ping period

Structured Event Tracking

As well as setting e=se, there are five custom event specific parameters that can be set:

Parameter Table Column Type Description Example values
se_ca se_category text The event category. By default, where the event happened. For frontend events, it is the page name, for backend events it is the controller name. projects:merge_requests:show
se_ac se_action text The action or event name code_suggestion_accepted
se_la se_label text A label often used to refer to the ‘object’ the action is performed on ${editor_name}
se_pr se_property text A property associated with either the action or the object ${suggestion_type}
se_va se_value decimal A value associated with the user action ${suggestion_shown_duration}
cx contexts JSON It passes base64 encoded context to the event JSON

Contexts has some of the predefined fields which will be sent with each event. All the predefined schemas are stored in the gitlab-org/iglu repository.

Most of the self-describing events have gitlab_standard context, which is a set of fields that are common to all events. For more information about the gitlab_standard context, see Standard context fields.

Internal Events Payload Examples

Page View

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "pv",
      "url": "https://gitlab.com/",
      "page": "GitLab",
      "refr": "https://gitlab.com/",
      "eid": "564f9834-3f98-4d78-a738-b7977d621371",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205227525",
      "vp": "1920x331",
      "ds": "1920x388",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5z...",
      "stm": "1742205227528"
    }
  ]
}

cx field is base64 encoded and contains the following JSON:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
  "data": [
    {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-1",
      "data": {
        "environment": "production",
        "source": "gitlab-javascript",
        "correlation_id": "01JPHRC3K30KDDV165EWTCFJ02",
        "plan": null,
        "extra": {},
        "user_id": 11979729,
        "global_user_id": "XsZfAb677xjp9zut/lL6X0ZKX5b7pli65uk2wnfu0SY=",
        "is_gitlab_team_member": true,
        "namespace_id": null,
        "project_id": null,
        "feature_enabled_by_namespace_ids": null,
        "realm": "saas",
        "instance_id": "ea8bf810-1d6f-4a6a-b4fd-93e8cbd8b57f",
        "host_name": "gitlab-webservice-web-58446c98b5-zprvd",
        "instance_version": "17.10.0",
        "context_generated_at": "2025-03-17T09:53:46.709Z",
        "google_analytics_id": "GA1.1.424273043.1737451027"
      }
    },
    {
      "schema": "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
      "data": {
        "id": "90ea98bd-3bdb-48d2-935c-59a4d03a4710"
      }
    },
    {
      "schema": "iglu:com.google.analytics/cookies/jsonschema/1-0-0",
      "data": {
        "_ga": "GA1.1.424273043.1737451027"
      }
    },
    {
      "schema": "iglu:com.google.ga4/cookies/jsonschema/1-0-0",
      "data": {
        "_ga": "GA1.1.424273043.1737451027",
        "session_cookies": [
          {
            "measurement_id": "G-ENFH3X7M5Y",
            "session_cookie": "GS1.1.1742200876.45.1.1742202521.0.0.0"
          }
        ]
      }
    },
    {
      "schema": "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
      "data": {
        "navigationStart": 1742205226288,
        "redirectStart": 0,
        "redirectEnd": 0,
        "fetchStart": 1742205226289,
        "domainLookupStart": 1742205226289,
        "domainLookupEnd": 1742205226289,
        "connectStart": 1742205226289,
        "secureConnectionStart": 0,
        "connectEnd": 1742205226289,
        "requestStart": 1742205226323,
        "responseStart": 1742205226969,
        "responseEnd": 1742205226972,
        "unloadEventStart": 1742205226975,
        "unloadEventEnd": 1742205226975,
        "domLoading": 1742205226980,
        "domInteractive": 1742205227044,
        "domContentLoadedEventStart": 1742205227437,
        "domContentLoadedEventEnd": 1742205227437,
        "domComplete": 0,
        "loadEventStart": 0,
        "loadEventEnd": 0
      }
    },
    {
      "schema": "iglu:org.ietf/http_client_hints/jsonschema/1-0-0",
      "data": {
        "isMobile": false,
        "brands": [
          {
            "brand": "Chromium",
            "version": "134"
          },
          {
            "brand": "Not:A-Brand",
            "version": "24"
          },
          {
            "brand": "Google Chrome",
            "version": "134"
          }
        ]
      }
    }
  ]
}

Page Ping

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "pp",
      "url": "https://gitlab.com/",
      "page": "GitLab",
      "refr": "https://gitlab.com/",
      "eid": "ac958a76-5360-44e1-a9f3-8172d6df0f80",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205324496",
      "vp": "1920x331",
      "ds": "1920x1694",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205324501"
    }
  ]
}

Self-describing Events

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "ue",
      "eid": "67ae8ec1-3ec0-46b7-89e0-fd944d90acc6",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205393772",
      "vp": "1920x331",
      "ds": "1920x1694",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "refr": "https://gitlab.com/",
      "url": "https://gitlab.com/",
      "ue_px": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205393774"
    }
  ]
}

This is part of link click tracking. The ue_px field is base64 encoded and contains the following JSON:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/unstruct_event/jsonschema/1-0-0",
  "data": {
    "schema": "iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",
    "data": {
      "targetUrl": "https://gitlab.com/",
      "elementId": "",
      "elementClasses": [
        "brand-logo"
      ],
      "elementTarget": ""
    }
  }
}

Structured Events

{
  "schema": "iglu:com.snowplowanalytics.snowplow/payload_data/jsonschema/1-0-4",
  "data": [
    {
      "e": "se",
      "se_ca": "root:index",
      "se_ac": "render_duo_chat_callout",
      "eid": "12c18f54-ef65-489e-99f8-00922f9c3249",
      "tv": "js-3.24.2",
      "tna": "gl",
      "aid": "gitlab",
      "p": "web",
      "cookie": "1",
      "cs": "UTF-8",
      "lang": "en-GB",
      "res": "1728x1117",
      "cd": "30",
      "tz": "Asia/Calcutta",
      "dtm": "1742205394848",
      "vp": "1920x331",
      "ds": "1920x388",
      "vid": "720",
      "sid": "1574509e-5d6d-43d1-9e76-e42801ae2e55",
      "duid": "9e5500ac-3437-4457-a007-351911d54983",
      "refr": "https://gitlab.com/",
      "url": "https://gitlab.com/",
      "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
      "stm": "1742205395080"
    }
  ]
}

Backend Events

{
        "e": "se",
        "eid": "2e78c447-c18e-4087-a3a8-35723ecfb602",
        "aid": "asdfsadf",
        "cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy...",
        "tna": "gl",
        "stm": "1742268163018",
        "tv": "rb-0.8.0",
        "se_ac": "perform_action",
        "se_la": "redis_hll_counters.manage.unique_active_users_monthly",
        "se_ca": "Users::ActivityService",
        "p": "srv",
        "dtm": "1742268163016"
      }

cx field is base64 encoded and contains the following JSON:

{
  "schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-1",
  "data": [
    {
      "schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-1",
      "data": {
        "environment": "development",
        "source": "gitlab-rails",
        "correlation_id": "01JPKMCRCBSMB07DPGVSJJ708F",
        "plan": null,
        "extra": {},
        "user_id": 1,
        "global_user_id": "KaAjqePKpCsnc6P40up8ZOi4+BUwEUIyab6W5jWIg5M=",
        "is_gitlab_team_member": null,
        "namespace_id": null,
        "project_id": null,
        "feature_enabled_by_namespace_ids": null,
        "realm": "self-managed",
        "instance_id": "e1baa3de-7e45-4fbc-b17e-95995935cf09",
        "host_name": "nbelokolodov--20220811-Y26WJ",
        "instance_version": "17.10.0",
        "context_generated_at": "2025-03-18 03:22:43 UTC"
      }
    },
    {
      "schema": "iglu:com.gitlab/gitlab_service_ping/jsonschema/1-0-1",
      "data": {
        "data_source": "redis_hll",
        "event_name": "unique_active_user"
      }
    }
  ]
}