Ensighten Deployment (Adobe Connector)

Updated:

Prerequisites

Ensighten

Before beginning you must have access to an Ensighten Manage account with the following permissions:

  • Required: Create and Enable a Data Element
  • Required: Create Adobe Analytics Tag
  • Required: Create Custom JavaScript Tag
  • Recommended: Tag Commit
  • Recommended: Space Publish

Demandbase

Before beginning you should log into the Demandbase console and configure your Adobe Analytics Connector. Once that’s complete the following two values should be available:

  1. Callback Script UID

The Script UID is located within the first Demandbase <script> tag’s URL:

<script type=”text/javascript”

            src="//scripts.demandbase.com/adobeanalytics/{{UID}}.min.js"

</script>

  1. Demandbase API Key

The API Key is located within the second Demandbase <script> tag’s URL:

<script type=”text/javascript”

            src="//api.demandbase.com/api/v2/ip.json?key={{KEY}}&callback=DmdResp"

</script>

 Step 1: Create an Ensighten Data Layer Element

The easiest way to ensure the Adobe Analytics page view call will delay until the Demandbase API has had a chance to return is to use  a data layer element that waits until the consumer information is available before continuing.

Begin by  clicking “Add Data Definition”

Enter a Name and Type for the element

  1. Use a common sense name like “Demandbase Data”
  2. Because Demandbase recommends the request is made on each page to remain fresh, select “Page Data”

Enter an empty extractor value

  1. Select Custom for “Get the Data From”
  2. Enter a code snippet to return an empty text value.

This is particularly useful as Adobe Analytics ignores blank values.

function (){
     return "";
}

Enter Advanced Timing information

Expand the Advanced Settings section, select 'Custom' from the 'Trigger' dropdown and enter the following code exactly as is:

function() {

return Bootstrapper.data.delayUntilTrigger(function() {

                        if(typeof Bootstrapper.DmdbaseData == 'object'){

                                    return true;

                        } else {

                                    return null

                        }

            });

}

Save and Enable your data definition

Once completed save your data definition, then once on the list view Enable it. Note that if you do not enable the data definition you cannot continue to the next step.

Step 2: Retrieving Demandbase API Information

The Demandbase API information is requested by using a Custom JavaScript Tag within Ensighten Manage that is relatively static. The below code performs the following steps:

  1. Request your Adobe Connector information from Demandbase
  2. Request the Demandbase visitor information
  3. Pass the Demandbase visitor information into the Demandbase callback
    • This prepares the information for distribution to Adobe
  4. Pass the Demandbase visitor information into the Ensighten data layer
    • This tells the Ensighten system that Demandbase has returned

Bootstrapper.DmdbaseResponse = function (a) {

            ("object" == typeof a) ? Dmdbase_CDC.callback(a) : a = {};

            Bootstrapper.DmdbaseData = a;

};

var scriptUID = {{UID}};

Bootstrapper.loadScriptCallback("//scripts.demandbase.com/adobeanalytics/" + {{UID}} + ".min.js", function () {

            var key = {{API KEY}};

            Bootstrapper.loadScriptCallback("//api.demandbase.com/api/v2/ip.json?key=" + key + "&callback=Bootstrapper.DmdbaseResponse");

});

setTimeout(Bootstrapper.DmdbaseResponse, 5000); 


N.B. 1: 
You MUST replace “{{UID}}” and “{{API KEY}}” with the appropriate values provided by Demandbase in string format.

N.B. 2: Ensure you “Save and Commit” this Tag or your Adobe Analytics will not fire.

N.B. 3: The 5000 millisecond setting is the maximum time Ensighten will delay the Adobe Analytics call for Demandbase. This can be adjusted up or down depending on your desire. Our recommendation is to start at 2000 milliseconds and then adjust higher by 500 millisecond intervals until the data loss is at an acceptable rate (10-30% 'None' pageviews in Omniture).

Step 3: Delaying Adobe Analytics Until Demandbase Returns

In order to delay a standard Adobe Analytics implementation to wait until Demandbase has loaded on the page you must include a generic Adobe parameter and assign it to the data element we created above in Step 2.

Determining where to add the variable

Adobe will wait for the Demandbase response on any page where you’ve included the data element in the page parameters via the Adobe Analytics app. If you want to delay on all pages we’d suggest including this in a ‘global’ parameter list that spans your entire website; if you’d like to instead delay only on a subset of pages include the data element in a corresponding parameter list.

Add the variable to the global parameter list

In our example we’re going to select out Global Parameter Tag as it loads on all pages of our website. This indicates that for all pages we should wait until Demandbase response OR 5 seconds, whichever occurs first.

  1. Select the 'S Code' Tag from the Manage interface and click Edit
  2. Once open click the “Add” button from the bottom right of your variable list

3. Once on the add parameter screen select the following:

    • Variable Type: Page Data Collection
    • Data Name: contextData
    • Context Key: dmbdata
    • Retrieve From: Data Layer
    • Value: Select the data element you created in Step 1

4. Save your new parameter and “Save and Commit” your Tag

N.B. Because our data element returns an empty value (“”) SiteCatalyst will ignore this particular value, however it will wait until it’s available to send the page view.

Step 4: Add Demandbase’s doPlugins Code

Demandbase provides the final piece of code out of the box, telling Adobe to send the visitor’s information through the page view call.

Edit the Adobe Analytics base code

Find your Adobe Analytics base code and click Edit

Add code to a Generated Base Code

If you used the Base Code Generator from within the App perform the following steps:

  1. Click “Back” to return to the generator screen
  2. Scroll down to the doPlugins section
  3. Enter the code provided by Demandbase
    1. See after Step 2b below for an example of this code
  4. “Save and Commit” your changes

Add code to a Pasted Base Code

If you pasted an existing Adobe base code into the app perform the following steps:

  1. Click “Back” to return to the base code screen
  2. In the “Pasted Base Code” window scroll until you find the s.doPlugins section
  3. At the top of the doPlugins section paste the code below:

try {

  if (window.sessionStorage) {

      var standardDimensions = sessionStorage.getItem('s_dmdbase') || '';

      var customDimensions1 = sessionStorage.getItem('s_dmdbase_custom1') || '';

      var customDimensions2 = sessionStorage.getItem('s_dmdbase_custom2') || '';

      var customDimensions3 = sessionStorage.getItem('s_dmdbase_custom3') || '';

      var customDimensions4 = sessionStorage.getItem('s_dmdbase_custom4') || '';

 

      s.contextData.s_dmdbase = standardDimensions;

      s.contextData.s_dmdbase_custom1 = customDimensions1;

      s.contextData.s_dmdbase_custom2 = customDimensions2;

      s.contextData.s_dmdbase_custom3 = customDimensions3;

      s.contextData.s_dmdbase_custom4 = customDimensions4;

  }

} catch (e) {

if (window.console) {

console.log("DB _ ERR " + e.message);

}

}

  1. “Save and Commit” your changes

Step 5: Publish Changes

Once you have configured all of the above and publish your changes you should begin to see Demandbase calls on all your pages and the information begin to pipe into Adobe Analytics.

Was this article helpful?
0 out of 0 found this helpful