GTM Ultimate Stack
See what depends on what in a GTM container
The complete guide to ODDVX Tag Dependency Map: search any tag, trigger, variable or dataLayer event, see everything that leads to it and everything it leads to, and know what a rename, pause or delete will touch before you make it.
Know what a change touches
Every GTM change has a blast radius. Delete a variable and the tags that read it send blanks. Rename a dataLayer event in the site and the triggers listening for the old name stop firing. Pause a tag and nothing else notices, unless something depended on it. GTM's own screens show each item's settings, but not what else in the container depends on it.
Tag Dependency Map is the ODDVX module that shows those connections. Load a GTM account, search for any tag, trigger, variable or dataLayer event, and see everything that leads to it and everything it leads to. Click any linked item to follow the chain.
It only reads. Nothing in GTM changes, so you can open it before every change you're unsure of.
This guide covers the whole module: what the map draws, how to read it, how to use it before a change, how to export a lineage, and what it deliberately leaves out. Each section links to a shorter guide for the job in front of you.
A dependency map centred on a GA4 event tag: a dataLayer event and firing trigger lead to it, an exception trigger blocks it, and it uses a constant, a dataLayer variable and the Page Path built-in.
The one-by-one problem
GTM shows you what a tag uses when you open it. It doesn't show what uses a variable. To answer what reads DLV - form_id? in GTM's interface you open every tag, every trigger and every variable and read their fields for {{DLV - form_id}}. A lookup table that reads it, or a trigger condition, is easy to miss, and one missed reference is a broken tag after the next publish.
The map does that reading. Search the variable and the list is there.
A comparison: GTM's interface needs every tag, trigger and variable opened and read, while ODDVX lists the five items that use the variable after one search.
What the map draws
Every container in the account becomes a map of four kinds of item:
- Tags, linked to the triggers that fire them and the exception triggers that block them.
- Triggers, linked to the tags they fire or block and the variables their conditions read.
- Variables, linked to every tag, trigger or variable that references them with {{Name}} anywhere in its settings. Built-in variables such as Page Path or Click Element appear as soon as something references them, because they are dependencies too.
- dataLayer events, the event names Custom Event triggers listen for.
Community Template tags show their template's name, not a type code. Read the dependency links explains every link type.
A grid of the four item kinds the map draws, where each comes from and which links it has.
Searching and following links
Load the account, pick a container, and type part of a name: tags, triggers, variables and events all match. Choose a result and the map shows it in the middle, with Upstream: leads here on one side and Downstream: this leads to on the other.
Click any linked item to make it the focus, and Back returns to where you were. Each view shows direct links only, one step either way, so it stays quick even on a container with hundreds of items. Map a container's dependencies walks through it.
A four-step flow: search, read upstream and downstream, click a linked item to focus it, and go back.
Before a change
The map earns its place just before you change something:
- Before a delete or pause: an item nothing leads to and that leads nowhere is safe to remove. One with dependants isn't, yet. See Check what breaks before you delete or pause.
- Before a dataLayer change: search the event name to see every trigger listening for it and every tag those triggers fire. See Trace a dataLayer event to every tag it fires.
- Before editing a variable: see every tag, trigger and variable that reads it, including lookup tables in the middle of a chain. See Find everything that reads a variable.
A four-step flow: map the item, decide, stage the change in Inventory & Cleanup, and publish in GTM.
Export a lineage
Add one or more items to the export selection and preview their full lineage: the whole chain of events, triggers and tags that fire or block each other, plus the variables that chain reads. A variable shared by dozens of tags, such as a Measurement ID, is included without pulling in all of its other users, so the lineage stays about the item you chose.
Export it as an Excel or HTML file, or email it to a reviewer, on Premium. See Export a tag's full lineage for review.
A lineage map from a dataLayer event through a trigger to a starred tag and the two variables it uses, with the shared variable's twelve other tags marked as not followed.
Where it sits next to the other GTM modules
Inventory & Cleanup gives every item a usage verdict across all your brands, and is where you stage the change. Standardization Audit checks containers against your rules. Tag Dependency Map is the close-up: one container, one item, every connection. Use the inventory to find the candidates and the map to confirm each one.
What it reads
The map reads each container's Default Workspace: everything published, plus any edits there that aren't published yet. Changes waiting in another workspace, such as an ODDVX rollout, appear once they're published. Load the account again after a publish to see the new links.
Two panels: the Default Workspace, including unpublished edits, is drawn; other workspaces are not.
Free and Premium
The map itself is free: load any of your brands' GTM accounts, every container in it, and search, follow and build lineages as much as you like. Premium adds lineage export as Excel or HTML, and email. Compare the plans.
Two panels comparing Free and Premium for Tag Dependency Map.
What the module does not do
- Change anything. It only reads. Stage changes in Inventory & Cleanup, or make them in GTM.
- Draw tag sequencing. Setup and cleanup tags aren't linked to the tags they run with. Check a tag's sequencing settings in GTM.
- Draw Trigger Group members. A Trigger Group's member triggers aren't shown as links.
- Give every trigger an event. Only Custom Event triggers listen for a named event. Click, page view, form and timer triggers have no event to draw, and an event name built from a variable isn't a fixed name.
- Map several accounts at once. Load one GTM account at a time.
- Run on a schedule. It's a viewer: there's nothing to report unattended.
A list of limits: it doesn't change anything, doesn't draw tag sequencing or Trigger Group members, has no event for click or page-view triggers, maps one account per load and has no schedule.
Choose your workflow
Each guide covers one job:
| If you need to… | Read |
|---|---|
| Open a container's map for the first time | Map a container's dependencies |
| Understand fires, blocks, listens for and uses | Read the dependency links |
| Check an item is safe to delete or pause | Check before you delete or pause |
| See what a dataLayer change will affect | Trace a dataLayer event |
| See what reads a variable before you edit it | Find everything that reads a variable |
| Share a tag's dependencies with a reviewer | Export a lineage for review |
Questions people ask first
Does the map change my containers?
No. It only reads. Changes are staged in Inventory & Cleanup or made in GTM, and you publish them.
Which version of a container does it show?
The Default Workspace: everything published plus any unpublished edits in that workspace.
Why does a built-in variable appear?
Something references it with {{Name}}. Built-in variables are dependencies too, even though GTM lists them separately.
Why doesn't my click trigger show a dataLayer event?
Only Custom Event triggers listen for a named event. Other trigger types fire on clicks, page views or timers, not on an event name.
Can it show several brands at once?
It loads one GTM account at a time, with every container in that account. Switch containers with one click.
Do I need Premium?
Not to use the map. Premium adds exporting and emailing a lineage.
ODDVX for Windows
Know what a change touches.
Map any GTM account on Free. Premium adds lineage export and email, plus several accounts per run in every other GTM module.