Experiments run through GrowthBook. GrowthBook assigns each visitor to an arm using the gbuuid cookie, the website or the edge acts on the assignment, and an experiment_viewed event with experiment_id and variation_id records that the visitor was exposed. Results are computed in BigQuery from the first exposure per user.
How to read results:
Check the split first. If the test was configured 50/50 and the exposures are 60/40, the exposures are wrong and the results are not readable yet. GrowthBook shows this as a Sample Ratio Mismatch warning. Investigate before reading any metric. **Note → There is a new script that solves this problem for client side routing. However, it is best practice that all future experiments run server side via cloudflare worker.
Metrics are per user assigned, not per session. A visitor is in one arm and only that arm, their conversions count once, in their arm. There is no double counting between arms by construction.
Pre-consent exposures do not join. Same consent rule as everywhere else; it costs sample on both arms equally.
QA and bypass: append ?<experiment-key>=0 to a URL to force control for that page load, =1 for the variant. Forced loads do not record exposures.