> ## 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.

# FAQ

> Frequently asked questions about using Kameleoon.

## Getting started and general

<AccordionGroup>
  <Accordion title="Does Kameleoon work with all web browsers?">
    ### 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.
  </Accordion>

  <Accordion title="Does Kameleoon affect SEO?" id="does-kameleoon-have-an-impact-on-seo-why-has-my-webpage-been-de-indexed">
    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`.

    <Note>
      Kameleoon redirections are JavaScript-based and temporary.
    </Note>

    ### 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?](#how-does-kameleoon-filter-bot-traffic-from-my-results).
  </Accordion>

  <Accordion title="How do I change the app's language?">
    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**.

    <Frame>
      ![Changing language](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/faq/screenshot25.png)
    </Frame>
  </Accordion>

  <Accordion title="How do I disable the Kameleoon script?">
    ### 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.
  </Accordion>

  <Accordion title="How do I find my sitecode?" id="how-do-i-find-my-sitecode">
    ### In the Kameleoon app

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

    <Frame>
      ![Finding sitecode in app](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/faq/screenshot1.png)
    </Frame>

    ### 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.

    <Frame>
      ![Finding sitecode in extension](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/faq/screenshot2.png)
    </Frame>
  </Accordion>

  <Accordion title="Which languages is Kameleoon available in?">
    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?](#how-do-i-change-the-apps-language).
  </Accordion>
</AccordionGroup>

## Experiment setup and methodology

<AccordionGroup>
  <Accordion title="Can I edit an online experiment?">
    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.
  </Accordion>

  <Accordion title="How long should an A/B experiment last?">
    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.

    <Note>
      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](./experiment-analytics/statistical-methods/statistical-significance).
    </Note>

    You can also estimate the experiment duration during the finalization stage. To learn more, see [Estimating experiment duration](./experimentation/web-experimentation/configure-and-launch/finalizing-an-experiment#estimate-an-experiment-s-duration).
  </Accordion>

  <Accordion title="How much traffic do I need for an A/B experiment?">
    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.
  </Accordion>

  <Accordion title="What is the difference between an A/B experiment and a multivariate test (MVT)?">
    ### 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](./experimentation/web-experimentation/advanced-experiment-types/setting-up-multivariate-tests).
  </Accordion>
</AccordionGroup>

## Editor and tools

<AccordionGroup>
  <Accordion title="Can I edit PBX widgets or AI-generated widgets in the Widget Studio?">
    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.
  </Accordion>

  <Accordion title="How do I disable the Shift + F2 shortcut?">
    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`.
  </Accordion>

  <Accordion title="How do I install and use the Kameleoon Chrome extension?">
    To install the extension, see the [Kameleoon Debug Assistant in the Chrome Web Store](https://chromewebstore.google.com/detail/kameleoon-debug-assistant/nimncjjomfcjmfnghgaopccmdggjfoam). For detailed instructions, see [Kameleoon Chrome extension](../developer-docs/developer-tools/kameleoon-debug-assistant-extension).
  </Accordion>

  <Accordion title="How do I select a parent element?">
    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.

    <Frame>
      ![Selecting parent element](https://storage.googleapis.com/kameleoon-storage-documentation/user-manual/images/faq/screenshot27.png)
    </Frame>
  </Accordion>
</AccordionGroup>

## Segmentation and targeting

<AccordionGroup>
  <Accordion title="How accurate is the “geolocation” targeting condition?">
    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.
  </Accordion>

  <Accordion title="How do I add or narrow a condition to a segment?">
    For more information on setting up conditions, see [Create a segment](./assets/segments/create-a-segment#select-and-set-a-condition).
  </Accordion>

  <Accordion title="How do I define a condition's weight?">
    To learn how to set condition weights, see [Create a segment](./assets/segments/create-a-segment#determine-a-conditions-weight).
  </Accordion>

  <Accordion title="What is the difference between “AND” and “OR” in segments?">
    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.
  </Accordion>
</AccordionGroup>

## Technical and security

<AccordionGroup>
  <Accordion title="Does Kameleoon collect third-party cookies and data?">
    Kameleoon experiments and personalizations use a [first-party cookie](./account-and-team-management/organization-settings/how-kameleoon-tracks-and-counts-unique-users). 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](../developer-docs/privacy-and-compliance/data-collection-client-side).
  </Accordion>

  <Accordion title="How do ad blockers affect 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](../developer-docs/feature-experimentation/technical-reference/faq-global#how-do-ad-blockers-affect-kameleoon).
  </Accordion>

  <Accordion title="How do I activate cross-device history reconciliation?" id="how-do-i-activate-cross-device-history-reconciliation">
    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**.
  </Accordion>

  <Accordion title="How do I disable ad blockers?">
    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](https://www.kameleoon.com/contact).
  </Accordion>

  <Accordion title="Is Kameleoon compatible with jQuery?">
    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](http://sizzlejs.com/) library, which is the CSS selector engine used by jQuery. You can use Sizzle when creating your experiments.
  </Accordion>

  <Accordion title="What is the cache expiration time (TTL) for the Kameleoon script?">
    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.

    <Note>
      Some mobile browsers might ignore the TTL settings to optimize performance, depending on the browser policy.
    </Note>
  </Accordion>

  <Accordion title="What is the flicker effect?" id="what-is-the-flicker-effect">
    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](./get-started/web-experimentation-installation-guide#preventing-flickering).
  </Accordion>
</AccordionGroup>

## Analytics and results

<AccordionGroup>
  <Accordion title="How does Kameleoon filter bot traffic from results?" id="how-does-kameleoon-filter-bot-traffic-from-my-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](../developer-docs/sdks/web-sdks/nodejs-sdk#useragent).

    ### Activate bot filtering

    1. Click **Admin** > **Projects**.
    2. Go to the project **Configuration** page.
    3. In **Advanced settings**, toggle **Enable bot filtering** to **ON**.
  </Accordion>

  <Accordion title="Why do variations have fewer visits than the original when using capping?">
    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](./experiment-analytics/troubleshooting/visit-count-mismatch).
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Can Kameleoon conflict with other scripts on my site?">
    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.
  </Accordion>

  <Accordion title="I launched an experiment but cannot see changes on my website">
    If changes do not appear after launch, follow these recommendations.

    <Note>
      There is a delay of up to ten minutes for experiments to go online.
    </Note>

    ### 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](../developer-docs/apis/activation-api-js/api-reference/api-reference#getall).

    ### 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](../developer-docs/apis/activation-api-js/api-reference/api-reference#getactive).

    We recommend using the simulation panel to check your setup. See [Simulating a campaign](./experimentation/web-experimentation/configure-and-launch/simulate-a-campaign).
  </Accordion>

  <Accordion title="Issue: Refused to display in a frame (X-Frame-Options)" id="issue-refused-to-display-in-a-frame-because-it-set-x-frame-options-to-sameorigin">
    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](../developer-docs/web-experimentation/technical-concepts/unify-session-data-storage-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](../developer-docs/privacy-and-compliance/data-collection-backend#list-of-collected-data). You can manage consent via our [APIs](../developer-docs/privacy-and-compliance/consent-management).

    ### 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](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options).

    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.
  </Accordion>

  <Accordion title="Issue: Refused to load the script" id="issue-refused-to-load-the-script">
    You might see an error stating that the script `https://xxxxxx.kameleoon.eu/kameleoon.js` violates your [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/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](../developer-docs/web-experimentation/faq#what-are-the-kameleoon-domains-that-i-need-to-whitelist).
  </Accordion>

  <Accordion title="Why can't I log in to Kameleoon tools?">
    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**.

    <Note>
      Browsers often block third-party cookies in Incognito or Private mode.
    </Note>

    Ensure your browser allows these specific cookies:

    * `refresh-token`
    * `kameleoonSessionId`
    * `access-token`
    * `expiration-access`
  </Accordion>

  <Accordion title="Why is there unequal traffic distribution in my split URL experiment?">
    You might notice discrepancies between Kameleoon and third-party tools regarding [split URL experiment](./experimentation/web-experimentation/advanced-experiment-types/url-redirection-split-test) 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](./experimentation/web-experimentation/advanced-experiment-types/url-redirection-split-test#url-redirection-and-consent-policy) for accurate metrics.
  </Accordion>
</AccordionGroup>
