Track clicks on project creation page on GitLab.com
Problem to solve
To better understand user activity, we should track interactions on the new project page.
Further details
GitLab tracks events using Snowplow's trackStructEvent
function. You can read more about it in the Snowplow documentation.
snowplow_name_here('trackStructEvent', 'category', 'action', 'label', 'property', 'value');
Please also check out our documentation. You can see our existing Snowplow header implementation in _snowplow.html.haml
in app/views/layouts
, and also read more about instrumentation in general.
Proposal
category
will be set to the Rails page attribute by default (projects:new
)
- Record an event when clicked:
- Tabs in navbar
- "Create from template" tab:
('trackStructEvent','projects:new','click_tab','create_from_template','','')
- "Import project" tab:
('trackStructEvent','projects:new','click_tab','import_project','','')
- "CI/CD for external repo" tab:
('trackStructEvent','projects:new','click_tab','cicd_for_external_repo','','')
- "Create from template" tab:
- Form elements
- Project path dropdown:
('trackStructEvent','projects:new','activate_form_input','blank_project','project_path','')
- Project name input field activated:
('trackStructEvent','projects:new','activate_form_input','blank_project','project_name','')
- Project description field activated:
('trackStructEvent','projects:new','activate_form_input','blank_project','project_description','')
- Visibility private clicked:
('trackStructEvent','projects:new','activate_form_input','blank_project','project_visibility','0')
- Visibility internal clicked:
('trackStructEvent','projects:new','activate_form_input','blank_project','project_visibility','10')
- Visibility public clicked:
('trackStructEvent','projects:new','activate_form_input','blank_project','project_visibility','20')
- Initialize repository with README checkbox:
('trackStructEvent','projects:new','activate_form_input','blank_project','init_with_readme',true
orfalse)
- Create project button:
('trackStructEvent','projects:new','click_button','blank_project','create_project','')
- Cancel button:
('trackStructEvent','projects:new','click_button','blank_project','create_project','')
- Project path dropdown:
- Tabs in navbar
- Record an event when clicked:
- "Blank project" tab:
('trackStructEvent','projects:new','click_tab','blank_project','','')
- Rails
- Use template:
('trackStructEvent','projects:new','click_button','create_from_template','template_use','rails')
- Preview:
('trackStructEvent','projects:new','click_button','create_from_template','template_preview','rails')
- Use template:
- Spring
- Use template:
('trackStructEvent','projects:new','click_button','create_from_template','template_use','spring')
- Preview:
('trackStructEvent','projects:new','click_button','create_from_template','template_preview','spring')
- Use template:
- Node
- Use template:
('trackStructEvent','projects:new','click_button','create_from_template','template_use','express')
- Preview:
('trackStructEvent','projects:new','click_button','create_from_template','template_preview','express')
- Use template:
- "Blank project" tab:
- After using a template:
- Select new template button:
('trackStructEvent','projects:new','click_button','create_from_template','change_template','')
- Project path dropdown:
('trackStructEvent','projects:new','activate_form_input','create_from_template','project_path','')
- Project name input field activated:
('trackStructEvent','projects:new','activate_form_input','create_from_template','project_name','')
- Project description field activated:
('trackStructEvent','projects:new','activate_form_input','create_from_template','project_description','')
- Visibility private clicked:
('trackStructEvent','projects:new','activate_form_input','create_from_template','project_visibility','0')
- Visibility internal clicked:
('trackStructEvent','projects:new','activate_form_input','create_from_template','project_visibility','10')
- Visibility public clicked:
('trackStructEvent','projects:new','activate_form_input','create_from_template','project_visibility','20')
- Initialize repository with README checkbox:
('trackStructEvent','projects:new','activate_form_input','create_from_template','init_with_readme',true
orfalse)
- Select new template button:
- Record an event when clicked:
- GitLab export:
('trackStructEvent','projects:new','click_button','import_project','gitlab_export','')
- GitHub:
('trackStructEvent','projects:new','click_button','import_project','github','')
- GitLab.com:
('trackStructEvent','projects:new','click_button','import_project','gitlab_com','')
- Bitbucket Cloud:
('trackStructEvent','projects:new','click_button','import_project','bitbucket_cloud','')
- Bitbucket Server:
('trackStructEvent','projects:new','click_button','import_project','bitbucket_server','')
- Google Code:
('trackStructEvent','projects:new','click_button','import_project','google_code','')
- Fogbugz:
('trackStructEvent','projects:new','click_button','import_project','fogbugz','')
- Gitea:
('trackStructEvent','projects:new','click_button','import_project','gitea','')
- Repo by URL:
('trackStructEvent','projects:new','click_button','import_project','repo_url','')
- Manifest file:
('trackStructEvent','projects:new','click_button','import_project','manifest_file','')
- GitLab export:
- Record an event when clicked:
- GitHub:
('trackStructEvent','projects:new','click_button','cicd_for_external_repo','github','')
- Repo by URL:
('trackStructEvent','projects:new','click_button','cicd_for_external_repo','repo_url','')
- GitHub:
What does success look like, and how can we measure that?
(If no way to measure success, link to an issue that will implement a way to measure this)
Links / references
Edited by Jeremy Watson (ex-GitLab)