Skip to main content


Optimizely Knowledge Base

Run experiments across multiple services

relevant products:
  • Optimizely X Web
  • Optimizely X Full Stack

  • Determine how to manage your datafile across multiple services

How the Optimizely datafile supports experiments across multiple services

When your application starts, Optimizely downloads a JSON datafile containing all the experiment data. This datafile is a compact representation of all the instructions needed to activate experiments and track events in your code without requiring any blocking network requests. After Optimizely downloads the datafile, each experiment is evaluated to see if it can be run.

When you are running experiments across multiple applications in your stack, datafile management is critically important. The datafile is sent in each request and response between the server and the browser. All applications running an experiment must use the same datafile.

However, to ensure that Optimizely is compatible with any environment, Optimizely does not actually manage the datafile on your behalf. You are responsible for synchronizing your own datafile. You will decide how often to poll for the datafile, where the datafile is stored, and whether to use a webhook for any notifications, among other things.

The practical implications of this depend on how your experiment is set up. If you are tracking events with one SDK but running an experiment with another SDK, both SDKs must reference the same datafile.

However, if you are of running an experiment in the server and tracking events in the client, it would be more efficient and elegant to simply pass back the datafile as part of the HTML response to the browser instead.

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 getting started guides.