Skip to main content

Experiments (A/B Testing)

Experiments

Run A/B and multivariate experiments with authenticated management and public assignment/tracking endpoints.

Audience: Optimization teams running conversion tests on campaigns, widgets, and recommendation placements.

Critical: Public assignment and tracking endpoints require siteKey and are throttled for abuse protection (assign: 60/min, tracking: 120/min).

Who This Page Is For

Use this page when you need a reliable experiment lifecycle contract from creation to result readout, including storefront variant assignment and conversion tracking.

Quick Start (2-5 Minutes)

1

Create experiment

Define hypothesis, variants, goals, and traffic split.

POST /api/v1/experiments
2

Start test

Move experiment to running state when QA is complete.

POST /api/v1/experiments/:id/start
3

Assign variant on storefront

Fetch visitor assignment using siteKey + visitorId.

GET /api/v1/public/experiments/assign?siteKey=SITE_KEY&visitorId=VISITOR_ID
4

Track experiment events

Send impression/conversion and custom events to public endpoints.

POST /api/v1/public/experiments/track?siteKey=SITE_KEY
POST /api/v1/public/experiments/track-event?siteKey=SITE_KEY
5

Read results and complete

Inspect statistical output and mark experiment completed.

GET /api/v1/experiments/:id/results
POST /api/v1/experiments/:id/complete

Experiment endpoints

POST   /api/v1/experiments
GET    /api/v1/experiments
GET    /api/v1/experiments/:id
PUT    /api/v1/experiments/:id
POST   /api/v1/experiments/:id/start
POST   /api/v1/experiments/:id/pause
POST   /api/v1/experiments/:id/complete
GET    /api/v1/experiments/:id/results
DELETE /api/v1/experiments/:id
GET    /api/v1/public/experiments/assign?siteKey=:siteKey&visitorId=:visitorId
POST   /api/v1/public/experiments/track?siteKey=:siteKey
POST   /api/v1/public/experiments/track-event?siteKey=:siteKey

Required Fields / Minimum Payload

FieldRequiredTypeUsed by eventsDescription
nameRequiredstringCreate/update experimentExperiment label used in results and reporting.
siteIdRequireduuidCreate experimentSite boundary for traffic assignment and analytics.
typeRequiredab_test | multivariate | split_urlExperiment designDefines experimentation model.
variants[]RequiredarrayAssignment and analysisVariant definitions including traffic split and target config.
eventTypeRequiredimpression | conversionpublic/experiments/trackPrimary outcome tracking on runtime endpoint.
siteKeyConditionalstringPublic assignment/track endpointsPass via query parameter; body fallback remains accepted for compatibility.

Event or Endpoint Decision Matrix

ScenarioUse ThisWhy
Operate experiment lifecycle in admin/api/v1/experiments* authenticated endpointsFull CRUD + status transitions with RBAC.
Assign variant to anonymous visitorGET /api/v1/public/experiments/assignDeterministic runtime assignment flow.
Track impression or conversion outcomePOST /api/v1/public/experiments/trackStandard event contract for experiment stats.
Track extra behavioral signalPOST /api/v1/public/experiments/track-eventSupports custom event telemetry.
Pause test due to incidentPOST /api/v1/experiments/:id/pauseFast rollback while preserving accumulated data.

Common Errors and Fixes

Public assign endpoint returns siteKey required

Cause: siteKey missing in query and body.

Fix: Send siteKey in query string for maximum compatibility.

No conversions in results

Cause: Runtime is only sending assignment but not track/track-event calls.

Fix: Wire conversion events to public experiment tracking endpoints.

Experiment cannot start

Cause: Invalid variant setup or missing permissions for update actions.

Fix: Validate variant payload and role permissions before start.

Unexpected 429 on public tracking

Cause: Throttling triggered due to high-frequency calls.

Fix: Batch frontend actions sensibly and avoid duplicate submissions.

Production Checklist

  • Experiment has explicit primary goal and success threshold.Required
  • Variant traffic splits total 100% and are validated pre-launch.Required
  • Public assignment and track endpoints are both integrated in storefront.Required
  • Pause/complete operational runbook exists for incidents.Required
  • Result reviews include both uplift and sample-size context.Required

Next Steps