Wikimedia Product/Analytics Infrastructure/Experiment Platform

When a client queries the configuration API for sampling rate, it should send some minimally identifying information about itself (and the user) to receive a determination of enrollment in an online experiment (A/B test). On the backend, Product/Program Managers and Analysts define a target population to sample and target platforms. Additionally, the experiment design may require that an editor receives the same treatment on multiple platforms (any device they're logged in on).

The following are possible use cases:


 * Cross-platform intervention on a cohort of newly registered editors who have made fewer than 3 edits in the first month since creating their account
 * "Advertising" existence of Hindi & Marathi Wikipedias to Hindi & Marathi speakers (based on system/browser language settings) in India who are browsing English Wikipedia
 * Assessing how a change to how Chinese characters are displayed in a mobile app affects reading length/depth

To that end, we should consider having clients include the following information when requesting configuration settings:


 * Wiki + User ID or Username (if logged in)
 * Geographic region (state level?)
 * Ordered languages

The backend uses this data to check whether the client is/should be enrolled in any experiments and responds with enrollment info (if any) and sampling rate(s). Once the client receives the response, it configures itself to give the user the appropriate interface/experience and send the relevant tracking events.