The Demandbase Adobe Launch Extension was designed for Adobe Analytics and is currently accepting Early Adopters for its beta launch. Customers interested in this integration should contact their CSM.
The principles of the extension are similar to the existing integration with Demandbase where multiple Demandbase data attributes are collected in one or more eVars upon page load and converted into classification reports in Adobe.
NoteThis integration pushes multiple attributes into one eVar/Conversion Variable. It will require Classification Rule Builder access to set up rules manually and break out the data into their respective classification reports.
Demandbase Launch extension calls the Demandbase IP API asynchronously to identify the company in real time. The extension registers a load event so that Launch Data Elements can receive the data when it’s ready. Data Elements are then mapped to eVars in the Adobe Analytics Launch Extension. Each Data Element will store 8 firmographic attributes delimited together which in turn means each eVar will have 8 data points to convert into 8 classification reports via Classification Rule Builder.
How Does Launch Get Demandbase Data?
Once configured, the extension calls Demandbase IP API service and stores the data in the browser’s local storage as shown below. This is fundamentally how all the data is made available to Launch so it it’s important to understand this prior to configuring the extensions.
Here are the main configuration steps.
- Step 1: Prework
- Step 2: Map the Data Elements
- Step 3: Configure the Demandbase Extension
- Step 4: Step 4:Configure Demandbase Firing Rule
- Step 5: Set eVars and Fire the Beacon
- Step 6: Send only 1 Beacon *s.t() call* and Combining Events into one Rule
- Step 7: Set up Classification Reports
Step 1: Prework
1.1. Acquire your Demandbase API Key for Adobe from your CSM if you haven’t already.
1.2. Install the Core, Adobe Analytics and Demandbase Extensions (see this Adobe Extensions page).
1.3. Add Adobe Analytics dev and production report suite ID to your Adobe extension. Request these from your Adobe administrator if you need them.
1.4. Create up to 5 eVars. We store 8 attributes into each eVar and use Classification Reports. So create no more than 5 eVars for receiving Demandbase data which totals to 40 attributes.
1.5. We recommend running Adobe Analytics prior to installing Demandbase. This will make it easier to isolate issues during installation.
1.6. Make sure your Launch Environment is ready and installed on your website.
1.7. Confirm that you have administrator access to Launch.
Step 2: Map the Data Elements
2.1. Create the Data Elements: In order to tell Launch where to pick up the Demandbase data you need to create one Data Elements for each eVar.
- Name your Data Element the same as your eVar name for easy mapping
2.2. Map the Data Elements:
- Select Core for Extension
- Select Local Storage for Data Element Type and use the following local Storage item Names for each Data Element:
Step 3: Configure the Demandbase Extension
3.1. Obtain your API Key: If you don’t have your API key yet please contact your CSM.
3.2. Set the IP API Call Timeout: This is how long the extension will wait for the Demandbase API to identify the visitor. Generally, the longer the wait time, the more data is collected. For more information about this please see the FAQ section.
3.3. Configure Default Values: These are values sent to Adobe given certain situations. These default values are for grouping data that are similar to reduce noise in reports where the data is not relevant. For example, in a Company Name Report, where you will see company traffic and names, grouping all non-company traffic is done by setting the default value to Non Company Visitor. You would do this so it doesn’t clutter the Company Name reports with undefined values.
- Non Company Visitor: This refers to non-company IP’s from visitors hitting your website such as from a residential or hotel restaurant IP.
- Non-Target Account: This refers to a company that is identified but not in a target account list or Audience. In other words, if you had a “Prospect” Watch List or custom attribute, companies not in this list will be grouped by “Non-Target Account” to keep reports clean.
- Target Account but Attribute Unavailable: This is when company is in your list but you have not assigned it a custom attribute value. So in the “Prospect” list example, if your custom attribute was account_status but the value was NULL, in this case it will return the default value.
- Unavailable Attribute: When a company is identified but one of the data attributes is NULL or empty. So stock_ticker = NULL would return the default value.
3.4. Configure the Data Elements: Each data element tab (i.e dataElement1, dataElement2...etc) represents an eVar. Each cell named Attribute 1, Attribute 2 and so on is for a Demandbase data attribute selected from the list of API attributes available. The attributes 1-8 represent the order in which they’re strung together in the eVar.
- The first 2 dataElements are prefilled for you but you may choose to modify these. We recommend the default setup if you have no existing Demandbase Adobe integration.
- Existing customers should review the Attribute cells in which there are watch_list_ values with your CSM to make sure you’re using the correct ones.
- For additional attributes, choose which company attributes you will be pushing to Adobe Analytics from the list here https://support.demandbase.com/hc/en-us/articles/203233110-Firmographic-Attributes-Overview. Use the API Variable Names when filling in the Attribute cells.
- To use a watch list attribute / custom attribute (from a target account list), prefix the name with watch_list_ (watch underscore list underscore). For example, if you have a watch list attribute campaign_id, then you can use watch_list_campaign_id.
- Once you have 8 attributes selected, you can proceed to the next dataElement tab and add up to 8 more as needed.
Step 4: Configure Demandbase Firing Rule
You’ll need 2 sets of firing rules. This guide uses the Adobe Analytics “Action” from Launch. You can also use the Adobe Analytics Launch Extension directly to set eVars.
4.1. Create a new rule
4.2. Name the rule “Page Load: Fire Demandbase”
4.3. Add Event:
- Select Core Library Loaded (Page Top)
- Set the event order to 1
4.4. Add Actions:
- Select Demandbase Extension
- Select callDemandbaseIpApi for Action Type
- Name the Action “Demandbase - callDemandbaseIpApi”
Step 5: Set eVars and Fire the Beacon
5.1. Create a new Rule
5.2. Name it: Demandbase Complete: Fire Pageview
5.3. Add Event:
- Select Demandbase Extension
- Event Type = API Call Finished (Success, Fail, or Timeout)
- Name the Even “Demandbase - API Call Finished” (Success, Fail, or Timeout)
5.4. Set the Order to 50: You’re firing this consecutively to Demandbase API rule, so this should be a higher number than that rule)
5.5. Add Actions:
- Select Adobe Analytics Extension
- Action Type = Set Variables
- Name = Adobe Analytics - Set Variables
5.6. Map the eVars to the Data Elements
5.7. Add an Action:
- Select Adobe Analytics Extension
- Action Type = Send Beacon
- Adobe Analytics - Send Beacon
Step 6: Send only 1 Beacon *s.t() call* and Combining Events into one Rule
You might have other events you would like to combine before firing your analytics beacon. Firing your s.t() beacon multiple times is costly but you don’t have to do that. You can combine any event with Demandbase so that both events are complete before firing the beacon. Otherwise, you risk firing the beacon before having Demandbase data. Remember, you can always control how long you wait for Demandbase using the Extension timeout, but you must always combine events in order to actually use them together under 1 Send Beacon Action.
Here are the general set up steps, which are covered in detail below.
- 6.1 Modify the API call rule from Step 4 “Page Load: Fire Demandbase”
- 6.2 Modify the set eVars rule from Step 5 “Demandbase Complete: Fire Pageview”
- 6.3 Add Rule for Page Bottom
- 6.4 Combining Page Bottom with Demandbase Event and Sending the Beacon
NoteThese steps are as a result of Adobe Launch not supporting the ability to “AND” Events together. By default, Events are “OR” together. The only way to combine them is to use custom code as this guide demonstrates.
6.1. Modify the API call rule from Step 4 “Page Load: Fire Demandbase”: If you haven’t already completed step 4, do so at this time.
- Add a new Action.
- Select Core for the Extension
- Select Custom Code for Action Type
- Open Editor and copy paste this code snippet to keep track of the API event
window.demandbaseHasCompleted = false;
- Select Keep Changes
Step 6.1 Final Screen:
6.2. Modify the set eVars rule from Step 5 “Demandbase Complete: Fire Pageview”: If you haven’t completed Step 5, do so at this time.
- Rename this Rule for clarity: “Demandbase Complete: Set Evars”
- Remove the Action Adobe Analytics - Send Beacon (We will create a new rule for this later to combine Events)
- Make sure the Event order is 2 for: “Demandbase - API Call Finished (Success, Fail, or Timeout)”
- In the Conditions row, add a new Condition
- Select Regular for Logic Type
- Select Core for the Extension
- Select Custom Code
- Open the Editor and copy paste this code to indicate the complete state of the API
6.3: Add Rule for Page Bottom Complete Event
- Create a new Rule
- Name it something appropriate such as demandbase - page bottom completed
- Choose the Core Event Page Bottom
- Set the order to 3
- For the Action row, select Custom Code
- Open the editor and copy paste this snippet
window.pageBottomFired = true;
- Select Keep Changes.
Step 6.3 Final Screen:
ImportantRepeat this Step for each Event you wish to combine. Page Bottom is used in this guide as an example because it’s typically the best place to fire the Beacon. If you wish to use a custom event or another Core event, you will need to create a rule as described in this Step. Use Action custom code to declare the status of the Event in the DOM. For example, if you had a Rule, MyCustomEvent (Rule) - In the Action custom code you’d declare:
window.myCustomEventIsComplete = true;
6.4: Combining Page Bottom with Demandbase Event and Sending the Beacon: Create a new Rule or use an existing one that has Page Bottom. Remember this is where we combine Demandbase API Event with Page Bottom Core Event. If your Rule has more than one Event, each one must have a corresponding “Complete” Event as in Step 6.3 so that we can use them in this step. Failure to do so will result in some Events causing the Rule to trigger undesirably before all Events have completed.
- Add the Page Bottom Event
- Set the order to 100
- Add the Demandbase Event “Demandbase - API Call Finished (Success, Fail, or Timeout)” and set order to 5
- In Conditions, add Custom Code. Open the Editor.
- Copy and Paste this code snippet. This will AND the Events together.
return !!window.pageBottomFired && !!window.demandbaseHasCompleted;
- Select Keep Changes
- For the Action row, we’ll add back the Adobe Analytics - Send Beacon Action.
Step 6.4 Final Screen:
Step 6 Ending Screen:
Step 7: Set up Classification Reports
7.1. Create the Classifications for each dataElement/eVar. For information on Conversion Classifications please see the related Adobe documentation.
7.2. Create Classification Rules: Now create the Classification Rules necessary to split out the data from the eVar and put them in the Classification reports.
- Create 1 Rule per eVar.
- Use the following Regex for all rows:
Why does this extension require a Timeout?
This is somewhat by design, on Adobe’ end. We have a racing condition here. Adobe Analytics has no architecture for real-time 3rd party data to be collected long after a page view has already happened. This means any dynamic data that relies on 3rd party data must use some sort of “waiting” mechanism to collect the data before proceeding with a page view.
This method is preferred than previous integrations because it gives over control to the customer so they decide how much data they want to collect. The longer the timeout the more data is collected. It standardizes the approach and data collection to be more predictable rather than constantly testing in your staging environments to see what kind of deployment works best and how to place the tags just right in relation to Adobe.
My current integration with the Data Connectors (Demandbase V3) doesn't have a Timeout, can I do the same here?
Not quite. While the current integration doesn’t leverage a timeout it actually has a “natural” waiting mechanism. You’re asked to fire Demandbase tags in the head or top of body while your Adobe pixel should fire in the footer. This placement between the tags is causing a natural delay on your Adobe page view because you’re firing Demandbase right away to collect data while your page view happens at the bottom of the page after some time has passed.
Drawbacks with using a natural waiting mechanism without a timeout:
- Your website loads at different times with different speeds depending on the visitors. This renders the delay unpredictable and unreliable.
- Deployment is tricky and requires many iterations. Firing Demandbase at the top means more tags that fire in the top than you might like. Firing Adobe in the bottom doesn’t guarantee you’ll have Demandbase ready in time still.
- There is no control in how much data you collect. It’s all based on the organic timing and load times of your website.
Can I use more than 5 eVars?
Not in this initial release. But we’re always looking for feedback, tell us more!
Can I use Adobe Launch and DTM at the same time?
Not according to Adobe. You can use either one but not both for Analytics or for Demandbase.
Does this integration have a corresponding Data Connector?
No, unlike previous integrations this one does not have a Data Connector. Adobe has paused their Data Connector program and is not developing new 3rd party connectors. For this reason, you may not be able to generate classification rules automatically and have to do it manually. We are still investigating alternative methods.
Does this Extension use a synchronous (blocking) API call?
No, it is all asynchronous. That’s actually why we have a timeout, so that if the data isn’t ready you’re still firing the page view call.
Where is the code hosted?
All the code is hosted on Adobe Launch. We only serve our IP API.