Skip to main content


Optimizely Knowledge Base

Make the transition to Optimizely X Full Stack

  • Switch to the new Optimizely X Full Stack SDKs from Optimizely Classic Mobile

Optimizely X Full Stack introduces new SDKs and fresh user interface for experimentation in native iOS and Android apps.


This article will help you make the switch to Full Stack if you've been using Optimizely Classic Mobile. It will also guide you through how to recreate existing experiments from Classic in Full Stack.

Not sure which product you're using? Here's how to learn which version of Optimizely you have.

See additional resources
Here are all of our articles about the Optimizely dashboard, which you'll use to create projects, add collaborators, manage privacy settings, and more: 

Here's our developer documentation, where you'll find code samples, full references for our SDKs, and guides for getting started.

Wondering what's changed? If you've been using Optimizely Classic Mobile, check out this article to compare our legacy product to Full Stack.

Learn more about the advantages of Full Stack on our blog.

Deciding to switch

Optimizely X is our new experimentation platform that's designed to empower companies to experiment everywhere. With Optimizely X, we've released a family of products that help you experiment across channels and devices.

In response to customer feedback, we've designed Full Stack for app development teams and included many advanced features to give developers full control over A/B tests and feature tests. Read this article to learn more about what's new in Optimizely X Full Stack.

We highly recommend that all customers switch to Optimizely X as soon as possible. We will be dropping support Optimizely Classic Mobile starting on September 30th, 2018. Start developing iOS and Android experiments with our new SDK to gain the control, ease of use, and multi-channel experimentation potential of Optimizely X Full Stack.

If your team blocked by features that aren't yet available, please contact the Optimizely Support team or your Customer Success Manager.

1. Create a Full Stack Project

First, create a new Full Stack project. We redesigned Optimizely from the ground up and decided not to port Classic iOS and Android projects into Full Stack because functionality differs.

Creating a new project will help you make a smooth transition with the new SDKs.

You must be an Optimizely administrator or project owner to create a new project.

To set up a new Full Stack project, first make sure Optimizely X is enabled. If you don't see a link in your account, contact Optimizely Support or your CSM.


Click Optimizely X to switch.

Here's how to set up a new Full Stack project, with step-by-step instructions below:


  1. In Optimizely X, click Projects > New Project.

  2. Select Create Full Stack Project,

  3. Enter a project name and click Create Project.

If you have multiple mobile projects in Optimizely Classic, create a new SDK project in Full Stack for each of your existing projects. For example, if you have two iOS apps and one Android app, create three new SDK projects. If each of those apps has a QA and a production environment, create six new projects.

You can use the same naming conventions for projects in Full Stack as you used in Classic.

If you have questions or need help, contact Optimizely Support or email our developer support staff at

2. Install the Optimizely X SDK

Before moving over any of your existing production experiments, install the new iOS or Android SDK and set up a experiment in your development environment. Here are two guides that walk through how to install the SDK and run a basic experiment:

Our SDKs include a demo app that shows an example usage of the SDK.

3. Update references to the Optimizely SDK in your app

The Optimizely X SDKs are not backward-compatible with the Optimizely Classic SDKs. You'll need to update references for the Optimizely Classic SDK for Optimizely X.

  1. Before updating any references, stop all running experiments with Optimizely Classic and wait for your experiment results to conclude. This will ensure that future app releases won't affect your pre-existing experiment results.

  2. When you're ready for a new app release, update any of the following references in the SDK:

    Initialization. Instead of usingstartOptimizely to synchronously or asynchronously load Optimizely in your app, create an OptimizelyManagerthat manages the state and synchronization of the datafile with your app. Refer to our developer documentation on syncing the datafile for iOS and Android.

    Live variables. If you've defined live variables in your app that you want to use for future experiments in Optimizely X, use our updated function signatures for variable getters. Refer to our developer documentation for iOS and Android to learn how to access live variables using the SDK. Any live variables you’ve added to the app also need to be registered in your new Optimizely X project.

    Metrics. In Optimizely Classic, you can create custom goals for any events you track in the app. In Full Stack, goals have been replaced by events (for tracking), which are aggregated into metrics on your Results page (for display). Refer to our developer documentation for iOS and Android to learn how to track events from your app. You’ll also need to register events in your new SDK project.

All other references to the Classic SDK can be safely removed.

3. Remove other references to Classic SDK in your app

Remove all of the code for the following references--these concepts no longer apply in Full Stack:

  • Preview mode

  • Editor mode

  • Code blocks

  • Custom tags

  • Integrations

After removing these references, you should be able to compile your app without the Optimizely Classic SDK installed.

4. Deploy your first experiment in Optimizely X Full Stack

You’re now ready to run your first experiment in Full Stack using any live variables and metrics you’ve ported over from above.

Refer to our developer reference for iOS and Android. Or, read our guide to getting started with Optimizely X Full Stack to learn about configuring experiments.