Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityDoc feedbackLog In

Integrate Krux

This topic describes how to enable the Krux integration in Optimizely Web Experimentation and create new audiences using the Krux integration



This integration is available for Optimizely Web Experimentation Scale plans only.



Krux was acquired by Salesforce and renamed to Audience Studio DMP. The documentation will be updated soon to reflect the change. We apologize for any discrepancies. Please reach out to your Customer Service Manager for any assistance.

Integrating Optimizely Web Experimentation with the Krux data management platform lets you create targeted audiences in Optimizely Web Experimentation based on visitor segments in Krux. From there, you can run targeted experiments and personalization campaigns.

There are two parts to integrating: enabling Krux in Optimizely Web Experimentation and creating a Krux audience.

1. Enable Krux in Optimizely Web Experimentation

To enable Krux, you need two pieces of information: an API key and your namespace. Your Krux representative can provide both.

The namespace may be missing for certain legacy Krux accounts. The namespace is not essential to the integration, so the integration should still work without the namespace as long as the correct API Key is provided. 



The namespace is defined by Krux and usually corresponds with your company name. For example, the namespace for ACME Company might be “acme.” You can find the namespace by looking in local storage on a page where Krux is running.

Optimizely Web Experimentation uses the namespace to identify which local storage key to evaluate. For the ACME Company example, the local storage key would be kxacme_segs_partner, but you only need to enter “acme” into the Optimizely Web Experimentation integration setup.

When you have the API key and namespace from Krux, here's how to enable the integration:

  1. Go to Settings > Integrations.
  2. Select Krux in the list, and toggle the button to On in the right sidebar.
  3. Enter your Krux log-in credentials (username and password), API key and namespace in the Integration Details.
  4. Click Save.

Now your project is connected with Krux, and Optimizely can read the visitor segments defined in your Krux account.



The Krux integration uses the Krux visitor segments defined on your website. Each audience in Krux has a unique ID, available in a website cookie. Optimizely Web Experimentation reads the unique ID to match a user on each page-view.

2. Create a Krux audience

After you enable the Krux integration, you can create Optimizely Audiences (or add Krux conditions to current Audiences) based on visitor segments in Krux.

  1. Go to Audiences and click Create New Audience.

  2. Enter a name for the new audience in the Name field.

  3. In the Conditions list, click the Krux dropdown menu.

  4. Click and drag the Audience Segment condition into the space under Audience Conditions.

  5. Under Audience Conditions, select the options you want from the dropdown menus.
    Here’s an example audience we created:

  6. In Krux, check the box to select each visitor segment you want to set up in Optimizely.

    Here are the visitor segments set up in our example Krux account—note the Optimizely-specific category:

    The dropdown shows only the visitor segments in your Krux account that have a Sub Category of "Optimizely." To expose a Krux segment to Optimizely Web Experimentation, edit the Sub Category field to "Optimizely."

  7. With your audience conditions set, click Save Audience.

Now you'll see your Krux segments in Optimizely Web Experimentation.



The integration doesn’t work on first page load for a visitor. The Krux local storage key is not populated in time for the Optimizely snippet to evaluate it on the visitor’s first-page load.

Troubleshoot issues

Here are a few common questions about the Krux integration.

Does the integration work on first page load for a visitor?

Unfortunately, no. The Krux local storage key is not populated in time for the Optimizely snippet to evaluate it on the visitor’s first-page load.

Why don't I see Krux visitor segments in the Optimizely Web Experimentation audience builder?

If your Krux visitor segments aren’t showing up in the Optimizely Web Experimentation audience builder:

  1. In the Optimizely Web Experimentation settings for the Krux integration, re-enter your Krux username and password.
  2. Confirm your API key with your Krux representative and make sure it’s entered correctly in the Optimizely settings for the Krux integration.
  3. Confirm that the segments in Krux are set up with Optimizely Web Experimentation as the sub-category. 

How do I see what Krux segments I’m in as a visitor to my site?

  1. Go to Settings > Integrations to your Krux settings to find your namespace.
  2. Look for the Krux local storage key: kx[namespace]_segs_partner. The value for the key should be a comma-separated array that includes the visitor segment IDs for segments that Krux added that visitor to.
  3. If you don’t have a namespace, look for the local storage key, kxsegs_partner.

Why is the Krux visitor segment in local storage, but not the Optimizely experiment?

If you see the Krux visitor segment in localStorage, but not the Optimizely experiment, try these steps:

  1. Refresh the page.
  2. Confirm that the Krux namespace is entered correctly in your Optimizely Web Experimentation settings for the Krux integration.
  3. Contact Optimizely support for further assistance.

Why can I not get into Krux visitor segments?

  1. Try enabling a "send a do not track request" instead of setting the Krux visitor segments in local storage, which sets a "kxlastminute_optout=true" flag in local storage.
  2. Check the segment conditions with Krux and how often Krux pushes updates. Contact your Krux representative for help if needed.