What Adobe Data Layer traffic looks like
The Adobe Client Data Layer (ACDL) never touches the network: its activity is push calls on a page-level structure.
- Data layer object
window.adobeDataLayer.push({ event: 'cmp:show', eventInfo: {...}, component: {...} }). Superficially like GTM's array, but pushes may be functions, not just plain objects, and listeners can be registered on the data layer itself- Transport
- None: page-level JavaScript only. With no request to match, Event Watcher detects ACDL by intercepting the push calls themselves (the catalog carries a
syntaxentry,window.adobeDataLayer.push({...}), in place of URL patterns) - Built-in events
- AEM sites ship ACDL by default, with components pushing namespaced events like
cmp:showandcmp:clickstarting at parse time - Payload
- Successive pushes merge into a computed state readable via
adobeDataLayer.getState(): what a rule sees is the merged result, not the individual push
A typical AEM component push, as Event Watcher captures it:
{
"event": "cmp:click",
"eventInfo": { "path": "component.button" },
"component": {
"button": { "@type": "core/wcm/components/button", "dc:title": "Add to cart" }
}
}
Debugging Adobe Data Layer with Event Watcher
- Each push lands in the live stream as its own event with the payload visible. You watch the sequence exactly as the page produced it, not reasoned backward from merged state.
- Source attribution classifies every push via stack trace (website code, tag manager, or third-party script), which on Adobe stacks separates genuine component pushes from pushes injected by an Adobe Tags rule.
- Pushes that fired before DevTools opened are captured as historical, which matters on AEM pages where component pushes start at parse time.
- On sites running both
adobeDataLayerand GTM'sdataLayer(common mid-migration), the Grouped view's Datalayer pivot keeps the two streams apart.
Adobe Data Layer and consent
Consent-exempt infrastructureACDL is consent-exempt infrastructure: no consent category. Its consent role is as a carrier: on Adobe implementations, consent state flows from the CMP into rules and the AEP Web SDK, and some setups push consent-change events through adobeDataLayer itself.
The consent check applies to what the data layer feeds: Adobe Analytics and Edge Network hits triggered off ACDL events are marked granted, denied, or pre-consent. A component event launching a marketing call early surfaces as a network-side violation.
Common debugging scenarios
- Two data layers on one page. Migration sites run
adobeDataLayeranddataLayerside by side; pivot by Datalayer in the Grouped view to see which one a given event actually flowed through. - A rule sees stale or unexpected values. Remember rules read merged computed state. Inspect the individual pushes in the stream to find which earlier push contributed the surprising key.
- Early pushes missing. AEM components push before any debugger attaches; check the historical pushes instead of reloading with timing hacks.
- Which component pushed
cmp:show? The push's source attribution and the sequence around it narrow it down without instrumenting the page. - Push happened, downstream hit did not. Confirm the push in the stream first; if it is there and correctly shaped, the gap is in the Tags rule or SDK mapping, not the page code.