Relevant products:
  • Optimizely X Web Experimentation
  • Optimizely X Web Personalization
  • Optimizely Classic

This article will help you:
  • Enable the Demandbase integration in Optimizely
  • Create new audiences using the Demandbase integration

The Demandbase integration creates targeted B2B audiences for delivering personalized content to the companies you care about the most. Demandbase's technology allows you to do this on the very first visit to your website, before these companies have even identified themselves to you.

Enable Demandbase in Optimizely

First, enable the integration in Optimizely.

  1. In Optimizely X, here's how to enable the integration.

    In Optimizely Classic, navigate to the Integrations tab on the Home page. Next to Demandbase, toggle the button to On in the right sidebar.

  2. Enter the required API key (alternatively referred to as a ‘token’) which your Demandbase Customer Success Manager can provide for you. Click Save.

This will enable the Demandbase integration for the project. Optimizely will deploy the Demandbase tag and fetch visitor data from Demandbase for each pageview.

Create an audience

Next, create an audience in Optimizely based on company information in Demandbase. Or, add Demandbase conditions to an existing audience.

  1. In Optimizely X, navigate to the Audiences dashboard > Create New Audience.



    In Optimizely Classic, navigate to Overview > Audiences tab and click New Audience.

  2. Click Demandbase to see a full list of targeting conditions. Hover over the question mark to see a description.



    For more information on the attributes, please see this Overview from Demandbase (a Demandbase login is needed to view).

  3. Drag the condition to select and complete the open fields. You may want to work with your Demandbase Customer Success Manager on the exact formatting to use for different fields.

  4. Once you have set your audience conditions, click Save Audience

Here's an example of an audience with the following conditions:

Industry = Financial Services
Employee Range = Enterprise
Revenue Range = $2.5B - $5B OR Over $5B

Here is what it looks like in the Audience builder:  

Activation on first page visit

This integration works by asynchronously loading company data from Demandbase as the page is rendering, and storing the data in the visitor's browser. This means that experiments will trigger only when the visitor comes back to the page, on their second page visit or later.

If you'd like to trigger an experiment on first page visit, you can tell Optimizely to wait for company data from Demandbase to load using Conditional Activation.

Optimizely Classic

  1. First, enable conditional activation for an experiment in Optimizely Classic, click Options > Activation Mode in the Editor. Then, select Conditional.

  2. In the text box, insert the following code which ensures to activate the experiment only after visitor data from Demandbase is available:

    function(activate, options) {
      // Interval in ms for polling Demandbase visitor data
      var POLL_INTERVAL = 50;
    
      // Max number of poll attempts
      var MAX_POLL_COUNT = 5;
    
      var pollCount = 0;
      function poll() {
        pollCount++;
        if (window.optimizely &&
            window.optimizely.data &&
            window.optimizely.data.thirdParty &&
            window.optimizely.data.thirdParty.demandbase &&
            !options.isActive) {
          activate();
        } else if (pollCount < MAX_POLL_COUNT) {
          setTimeout(poll, POLL_INTERVAL);
        }
      }
      poll();
    }
    
  3. After clicking Apply and saving the experiment, you should now see your experiment trigger on the first page visit.

Conditional activation means that the experiment may trigger after all the content on the page has loaded, thus causing flicker.  If you want to prevent the experiment from triggering after a certain timeout, you can edit the POLL_INTERVAL and MAX_POLL_COUNT in the conditional activation code above.  

For example, the current poll interval of 50 and max polls of 5 will ensure that Optimizely will not trigger the experiment after more than 200ms.