- Check whether your experiment is running
- Figure out why you don’t see visitors or conversions on your Results page
- Figure out why you can’t see your variations
- Confirm your experiment’s targeting conditions
Are you experiencing any of the following issues? Then this article will help you get to the root cause:
You started an experiment, but after an hour or more you’re still not seeing visitors or conversions come through on the Results page.
The experiment doesn’t seem to be running on the page, and you can’t see any of the variations in your browser (outside of the Editor).
You can see variations when you use the force parameter, but not when you view the page in your browser without the force parameter.
Your Optimizely experiment is running, and you see visitors and conversions on your Results page, but can’t see the experiment live in your browser (outside of the Editor).
Usually, this problem has to do with activation or targeting issues. We’ll walk you through what that means and how to troubleshoot it.
Here’s when this article may not be for you:
You’re seeing visitors on your Results page, but not conversions. Or you’re not seeing results for a certain variation. If that’s the case, see our article on troubleshooting variation content.
You’re having trouble with event/metric tracking. If that’s the case, see our article on troubleshooting metrics.
1. Check the snippet on the page
Before you begin this troubleshooting process, quickly make sure that the Optimizely Snippet is on your page, as high as possible in the <head> tag, and that there is only one Optimizely Snippet on the page.
Optimizely works best when installed directly in the <head> tag of every page you would like to test. Having more than one Optimizely Snippet on the page, even if it’s for a different project, can create complications.
2. Make sure your experiment is running on the page, and you're bucketed into the variation
If your snippet is implemented correctly, check whether the experiment is active and you are bucketed into the correct variation. Here’s how to do that:
Make sure that your experiment is in Running status on your experiment dashboard.
Optimizely provides an easy way for determining whether an experiment is running. Go to the URL where you’re running the experiment, and then open your browser's console.
Now, we’ll need to retrieve some information from the Optimizely snippet. To see if you've been given a variation in Optimizely X, use the JS APIs mentioned here. For an extensive list of APIs, visit our developer documentation on this topic.
Type optimizely.get('state').getVariationMap() into the console. This will return an object containing all the experiment IDs that have been activated at some point in the past along with the variation ID you were given. This list is not indicative of active experiments on the page.
Type optimizely.get('state').getActiveExperimentIds() into the console. This will return an object with all the experiments IDs currently active on the page you are on. Check to see if your experiment ID is present in this list.
To find your experiment, variation, or event IDs, visit the API Names section of your experiment.
If you have chosen to mask descriptive names within your project settings, then you will not see the name of the variation you were given e.g. Original, Variation #1 and you will instead only see the variation ID.
If there are multiple active experiments running on the same target URLs, you may want to prevent them running simultaneously which can cause interaction effects that pollute your results set. This can be done by making the experiments mutually exclusive.
If you have verified that the experiment is currently active and the correct variation has been given to you but this hasn’t resolved your issue, continue to the next section.
3. Check for targeting issues
Next verify that your targeting conditions are set correctly: audience conditions, URL Targeting conditions, or traffic allocation. Double-check each of these in Optimizely for obvious errors that would be preventing you from seeing the experiment.
First, test your URL Targeting conditions.
Once you’ve done that, try the following:
Use the Optimizely Log. This is will show you all of Optimizely’s actions and decisions.
?optimizely_log=infoquery parameter to your URL to read the log. Then, reload the page.
Filter the log by your Experiment ID. Paste your Experiment ID into the search field:
Check whether the log reveals any Condition errors -- in other words, that you failed to match URL, Audience, or Traffic Allocation conditions.
If you’ve failed conditions, and you don’t think you should be failing them, there is a problem with your URL Targeting, Audience, or Traffic Allocation configuration. You’ll need to change them in Optimizely.
If you passed the conditions but you’re still not seeing your experiment, move on to the next section on other issues.
In Optimizely X, we've updated the client so you must append the optimizely_log parameter, then reload the page to see the log. This minimizes the logging overhead for visitors and pageviews that don't request the log.
4. Check for other issues
If you’re not experiencing targeting issues, then one of these other issues may be causing the problem:
Are you using manual or conditional activation? Manual and conditional activation require specific visitor actions to take place in order for the experiment to activate. What actions are necessary to activate your experiment and have you taken those necessary steps? Use Optimizely’s log to see where your experiment may not be meeting these conditions by searching the log for your experiment ID.
Is your site dynamic? Does your single page application utilize client-side frameworks like Angular or React? If so, Optimizely might not be initialized properly when the next page is rendered. Take a look at our Support for dynamic websites.
Is jQuery defined? Optimizely Web X does not rely on jQuery to work properly. However, if you are choosing to code in jQuery, are you using the jQuery library provided by Optimizely within your project settings, or is the library define on your native side code? You will need to ensure the correct scope is used.
Still having trouble? Reach out to suppor for additional assistance.