What do you like best about Google Tag Manager?
I like the container-centric model with clear separation of Tags, Triggers, Variables, and Templates. Workspaces and immutable versions keep changes isolated, while preview/debug with an event timeline and variable resolution makes validation straightforward. Trigger coverage maps well to real behavior (pageview, DOM ready, clicks, forms, visibility, history change, timers, custom events), and trigger groups with exceptions give precise orchestration without noisy data.
I value the flexible variable system: built-ins for common contexts, data layer variables as a single source of truth, plus custom JavaScript and lookup/RegEx tables for consistent parameter mapping. The standardized dataLayer pattern is a strong backbone; structured pushes keep analytics and ads aligned on the same event schema across properties.
Templates are both fast and safe. Native options for Google products and a broad community gallery cover most vendors, and the permission model inside templates reduces the risk of overreaching scripts. When needed, custom HTML remains a reliable escape hatch while retaining consent checks, sequencing, and triggers.
Consent integration feels pragmatic. Consent Initialization establishes state early, and built-in checks gate tag firing across regions, turning compliance into a container-level policy rather than scattered code edits. Tag sequencing further removes race conditions by running config or identity steps before dependent tags.
Environments and governance are practical. Dev/QA/Prod snippets support staged rollouts; role-based permissions and approvals add lightweight control; activity logs provide a clear audit trail. JSON import/export enables version control and reuse, so proven patterns travel cleanly between sites.
Server-side tagging is a meaningful upgrade path. Moving vendor endpoints server-side reduces client surface area, improves resilience to blockers, and centralizes data enrichment or redaction, with dual-running easing migration. SPA support is solid via history change triggers and virtual pageviews, keeping navigation and engagement reliable without full reloads.
Performance stays manageable with disciplined configuration: defer non-essential tags, consolidate scripts via templates, and keep firing conditions tight. The overall separation of concerns is clean; product code emits structured events to the dataLayer, and GTM handles orchestration and vendor mappings, which keeps implementations maintainable and fast to iterate. Review collected by and hosted on G2.com.
What do you dislike about Google Tag Manager?
The preview debugger can feel intermittent on strict CSPs, cached pages, or when blockers intervene, which pushes me to add extra QA steps and sometimes bypass CDN layers during testing.
Containers can accumulate unused tags and variables unless I enforce naming conventions and periodic audits, and there is limited native support for broad regression automation. Review collected by and hosted on G2.com.