Skip to content

Experiment ​

The Experiment resource lets you manage AWS Evidently Experiments for A/B testing and feature management.

Resource Documentation ​

The AWS Evidently Experiment resource allows you to define and manage experiments to test variations of your applications and features effectively. It includes capabilities for setting up treatments, metrics, and configurations for online A/B testing.

Minimal Example ​

Create a basic experiment with required properties and some common optional properties.

ts
import AWS from "alchemy/aws/control";

const basicExperiment = await AWS.Evidently.Experiment("basicExperiment", {
  Project: "myEvidentlyProject",
  Name: "Basic Experiment",
  MetricGoals: [
    {
      MetricName: "ConversionRate",
      Value: 0.5
    }
  ],
  OnlineAbConfig: {
    ControlTreatment: "treatmentA",
    EvaluationPeriods: 3
  },
  Treatments: [
    {
      Name: "treatmentA",
      Weight: 50,
      Variations: ["Variant A"]
    },
    {
      Name: "treatmentB",
      Weight: 50,
      Variations: ["Variant B"]
    }
  ]
});

Advanced Configuration ​

Configure an experiment with additional properties such as sampling rate and randomization salt.

ts
const advancedExperiment = await AWS.Evidently.Experiment("advancedExperiment", {
  Project: "myEvidentlyProject",
  Name: "Advanced Experiment",
  MetricGoals: [
    {
      MetricName: "UserEngagement",
      Value: 0.7
    }
  ],
  OnlineAbConfig: {
    ControlTreatment: "treatmentA",
    EvaluationPeriods: 5
  },
  Treatments: [
    {
      Name: "treatmentA",
      Weight: 30,
      Variations: ["Variant A"]
    },
    {
      Name: "treatmentB",
      Weight: 70,
      Variations: ["Variant B"]
    }
  ],
  SamplingRate: 0.1,
  RandomizationSalt: "uniqueSalt123"
});

Experiment with Segmentation ​

Create an experiment that includes segmentation to target specific user groups.

ts
const segmentedExperiment = await AWS.Evidently.Experiment("segmentedExperiment", {
  Project: "myEvidentlyProject",
  Name: "Segmented Experiment",
  MetricGoals: [
    {
      MetricName: "RetentionRate",
      Value: 0.6
    }
  ],
  OnlineAbConfig: {
    ControlTreatment: "treatmentA",
    EvaluationPeriods: 4
  },
  Treatments: [
    {
      Name: "treatmentA",
      Weight: 40,
      Variations: ["Variant A"]
    },
    {
      Name: "treatmentB",
      Weight: 60,
      Variations: ["Variant B"]
    }
  ],
  Segment: "highValueUsers"
});

Experiment with Tags ​

Create an experiment that includes tagging for better resource management.

ts
const taggedExperiment = await AWS.Evidently.Experiment("taggedExperiment", {
  Project: "myEvidentlyProject",
  Name: "Tagged Experiment",
  MetricGoals: [
    {
      MetricName: "PurchaseConversion",
      Value: 0.4
    }
  ],
  OnlineAbConfig: {
    ControlTreatment: "treatmentA",
    EvaluationPeriods: 6
  },
  Treatments: [
    {
      Name: "treatmentA",
      Weight: 20,
      Variations: ["Variant A"]
    },
    {
      Name: "treatmentB",
      Weight: 80,
      Variations: ["Variant B"]
    }
  ],
  Tags: [
    {
      Key: "Environment",
      Value: "Staging"
    },
    {
      Key: "Version",
      Value: "v1.0"
    }
  ]
});