Disclaimer: This website requires 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 GuideAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

Integrate FullStory

Integrate Optimizely Web Experimentation and FullStory to get insights into how users interact with your Optimizely experiments and ideas for new experiments to run.

📘

Note

This is a third-party integration and is not an Optimizely subprocessor. See Optimizely's Third-Party Add-Ons & Platform Integration Terms.

This integration is built and maintained by FullStory. Add the FullStory recording snippet to your site, then pass in the experiment, campaign, and variations names and IDs. Contact FullStory support.

📘

Note

Before you integrate FullStory, contact your Customer Success Manager and confirm the custom analytics is turned on for your account.

Add the FullStory recording snippet to your site

You have two options for adding the FullStory recording snippet to your site:

  • Add the FullStory recording snippet directly to your site (recommended).
  • Use Optimizely Web Experimentation to add the FullStory recording snippet to your site.

Option 1: Add the FullStory recording snippet directly to your site

  1. Create a FullStory account.
  2. Click the link in the FullStory confirmation email to confirm your account.
  3. Log in to your FullStory account, go to Settings, and copy your recording snippet.
  4. Paste your recording snippet into the <head> element in your content management system (CMS) or directly into your application’s code.

📘

Note

Place the FullStory recording snippet above your Optimizely snippet.

FullStory now starts recording sessions for your site visitors.

Option 2: Use Optimizely Web Experimentation to add the FullStory recording snippet to your site

Although you should add FullStory directly to your website, you also can add the FullStory snippet through Optimizely Web Experimentation. 

  1. Create a FullStory account.
  2. Click the link in the FullStory confirmation email to confirm your account.
  3. Log in to your FullStory account, go to Settings, and copy your recording snippet.
  4. Go to Optimizely Settings > JavaScript.
  1. Paste the FullStory recording snippet in the Project JavaScript field.

    📘

    Note

    Do not include the <script> tags.

FullStory now starts recording sessions for your site visitors.

Pass in experiment/variation names and IDs

When running an A/B experiment or multivariate testing, you may want to compare how visitors interact with the different variations of your pages. By passing custom events from Optimizely to FullStory, you can see and compare user sessions by experiment name and variant name. Use OmniSearch in Fullstory to find sessions that ran with Optimizely Experiments.

  1. Go to your Experimentation > Settings and uncheck Mask descriptive names in project code and third-party integrations (under Privacy in Snippet Settings).
  1. Click Save.
  2. Go to Settings > Integrations and click Create Analytics Integration....
  1. Select Using Visual Editor in the drop-down list.
  2. Enter a name for the integration, such as FullStory IDs, and select Create Custom Analytics Integration.
  3. Copy the following code, paste it in the custom field, and click Save.
(function () {
 function _fs() { return window[window['_fs_namespace']]; }
 utils = window.optimizely.get('utils');
 utils.waitUntil(function () {
   return typeof _fs() === 'function';
 }).then(function () {
   var campaignStates = window.optimizely.get('state').getCampaignStates({ isActive: true });
   for (var campaignId in campaignStates) {
     var c = campaignStates[campaignId];
     if (c.isInCampaignHoldback !== true) {
       var payload = {};
       payload.campaign = {};
       payload.campaign.id_str = campaignId;
       payload.campaign.name_str = c.campaignName;
       if (c.experiment) {
         payload.experiment = {};
         payload.experiment.id_str = c.experiment.id;
         payload.experiment.name_str = c.experiment.name;
       }
       if (c.variation) {
         payload.variation = {};
         payload.variation.id_str = c.variation.id;
         payload.variation.name_str = c.variation.name;
       }
       _fs().event('Experiment', payload, 'Optimizely');
     }
   }
 });
})();
  1. Enable the custom integration you just created by going to Settings > Integrations and toggling Enable Integration to on.
  1. Go to Experiments and click the name of your experiment. Under Manage Experiments, select Integrations and select the Tracked checkbox for the FullStory integration that you just created. Click Save.

Repeat this in each experiment where you want the FullStory integration to run.

You can search by experiment and variation name and IDs in FullStory. Just search for "experiment," "campaign," or "variation" and the values for those fields.

How to find experiment and variation IDs in Optimizely.

Pass in additional user data (optional)

To pass in additional profile data, you can use FullStory’s setUserVars API. To pass in usernames or emails for users you have already identified, use FullStory’s identify API. When complete, add the script you have created to your pages by following the instructions you used to add the FullStory snippet (Option 1).

Switch from custom variables to custom events

This integration uses FullStory’s custom events API.

If you use custom variables for experiments, you should update your integration to use custom events. If you have experiments that are currently running, continue using the old integration without making changes to the experiment. Create an integration using custom events (following the instructions in this guide) and use it for future experiments.

Why use custom events?

Over time, you may run many experiments on your site. Custom events provide an easier and more elegant search experience when you have run multiple experiments or have multiple users engaged in many experiments.