Skip to main content


Optimizely Knowledge Base

Compare Optimizely Classic Mobile vs. Optimizely Full Stack

  • Learn about the differences between Optimizely Classic Mobile and Optimizely Full Stack for iOS and Android
  • Decide whether you'll switch to Optimizely Full Stack

Starting September 30th, 2018, Optimizely Classic Mobile will be deprecated. We recommend that all customers move to Optimizely Full Stack, which includes a new version of Optimizely's mobile solution for experimenting on on native iOS and Android apps.

We've redesigned Full Stack for app development teams and included many advanced features to give developers full control over experiments. In response to customer feedback, we've also retired some features from Optimizely Classic.

What should you expect from Full Stack?

  • Full control. Easily customize the behavior of Optimizely for your production environment with pluggable components for logging, exception handling, event dispatching, experiment updates, state management, and integrations. Like other Full Stack SDKs, our Android and iOS SDKs are available open source.

  • Performance & ease of use. Quickly and easily experiment anywhere in your app with our redesigned web portal and SDK interface. Full Stack SDKs are lightweight and powerful to ensure minimal performance impact to your app.

  • Multi-channel experimentation. Full Stack is redesigned for a multi-channel world. With Full Stack SDKs, you can create experiments that span your technology stack and multiple consumer channels.

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

See additional resources
Here are all 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.

Benefits of Optimizely Full Stack

Full Stack includes many new features that help you iterate faster with more control and less risk. Here are some of the benefits:

  • Customize how your app synchronizes with Optimizely. Our Classic iOS and Android SDKs offered just two options for loading a datafile: synchronously or asynchronously. Our Full Stack SDKs give you full control over how the datafile is synchronized with Optimizely, including options to configure download intervals, dispatch intervals, timeouts, fallback options, or managing multiple projects within the same app. Use these options to fine-tune the behavior of Optimizely for any experiment.

  • Configure settings for your production environment. Our iOS and Android SDKs aren't a black box. They offer pluggable components for logging messages, handling exceptions, dispatching events over the network, and managing user state on the device. Tweak and configure these components to change to your production requirements with minimal effort.

  • Audit the complete source code. All Full Stack SDKs are open source, so you can audit the complete source code or fork the SDKs to meet your team’s needs. Check out our iOS and Android SDKs on GitHub.

  • Manage experiments without connecting an editor. You can now configure experiments without having to load your app in edit mode. Configure variations, traffic allocation, audience targeting, live variables, and more in just a few seconds.

  • Define up to 100 attributes. Optimizely Classic allows you to create up to 10 user attributes (previously known as dimensions). Full Stack allows you to create up to 100 user attributes per project for finer-grained segmentation and targeting.

  • Provide your own user IDs. The Classic SDKs create a random user identifier and persist it on the device on your behalf. Full Stack SDKs require you to explicitly specify your own user IDs, and offer several options for persisting state between sessions. You can reconcile raw data with your own internal systems or other third-party vendors more easily, identify users across multiple devices correctly, and create experiments that span multiple channels.

  • Create experiments across your technology stack. Our new Full Stack projects help you create experiments that span a combination of frontend and backend changes. For example, you can run experiments in your backend algorithm logic with a server-side SDK (like Java) while tracking user actions client-side with an iOS or Android SDK.

  • Keep experiments mutually exclusive. Eliminate interaction effects with exclusion groups that ensure that certain experiments don’t overlap with one another.

  • Customize results. Our new Results page has a fresh look and feel that's powered by an updated Stats Engine. Your most important metric reaches statistical significance first -- and you’ll now see “confidence intervals” instead of “difference intervals.”

  • Feature management. Full Stack will allows you to slowly roll out new features in your app and experiment on them. Experiment with how you roll out new features and mitigate risk when introducing them to your users. This functionality includes remote feature configuration to replace Classic's live variables and code blocks.

  • Multiple environments. Run experiments separately in Staging and Production and environments. Customize your setup to include as many development environments as you use in your day-to-day workflow.

Deprecated features from Optimizely Classic

Below are Classic Mobile features that aren't currently supported in Optimizely Full Stack:

  • Visual Editor. Optimizely Classic includes a lightweight Visual Editor that allows you to make limited changes to text, color, and layout using a visual emulator of your app. The editor had the benefit of bypassing app store deploys, but our customers have generally found more value in adding live variables or coding experiments directly in their app. Removing the editor makes our SDKs and web application better-performing and easier to use.

  • Code blocks. Optimizely Classic allows you to create experiments based on blocks of code in your app. In Full Stack, we've consolidated this feature with live variables under the functionality of Feature Management.

  • Session metrics. Optimizely Classic allows you view a few basic session metrics, in addition to user-based metrics. In the future, we'll add many more session metrics in Full Stack so you can view all metrics divided by sessions instead of unique users.

  • Default attributes. Optimizely allows you to target and segment by any custom attribute you choose. In the future, we'll add out-of-the-box attributes for OS version, SDK version, app version, and device.

  • Integrations. Optimizely Classic includes built-in integrations with major analytics SDKs like Amplitude, Google Analytics, Localytics, and Mixpanel. We found that customers have different expectations and requirements on how data is passed between various providers. In Optimizely, we’ve decided not to include built-in integrations. Instead, we provide notification listeners and developer documentation to help you integrate with all major analytics SDKs. Here's where to learn more:

The features above aren't available in our Full Stack SDKs today, but we may consider building them based on further feedback. If your team relies on a feature that's not in Optimizely, contact your Customer Success Manager or the Support team. 

Switching to Full Stack

We've put together a guide to help you move over to Full Stack. Check out this article on how to switch from Classic to Optimizely Full Stack

Can I keep using Optimizely Classic?

We recommend moving to Full Stack as soon as possible. Here's what you need to know:

  • Experiments aren't shared between Optimizely Classic Mobile and Optimizely Full Stack. They live exclusively in one or the other, so you should start new experiments in Full Stack.

  • Optimizely Mobile Classic will be officially deprecated on September 30, 2018. After this point, you won't be able to start new experiments in Classic.

  • We strongly encourage customers to move to Full Stack as soon as possible. Our development resources are devoted to Full Stack going forward, and we only offer limited support on Classic.

If features that are critical for your team are not yet available in Full Stack, please contact your Customer Support Manager or the Support team.