Technical
Tag manager
Also called TMS.
Tag manager is a container script that loads other tags, such as analytics, ads, and chat widgets, according to rules you edit in a web interface instead of in site code.
How it is measured
View source and you see one container snippet, for example `gtm.js?id=GTM-XXXX`. In the Network panel, watch what it pulls in after load. Each tag is another request, and the container itself grows with every tag you add. Preview mode shows which tags fired on which trigger.
Count tags per page and note who can publish. The version history records who published what and when.
Worked example
A WordPress publisher's container holds 23 tags, and Lighthouse shows 1.4 s of main-thread work after load. An audit finds 4 tags for tools cancelled last year, 2 duplicates of the analytics pageview, and a chat widget firing on checkout. Removing 9 tags cuts the container from 310 KB to 140 KB.
Someone also published a custom HTML tag with a typo that broke the cookie banner. The version history let them roll back in a minute.
How it differs
A tag manager is the loader and rule engine. The data layer is the data it reads. Without a data layer a tag manager scrapes page text, and without a tag manager the data layer is just an object on the page. One holds the logic and the other holds the facts.
Common errors
Letting everyone publish. Adding tags and never removing any. Firing before consent. Duplicating a tag already hard-coded in the theme. Pasting unreviewed vendor code into custom HTML. Skipping preview mode.
In practice
Review the container every quarter. Delete dead tags, name an owner for each, and test changes in preview. Restrict publish rights to a few people, and make consent a condition on every trigger.