[Experiment] Trial first registration
What does this MR do and why?
This MR implements the foundational infrastructure for the trial-first registration experiment - a 50/50 A/B test that routes new users to trial signup instead of free registration.
Specifically, it:
- Adds experiment logic to the registration flow that randomly assigns users to control (free signup) or candidate (trial signup) variants
- Tracks user assignment to the experiment when they land on the registration page
- Tracks user creation events with labels indicating whether they were invited or signed up
- Includes comprehensive test coverage for both experiment variants and tracking behavior
- Creates the feature flag configuration for the
trial_first_registrationexperiment
Why?
Business Goal: Eliminate the dual free/trial registration path to improve activation and paid conversion rates while simplifying the registration codebase.
References
Screenshots or screen recordings
| Control | Varient |
|---|---|
How to set up and validate locally
- Make sure that you have snowplow-micro running locally for testing events.
- Make sure simulate SAAS is enabled
- Open the rails console and enable the flag for all users
Feature.enable(:trial_first_registration)
- Open the login page by visiting http://localhost:3000/users/sign_in
- Click on Register now CTA
- It should show you the trial registration page
- Make sure the tracking is working as expected listed here https://gitlab.com/gitlab-org/gitlab/-/work_items/590786#tracking-details
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #590786
Edited by Harsh Sagar