Analytics digitalData vs the Satellite object. Pros and Cons?



Hi, could someone please clarify the pros and cons of setting up Adobe's DTM with data elements listening for changes in your 'digitalData' data layer object versus using the _satellite.track('my-event') direct calls ?

It seems like both Adobe Analytics and DTM have their own data layers with their own separate events unlike Google Analytics and GTM where everything is pushed to the same single object. Is that correct?





digitalData is a posed as a web standard data object, providing data about the page, server environment, and user details, or event data that occurs client side.

The satellite object is part of the adobe analytics/dtm internal mechanism.

use DTM to reference your digitalData object (via data elements) and avoid using direct _satellite calls where possible.

DTM provides the functionality of satellite in a user interface.




Thanks aseelund, if understand your reply correctly it is better to track events in the digitalData and then listen to them in DTM because you make use of the web standard; correct?

In what cases would you use the _satellite.track('my-event') ?



Community Manager


_satellite.track is used to trigger a direct call rule in DTM or Launch. Direct call rules should only be used when you are unable to use the DTM/Launch interface to trigger the rule. Using direct call rules relies on your development team to implement page code for each action you wish to track. Using the normal events that happen on the page and using DTM/Launch to listen for those events is best practice regardless of which tag management solution you are using.




maggiev45535943​ how i would go about this is to have DTM listen for a custom browser-event via dtm event rule, then do a lookup of objects in the data layer events array through data elements or parsing the browser-event data object.  When the object is added to the array, dispatch the browser-event as a notification, which will then trigger your newly defined DTM event rule,

Then, based on the object in the data layer events array you want, use the dtm event rule to set evars and props and events.

i wouldn't use custom code to make a _satellite call. as Jantzen noted, that's more for direct call setup.