Disclaimer: This website requires JavaScript to function properly. Some features may not work as expected. Please enable JavaScript in your browser settings for the best experience.

The availability of features may depend on your plan type. Contact your Customer Success Manager if you have any questions.

Dev guideRecipesAPI Reference
Dev guideAPI ReferenceUser GuideLegal TermsGitHubDev CommunityOptimizely AcademySubmit a ticketLog In
Dev guide

SDK compatibility matrix

Explore the latest versions of Optimizely Feature Experimentation SDKs and their available features.

Optimizely Feature Experimentation adheres to the Semantic Versioning standard when upgrading and releasing the SDKs and clients. This means that most major version releases might include breaking changes. Optimizely is continuously launching major features, making minor improvements, fixing bugs, and addressing user feedback. Consequently, the minimum version support for some applications and SDK features may vary.

Version support policy

Optimizely encourages you to use the latest version of the SDKs, but Optimizely understands that you might not be able to upgrade immediately. So, Optimizely supports at least the most recent minor version and the immediately preceding major version. In certain situations, such as addressing security threats or vulnerabilities, a breaking change may be necessary if older versions cannot accommodate the required fixes. This could lead to a major version release, potentially without patching the preceding minor version.

  • Current major and minor versions – Optimizely provides patch updates for bug fixes, security vulnerabilities, and other compatibility issues for the current minor version and major versions, when possible. If the patch introduces a breaking change and an alternate solution is feasible, a new major version is released with detailed documentation in the changelog on GitHub.
  • Prior major and minor versions – Optimizely provides patch updates for bug fixes, security vulnerabilities, and other compatibility issues for the most recent minor release of the preceding major version.
    • For example, if a bug is reported while the current version is 2.1.0, and the previous major version of the SDK is 1.8.0, Optimizely will release fixes as 2.1.1 and 1.8.1 (assuming the bug is also present in 1.8.0). This is assuming the fix does not fall under a major change classification (breaking change).
  • Older versions – Not supported.

🚧

Important

When upgrading to the latest major version of an SDK, you must thoroughly review your code, including performance testing in your staging environment, before releasing to production.

Major version releases may include breaking changes that necessitate code updates.

Discontinuation of programming language version

When the support for a specific underlying programming language version is discontinued due to security vulnerabilities, feature limitations, or because it is no longer supported by its provider, a new major version of the Feature Experimentation SDK is released. This ensures that the Feature Experimentation SDK remains compatible with secure and supported language versions.

For example, if the Feature Experimentation Python SDK currently supports Python versions 2.7, 3.4, 3.5, 3.6, 3.7, and 3.8, and support for the underlying language versions 2.7 and 3.4 are being removed, the updated Feature Experimentation SDK version would be 4.0.0. The update is thoroughly documented in the changelog on GitHub, providing details about the change in compatibility.

Minimum version support

The following tables list cases where version support for features differs. For a complete version history of any given SDK, the changelogs on their GitHub repositories remain the source of truth.

Client-side SDKs

Feature *AndroidiOS (Swift)FlutterJavaScript (Browser)React and React NativeFeature ReleaseDocumentation
Advanced Audience Targeting4.0.04.0.02.0.05.0.0+3.0.0+January 2024See Advanced Audience Targeting and Implement Advanced Audience Targeting for client-side SDKs.
Forced Decision methods3.13+3.10+1.0.14.9+2.8+January 2022See the Forced Decision method topic for your language. For example, Java.
OptimizelyConfig V23.11+3.9+1.0.14.7+2.7+September 2021See the topic for your language. For example, OptimizelyConfig.
Decide, Create User Context, and Track Event` methods3.9+3.7+1.0.14.5+2.5+February 2021See the Migrate from older versions topic for your language. For example, React.
Numerical Audience >= and <=3.7+3.5+1.0.14.3+2.4+October 2020Target audiences.
Version Audience Targeting3.7+3.5+1.0.14.3+2.4+October 2020Target audiences.
Datafile AccessorN/AN/A1.0.13.7+2.3+October 2020See the topic for your language, for example, OptimizelyConfig.
JSON Feature Variables3.6+3.4+1.0.14.1+2.1+July 2020Create flag variables.
Targeted Rollouts (per-audience config)2.0+3.3.2+1.0.12.0+1.0+June 2020See Migrate from older versions topic for your language, for example, Android.
OptimizelyConfig API3.4+3.2+1.0.13.4+1.1+February 2020See the OptimizelyConfig topic for your language. For example, OptimizelyConfig.
Automatic Datafile Management1.0+3.1+1.0.13.2+1.0+June 2019Manage config (datafile).
Numerical Audience Targeting3.0+3.1+1.0.13.0+1.0+February 2019Target audiences.
Datafile Caching1.0+3.1+1.0.1N/A2.2+ (React Native)July 2020See the Initialize SDK topic for your language. For example, Initialize SDK.
Offline Event Persistence1.0+3.1+1.0.1N/A2.2+ (React Native)July 2020See the Event Dispatcher topic for your language. For example, Configure event dispatcher.

*This compatibility matrix captures only noteworthy features released in April 2018 and later. See the changelog for your SDK in GitHub for features released before April 2018 and minor feature releases.

Server-side SDKs

Feature *AgentC#GoJavaJavaScript (Node)PHPPythonRubyFeature ReleasedDocumentation
Advanced Audience Targeting4.0.04.0.02.0.04.0.05.0.0+N/A5.0.05.0.0January 2024See Advanced Audience Targeting and Implement Advanced Audience Targeting for server-side SDKs.
Forced Decision methods2.6+3.11+1.8+3.10+4.9+3.9+4.0+3.10+January 2022See the Forced Decision method topic for your language. For example, Java.
OptimizelyConfigV22.5+3.10+1.7+3.9+4.7+3.8+3.10+3.9+September 2021See the topic for your language. For example, OptimizelyConfig.
Decide, Create User Context, and Track Event methods2.4+3.8+1.6+3.8+4.5+3.7+3.8+3.8+February 2021See the Migrate from older versions topic for your language. For example, Python.
Numerical Audience >= and <=2.1+3.6+1.4+3.6+4.3+3.5+3.6+3.6+October 2020Target audiences.
Version Audience Targeting2.1+3.6+1.4+3.6+4.3+3.5+3.6+3.6+October 2020Target audiences.
Datafile AccessorN/A3.6+1.4+3.6+4.3+3.5+3.6+3.6+October 2020See the OptimizelyConfig topic for your language. For example, OptimizelyConfig.
JSON Feature Variables1.3+3.5+1.3+3.5+4.1+3.4+3.5+3.5+July 2020Create flag variables
Targeted Rollouts (per-audience config)1.1+2.0+1.2+2.0+2.0+2.0+2.0+2.0+June 2020Run flag deliveries.
OptimizelyConfig API1.0+3.4+1.0+3.4+3.4+3.3+3.4+3.4+February 2020See the OptimizelyConfig topic for your language. For example, OptimizelyConfig.
Automatic Datafile Management1.0+3.2+1.0+3.2+3.2+3.2+3.2+3.2+June 2019See the Initialize SDK topic for your language. For example, Initialize SDK.
Numerical Audience Targeting1.0+3.0+1.0+3.0+3.0+3.0+3.0+3.0+February 2019Target audiences.

*This compatibility matrix captures only noteworthy features released in April 2018 and later. See the changelog for your SDK in GitHub for features released before April 2018 and minor feature releases.

Current SDK versions

The current, stable SDK release is labeled Latest in GitHub, which is the source of truth and takes precedence over this document.

SDKCurrent releaseReleased
Agent4.1.0August 2024
Android4.0.4September 2024
C#4.0.0January 2024
Flutter2.0.1July 2024
Go2.0.0January 2024
Java4.1.1May 2024
Javascript (Browser), Javascript (Node)5.3.4June 2024
PHP4.0.1December 2023
Python5.0.1June 2024
React, React Native3.2.2August 2024
Ruby5.0.1February 2024
Swift4.0.0January 2024