How to Track Events with Adobe DTM

A tag management system is designed to help manage the lifecycle of e-marketing tags (sometimes referred to as tracking pixels or web beacons), which are used to integrate third-party software into digital properties. Adobe's Dynamic Tag Management, or DTM, is one of the most notable of the various tag management softwares out there.

If you're using DTM, you'll probably include some sort of JSON on your page with information about the page (in this example it will be a JSON called 'digitalData') and you'll typically include the SatelliteLib script somewhere on the page and at the very bottom of the page you'll fire some event to indicate that the page is loaded like so:

<script async src="//"></script>

<script type="text/javascript">
     var _satelliteQ = _satelliteQ || [];
     _satelliteQ.push(function() {
         if(_satellite.pageBottomFired) return;

That's the basic setup of your tracking for the page impressions (note that there is obviously some configuration on the DTM side). But in addition to impression tracking, you'll likely have some events you'd like to track such as clicks or other user interactions. Open up your DTM webapp and sign in at Then select your tracking suite (you may want to set up a staging or test suite while developing).


Click the "Rules" tab.


Select "Direct Call Rules"

DTM First Steps


Click the "Create New Rule" button.

  1. Give the rule a name. This is just what it shows in the list of rules.
  2. Give it a condition. This is the name of the event which will be triggered via JavaScript
  3. Add the details you want to track. First specify if this event should trigger an increase in the page view count, add the eVars, properties, and events. You can reference data from the DigitalData JSON like this: %server (digitalData)%
  4. Click "Save Rule"
DTM Second Steps


Next go to the "Approvals" tab (see image on step 2. Its right next to the "Rules" tab).


Select the rule you added and click "Approve" (requires approver privileges).


Go to the "History" tab (right next to the "Approvals" tab).


Click "Publish Queue" (requires publisher privileges).

Now you need to add the actual event tracking code to your pages. You can easily track your custom events using the SatelliteLib in much the same way you would use a message bus library such as Mediator:

_satellite.track(''); //where '' is the string you set for "Condition"

You can additionally set and reference variables using _satellite.setVar(name, value) and then reference them in the tag manager in the same way as DigitalData values using the format '%varName%'. Note that variable names cannot contain a dot in them, but spaces are fine. Here's an example how to send some additional data with an event:

_satellite.setVar('SomeVariable', '300 dollars'); //In the tag manager you can reference this with %SomeVariable%