[Experiment Rollout] change_dap_land_default_credits - Change default credits for DAP Land SKU to 25
Summary
This issue tracks the rollout and status of an experiment through to removal.
- Feature flag name:
change_dap_land_default_credits - Epic or issue link: https://gitlab.com/gitlab-org/gitlab/-/issues/619294
This is an experiment rollout issue
using the scoped experiment label.
As well as defining the experiment rollout and cleanup, this issue incorporates the relevant
Feature Flag Roll Out steps.
Owners
- Team:
group::acquisition - Most appropriate slack channel to reach out to:
#g_acquisition - Best individual to reach out to: @rliu-gl
- Product manager (PM): NAME
Stakeholders
Expectations
What are we expecting to happen?
The candidate variant pre-fills 25 credits (instead of the Customers Portal default of 5) in the DAP Land SKU purchase flow by appending quantity=25 to the purchase-credits URL on the group billing page. We expect the higher default to reduce underpurchasing (average credits purchased closer to actual trial usage) without reducing purchase conversion.
What might happen if this goes wrong?
Low risk: the change only affects the pre-filled quantity in the purchase URL; users can still edit the quantity in the Customers Portal. Rollback is disabling the feature flag. No data loss potential.
What can we monitor to detect problems with this?
Tracked data
Note: you can use the CXL calculator to determine if your experiment has reached significance. The calculator includes an estimate for how much longer an experiment must run for before reaching significance.
Pre-staging validation (Development)
Before deploying to staging, engineers must validate event structure locally using Snowplow Micro.
Event structure validation should happen during development, not in staging or production.
After triggering all experiment events locally for each variant (control and candidate), paste the raw Snowplow Micro output below as proof that events are correctly structured.
Snowplow Micro raw dump (expand to view)
How this was produced (2026-09-09, local GDK, gitlab-org/gitlab master at 2929bb01, which includes !253499 (merged) bumping the gitlab_experiment context schema to 1-0-3):
- Tracking journey contract:
spec/fixtures/snowplow_tracking_journeys/change_dap_land_default_credits.yml - Feature spec:
ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb - Local run:
ENABLE_RSPACK=true bin/rspec ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb→2 examples, 0 failures(Finished in 2 minutes 39.3 seconds) - Snowplow Micro (
snowplow/snowplow-micro4.2.0, GDKsnowplow_micro.enabled: true, Iglu resolver withhttps://gitlab-org.gitlab.io/iglu): flagchange_dap_land_default_creditsenabled in GDK, one fresh free top-level group per arm, arm forced with?glex_force=change_dap_land_default_credits:<variant>on the group billing page, CTA href neutralised before clicking so the click stays on the page (tracking fires from the click handler), and the conversion event triggered by runningGitlabSubscriptions::AddOnPurchases::GitlabCom::ProvisionServicefor the group (what the Customers Portal callback does). Micro was reset between arms. - Result: candidate 10 good / 0 bad, control 8 good / 0 bad across everything the pages emitted. The raw dumps below are filtered to the three experiment events per arm (
assignment,click_purchase_credits_dap_land_sku,finish_purchase_credits_dap_land_sku), each shown as the complete Micro/micro/goodevent object; unrelated page-view, page-ping, Duo and render events are omitted. All three carry thegitlab_experimentcontext with the expected variant. Candidate CTA href carriedquantity=25; control CTA href had noquantity. - Note: the same run against master before !253499 (merged) (schema
1-0-0) rejected every event carrying the experiment context with$.key: may only be 32 characters long, matching the staging bad-events finding in https://gitlab.com/gitlab-org/gitlab/-/work_items/619294#note_3783299818.
Tracking journey events.yml — candidate (from tmp/captured_snowplow_events/)
# Captured from: Change DAP land default credits experiment variant: "candidate" behaves like tracking the purchase credits funnel emits every event the journey declares for its variant
# ./ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb:44 at 2026-09-09T19:53:24Z
#
# Frontend categories are the page an event fired on, so they are rarely worth asserting.
# Also captured, not expressible in a contract: 1 page view, 1 self-describing event
---
events:
- category: change_dap_land_default_credits
action: assignment
- category: Users::ActivityService
action: perform_action
label: redis_hll_counters.manage.unique_active_users_monthly
- category: groups:billings:index
action: render
label: free
- category: groups:billings:index
action: click_purchase_credits_dap_land_sku
- category: groups:billings:index
action: click_cta_on_dap_monthly_credit_card
property: purchase_credits
- category: change_dap_land_default_credits
action: finish_purchase_credits_dap_land_skuTracking journey events.yml — control (from tmp/captured_snowplow_events/)
# Captured from: Change DAP land default credits experiment variant: "control" behaves like tracking the purchase credits funnel emits every event the journey declares for its variant
# ./ee/spec/features/experiments/change_dap_land_default_credits_events_spec.rb:44 at 2026-09-09T19:53:28Z
#
# Frontend categories are the page an event fired on, so they are rarely worth asserting.
# Also captured, not expressible in a contract: 1 page view, 1 self-describing event
---
events:
- category: change_dap_land_default_credits
action: assignment
- category: groups:billings:index
action: render
label: free
- category: change_dap_land_default_credits
action: finish_purchase_credits_dap_land_sku
- category: groups:billings:index
action: click_purchase_credits_dap_land_sku
- category: groups:billings:index
action: click_cta_on_dap_monthly_credit_card
property: purchase_creditsSnowplow Micro /micro/good — candidate (3 experiment events, raw)
[
{
"rawEvent": {
"api": {
"vendor": "com.snowplowanalytics.snowplow",
"version": "tp2"
},
"parameters": {
"e": "se",
"eid": "49d8e181-7833-480c-adb5-62eb162dc9e3",
"aid": "gitlab",
"cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6IjAxTTIzVjZIU0dYNTg0Ulo4Sjk2NFZGV0I4IiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzAsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMCwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0NDozNSBVVEMiLCJvcmdhbml6YXRpb25faWQiOjF9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY2FuZGlkYXRlIiwiZXhwZXJpbWVudCI6ImNoYW5nZV9kYXBfbGFuZF9kZWZhdWx0X2NyZWRpdHMiLCJrZXkiOiI3ZTYwYjI1OWYwMjAyOGI5YzM0ZjllZDc5ZGEzYmY4ZDVjYWI1OTZmZGMzMDc3MTRjMDI2ODlmY2ZiYjJiZDFhIn19XX0=",
"tna": "gl",
"stm": "1788983075164",
"tv": "rb-0.8.0",
"se_ac": "assignment",
"se_ca": "change_dap_land_default_credits",
"p": "srv",
"dtm": "1788983075163"
},
"contentType": "application/json; charset=utf-8",
"source": {
"name": "ssc-4.2.0-micro-sscsink",
"encoding": "UTF-8",
"hostname": null
},
"context": {
"timestamp": "2026-09-09T19:44:35.268Z",
"ipAddress": "172.17.0.1",
"useragent": "Ruby",
"refererUri": null,
"headers": [
"Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
"Accept: */*",
"User-Agent: Ruby",
"Content-Type: application/json; charset=utf-8",
"Connection: close",
"Host: localhost:9091",
"Content-Length: 1590",
"application/json; charset=utf-8"
],
"userId": "23c749ef-dc8d-479f-ac95-c4a47cbb4be8"
}
},
"eventType": "struct",
"schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
"contexts": [
"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
],
"event": {
"app_id": "gitlab",
"platform": "srv",
"etl_tstamp": "2026-09-09T19:44:36.285Z",
"collector_tstamp": "2026-09-09T19:44:35.268Z",
"dvce_created_tstamp": "2026-09-09T19:44:35.163Z",
"event": "struct",
"event_id": "49d8e181-7833-480c-adb5-62eb162dc9e3",
"txn_id": null,
"name_tracker": "gl",
"v_tracker": "rb-0.8.0",
"v_collector": "ssc-4.2.0-micro-sscsink",
"v_etl": "snowplow-micro-4.2.0",
"user_id": null,
"user_ipaddress": "172.17.0.1",
"user_fingerprint": null,
"domain_userid": null,
"domain_sessionidx": null,
"network_userid": "23c749ef-dc8d-479f-ac95-c4a47cbb4be8",
"geo_country": null,
"geo_region": null,
"geo_city": null,
"geo_zipcode": null,
"geo_latitude": null,
"geo_longitude": null,
"geo_region_name": null,
"ip_isp": null,
"ip_organization": null,
"ip_domain": null,
"ip_netspeed": null,
"page_url": null,
"page_title": null,
"page_referrer": null,
"page_urlscheme": null,
"page_urlhost": null,
"page_urlport": null,
"page_urlpath": null,
"page_urlquery": null,
"page_urlfragment": null,
"refr_urlscheme": null,
"refr_urlhost": null,
"refr_urlport": null,
"refr_urlpath": null,
"refr_urlquery": null,
"refr_urlfragment": null,
"refr_medium": null,
"refr_source": null,
"refr_term": null,
"mkt_medium": null,
"mkt_source": null,
"mkt_term": null,
"mkt_content": null,
"mkt_campaign": null,
"contexts": {
"schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
"data": [
{
"schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"data": {
"environment": "production",
"source": "gitlab-rails",
"correlation_id": "01M23V6HSGX584RZ8J964VFWB8",
"plan": "free",
"extra": {},
"user_id": null,
"global_user_id": null,
"user_type": null,
"is_gitlab_team_member": null,
"namespace_id": 230,
"ultimate_parent_namespace_id": 230,
"project_id": null,
"feature_enabled_by_namespace_ids": null,
"realm": "saas",
"deployment_type": ".com",
"instance_id": "de4cf803-6677-4751-acee-0119892fa565",
"unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
"host_name": "gdk.test",
"instance_version": "19.4.0",
"context_generated_at": "2026-09-09 19:44:35 UTC",
"organization_id": 1
}
},
{
"schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"data": {
"variant": "candidate",
"experiment": "change_dap_land_default_credits",
"key": "7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a"
}
}
]
},
"se_category": "change_dap_land_default_credits",
"se_action": "assignment",
"se_label": null,
"se_property": null,
"se_value": null,
"unstruct_event": null,
"tr_orderid": null,
"tr_affiliation": null,
"tr_total": null,
"tr_tax": null,
"tr_shipping": null,
"tr_city": null,
"tr_state": null,
"tr_country": null,
"ti_orderid": null,
"ti_sku": null,
"ti_name": null,
"ti_category": null,
"ti_price": null,
"ti_quantity": null,
"pp_xoffset_min": null,
"pp_xoffset_max": null,
"pp_yoffset_min": null,
"pp_yoffset_max": null,
"useragent": "Ruby",
"br_name": null,
"br_family": null,
"br_version": null,
"br_type": null,
"br_renderengine": null,
"br_lang": null,
"br_features_pdf": null,
"br_features_flash": null,
"br_features_java": null,
"br_features_director": null,
"br_features_quicktime": null,
"br_features_realplayer": null,
"br_features_windowsmedia": null,
"br_features_gears": null,
"br_features_silverlight": null,
"br_cookies": null,
"br_colordepth": null,
"br_viewwidth": null,
"br_viewheight": null,
"os_name": null,
"os_family": null,
"os_manufacturer": null,
"os_timezone": null,
"dvce_type": null,
"dvce_ismobile": null,
"dvce_screenwidth": null,
"dvce_screenheight": null,
"doc_charset": null,
"doc_width": null,
"doc_height": null,
"tr_currency": null,
"tr_total_base": null,
"tr_tax_base": null,
"tr_shipping_base": null,
"ti_currency": null,
"ti_price_base": null,
"base_currency": null,
"geo_timezone": null,
"mkt_clickid": null,
"mkt_network": null,
"etl_tags": null,
"dvce_sent_tstamp": "2026-09-09T19:44:35.164Z",
"refr_domain_userid": null,
"refr_dvce_tstamp": null,
"derived_contexts": {},
"domain_sessionid": null,
"derived_tstamp": "2026-09-09T19:44:35.267Z",
"event_vendor": "com.google.analytics",
"event_name": "event",
"event_format": "jsonschema",
"event_version": "1-0-0",
"event_fingerprint": null,
"true_tstamp": null
},
"incomplete": false
},
{
"rawEvent": {
"api": {
"vendor": "com.snowplowanalytics.snowplow",
"version": "tp2"
},
"parameters": {
"e": "se",
"duid": "d4983421-15be-4681-bba1-c4c088ae7576",
"vid": "1",
"co": "{\"schema\":\"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0\",\"data\":[{\"schema\":\"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8\",\"data\":{\"environment\":\"production\",\"source\":\"gitlab-javascript\",\"correlation_id\":\"01M23V6HSGX584RZ8J964VFWB8\",\"plan\":\"free\",\"extra\":{},\"user_id\":130,\"global_user_id\":\"eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=\",\"user_type\":\"human\",\"is_gitlab_team_member\":false,\"namespace_id\":230,\"ultimate_parent_namespace_id\":230,\"project_id\":null,\"feature_enabled_by_namespace_ids\":null,\"realm\":\"saas\",\"deployment_type\":\".com\",\"instance_id\":\"de4cf803-6677-4751-acee-0119892fa565\",\"unique_instance_id\":\"c186b188-b8af-5af4-b637-a1b9feaccd7a\",\"host_name\":\"gdk.test\",\"instance_version\":\"19.4.0\",\"context_generated_at\":\"2026-09-09T19:44:35.416Z\",\"organization_id\":1,\"google_analytics_id\":\"\"}},{\"schema\":\"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3\",\"data\":{\"experiment\":\"change_dap_land_default_credits\",\"key\":\"7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a\",\"variant\":\"candidate\"}},{\"schema\":\"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0\",\"data\":{\"id\":\"14684d5a-3453-4460-a042-f739529c398d\"}},{\"schema\":\"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0\",\"data\":{\"navigationStart\":1788983068443,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":1788983068444,\"domainLookupStart\":1788983068444,\"domainLookupEnd\":1788983068444,\"connectStart\":1788983068444,\"secureConnectionStart\":0,\"connectEnd\":1788983068444,\"requestStart\":1788983068445,\"responseStart\":1788983076009,\"responseEnd\":1788983076011,\"unloadEventStart\":1788983076011,\"unloadEventEnd\":1788983076011,\"domLoading\":1788983076011,\"domInteractive\":1788983080723,\"domContentLoadedEventStart\":1788983081058,\"domContentLoadedEventEnd\":1788983081058,\"domComplete\":1788983081250,\"loadEventStart\":1788983081250,\"loadEventEnd\":1788983081250}}]}",
"eid": "67ba3ac4-bbce-4699-ad74-632be3918014",
"url": "http://gdk.test:3000/groups/dap-credits-candidate/-/billings?glex_force=change_dap_land_default_credits:candidate",
"aid": "gitlab",
"tna": "gl",
"cs": "UTF-8",
"cd": "24",
"stm": "1788983135602",
"tz": "America/Toronto",
"tv": "js-4.6.8",
"se_ac": "click_purchase_credits_dap_land_sku",
"vp": "1416x1119",
"ds": "1416x1119",
"se_ca": "groups:billings:index",
"res": "1440x2560",
"cookie": "1",
"p": "web",
"dtm": "1788983135586",
"lang": "en-US",
"sid": "57b4713c-5018-43cd-a9fa-c0d279fb92de"
},
"contentType": "application/json; charset=utf-8",
"source": {
"name": "ssc-4.2.0-micro-sscsink",
"encoding": "UTF-8",
"hostname": null
},
"context": {
"timestamp": "2026-09-09T19:45:35.679Z",
"ipAddress": "172.17.0.1",
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
"refererUri": "http://gdk.test:3000/",
"headers": [
"Host: localhost:9091",
"Connection: keep-alive",
"Content-Length: 5251",
"sec-ch-ua-platform: \"macOS\"",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
"sec-ch-ua: \"Chromium\";v=\"152\", \"Not?A_Brand\";v=\"24\", \"Google Chrome\";v=\"152\"",
"content-type: application/json; charset=UTF-8",
"sec-ch-ua-mobile: ?0",
"Accept: */*",
"Origin: http://gdk.test:3000",
"Sec-Fetch-Site: cross-site",
"Sec-Fetch-Mode: cors",
"Sec-Fetch-Dest: empty",
"Sec-Fetch-Storage-Access: active",
"Referer: http://gdk.test:3000/",
"Accept-Encoding: gzip, deflate, br, zstd",
"Accept-Language: en-US,en;q=0.9",
"Cookie: snowplow-micro=f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
"application/json; charset=utf-8"
],
"userId": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e"
}
},
"eventType": "struct",
"schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
"contexts": [
"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0"
],
"event": {
"app_id": "gitlab",
"platform": "web",
"etl_tstamp": "2026-09-09T19:45:36.681Z",
"collector_tstamp": "2026-09-09T19:45:35.679Z",
"dvce_created_tstamp": "2026-09-09T19:45:35.586Z",
"event": "struct",
"event_id": "67ba3ac4-bbce-4699-ad74-632be3918014",
"txn_id": null,
"name_tracker": "gl",
"v_tracker": "js-4.6.8",
"v_collector": "ssc-4.2.0-micro-sscsink",
"v_etl": "snowplow-micro-4.2.0",
"user_id": null,
"user_ipaddress": "172.17.0.1",
"user_fingerprint": null,
"domain_userid": "d4983421-15be-4681-bba1-c4c088ae7576",
"domain_sessionidx": 1,
"network_userid": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
"geo_country": null,
"geo_region": null,
"geo_city": null,
"geo_zipcode": null,
"geo_latitude": null,
"geo_longitude": null,
"geo_region_name": null,
"ip_isp": null,
"ip_organization": null,
"ip_domain": null,
"ip_netspeed": null,
"page_url": "http://gdk.test:3000/groups/dap-credits-candidate/-/billings?glex_force=change_dap_land_default_credits:candidate",
"page_title": null,
"page_referrer": null,
"page_urlscheme": "http",
"page_urlhost": "gdk.test",
"page_urlport": 3000,
"page_urlpath": "/groups/dap-credits-candidate/-/billings",
"page_urlquery": "glex_force=change_dap_land_default_credits:candidate",
"page_urlfragment": null,
"refr_urlscheme": null,
"refr_urlhost": null,
"refr_urlport": null,
"refr_urlpath": null,
"refr_urlquery": null,
"refr_urlfragment": null,
"refr_medium": null,
"refr_source": null,
"refr_term": null,
"mkt_medium": null,
"mkt_source": null,
"mkt_term": null,
"mkt_content": null,
"mkt_campaign": null,
"contexts": {
"schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
"data": [
{
"schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"data": {
"environment": "production",
"source": "gitlab-javascript",
"correlation_id": "01M23V6HSGX584RZ8J964VFWB8",
"plan": "free",
"extra": {},
"user_id": 130,
"global_user_id": "eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=",
"user_type": "human",
"is_gitlab_team_member": false,
"namespace_id": 230,
"ultimate_parent_namespace_id": 230,
"project_id": null,
"feature_enabled_by_namespace_ids": null,
"realm": "saas",
"deployment_type": ".com",
"instance_id": "de4cf803-6677-4751-acee-0119892fa565",
"unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
"host_name": "gdk.test",
"instance_version": "19.4.0",
"context_generated_at": "2026-09-09T19:44:35.416Z",
"organization_id": 1,
"google_analytics_id": ""
}
},
{
"schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"data": {
"experiment": "change_dap_land_default_credits",
"key": "7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a",
"variant": "candidate"
}
},
{
"schema": "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
"data": {
"id": "14684d5a-3453-4460-a042-f739529c398d"
}
},
{
"schema": "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
"data": {
"navigationStart": 1788983068443,
"redirectStart": 0,
"redirectEnd": 0,
"fetchStart": 1788983068444,
"domainLookupStart": 1788983068444,
"domainLookupEnd": 1788983068444,
"connectStart": 1788983068444,
"secureConnectionStart": 0,
"connectEnd": 1788983068444,
"requestStart": 1788983068445,
"responseStart": 1788983076009,
"responseEnd": 1788983076011,
"unloadEventStart": 1788983076011,
"unloadEventEnd": 1788983076011,
"domLoading": 1788983076011,
"domInteractive": 1788983080723,
"domContentLoadedEventStart": 1788983081058,
"domContentLoadedEventEnd": 1788983081058,
"domComplete": 1788983081250,
"loadEventStart": 1788983081250,
"loadEventEnd": 1788983081250
}
}
]
},
"se_category": "groups:billings:index",
"se_action": "click_purchase_credits_dap_land_sku",
"se_label": null,
"se_property": null,
"se_value": null,
"unstruct_event": null,
"tr_orderid": null,
"tr_affiliation": null,
"tr_total": null,
"tr_tax": null,
"tr_shipping": null,
"tr_city": null,
"tr_state": null,
"tr_country": null,
"ti_orderid": null,
"ti_sku": null,
"ti_name": null,
"ti_category": null,
"ti_price": null,
"ti_quantity": null,
"pp_xoffset_min": null,
"pp_xoffset_max": null,
"pp_yoffset_min": null,
"pp_yoffset_max": null,
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
"br_name": null,
"br_family": null,
"br_version": null,
"br_type": null,
"br_renderengine": null,
"br_lang": "en-US",
"br_features_pdf": null,
"br_features_flash": null,
"br_features_java": null,
"br_features_director": null,
"br_features_quicktime": null,
"br_features_realplayer": null,
"br_features_windowsmedia": null,
"br_features_gears": null,
"br_features_silverlight": null,
"br_cookies": true,
"br_colordepth": "24",
"br_viewwidth": 1416,
"br_viewheight": 1119,
"os_name": null,
"os_family": null,
"os_manufacturer": null,
"os_timezone": "America/Toronto",
"dvce_type": null,
"dvce_ismobile": null,
"dvce_screenwidth": 1440,
"dvce_screenheight": 2560,
"doc_charset": "UTF-8",
"doc_width": 1416,
"doc_height": 1119,
"tr_currency": null,
"tr_total_base": null,
"tr_tax_base": null,
"tr_shipping_base": null,
"ti_currency": null,
"ti_price_base": null,
"base_currency": null,
"geo_timezone": null,
"mkt_clickid": null,
"mkt_network": null,
"etl_tags": null,
"dvce_sent_tstamp": "2026-09-09T19:45:35.602Z",
"refr_domain_userid": null,
"refr_dvce_tstamp": null,
"derived_contexts": {},
"domain_sessionid": "57b4713c-5018-43cd-a9fa-c0d279fb92de",
"derived_tstamp": "2026-09-09T19:45:35.663Z",
"event_vendor": "com.google.analytics",
"event_name": "event",
"event_format": "jsonschema",
"event_version": "1-0-0",
"event_fingerprint": null,
"true_tstamp": null
},
"incomplete": false
},
{
"rawEvent": {
"api": {
"vendor": "com.snowplowanalytics.snowplow",
"version": "tp2"
},
"parameters": {
"e": "se",
"eid": "be77ea84-cafc-48c8-af17-6d2aa2ffa8bd",
"aid": "gitlab",
"cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6ImFhNmM5MDdkMjM1NGMzOTMzOWIxYjdhNzM5MTIzZDJlIiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzAsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMCwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0NjowOSBVVEMiLCJvcmdhbml6YXRpb25faWQiOm51bGx9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY2FuZGlkYXRlIiwiZXhwZXJpbWVudCI6ImNoYW5nZV9kYXBfbGFuZF9kZWZhdWx0X2NyZWRpdHMiLCJrZXkiOiI3ZTYwYjI1OWYwMjAyOGI5YzM0ZjllZDc5ZGEzYmY4ZDVjYWI1OTZmZGMzMDc3MTRjMDI2ODlmY2ZiYjJiZDFhIn19XX0=",
"tna": "gl",
"stm": "1788983169538",
"tv": "rb-0.8.0",
"se_ac": "finish_purchase_credits_dap_land_sku",
"se_ca": "change_dap_land_default_credits",
"p": "srv",
"dtm": "1788983169537"
},
"contentType": "application/json; charset=utf-8",
"source": {
"name": "ssc-4.2.0-micro-sscsink",
"encoding": "UTF-8",
"hostname": null
},
"context": {
"timestamp": "2026-09-09T19:46:09.619Z",
"ipAddress": "172.17.0.1",
"useragent": "Ruby",
"refererUri": null,
"headers": [
"Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
"Accept: */*",
"User-Agent: Ruby",
"Content-Type: application/json; charset=utf-8",
"Connection: close",
"Host: localhost:9091",
"Content-Length: 1628",
"application/json; charset=utf-8"
],
"userId": "57203ca9-df57-43bc-b2ec-892faeec7258"
}
},
"eventType": "struct",
"schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
"contexts": [
"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
],
"event": {
"app_id": "gitlab",
"platform": "srv",
"etl_tstamp": "2026-09-09T19:46:10.629Z",
"collector_tstamp": "2026-09-09T19:46:09.619Z",
"dvce_created_tstamp": "2026-09-09T19:46:09.537Z",
"event": "struct",
"event_id": "be77ea84-cafc-48c8-af17-6d2aa2ffa8bd",
"txn_id": null,
"name_tracker": "gl",
"v_tracker": "rb-0.8.0",
"v_collector": "ssc-4.2.0-micro-sscsink",
"v_etl": "snowplow-micro-4.2.0",
"user_id": null,
"user_ipaddress": "172.17.0.1",
"user_fingerprint": null,
"domain_userid": null,
"domain_sessionidx": null,
"network_userid": "57203ca9-df57-43bc-b2ec-892faeec7258",
"geo_country": null,
"geo_region": null,
"geo_city": null,
"geo_zipcode": null,
"geo_latitude": null,
"geo_longitude": null,
"geo_region_name": null,
"ip_isp": null,
"ip_organization": null,
"ip_domain": null,
"ip_netspeed": null,
"page_url": null,
"page_title": null,
"page_referrer": null,
"page_urlscheme": null,
"page_urlhost": null,
"page_urlport": null,
"page_urlpath": null,
"page_urlquery": null,
"page_urlfragment": null,
"refr_urlscheme": null,
"refr_urlhost": null,
"refr_urlport": null,
"refr_urlpath": null,
"refr_urlquery": null,
"refr_urlfragment": null,
"refr_medium": null,
"refr_source": null,
"refr_term": null,
"mkt_medium": null,
"mkt_source": null,
"mkt_term": null,
"mkt_content": null,
"mkt_campaign": null,
"contexts": {
"schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
"data": [
{
"schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"data": {
"environment": "production",
"source": "gitlab-rails",
"correlation_id": "aa6c907d2354c39339b1b7a739123d2e",
"plan": "free",
"extra": {},
"user_id": null,
"global_user_id": null,
"user_type": null,
"is_gitlab_team_member": null,
"namespace_id": 230,
"ultimate_parent_namespace_id": 230,
"project_id": null,
"feature_enabled_by_namespace_ids": null,
"realm": "saas",
"deployment_type": ".com",
"instance_id": "de4cf803-6677-4751-acee-0119892fa565",
"unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
"host_name": "gdk.test",
"instance_version": "19.4.0",
"context_generated_at": "2026-09-09 19:46:09 UTC",
"organization_id": null
}
},
{
"schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"data": {
"variant": "candidate",
"experiment": "change_dap_land_default_credits",
"key": "7e60b259f02028b9c34f9ed79da3bf8d5cab596fdc307714c02689fcfbb2bd1a"
}
}
]
},
"se_category": "change_dap_land_default_credits",
"se_action": "finish_purchase_credits_dap_land_sku",
"se_label": null,
"se_property": null,
"se_value": null,
"unstruct_event": null,
"tr_orderid": null,
"tr_affiliation": null,
"tr_total": null,
"tr_tax": null,
"tr_shipping": null,
"tr_city": null,
"tr_state": null,
"tr_country": null,
"ti_orderid": null,
"ti_sku": null,
"ti_name": null,
"ti_category": null,
"ti_price": null,
"ti_quantity": null,
"pp_xoffset_min": null,
"pp_xoffset_max": null,
"pp_yoffset_min": null,
"pp_yoffset_max": null,
"useragent": "Ruby",
"br_name": null,
"br_family": null,
"br_version": null,
"br_type": null,
"br_renderengine": null,
"br_lang": null,
"br_features_pdf": null,
"br_features_flash": null,
"br_features_java": null,
"br_features_director": null,
"br_features_quicktime": null,
"br_features_realplayer": null,
"br_features_windowsmedia": null,
"br_features_gears": null,
"br_features_silverlight": null,
"br_cookies": null,
"br_colordepth": null,
"br_viewwidth": null,
"br_viewheight": null,
"os_name": null,
"os_family": null,
"os_manufacturer": null,
"os_timezone": null,
"dvce_type": null,
"dvce_ismobile": null,
"dvce_screenwidth": null,
"dvce_screenheight": null,
"doc_charset": null,
"doc_width": null,
"doc_height": null,
"tr_currency": null,
"tr_total_base": null,
"tr_tax_base": null,
"tr_shipping_base": null,
"ti_currency": null,
"ti_price_base": null,
"base_currency": null,
"geo_timezone": null,
"mkt_clickid": null,
"mkt_network": null,
"etl_tags": null,
"dvce_sent_tstamp": "2026-09-09T19:46:09.538Z",
"refr_domain_userid": null,
"refr_dvce_tstamp": null,
"derived_contexts": {},
"domain_sessionid": null,
"derived_tstamp": "2026-09-09T19:46:09.618Z",
"event_vendor": "com.google.analytics",
"event_name": "event",
"event_format": "jsonschema",
"event_version": "1-0-0",
"event_fingerprint": null,
"true_tstamp": null
},
"incomplete": false
}
]Snowplow Micro /micro/good — control (3 experiment events, raw)
[
{
"rawEvent": {
"api": {
"vendor": "com.snowplowanalytics.snowplow",
"version": "tp2"
},
"parameters": {
"e": "se",
"eid": "0feaa8b5-a407-4b4e-9768-1d4dd43bdc0f",
"aid": "gitlab",
"cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6IjAxTTIzVkFRQzk0RzlUWlJaMlY3QjlYNTRIIiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzEsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMSwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0Njo0NSBVVEMiLCJvcmdhbml6YXRpb25faWQiOjF9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY29udHJvbCIsImV4cGVyaW1lbnQiOiJjaGFuZ2VfZGFwX2xhbmRfZGVmYXVsdF9jcmVkaXRzIiwia2V5IjoiNWJmNDI4OWIwZGMzMjM5YmNjZmZhZmFlMzE5NGY5ZWY1YjdlNDQ0YjNjMDFhNTk5MzIwZmVjY2U5NWY0YzI2MCJ9fV19",
"tna": "gl",
"stm": "1788983205760",
"tv": "rb-0.8.0",
"se_ac": "assignment",
"se_ca": "change_dap_land_default_credits",
"p": "srv",
"dtm": "1788983205759"
},
"contentType": "application/json; charset=utf-8",
"source": {
"name": "ssc-4.2.0-micro-sscsink",
"encoding": "UTF-8",
"hostname": null
},
"context": {
"timestamp": "2026-09-09T19:46:45.844Z",
"ipAddress": "172.17.0.1",
"useragent": "Ruby",
"refererUri": null,
"headers": [
"Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
"Accept: */*",
"User-Agent: Ruby",
"Content-Type: application/json; charset=utf-8",
"Connection: close",
"Host: localhost:9091",
"Content-Length: 1586",
"application/json; charset=utf-8"
],
"userId": "88c43041-84be-4242-a825-209e6aea8093"
}
},
"eventType": "struct",
"schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
"contexts": [
"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
],
"event": {
"app_id": "gitlab",
"platform": "srv",
"etl_tstamp": "2026-09-09T19:46:46.857Z",
"collector_tstamp": "2026-09-09T19:46:45.844Z",
"dvce_created_tstamp": "2026-09-09T19:46:45.759Z",
"event": "struct",
"event_id": "0feaa8b5-a407-4b4e-9768-1d4dd43bdc0f",
"txn_id": null,
"name_tracker": "gl",
"v_tracker": "rb-0.8.0",
"v_collector": "ssc-4.2.0-micro-sscsink",
"v_etl": "snowplow-micro-4.2.0",
"user_id": null,
"user_ipaddress": "172.17.0.1",
"user_fingerprint": null,
"domain_userid": null,
"domain_sessionidx": null,
"network_userid": "88c43041-84be-4242-a825-209e6aea8093",
"geo_country": null,
"geo_region": null,
"geo_city": null,
"geo_zipcode": null,
"geo_latitude": null,
"geo_longitude": null,
"geo_region_name": null,
"ip_isp": null,
"ip_organization": null,
"ip_domain": null,
"ip_netspeed": null,
"page_url": null,
"page_title": null,
"page_referrer": null,
"page_urlscheme": null,
"page_urlhost": null,
"page_urlport": null,
"page_urlpath": null,
"page_urlquery": null,
"page_urlfragment": null,
"refr_urlscheme": null,
"refr_urlhost": null,
"refr_urlport": null,
"refr_urlpath": null,
"refr_urlquery": null,
"refr_urlfragment": null,
"refr_medium": null,
"refr_source": null,
"refr_term": null,
"mkt_medium": null,
"mkt_source": null,
"mkt_term": null,
"mkt_content": null,
"mkt_campaign": null,
"contexts": {
"schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
"data": [
{
"schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"data": {
"environment": "production",
"source": "gitlab-rails",
"correlation_id": "01M23VAQC94G9TZRZ2V7B9X54H",
"plan": "free",
"extra": {},
"user_id": null,
"global_user_id": null,
"user_type": null,
"is_gitlab_team_member": null,
"namespace_id": 231,
"ultimate_parent_namespace_id": 231,
"project_id": null,
"feature_enabled_by_namespace_ids": null,
"realm": "saas",
"deployment_type": ".com",
"instance_id": "de4cf803-6677-4751-acee-0119892fa565",
"unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
"host_name": "gdk.test",
"instance_version": "19.4.0",
"context_generated_at": "2026-09-09 19:46:45 UTC",
"organization_id": 1
}
},
{
"schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"data": {
"variant": "control",
"experiment": "change_dap_land_default_credits",
"key": "5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260"
}
}
]
},
"se_category": "change_dap_land_default_credits",
"se_action": "assignment",
"se_label": null,
"se_property": null,
"se_value": null,
"unstruct_event": null,
"tr_orderid": null,
"tr_affiliation": null,
"tr_total": null,
"tr_tax": null,
"tr_shipping": null,
"tr_city": null,
"tr_state": null,
"tr_country": null,
"ti_orderid": null,
"ti_sku": null,
"ti_name": null,
"ti_category": null,
"ti_price": null,
"ti_quantity": null,
"pp_xoffset_min": null,
"pp_xoffset_max": null,
"pp_yoffset_min": null,
"pp_yoffset_max": null,
"useragent": "Ruby",
"br_name": null,
"br_family": null,
"br_version": null,
"br_type": null,
"br_renderengine": null,
"br_lang": null,
"br_features_pdf": null,
"br_features_flash": null,
"br_features_java": null,
"br_features_director": null,
"br_features_quicktime": null,
"br_features_realplayer": null,
"br_features_windowsmedia": null,
"br_features_gears": null,
"br_features_silverlight": null,
"br_cookies": null,
"br_colordepth": null,
"br_viewwidth": null,
"br_viewheight": null,
"os_name": null,
"os_family": null,
"os_manufacturer": null,
"os_timezone": null,
"dvce_type": null,
"dvce_ismobile": null,
"dvce_screenwidth": null,
"dvce_screenheight": null,
"doc_charset": null,
"doc_width": null,
"doc_height": null,
"tr_currency": null,
"tr_total_base": null,
"tr_tax_base": null,
"tr_shipping_base": null,
"ti_currency": null,
"ti_price_base": null,
"base_currency": null,
"geo_timezone": null,
"mkt_clickid": null,
"mkt_network": null,
"etl_tags": null,
"dvce_sent_tstamp": "2026-09-09T19:46:45.760Z",
"refr_domain_userid": null,
"refr_dvce_tstamp": null,
"derived_contexts": {},
"domain_sessionid": null,
"derived_tstamp": "2026-09-09T19:46:45.843Z",
"event_vendor": "com.google.analytics",
"event_name": "event",
"event_format": "jsonschema",
"event_version": "1-0-0",
"event_fingerprint": null,
"true_tstamp": null
},
"incomplete": false
},
{
"rawEvent": {
"api": {
"vendor": "com.snowplowanalytics.snowplow",
"version": "tp2"
},
"parameters": {
"e": "se",
"duid": "97450b9e-47c1-49ef-b9fc-e53d67798c59",
"vid": "1",
"co": "{\"schema\":\"iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0\",\"data\":[{\"schema\":\"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8\",\"data\":{\"environment\":\"production\",\"source\":\"gitlab-javascript\",\"correlation_id\":\"01M23VAQC94G9TZRZ2V7B9X54H\",\"plan\":\"free\",\"extra\":{},\"user_id\":130,\"global_user_id\":\"eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=\",\"user_type\":\"human\",\"is_gitlab_team_member\":false,\"namespace_id\":231,\"ultimate_parent_namespace_id\":231,\"project_id\":null,\"feature_enabled_by_namespace_ids\":null,\"realm\":\"saas\",\"deployment_type\":\".com\",\"instance_id\":\"de4cf803-6677-4751-acee-0119892fa565\",\"unique_instance_id\":\"c186b188-b8af-5af4-b637-a1b9feaccd7a\",\"host_name\":\"gdk.test\",\"instance_version\":\"19.4.0\",\"context_generated_at\":\"2026-09-09T19:46:45.853Z\",\"organization_id\":1,\"google_analytics_id\":\"\"}},{\"schema\":\"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3\",\"data\":{\"experiment\":\"change_dap_land_default_credits\",\"key\":\"5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260\",\"variant\":\"control\"}},{\"schema\":\"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0\",\"data\":{\"id\":\"c7f5ba51-e107-4a7d-93d8-4ef008290fd7\"}},{\"schema\":\"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0\",\"data\":{\"navigationStart\":1788983205236,\"redirectStart\":0,\"redirectEnd\":0,\"fetchStart\":1788983205237,\"domainLookupStart\":1788983205237,\"domainLookupEnd\":1788983205237,\"connectStart\":1788983205237,\"secureConnectionStart\":0,\"connectEnd\":1788983205237,\"requestStart\":1788983205238,\"responseStart\":1788983206264,\"responseEnd\":1788983206266,\"unloadEventStart\":0,\"unloadEventEnd\":0,\"domLoading\":1788983206274,\"domInteractive\":1788983206387,\"domContentLoadedEventStart\":1788983206746,\"domContentLoadedEventEnd\":1788983206747,\"domComplete\":1788983207310,\"loadEventStart\":1788983207310,\"loadEventEnd\":1788983207310}}]}",
"eid": "5744bfd1-6bec-4a2e-963e-bec3578b98b1",
"url": "http://gdk.test:3000/groups/dap-credits-control/-/billings?glex_force=change_dap_land_default_credits:control",
"aid": "gitlab",
"tna": "gl",
"cs": "UTF-8",
"cd": "24",
"stm": "1788983239629",
"tz": "America/Toronto",
"tv": "js-4.6.8",
"se_ac": "click_purchase_credits_dap_land_sku",
"vp": "1416x1119",
"ds": "1416x1119",
"se_ca": "groups:billings:index",
"res": "1440x2560",
"cookie": "1",
"p": "web",
"dtm": "1788983239605",
"lang": "en-US",
"sid": "3c2e4ac0-8475-4c66-8aec-7d1c76382ea4"
},
"contentType": "application/json; charset=utf-8",
"source": {
"name": "ssc-4.2.0-micro-sscsink",
"encoding": "UTF-8",
"hostname": null
},
"context": {
"timestamp": "2026-09-09T19:47:19.708Z",
"ipAddress": "172.17.0.1",
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
"refererUri": "http://gdk.test:3000/",
"headers": [
"Host: localhost:9091",
"Connection: keep-alive",
"Content-Length: 5193",
"sec-ch-ua-platform: \"macOS\"",
"User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
"sec-ch-ua: \"Chromium\";v=\"152\", \"Not?A_Brand\";v=\"24\", \"Google Chrome\";v=\"152\"",
"content-type: application/json; charset=UTF-8",
"sec-ch-ua-mobile: ?0",
"Accept: */*",
"Origin: http://gdk.test:3000",
"Sec-Fetch-Site: cross-site",
"Sec-Fetch-Mode: cors",
"Sec-Fetch-Dest: empty",
"Sec-Fetch-Storage-Access: active",
"Referer: http://gdk.test:3000/",
"Accept-Encoding: gzip, deflate, br, zstd",
"Accept-Language: en-US,en;q=0.9",
"Cookie: snowplow-micro=f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
"application/json; charset=utf-8"
],
"userId": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e"
}
},
"eventType": "struct",
"schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
"contexts": [
"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
"iglu:org.w3/PerformanceTiming/jsonschema/1-0-0"
],
"event": {
"app_id": "gitlab",
"platform": "web",
"etl_tstamp": "2026-09-09T19:47:20.715Z",
"collector_tstamp": "2026-09-09T19:47:19.708Z",
"dvce_created_tstamp": "2026-09-09T19:47:19.605Z",
"event": "struct",
"event_id": "5744bfd1-6bec-4a2e-963e-bec3578b98b1",
"txn_id": null,
"name_tracker": "gl",
"v_tracker": "js-4.6.8",
"v_collector": "ssc-4.2.0-micro-sscsink",
"v_etl": "snowplow-micro-4.2.0",
"user_id": null,
"user_ipaddress": "172.17.0.1",
"user_fingerprint": null,
"domain_userid": "97450b9e-47c1-49ef-b9fc-e53d67798c59",
"domain_sessionidx": 1,
"network_userid": "f1a3bdfd-ab5d-4bd1-8994-5c38dfa5718e",
"geo_country": null,
"geo_region": null,
"geo_city": null,
"geo_zipcode": null,
"geo_latitude": null,
"geo_longitude": null,
"geo_region_name": null,
"ip_isp": null,
"ip_organization": null,
"ip_domain": null,
"ip_netspeed": null,
"page_url": "http://gdk.test:3000/groups/dap-credits-control/-/billings?glex_force=change_dap_land_default_credits:control",
"page_title": null,
"page_referrer": null,
"page_urlscheme": "http",
"page_urlhost": "gdk.test",
"page_urlport": 3000,
"page_urlpath": "/groups/dap-credits-control/-/billings",
"page_urlquery": "glex_force=change_dap_land_default_credits:control",
"page_urlfragment": null,
"refr_urlscheme": null,
"refr_urlhost": null,
"refr_urlport": null,
"refr_urlpath": null,
"refr_urlquery": null,
"refr_urlfragment": null,
"refr_medium": null,
"refr_source": null,
"refr_term": null,
"mkt_medium": null,
"mkt_source": null,
"mkt_term": null,
"mkt_content": null,
"mkt_campaign": null,
"contexts": {
"schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
"data": [
{
"schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"data": {
"environment": "production",
"source": "gitlab-javascript",
"correlation_id": "01M23VAQC94G9TZRZ2V7B9X54H",
"plan": "free",
"extra": {},
"user_id": 130,
"global_user_id": "eUNQxfaG4GxISmiSuW43VWJJO8DYESkr2UMZK0vA/4g=",
"user_type": "human",
"is_gitlab_team_member": false,
"namespace_id": 231,
"ultimate_parent_namespace_id": 231,
"project_id": null,
"feature_enabled_by_namespace_ids": null,
"realm": "saas",
"deployment_type": ".com",
"instance_id": "de4cf803-6677-4751-acee-0119892fa565",
"unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
"host_name": "gdk.test",
"instance_version": "19.4.0",
"context_generated_at": "2026-09-09T19:46:45.853Z",
"organization_id": 1,
"google_analytics_id": ""
}
},
{
"schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"data": {
"experiment": "change_dap_land_default_credits",
"key": "5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260",
"variant": "control"
}
},
{
"schema": "iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",
"data": {
"id": "c7f5ba51-e107-4a7d-93d8-4ef008290fd7"
}
},
{
"schema": "iglu:org.w3/PerformanceTiming/jsonschema/1-0-0",
"data": {
"navigationStart": 1788983205236,
"redirectStart": 0,
"redirectEnd": 0,
"fetchStart": 1788983205237,
"domainLookupStart": 1788983205237,
"domainLookupEnd": 1788983205237,
"connectStart": 1788983205237,
"secureConnectionStart": 0,
"connectEnd": 1788983205237,
"requestStart": 1788983205238,
"responseStart": 1788983206264,
"responseEnd": 1788983206266,
"unloadEventStart": 0,
"unloadEventEnd": 0,
"domLoading": 1788983206274,
"domInteractive": 1788983206387,
"domContentLoadedEventStart": 1788983206746,
"domContentLoadedEventEnd": 1788983206747,
"domComplete": 1788983207310,
"loadEventStart": 1788983207310,
"loadEventEnd": 1788983207310
}
}
]
},
"se_category": "groups:billings:index",
"se_action": "click_purchase_credits_dap_land_sku",
"se_label": null,
"se_property": null,
"se_value": null,
"unstruct_event": null,
"tr_orderid": null,
"tr_affiliation": null,
"tr_total": null,
"tr_tax": null,
"tr_shipping": null,
"tr_city": null,
"tr_state": null,
"tr_country": null,
"ti_orderid": null,
"ti_sku": null,
"ti_name": null,
"ti_category": null,
"ti_price": null,
"ti_quantity": null,
"pp_xoffset_min": null,
"pp_xoffset_max": null,
"pp_yoffset_min": null,
"pp_yoffset_max": null,
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36",
"br_name": null,
"br_family": null,
"br_version": null,
"br_type": null,
"br_renderengine": null,
"br_lang": "en-US",
"br_features_pdf": null,
"br_features_flash": null,
"br_features_java": null,
"br_features_director": null,
"br_features_quicktime": null,
"br_features_realplayer": null,
"br_features_windowsmedia": null,
"br_features_gears": null,
"br_features_silverlight": null,
"br_cookies": true,
"br_colordepth": "24",
"br_viewwidth": 1416,
"br_viewheight": 1119,
"os_name": null,
"os_family": null,
"os_manufacturer": null,
"os_timezone": "America/Toronto",
"dvce_type": null,
"dvce_ismobile": null,
"dvce_screenwidth": 1440,
"dvce_screenheight": 2560,
"doc_charset": "UTF-8",
"doc_width": 1416,
"doc_height": 1119,
"tr_currency": null,
"tr_total_base": null,
"tr_tax_base": null,
"tr_shipping_base": null,
"ti_currency": null,
"ti_price_base": null,
"base_currency": null,
"geo_timezone": null,
"mkt_clickid": null,
"mkt_network": null,
"etl_tags": null,
"dvce_sent_tstamp": "2026-09-09T19:47:19.629Z",
"refr_domain_userid": null,
"refr_dvce_tstamp": null,
"derived_contexts": {},
"domain_sessionid": "3c2e4ac0-8475-4c66-8aec-7d1c76382ea4",
"derived_tstamp": "2026-09-09T19:47:19.684Z",
"event_vendor": "com.google.analytics",
"event_name": "event",
"event_format": "jsonschema",
"event_version": "1-0-0",
"event_fingerprint": null,
"true_tstamp": null
},
"incomplete": false
},
{
"rawEvent": {
"api": {
"vendor": "com.snowplowanalytics.snowplow",
"version": "tp2"
},
"parameters": {
"e": "se",
"eid": "7b0e2890-5e39-444f-9b6c-e59919532ceb",
"aid": "gitlab",
"cx": "eyJzY2hlbWEiOiJpZ2x1OmNvbS5zbm93cGxvd2FuYWx5dGljcy5zbm93cGxvdy9jb250ZXh0cy9qc29uc2NoZW1hLzEtMC0xIiwiZGF0YSI6W3sic2NoZW1hIjoiaWdsdTpjb20uZ2l0bGFiL2dpdGxhYl9zdGFuZGFyZC9qc29uc2NoZW1hLzEtMS04IiwiZGF0YSI6eyJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJzb3VyY2UiOiJnaXRsYWItcmFpbHMiLCJjb3JyZWxhdGlvbl9pZCI6ImU5ZTM0MmM1MjkyNjFhYWVmOWJhMzQzZmU4NTFmOGJmIiwicGxhbiI6ImZyZWUiLCJleHRyYSI6e30sInVzZXJfaWQiOm51bGwsImdsb2JhbF91c2VyX2lkIjpudWxsLCJ1c2VyX3R5cGUiOm51bGwsImlzX2dpdGxhYl90ZWFtX21lbWJlciI6bnVsbCwibmFtZXNwYWNlX2lkIjoyMzEsInVsdGltYXRlX3BhcmVudF9uYW1lc3BhY2VfaWQiOjIzMSwicHJvamVjdF9pZCI6bnVsbCwiZmVhdHVyZV9lbmFibGVkX2J5X25hbWVzcGFjZV9pZHMiOm51bGwsInJlYWxtIjoic2FhcyIsImRlcGxveW1lbnRfdHlwZSI6Ii5jb20iLCJpbnN0YW5jZV9pZCI6ImRlNGNmODAzLTY2NzctNDc1MS1hY2VlLTAxMTk4OTJmYTU2NSIsInVuaXF1ZV9pbnN0YW5jZV9pZCI6ImMxODZiMTg4LWI4YWYtNWFmNC1iNjM3LWExYjlmZWFjY2Q3YSIsImhvc3RfbmFtZSI6Imdkay50ZXN0IiwiaW5zdGFuY2VfdmVyc2lvbiI6IjE5LjQuMCIsImNvbnRleHRfZ2VuZXJhdGVkX2F0IjoiMjAyNi0wOS0wOSAxOTo0Nzo1MiBVVEMiLCJvcmdhbml6YXRpb25faWQiOm51bGx9fSx7InNjaGVtYSI6ImlnbHU6Y29tLmdpdGxhYi9naXRsYWJfZXhwZXJpbWVudC9qc29uc2NoZW1hLzEtMC0zIiwiZGF0YSI6eyJ2YXJpYW50IjoiY29udHJvbCIsImV4cGVyaW1lbnQiOiJjaGFuZ2VfZGFwX2xhbmRfZGVmYXVsdF9jcmVkaXRzIiwia2V5IjoiNWJmNDI4OWIwZGMzMjM5YmNjZmZhZmFlMzE5NGY5ZWY1YjdlNDQ0YjNjMDFhNTk5MzIwZmVjY2U5NWY0YzI2MCJ9fV19",
"tna": "gl",
"stm": "1788983272986",
"tv": "rb-0.8.0",
"se_ac": "finish_purchase_credits_dap_land_sku",
"se_ca": "change_dap_land_default_credits",
"p": "srv",
"dtm": "1788983272985"
},
"contentType": "application/json; charset=utf-8",
"source": {
"name": "ssc-4.2.0-micro-sscsink",
"encoding": "UTF-8",
"hostname": null
},
"context": {
"timestamp": "2026-09-09T19:47:53.075Z",
"ipAddress": "172.17.0.1",
"useragent": "Ruby",
"refererUri": null,
"headers": [
"Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3",
"Accept: */*",
"User-Agent: Ruby",
"Content-Type: application/json; charset=utf-8",
"Connection: close",
"Host: localhost:9091",
"Content-Length: 1624",
"application/json; charset=utf-8"
],
"userId": "14faa0a1-cebc-45d9-9ba1-b3d2c13bfa34"
}
},
"eventType": "struct",
"schema": "iglu:com.google.analytics/event/jsonschema/1-0-0",
"contexts": [
"iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3"
],
"event": {
"app_id": "gitlab",
"platform": "srv",
"etl_tstamp": "2026-09-09T19:47:54.089Z",
"collector_tstamp": "2026-09-09T19:47:53.075Z",
"dvce_created_tstamp": "2026-09-09T19:47:52.985Z",
"event": "struct",
"event_id": "7b0e2890-5e39-444f-9b6c-e59919532ceb",
"txn_id": null,
"name_tracker": "gl",
"v_tracker": "rb-0.8.0",
"v_collector": "ssc-4.2.0-micro-sscsink",
"v_etl": "snowplow-micro-4.2.0",
"user_id": null,
"user_ipaddress": "172.17.0.1",
"user_fingerprint": null,
"domain_userid": null,
"domain_sessionidx": null,
"network_userid": "14faa0a1-cebc-45d9-9ba1-b3d2c13bfa34",
"geo_country": null,
"geo_region": null,
"geo_city": null,
"geo_zipcode": null,
"geo_latitude": null,
"geo_longitude": null,
"geo_region_name": null,
"ip_isp": null,
"ip_organization": null,
"ip_domain": null,
"ip_netspeed": null,
"page_url": null,
"page_title": null,
"page_referrer": null,
"page_urlscheme": null,
"page_urlhost": null,
"page_urlport": null,
"page_urlpath": null,
"page_urlquery": null,
"page_urlfragment": null,
"refr_urlscheme": null,
"refr_urlhost": null,
"refr_urlport": null,
"refr_urlpath": null,
"refr_urlquery": null,
"refr_urlfragment": null,
"refr_medium": null,
"refr_source": null,
"refr_term": null,
"mkt_medium": null,
"mkt_source": null,
"mkt_term": null,
"mkt_content": null,
"mkt_campaign": null,
"contexts": {
"schema": "iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0",
"data": [
{
"schema": "iglu:com.gitlab/gitlab_standard/jsonschema/1-1-8",
"data": {
"environment": "production",
"source": "gitlab-rails",
"correlation_id": "e9e342c529261aaef9ba343fe851f8bf",
"plan": "free",
"extra": {},
"user_id": null,
"global_user_id": null,
"user_type": null,
"is_gitlab_team_member": null,
"namespace_id": 231,
"ultimate_parent_namespace_id": 231,
"project_id": null,
"feature_enabled_by_namespace_ids": null,
"realm": "saas",
"deployment_type": ".com",
"instance_id": "de4cf803-6677-4751-acee-0119892fa565",
"unique_instance_id": "c186b188-b8af-5af4-b637-a1b9feaccd7a",
"host_name": "gdk.test",
"instance_version": "19.4.0",
"context_generated_at": "2026-09-09 19:47:52 UTC",
"organization_id": null
}
},
{
"schema": "iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-3",
"data": {
"variant": "control",
"experiment": "change_dap_land_default_credits",
"key": "5bf4289b0dc3239bccffafae3194f9ef5b7e444b3c01a599320fecce95f4c260"
}
}
]
},
"se_category": "change_dap_land_default_credits",
"se_action": "finish_purchase_credits_dap_land_sku",
"se_label": null,
"se_property": null,
"se_value": null,
"unstruct_event": null,
"tr_orderid": null,
"tr_affiliation": null,
"tr_total": null,
"tr_tax": null,
"tr_shipping": null,
"tr_city": null,
"tr_state": null,
"tr_country": null,
"ti_orderid": null,
"ti_sku": null,
"ti_name": null,
"ti_category": null,
"ti_price": null,
"ti_quantity": null,
"pp_xoffset_min": null,
"pp_xoffset_max": null,
"pp_yoffset_min": null,
"pp_yoffset_max": null,
"useragent": "Ruby",
"br_name": null,
"br_family": null,
"br_version": null,
"br_type": null,
"br_renderengine": null,
"br_lang": null,
"br_features_pdf": null,
"br_features_flash": null,
"br_features_java": null,
"br_features_director": null,
"br_features_quicktime": null,
"br_features_realplayer": null,
"br_features_windowsmedia": null,
"br_features_gears": null,
"br_features_silverlight": null,
"br_cookies": null,
"br_colordepth": null,
"br_viewwidth": null,
"br_viewheight": null,
"os_name": null,
"os_family": null,
"os_manufacturer": null,
"os_timezone": null,
"dvce_type": null,
"dvce_ismobile": null,
"dvce_screenwidth": null,
"dvce_screenheight": null,
"doc_charset": null,
"doc_width": null,
"doc_height": null,
"tr_currency": null,
"tr_total_base": null,
"tr_tax_base": null,
"tr_shipping_base": null,
"ti_currency": null,
"ti_price_base": null,
"base_currency": null,
"geo_timezone": null,
"mkt_clickid": null,
"mkt_network": null,
"etl_tags": null,
"dvce_sent_tstamp": "2026-09-09T19:47:52.986Z",
"refr_domain_userid": null,
"refr_dvce_tstamp": null,
"derived_contexts": {},
"domain_sessionid": null,
"derived_tstamp": "2026-09-09T19:47:53.074Z",
"event_vendor": "com.google.analytics",
"event_name": "event",
"event_format": "jsonschema",
"event_version": "1-0-0",
"event_fingerprint": null,
"true_tstamp": null
},
"incomplete": false
}
]Staging validation
In staging, validate only that events are being received in Snowplow — not their structure (which was validated locally).
UX validation:
- Verify the control experience renders correctly
- Verify the candidate experience renders correctly
- Verify transitions between control and candidate are smooth
Tracking event validation:
- Confirm assignment events appear in the Growth Experiment Event Validation Dashboard
- Confirm all expected events are received (events may take 24+ hours to appear)
Production validation
In production, validate that events are flowing correctly into Snowflake.
Tracking event validation:
- Confirm events appear in the GLEX Experiment Analysis Dashboard
- Confirm events appear in the General Snowplow Event Exploration Dashboard
Note: Events may take 24+ hours to appear in Tableau dashboards.
Rollout plan
- Runtime in days, or until we expect to reach statistical significance:
30 - We will roll this out behind a feature flag and expose this to 50% of actors to start then ramp it up from there.
/chatops gitlab run feature set change_dap_land_default_credits 50 --actors
Status
Preferred workflow
The issue should be assigned to the Product manager (PM) or Engineer (Eng) as follows:
- PM determines and manages the status of the experiment (assign this issue to the PM)
- PM asks for initial rollout on production, or changes to the status (assign to an Eng)
- Eng changes the status using
chatops(reassign to the PM) - When concluded, PM updates the 'Roll Out Steps' and adds a milestone (assigns to an Eng)
The current status and history can be viewed using the:
- API (GitLab team members)
- Feature flag log (GitLab team members)
- Experiment rollout board
In this rollout issue, ensure the scoped experiment:: label is kept accurate.
Experiment Results
Roll Out Steps
- Confirm that end-to-end tests pass with the feature flag enabled. If there are failing tests, contact the relevant stable counterpart in the Quality department to collaborate in updating the tests or confirming that the failing tests are not caused by the changes behind the enabled feature flag.
- See
#e2e-run-stagingSlack channel and look for the following messages:- test kicked off:
Feature flag change_dap_land_default_credits has been set to true on **gstg** - test result:
This pipeline was triggered due to toggling of change_dap_land_default_credits feature flag
- test kicked off:
- See
- Enable on staging (
/chatops gitlab run feature set change_dap_land_default_credits true --staging) - Test on staging
- Ensure that documentation has been updated
- Enable on GitLab.com for individual groups/projects listed above and verify behaviour (
/chatops gitlab run feature set --project=gitlab-org/gitlab change_dap_land_default_credits true) - Coordinate a time to enable the flag with the SRE oncall and release managers
- In
#productionmention@sre-oncalland@release-managers. Once an SRE on call and Release Manager on call confirm, you can proceed with the rollout
- In
- Announce on the issue an estimated time this will be enabled on GitLab.com
- Enable on GitLab.com by running chatops command in
#production(/chatops gitlab run feature set change_dap_land_default_credits true) - Cross post chatops Slack command to
#support_gitlab-com(more guidance when this is necessary in the dev docs) and in your team channel - Announce on the issue that the flag has been enabled
- Remove experiment code and feature flag and add changelog entry - a separate cleanup issue might be required
- After the flag removal is deployed, clean up the feature flag by running chatops command in
#productionchannel - Assign to the product manager to update the knowledge base (if applicable)
Rollback Steps
- This feature can be disabled by running the following Chatops command:
/chatops gitlab run feature set change_dap_land_default_credits falseExperiment Successful Cleanup Concerns
Items to be considered if candidate experience is to become a permanent part of GitLab