Meet Optimizely

Optimize your digital experiences across every device and every customer touchpoint with the industry's leading experimentation platform.

Is your experimentation platform working for you?

Optimizely X Web Experimentation

Enable everyone in your organization to improve every experience, whether your marketing team is seeking to understand the best way to apply advertising dollars or your product team is learning how to build the most engaging product onboarding experience.

Learn More

Optimizely X Web Personalization

Deliver targeted content and experiences in real time. Bring together what you know about your customers and your most successful experiments to deliver personalized customer experiences with measurable improvements to your bottom line.

Learn More

Optimizely X Full Stack

Empower your developers to experiment everywhere. By running experiments in any application, you can iterate on search algorithms, launch new features confidently, and learn the best way to build product experiences for your customers.

Learn More
            
    import optimizely
    
    optimizely = optimizely.Optimizely(datafile)
    
    

# Activate an experiment

variation = optimizely.activate('my_experiment', 'user_123') if variation == 'variation_a':

# Execute code for variation A

elif variation == 'variation_b':

# Execute code for variation B

else:

# Execute default code

# Track an event

optimizely.track('purchase_completed', 'user_123')
            
    import com.optimizely.ab.Optimizely;
    
    Optimizely optimizely = Optimizely.builder(datafile).build();
    
    

// Activate an experiment

Variation variation = optimizely.activate("my_experiment", "user_123"); if (variation != null) { if (variation.is("variation_a")) {

// Execute code for variation A

} else if (variation.is("variation_b")) {

// Execute code for variation B

} } else {

// Execute default code

}

// Track an event

optimizely.track("purchase_completed", "user_123");
            
    import "optimizely"
    
    project = Optimizely::Project.new(datafile)
    
    

# Activate an experiment

variation = project.activate('my_experiment', 'user_123') if variation == 'variation_a'

# Execute code for variation A

elsif variation == 'variation_b'

# Execute code for variation B

else

# Execute default code

end

# Track an event

project.track('purchase_completed', 'user_123')
            
    var optimizely = require('optimizely-server-sdk');
    
    var optimizely = optimizely.createInstance({ datafile: datafile });
    
    

// Activate an experiment

var variation = optimizely.activate('my_experiment', 'user_123'); if (variation === 'variation_a') {

// Execute code for variation A

} else if (variation === 'variation_b') {

// Execute code for variation B

} else {

// Execute default code

}

// Track an event

optimizely.track('purchase_completed', 'user_123');
            
    use Optimizely\Optimizely;
    
    

// Initialize an Optimizely client

$optimizelyClient = new Optimizely($datafile);

// Activate an experiment

$variation = $optimizelyClient->activate('my_experiment', 'user_123'); if ($variation == 'variation_a') {

// Execute code for variation A

} elseif ($variation == 'variation_b') {

// Execute code for variation B

} else {

// Execute default code

}

// Track an event

$optimizelyClient->track('purchase_completed', 'user_123');
            
    using OptimizelySDK;
    
    

// Initialize an Optimizely client

Optimizely OptimizelyClient = new Optimizely(datafile);

// Activate user in an experiment

var variation = OptimizelyClient.Activate("my_experiment", userId); if (variation != null) { if (variation == "control") {

// Execute code for variation A

} else if (variation == "treatment") {

// Execute code for variation B

} } else {

// Execute default code

}

// Track conversion event

OptimizelyClient.Track("my_conversion", userId);
            
    var optimizely = require('optimizely-client-sdk');
    

// Initialize an Optimizely client

var optimizelyClientInstance = optimizely.createInstance({ datafile: datafile });

// Alternatively, if you don't use CommonJS or npm, you can install the minified snippet and use the globally exported varible as follows

var optimizelyClientInstance = window.optimizelyClient.createInstance({ datafile: datafile });

// Activate user in an experiment

var variation = optimizelyClientInstance.activate('my_experiment', userId); if (variation === 'control') {

// Execute code for variation A

} else if (variation === 'treatment') {

// Execute code for variation B

} else {

// Execute default code

}

// Track conversion event

optimizelyClientInstance.track('my_conversion', userId);
            
    

// Initialize an Optimizely manager

OPTLYManager *optlyManager = [OPTLYManager init:^(OPTLYManagerBuilder * _Nullable builder) { builder.projectId = @"projectId"; }];

// Initialize an Optimizely client by asynchronously downloading the datafile

[optlyManager initializeWithCallback:^(NSError * _Nullable error, OPTLYClient * _Nullable client) {

// Activate user in a test

OPTLYVariation *variation = [client activate:@"my_experiment" userId:@"userId"]; if ([variation.variationKey isEqualToString:@"control"]) {

// Execute code for the control

} else if ([variation.variationKey isEqualToString:@"treatment"]) {

// Execute code for the treatment

} else {

// Execute default code

}

// Track conversion event

[client track:@"my_conversion" userId:@"userId"]; }];
              
    

// Initialize an Optimizely manager

let optimizelyManager : OPTLYManager? = OPTLYManager.init {(builder) in builder!.projectId = "projectId" }

// Initialize an Optimizely client by asynchronously downloading the datafile

optimizelyManager?.initialize(callback: { [weak self] (error, optimizelyClient) in

// Activate user in a test

if let variation = optimizelyClient?.activate("my_experiment", userId: "userId") { if (variation.variationKey == "control") {

// Execute code for the control

} else if (variation.variationKey == "treatment") {

// Execute code for the treatment

} } else {

// execute default code

}

// Track conversion event

optimizelyClient?.track("my_conversion", userId: "userId") })
                
    import com.optimizely.ab.Optimizely;
    
    Optimizely optimizely = Optimizely.builder(datafile).build();
    
    

// Activate an experiment

Variation variation = optimizely.activate("my_experiment", "user_123"); if (variation != null) { if (variation.is("variation_a")) {

// Execute code for variation A

} else if (variation.is("variation_b")) {

// Execute code for variation B

} } else {

// Execute default code

}

// Track an event

optimizely.track("purchase_completed", "user_123");

Optimizely X Program Management

Scale experimentation across your entire organization and increase the velocity of your program by up to 5X with team workflow collaboration tools and program-level executive dashboards.

Learn More
ui-reporting.png

Optimizely X Recommendations

Automatically add product, category, and content recommendations to any website. Leverage machine learning to continuously improve your recommendations to deliver hands-off ROI. Experiment on algorithms, placement, and presentation to understand the best way to engage your customers.

Get Started
laptop-mockup-s-and-d-image-experimentation-p2.png

Optimizely X Mobile

Engage customers where they are, regardless of device, by running experiments on apps built on iOS and Android. Instantly roll out new features without waiting for App Store or Google Play review.

Learn More

Optimizely X OTT

Deliver great over-the-top TV experiences by running experiments in any application built for tvOS or Android, such as navigation, app layout, site design, featured content or integrated message testing.

Learn More

Partner with us to establish and grow your experimentation program.

We're here to help. Optimizely Customer Success has worked to support thousands of teams. Learn how we can partner with you to add capacity and expert resources to accelerate the success of your experimentation program.

Learn More
If Atlassian couldn't experiment on our user's journey, we would lose a major lever in making our customers more successful with our products.
Cameron Deatsch
Cameron Deatsch

VP of Growth, Atlassian

It's your turn. How will you experiment everywhere?