A/B Testing & Experiments
Experiments (A/B tests) let you test design changes with specific player cohorts before rolling out globally. Quest Data uses deterministic hashing so players see consistent variants.
Creating an Experiment
Section titled “Creating an Experiment”- Go to Live Ops > Experiments
- Click New Experiment and fill:
- Name: e.g., “Tutorial Difficulty Test”
- Description: What you’re testing and why
- Traffic %: 50% (test 50% of new players)
- Variants: Add Control (A) and Treatment (B)
- Click Start
Traffic Allocation
Section titled “Traffic Allocation”| Allocation | Use Case |
|---|---|
| 10% | High-risk changes, measure impact first |
| 50% | Balanced testing, fast results |
| 90% | Near-rollout, verify before 100% |
Players are assigned consistently via hashing on player_id, so they always see the same variant.
Tracking Variants
Section titled “Tracking Variants”Check which variant a player is assigned to:
var variant = await QuestData.get_experiment_variant("Tutorial Difficulty Test")
match variant: "control": difficulty = 1.0 "treatment": difficulty = 0.75 # Easier tutorialThen track results:
QuestData.track("tutorial_complete", { "experiment": "Tutorial Difficulty Test", "variant": variant, "time_spent_seconds": 300})Results Dashboard
Section titled “Results Dashboard”| Metric | Control | Treatment | Winner |
|---|---|---|---|
| Completion Rate | 85% | 92% | Treatment |
| Avg Duration | 420s | 380s | Treatment |
| Retention Day 1 | 42% | 48% | Treatment |
Statistical Significance
Section titled “Statistical Significance”Results are marked:
- Gray: Too small sample size
- Blue: Statistically meaningful
- Green: Winner with >95% confidence
Rolling Out Winners
Section titled “Rolling Out Winners”- Results show Treatment won over Control
- Click Rollout to All Players
- Select: Gradual (10%/day) or Immediate (100%)
- The variant becomes the new default
API Reference
Section titled “API Reference”# Get experiment statuscurl "https://api.questdata.io/v1/experiments/tutorial-test" \ -H "x-game-api-key: YOUR_API_KEY"
# Get player assignmentcurl "https://api.questdata.io/v1/experiments/tutorial-test/variant?player_id=player123" \ -H "x-game-api-key: YOUR_API_KEY"Response:
{ "experiment": "tutorial-test", "player_id": "player123", "variant": "treatment", "allocated_at": "2026-04-01T10:00:00Z"}