Skip to main content


Kameleoon provides Web Experimentation capabilities that let you run A/Bn or Multivariate experiments on websites or web apps by using a graphic or code editor.

This guide is designed to help you become familiar with the various implementation methods that Kameleoon offers. Although the implementation process itself is simple, involving the addition of a JavaScript installation tag to the HTML source code of your pages, it is crucial to pay attention to the details. We will cover important considerations such as where to place the tags, the pros and cons of our different implementations, and when the Kameleoon application file is loaded and parsed by the browser. All of these factors are crucial to optimizing the setup of Kameleoon for performance while maintaining the full functionality of the platform.

By familiarizing yourself with the different implementation methods offered by Kameleoon, you can make an informed decision about which method will best suit your website and requirements. To help you get started, we offer a Simple Implementation guide that you can follow to quickly implement Kameleoon on your website.


After selecting the implementation method that suits your website, you should configure it for your Kameleoon project. By doing so, our platform can automatically generate the appropriate installation tag for you. To configure your Kameleoon project, follow the steps outlined in this guide.


Join us in our Slack Community for any questions about our product features and get access to the latest updates.

List of Installation Tags & Features

In the table below, you'll find an overview of our various implementation methods, including their features and performance characteristics. Each row represents a different implementation option, indicating how the Kameleoon JavaScript application file will be loaded. The columns highlight different factors, such as performance and flickering, as well as additional features like cross-domain tracking and compatibility with tag managers.

Later sections in this guide provide more information on these implementation options, including detailed explanations of their characteristics and features, as well as code snippets to help you get started.

Implementation MethodFlickerMay block page loadingPrioritized script loadingAffected by ITPUse with Tag Manager
Asynchronous Loading, with Anti-FlickerNoNoYesNoNo
Asynchronous LoadingYesNoYes (if not installed via a Tag Manager)NoYes
Synchronous LoadingNoYesYesNoNo

In addition, it's important to note that all implementation methods can support Cross-Domain Tracking if required.

Description of characteristics & features

This section defines and explains the characteristics and features presented in the previous table.


The Flicker column indicates if this type of installation can induce a problem commonly occuring with JavaScript based A/B testing solutions, called the flicker effect. For more information about the flicker effect, please refer to our dedicated documentation.

May block page loading

The characteristic in the table that refers to "May block page loading" indicates whether the loading of your website will be impacted if Kameleoon's Content Delivery Network (CDN) servers (or your own CDN or server hosting the Kameleoon application file) are down or unresponsive. Only the JavaScript file (Synchronous Loading) implementation method presents this potential risk. With all other methods, your website will remain fully functional even if all our hosting servers are unavailable (although such an eventuality should never occur in practice).

Prioritized script loading

When an HTML page includes various static resources such as JavaScript files, CSS styles, Iframes, images, etc, they must be downloaded by the browser before they can be utilized according to their type. CSS or images will simply be displayed, while JS files and Iframes will execute code, among other things.

To download these resources, browsers typically place them in a network queue and then download them in a specific order of priority. Although this order of priority is not clearly documented and varies by browser, there are two critical factors to consider. First, a browser can only download a resource after it has been "discovered." Second, major browsers assign a higher priority to scripts included in the page statically than to those loaded dynamically through JavaScript code.

Eg, if you want a JS file to be loaded with higher priority, it's better to use this:

<script type="text/javascript" src="resources/scripts/example.js" async></script>

rather than this:

<script type="text/javascript">
var scriptNode = document.createElement("script");
scriptNode.type = "text/javascript";
scriptNode.src = "resources/scripts/example.js";

While we cannot be certain, our empirical knowledge suggests that this is because resources discovered by the HTML parser are given higher priority slots than resources added through dynamic modification of the DOM, which is typically done via JavaScript code.

Prioritized script loading is a technique where the Kameleoon application file is placed at the top of the browser's network queue. This ensures that it will load faster compared to a non-prioritized setup. While this option is recommended for Kameleoon, it does have the downside of delaying other resources. However, since A/B testing is a critical feature that needs to load as soon as possible (unlike tracking or analytics technologies that can load later since they do not affect the host pages), we consider this trade-off reasonable. Therefore, all current Kameleoon implementation methods provide prioritized script loading, except when installing Kameleoon via a tag manager system.

Affected by ITP (Intelligent Tracking Prevention)

Intelligent Tracking Prevention (ITP) is a technology developed by Apple for Safari browsers, both on desktop and mobile devices, with a similar technology implemented by Mozilla in their Firefox browser. This technology aims to prevent unwanted third-party tracking, primarily by blocking advertising trackers from tracking users across multiple websites and serving targeted ads.

While Kameleoon offers a solution to these ITP restrictions, it now requires an additional configuration step since version 2.3, with the significant March 2020 update. You can find more information on this topic in our dedicated article.

Use with tag manager

The "Use with Tag Manager" option refers to whether the implementation method you have chosen allows the use of a tag manager or not. Kameleoon is compatible with all major Tag Management Systems (TMS). Nevertheless, we highly recommend that you install Kameleoon directly into the source code of your pages, if possible, rather than using a TMS. This is because it can help address the flicker effect, which is explained further in our core concepts section.

Cross-domain tracking

Kameleoon provides support for cross-domain tracking, which allows you to link sessions across multiple subdomains as a single session. This means that if a visitor starts a session on one of your owned websites, such as, and continues the session on another owned website, such as, it will be treated as one continuous visit.

This feature is essential for accurate data collection across multiple domains that you own. Without cross-domain tracking, visits starting on one domain will be treated as a new visit once they move to another related domain. This causes all the data collected on the previous domain (such as the number of page views, time spent on site, etc.) to be reset on the new domain. Targeting based on these criteria may also yield unexpected results if cross-domain tracking is not utilized.

For example, let's say you have a personalization that triggers on the fourth page viewed. A visitor visits your first website and sees three pages. Then, they load the fourth page on a different domain website. With cross-domain tracking, the personalization will trigger as expected. However, without it, the page view on the new domain will be treated as the first page view of a new visit, and the personalization will not trigger.


Please note that different protocols such as HTTP and HTTPS are also considered different domains. Therefore, if your website uses both HTTP and HTTPS protocols, it is recommended to utilize cross-domain tracking to ensure accurate data collection.