Create reusable templates for custom features using Extensions

  • Updated
  • Optimizely Web Experimentation
  • Optimizely Performance Edge

To use Extensions in Optimizely Performance Edge, see Custom code and utility functions to learn how to implement custom code for experiments.

Extensions in Optimizely Web Experimentation and Optimizely Performance Edge are reusable templates that developers can use to create custom features for non-technical teams. Extensions streamline experiment creation and reduce code duplication. Teams can use extensions to add custom features to experiences without ongoing developer support. You can also copy extensions from one project to another.

This feature is only available in Accelerate and Scale for MAU pricing models and Business and Enterprise for Impressions pricing models.

For example, you might use extensions to build an image carousel style for the homepage and code it to rotate between images. From then on, you can quickly insert an image carousel on any page and modify the images for a specific campaign without writing more code. With extensions, non-technical users can easily add and edit elements on their webpages that might otherwise require coding. Check out how to add a pop-up modal without code for an example of how extensions work.

When you build an extension for an experiment or project, it will only be included in the snippet if it is actually used in at least one of the experiment's variations. This means that archived, unused and draft-mode extensions are never built into the snippet.

If you want to remove an extension from your snippet, you must disable it from the Extensions menu (Implementation > Extensions).

Optimizely Web Experimentation provides a library of pre-built, re-usable extensions.

Other extensions you might build include (but are not limited to):


Learn about building extensions in the developer documentation.

Copy extensions from one project to another

The easiest way of copying an extension from one project to another is via the JSON file:

  1. Open the extension.
  2. Click the Edit JSON button. Web_Extensions_JSON.png
  3. Copy the JSON code.
  4. Create a new extension by selecting the Using JSON option. Web_Extensions_CopyfromJSON.png
  5. Paste the JSON code.
  6. Save the extension.


Depending on the number of Extensions used in active experiments, this may slightly increase the time to execute the snippet. Projects without Extensions do not have any impact on performance. Optimizely has multiple measurements in place and will continuously monitor the performance metrics.