What Is the Adobe Data Layer? A Complete Guide to digitalData, ACDL, and DLM

Adobe Launch BCS 7 years ago (2019-12-17) 10911 Views 2 Comments

Update time: March 16, 2026

If you’re working with Adobe Analytics or Adobe Launch and you’ve come across terms like digitalData, adobeDataLayer, and appEventData, you might have found yourself wondering: what exactly is the difference, and which one should you use?

You’re not alone. The data layer landscape in the Adobe ecosystem can be confusing — there are multiple standards, some old and some new, and it’s not always obvious which approach fits your project. I’ve seen many teams struggle with this, so let me break it all down.

What is the DataLayer?

A Data Layer is a structured framework of JavaScript objects on your website that stores the data used in analytics and marketing tag implementations.

Back in the old days, tracking values were hard-coded directly inside each tracking script. Want to send the page name to Adobe Analytics? You’d write it directly in the call. Want to change it later? You’d have to hunt down every reference and update them one by one. Painful, error-prone, and not scalable.

That’s where a Data Layer comes in. Instead of scattering values across multiple tracking scripts, a Data Layer centralizes everything in one place and lets your tag management tools read it when needed.

Using a Data Layer gives you:

  • Better control over data used in Analytics
  • Easier maintenance when updating tracking logic
  • Improved consistency across multiple marketing tools

 

Adobe DataLayer Type

In Adobe Data Layers are generally divided into two categories:

Customer Experience Digital Data Layer (CEDDL / digitalData)

The Customer Experience Digital Data Layer, commonly abbreviated as CEDDL, is better known simply as digitalData. If you’ve been in the Adobe Analytics world for a while, you’ve probably seen this one.

It’s a static Data Layer placed on the page — defined as a JavaScript object that contains information about the page, user, or product. It exists on the page when it loads, and it stays the same unless the page reloads.

.You can inspect it in the browser’s developer tools console by entering digitalData or window.digitalData.

What Is the Adobe Data Layer? A Complete Guide to digitalData, ACDL, and DLM

Here’s the catch:digitalData is static. It doesn’t update when users interact with the page. So in Adobe implementations, this type of Data Layer usually needs to work together with Custom Events or Data Collection Rules (DCR) to send data to analytics platforms.

 

Event-Driven Data Layer (EDDL)

An Event-Driven Data Layer (EDDL) is a dynamic Data Layer that pushes data whenever an event occurs.

This approach is similar to the Google Tag Manager Data Layer — data is sent through a push mechanism whenever user interactions or application events happen.

For example, data might be pushed when:

  • A page loads
  • A product is added to the cart
  • A button is clicked

This model provides greater flexibility because data can be sent in real time as events occur. No page refresh required.

 

The Adobe Client Data Layer (ACDL) is Adobe’s official implementation of an event-driven data layer. If you’re starting a new project today, this is the one Adobe recommends.

To use ACDL in Adobe Launch, you need to install the Adobe Client Data Layer extension.

By default, ACDL initializes a global object called adobeDataLayer, and data is added using the push() method — familiar territory if you’ve worked with GTM:

 

You can inspect it in the browser’s developer tools console by entering adobeDataLayer or window.adobeDataLayer

What Is the Adobe Data Layer? A Complete Guide to digitalData, ACDL, and DLM

The ACDL Gotcha: Consecutive Pushes

Consider these two consecutive pushes:

adobeDataLayer.push({
  event: 'first push',
  foo: {
    bar: 'stamp'
  }
});
adobeDataLayer.push({
  event: 'second push',
  foo: {
    bar: 'baz'
  }
});

You might expect foo.bar to be ‘stamp’ for the first push and ‘baz’ for the second. But in practice, both return ‘baz’.

What Is the Adobe Data Layer? A Complete Guide to digitalData, ACDL, and DLM

This happens because the pushes occur in quick succession, and the data layer resolves them as the same “sending” event. The latest state wins.

Two ways to handle this: use delayed sending, or reference %event.fullState.foo.bar% to capture the state at the time of the specific event.

 

Data Layer Manager (DLM) is another EDDL solution, developed by Search Discovery. It uses a custom object called appEventData:

adobeDataLayer and appEventData are similar in concept, but ACDL is typically the primary approach in modern implementations.

digitalData vs ACDL: Comparison

Feature digitalData (CEDDL) ACDL
Type Static object Event-driven (array-based)
Update Method Defined on page load Updated dynamically via push()
Data Access Read variables directly Listen to events
Recommendation Legacy / traditional approach Recommended by Adobe

Long story short: if you’re starting a new project, go with ACDL. If you’re maintaining an older digitalData implementation, there’s no urgent need to migrate — but know its limitations.

 

Final Words

So there you have it — a breakdown of the different data layer approaches in the Adobe ecosystem. Whether you’re dealing with a legacy digitalData setup, implementing a shiny new ACDL, or maintaining a DLM-based solution, understanding the differences will help you make the right call for your project.

Like (5)
Post my comment
Cancel comment
Expression Bold Strikethrough Center Italic

Hi, you need to fill in your nickname and email!

  • Nickname (required)
  • Email (required)
  • Website
(2) friends in the comments
  1. I want to show or push, say training-data, only if all the values are present, otherwise no trainign-data. How can I do that?
    sagrawal2024-04-23 17:33 Reply Windows 10 | Chrome 124.0.0.0
    • BCS
      Use if to add conditions to restrict.
      BCS2024-04-24 10:53 Reply Mac OS X | Chrome 124.0.0.0