Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt

Use this file to discover all available pages before exploring further.

Getting started and general

Supported web browsers

Kameleoon does not support some older browsers. If a visitor uses an unsupported browser, they see the original page instead of the experiment. This does not negatively affect experiment results.The Kameleoon script supports:
  • Chrome
  • Firefox
  • Microsoft Edge
  • Opera
  • Safari
Kameleoon ensures compatibility with the last three versions of each browser.

Browsers supported by the Graphic editor

The Graphic editor supports:
  • Chrome
  • Firefox
  • Microsoft Edge
  • Opera
  • Safari
Kameleoon ensures compatibility with the last three versions of each browser.

Compatibility with responsive design websites

You can create experiments for responsive websites using advanced editing features. The main challenges typically involve resizing and repositioning content blocks.Since pages display based on resolution or device, exercise caution when moving elements. Heat maps are unavailable for these pages because they lack a fixed frame.Kameleoon provides advanced tools to help you move elements and avoid layout issues.
The impact on SEO depends on your experiment setup.

Identify and address SEO impact

  • Ensure correct installation to avoid performance issues.
  • Assign equal traffic percentages to variations.
  • Avoid running experiments for more than two months. Prolonged experiments might be interpreted by bots as inconsistent content.
  • Monitor performance using the Kameleoon Chrome extension and Lighthouse.
  • Avoid significant alterations to page elements that affect SEO.

Redirection guidelines

  • Do not redirect 100% of traffic to a new URL.
  • Define a canonical URL in the HTML for both pages, pointing to the version you want search engines to index.
  • Ensure your HTML does not use a noindex tag.
  • Use the native variation redirection or Kameleoon.API.Core.processRedirect("newURL"). Do not use document.location.href.
Kameleoon redirections are JavaScript-based and temporary.

Avoid Black Hat SEO practices

  • Cloaking: Do not show different content to bots and visitors.
  • Duplicate content: Ensure redirect pages are not identical to the original without canonical tags.
  • Sneaky redirects: Do not redirect visitors to unexpected URLs.
  • Hidden text: Do not use text visible only to search engines.
Kameleoon automatically filters bot traffic. See How does Kameleoon filter bot traffic from results?.
Kameleoon and its interface are available in English, French, and German.The app uses your browser’s language by default. If your browser language is unavailable, the app defaults to English.

In the Kameleoon app

To change the language in the Kameleoon app:
  1. Click your profile icon in the top-right corner > Language.
  2. Choose your language and click Confirm.
Changing language

Why disable the script?

  • You want to minimize page load times when not using Kameleoon.
  • You do not use Kameleoon continuously.

Disable the script

  1. Go to your project Configuration page (Admin > Projects > Configuration).
  2. Click Actions > Disable in the top-right corner.
  3. Click Confirm.
You can re-enable the script using the same process.

Disable the script on a specific URL

To prevent Kameleoon from loading on a specific page, add ?kameleoonDisabled=true to the end of the URL.

In the Kameleoon app

In the left sidebar of the Kameleoon app, click Admin > Project. Your sitecode appears on your project card.
Finding sitecode in app

In the Chrome extension

You can also find your sitecode on the dashboard of the Kameleoon Debug Assistant Chrome extension.Click the + icon to add inserts to customize your dashboard. Add the Site Code insert.
Finding sitecode in extension
Kameleoon is available in English, French, and German. The app uses your browser language by default, but you can change it manually.For more information, see How do I change the app’s language?.

Experiment setup and methodology

You can edit any aspect of an online experiment; however, we recommend against it.Any changes disrupt the interpretation of your results and make them less reliable.To make changes while maintaining result integrity:
  1. Stop the experiment (optional).
  2. Duplicate the experiment.
  3. Edit the duplicate.
  4. Launch the new experiment.
These steps ensure your results remain reliable.
The duration of an A/B experiment depends on the type of experiment and its traffic.In rare cases, you might quickly see the effectiveness of an experiment if the first visitors to a variation convert immediately.Often, the conversion rate does not change significantly right after launch. If you run your experiment long enough for many visitors to see the variation, the results become significant.
If you use Google Analytics or Kameleoon’s internal reporting tool, Kameleoon automatically measures statistical significance based on your set goals. For more information, see Statistical significance.
You can also estimate the experiment duration during the finalization stage. To learn more, see Estimating experiment duration.
A/B testing derives its primary data from website traffic. Keep these numbers in mind:
  • Below 10,000 monthly visitors: Effective A/B tests are difficult to perform, except for specific use cases like landing pages.
  • From 10,000 to 200,000 monthly visitors: A/B testing is possible, but experiments often take more time to yield results.
  • From 200,000 to 1 million monthly visitors: Your traffic is sufficient for A/B testing. You might still encounter difficulties with less-visited pages, such as those at the end of a conversion funnel.
  • Above 1 million monthly visitors: Traffic is rarely an issue.

A/B experiment

An A/B experiment allows you to create variations of one or several pages. For example, an A/N experiment can measure the performance of product page A versus product page B.In an A/B experiment, you should only change one element per page (such as the text on an “Add to cart” button) to determine its impact on the conversion rate. If you change multiple elements, you cannot isolate the impact of individual modifications.

Multivariate test (MVT)

A multivariate test (MVT) lets you change several elements on a page and analyze which combination leads to the most conversions. For example, you can test multiple versions of an “Add to cart” button with different colors and text to find the most effective combination.To create an MVT, see Setting up multivariate tests.

Editor and tools

PBX widgets and AI-generated widgets have different editing requirements:
  • PBX widgets: Use natural language to create these widgets. You can only edit them within the PBX interface. You cannot open or edit PBX widgets in the Widget Studio.
  • AI-generated widgets (Widget Studio): When you use the “Create with AI” feature in the Widget Studio, Kameleoon uses standard Widget Studio elements. You can edit these widgets manually in the Widget Studio. You cannot open or edit these widgets in PBX.
You can disable the Kameleoon editor shortcut in the app.

Disable the shortcut

  1. Click Admin > Projects.
  2. Click Configuration on your project card.
  3. Click Experiment.
  4. Toggle the Editor launching switch to OFF.
  5. Click Save.

Launch Kameleoon without the shortcut

After you disable the shortcut, add ?kameleoon=true to your URL. For example: https://www.website.com/?kameleoon=true.
To install the extension, see the Kameleoon Debug Assistant in the Chrome Web Store. For detailed instructions, see Kameleoon Chrome extension.
Click the parent selector icon, then use the drop-down list to select an element.When you select an element, click the ellipsis () on the left of the hierarchy panel. A list appears containing:
  • The selected element, highlighted in green.
  • The child elements, located above the selected element in the list.
  • The parent elements, located below the selected element in the list.
Selecting parent element

Segmentation and targeting

Kameleoon targets visitors based on geolocation data with the following average accuracy:
  • Country: 99.8% accurate
  • Region: 80% accurate
  • Town: 68% accurate within a 50-kilometer radius
Note the following:
  • Accuracy varies by country and device type.
  • IP geolocation is more accurate for broadband addresses than for cellular networks (mobile devices).
  • Geolocation for IPv6 addresses might be less accurate as fewer countries support it.
For more information on setting up conditions, see Create a segment.
To learn how to set condition weights, see Create a segment.
When you create a segment, you can use AND or OR to define conditions.

Definitions

  • AND: Condition A and condition B must both be met to activate the personalization.
  • OR: Only one condition must be met (either A or B) to activate the personalization.
The Narrow this condition option functions like mathematical parentheses.

Examples

  • Condition A and Condition B: Both conditions must be met.
  • Condition A and Condition B and Condition C: All three conditions must be met.
  • Condition A or Condition B: At least one condition must be met.
  • Condition A or Condition B or Condition C: At least one condition must be met.
  • Condition A and (Condition B or Condition C): Condition A and at least one of the other two conditions must be met.
  • (Condition A and Condition B) or Condition C: Both A and B must be met, or only C must be met.

Technical and security

Kameleoon experiments and personalizations use a first-party cookie. They remain functional even if you disable third-party cookies.By storing a unique visitor ID in a first-party cookie, Kameleoon ensures each visitor consistently sees the same variation. This provides accurate results and a seamless user experience.See the complete list of data collected by Kameleoon.
Ad blockers can affect Kameleoon in two ways.

Impact on Kameleoon tools

Ad blockers can interfere with tools like the Kameleoon app, PBX, and editors. They may block assets such as CSS, images, or SDK scripts, which prevents the platform from functioning correctly.To avoid these issues:
  • Allow Kameleoon domains: Either disable your ad blocker or add kameleoon.com and kameleoon.io as authorized domains. This ensures you can access all features and provides a smooth experience for you and your visitors.
  • Check browser settings: Some browsers, such as Brave or Safari, include native blockers that can interfere with Kameleoon.

Impact on launched experiments

Ad blockers can affect the Kameleoon production environment, including the engine, client-side SDKs, and tracking requests. Visitors might not see experiments if the browser blocks requests to Kameleoon domains.To avoid these issues:
  • Use a custom domain: A custom domain helps bypass ad-blocker detection and ensures your experiments display correctly. Learn more about enabling a custom domain.
  1. Click Settings > Custom data > New custom data.
  2. Follow the setup steps and click Next.
  3. Toggle Use this custom data as a unique identifier for cross-device matching to ON.
  4. Click Create.
To access the full Kameleoon experience, disable your ad blocker or allow Kameleoon domains in your settings before using the app (app.kameleoon.com) or tools like the PBX editor.

Allow Kameleoon in your ad-blocker extension

Most ad-blocker extensions (such as AdBlock, AdBlock Plus, or uBlock Origin) follow a similar process:
  1. Navigate to the Kameleoon platform or the site where you run your experiment.
  2. Click the ad-blocker icon in your browser toolbar.
  3. Select an option like Don’t run on this domain, Disable on this site, or Pause on this site.
  4. Confirm your selection.
To ensure full functionality, you must also add kameleoon.com and kameleoon.io as authorized domains. This allows Kameleoon scripts and resources to load correctly.

Check your browser’s built-in ad blocker

Some browsers include native ad-blocking features. Check your browser settings:
  • Chrome/Edge: Go to Settings > Privacy and security > Site settings and check content blocking options.
  • Brave: Click the Brave Shields icon in the address bar and adjust blocking settings.
  • Safari: Go to Settings > Websites > Content Blockers and manage blocking for specific sites.
  • Opera: Check Settings > Privacy & Security for built-in ad-blocking options.
If issues persist, contact Kameleoon support.
Kameleoon uses pure JavaScript and does not require jQuery. It does not conflict with jQuery if you use it on your website.However, Kameleoon uses the Sizzle library, which is the CSS selector engine used by jQuery. You can use Sizzle when creating your experiments.
When a visitor lands on your website, their browser downloads the site code and the Kameleoon script. Page load time depends on the code length and external resources. Caching improves performance on subsequent visits by storing static resources in the browser cache.While caching improves user experience, it can delay new experiments for returning visitors who have an older version of the script in their cache.To resolve this, the Kameleoon script includes a Cache Expiration (TTL: Time-to-live) flag. This instructs the browser to download a new version of the script every 1.5 hours.
Some mobile browsers might ignore the TTL settings to optimize performance, depending on the browser policy.
The flicker effect (or flickering) occurs when the original page displays briefly before the variation loads.

Why it happens

Flickering happens due to the time the JavaScript engine takes to process the page. Since the browser modifies elements based on the JavaScript code from the testing tool, the variation might load last if the Kameleoon script loads after the page content.

How to avoid flickering

The Kameleoon engine minimizes flickering; however, we recommend integrating the Kameleoon JavaScript code as high as possible in the HTML <head>. This ensures Kameleoon loads first.For more information, see Preventing flickering.

Analytics and results

Bots are automated software applications that can bias your campaign results by inflating traffic and conversion metrics. Removing bot traffic is essential for data accuracy.Kameleoon uses two methods to exclude bots:
  1. IAB/ABC International Spiders and Bots List: Kameleoon identifies and excludes known bots from analytics.
  2. Proprietary algorithms: Kameleoon automatically filters visits that it considers outliers (such as trolls or tracker bugs). A visit is marked as an outlier if it meets at least one of these conditions:
    • More than 10,000 events.
    • Lasts longer than two hours.
Server-side experiments are more vulnerable to bot traffic. You must pass the user agent to Kameleoon for filtering. Refer to the SDK documentation for implementation details. Client-side SDKs automatically include the user agent.

Activate bot filtering

  1. Click Admin > Projects.
  2. Go to the project Configuration page.
  3. In Advanced settings, toggle Enable bot filtering to ON.
It is normal for capped variations to have fewer total visits than the original.Capping prevents a unique visitor from seeing a variation after reaching a limit (such as one visit), while the original version continues to target them on every subsequent visit.

Is this a Sample Ratio Mismatch (SRM)?

No. This discrepancy does not indicate a faulty split or an SRM. The distribution of unique visitors remains correct.For a detailed explanation, see Visit count mismatch.

Troubleshooting

It is highly unlikely that Kameleoon will conflict with other scripts.Kameleoon uses pure JavaScript and does not require jQuery, avoiding conflicts with sites using jQuery. It operates independently of server-side languages and avoids global JavaScript variables to minimize incompatibility risks.
If changes do not appear after launch, follow these recommendations.
There is a delay of up to ten minutes for experiments to go online.

Check the script update

Kameleoon updates the script when you launch an experiment. If your browser cache holds an old version, you will not see changes. To verify the version, open the browser console and enter Kameleoon.API.experiments.getAll(). This lists all running experiments.If your experiment is missing, clear your cache. See the Developer documentation.

Check for the reference variation

You might be assigned to the reference variation. You can force a specific variation to display for testing.

Check targeting criteria

You might not meet the experiment’s targeting criteria. Use Kameleoon.API.experiments.getAll() in the console to check. If the experiment is missing, verify your targeting settings. See the Developer documentation.We recommend using the simulation panel to check your setup. See Simulating a campaign.
This issue occurs if you enable Cross-Domain tracking, which requires your main domain to host a static iframe.

How the Kameleoon iframe works

The iframe ensures data consistency across subdomains by reading and writing to localStorage on the host domain. This allows Kameleoon to track the same visitor without additional server calls.For more details, see Unifying session data across subdomains.We secure the iframe using three measures:
  1. Restricted access: Only domains in the allowedDomains variable can request the iframe.
  2. Sitecode verification: Only the specified sitecode can request the iframe.
  3. Prefixed storage: Kameleoon only accesses entries prefixed with kameleoon.
Kameleoon collects non-personal data. See the list of collected data. You can manage consent via our APIs.

Resolve the display issue

The X-Frame-Options header prevents browsers from rendering pages in frames to avoid click-jacking. For more information, see the Mozilla documentation.To enable cross-domain tracking, you must not set the X-Frame-Options header. You can secure the iframe by providing a restricted list of domains in the hosted iframe file.
You might see an error stating that the script https://xxxxxx.kameleoon.eu/kameleoon.js violates your Content Security Policy (CSP).

Fix the issue

If your site restricts resources via CSP headers, update your policy to allow Kameleoon resources. See the full list of Kameleoon domains to allow.
If you cannot log in to the platform, Graphic editor, or PBX, your browser might be blocking third-party cookies. Kameleoon requires a session cookie to authenticate your account.To resolve this, allow third-party cookies:
  1. Open browser Settings.
  2. Go to Privacy & security > Third-party cookies.
  3. Select Allow third-party cookies.
Browsers often block third-party cookies in Incognito or Private mode.
Ensure your browser allows these specific cookies:
  • refresh-token
  • kameleoonSessionId
  • access-token
  • expiration-access
You might notice discrepancies between Kameleoon and third-party tools regarding split URL experiment traffic.Reasons for these discrepancies include:
  • Kameleoon script missing on variation B: You must install the Kameleoon snippet on the new page (URL B) to track visits and conversions correctly. If the script is missing, Kameleoon might still show some data from tracking calls sent just before redirection.
  • Bounce rate metrics: Kameleoon sends tracking data either before or after redirection. High bounce rates can cause discrepancies between tools.
  • Consent policy: If your policy is set to Required, follow the URL redirection and consent guidelines for accurate metrics.