GTM console guide

A walkthrough of the Google Tag Manager console: Workspace (tags/triggers/variables), Versions (publish/rollback), Admin (container/users/install/import) and exactly what metricsKit needs you to set.

Console overview#

Open tagmanager.google.com and get oriented in four places:

WhereWhat it does
Account/Container picker (top)Which account and which container you are working in. metricsKit binds to one specific container (GTM-XXXX).
WorkspaceWhere you actually edit: tags, triggers, variables. Changes land in a draft first and do not affect production.
PreviewConnect to your site and watch which tags fire with which parameter values — first stop for debugging.
SubmitTurns the current workspace changes into a version.
VersionsEvery version ever created; only after Publish does production change.
AdminContainer-level settings: container info, user permissions, container code install, import/export, workspaces, environments.
Note: Mental model: Workspace = draft, Submit = snapshot, Publish = live. Import or create without publishing, and production sees nothing.

Workspace · Tags#

A tag is "when this happens, send that". Pick a tag type, then configure firing triggers and parameters.

SettingNotes
Tag nameFor humans only; keep prefixes consistent (metricsKit entities start with metricsKit -).
Tag typemetricsKit uses two: Google tag (GA4 configuration, internal type gaawc) and GA4 event (internal type gaawe).
Firing triggersWhen to fire this tag; multiple allowed.
Blocking triggersWhen not to fire (rarely needed).
ParametersFor GA4 event tags: event name and event parameters. For the GA4 config tag: measurement ID.
Tag firing optionsOnce per event / Once per page / Unlimited; leave "Once per event".
Consent settings / AdvancedGDPR consent and tag sequencing; keep defaults for most sites.
Note: The "GA4 configuration" (Google tag) is the receiver for the whole chain: without it, every GA4 event tag fires into nothing. metricsKit's check treats it as mandatory.

Workspace · Triggers#

A trigger is "when". Common types and how metricsKit uses them:

Trigger typeFires onmetricsKit use
Initialization – All PagesContainer loadGA4 configuration tag
Form SubmissionNative form submitform_submit
Click – Just LinksClicks on anchorsOutbound click (click)
Link Click (with file downloads)Link click / file downloadfile_download
Scroll DepthVertical scroll 25/50/75/100%scroll
Custom EventA dataLayer event with that nameEcommerce events (purchase, …)
History Change / Element Visibility / TimerSPA nav / element appears / intervalAs needed

Conditions are written with built-in variables, for example:

  • Outbound: Page URL does not contain Click URL
  • Custom event: event name equals purchase (compares {{_event}} to the name under the hood)
  • Scroll: pick Scroll Depth and tick the percentage thresholds
Note: Always enable "Wait for tags" (2000ms) on outbound click triggers: the browser navigates instantly, and without waiting the event can be lost.

Workspace · Variables#

A variable is "what value". Two kinds:

Variable typeNotesmetricsKit use
Data Layer VariableReads a dataLayer field, e.g. ecommerce.valueEcommerce value/items (dlv - ecommerce.*)
Custom JavaScriptA JS snippet returning a valueOutbound domain check, affiliate detector
Constant / URL / CookieFixed value / parsed URL / cookie readerAs needed

Built-in variables must be enabled as needed (Variables → Configure → Built-In Variables), otherwise tag parameters resolve to empty. metricsKit relies on:

  • Forms: Form ID, Form Classes, Form Text, Form URL
  • Pages: Page URL, Page Hostname, Page Path
  • Clicks: Click URL, Click Text, Click Classes, Click Element
  • Scroll: Scroll Depth Threshold
  • Events: Event (the custom event name, i.e. {{_event}})

Workspace · Folders / Templates / Preview / Submit#

  • Folders: group entities; purely organisational.
  • Templates: custom tag/variable templates; not needed by metricsKit.
  • Preview: click Preview → enter your site URL → interact with the site; the panel lists fired/unfired tags and parameter values. First debugging step.
  • Submit: click Submit (top right) → name and describe the version → a version is created (still not live).

Versions#

ActionNotes
Version listEach version shows name, time and author; drafts vs published are distinguished.
CompareDiff two versions to see tag/trigger/variable changes — great for "who broke it".
PublishMakes a version live. Importing or creating without publishing changes nothing in production.
Restore (rollback)Re-activate a historical version when something breaks.
Note: metricsKit's check reads the *published* container: if you imported but did not publish, the check reports the entities as missing.

Admin#

SettingNotesmetricsKit relevance
Container settingsContainer name, Container ID (GTM-XXXX), domains, usage & data sharingThe container ID goes into your site; metricsKit binds to this container
User managementPermission levels: No access, Read, Edit, Publish, ApprovemetricsKit only needs Read (it never writes)
Install Google Tag ManagerThe two container code snippets (head + body)Must be installed on the site or the container never loads
Import ContainerUpload a JSON to import entities; Overwrite or MergeThis is where you import the metricsKit import file
Export ContainerExport the container as JSONFor backups
WorkspacesDefault workspace, create/delete workspacesWith multiple workspaces, make sure you import into the right one
EnvironmentsLive / Latest / custom environments and their snippetsUsually unused; test environments as needed
Approvals / Notifications / IntegrationsPublish approval flows, email notifications, third-party integrationsNot relevant to metricsKit

What each user permission level (Admin → User Management) can do:

PermissionView containerEdit tags/triggers/variablesSubmit versionsPublish liveApprove drafts
No access✗✗✗✗✗
Read✓✗✗✗✗
Edit✓✓✓✗✗
Publish✓✓✓✓✗
Approve✓✗✗✗✓
  • Restoring a historical version (rollback) is part of the Publish permission.
  • Approve is an optional container-level capability (enterprise approval flow); it is usually granted together with Edit/Publish. Granted alone, it can only review and approve drafts.
  • Permissions are per container: one account can have Publish on container A and Read-only on container B.
Note: metricsKit requests and needs only "Read" — it reads your container for checks and per-item verification and never modifies it; creating, submitting and publishing entities is entirely up to you in GTM.

What metricsKit needs you to set#

Everything above condensed into one checklist — do it in order:

#Where in GTMWhat to set
1Admin → Install Google Tag ManagerInstall both container snippets on the site (or use a plugin like GTM4WP and enter the container ID)
2Workspace → Variables → Configure → Built-InEnable: Form ID/Classes/Text/URL, Page URL/Hostname/Path, Click URL/Text/Classes/Element, Scroll Depth Threshold, Event
3Workspace → TagsEnsure a "GA4 configuration / Google tag" exists with your G-XXXXXXXXXX measurement ID and the Initialization – All Pages trigger
4Admin → Import ContainerImport the JSON generated by metricsKit (containing the entities for the features you selected)
5Workspace → SubmitName and describe the version, then create it
6Versions → PublishPublish the version so production takes effect
7metricsKit → Conversions → Check configurationVerify item by item; fix whatever is still missing and re-check
Tip: metricsKit holds read-only GTM access and never edits your container; every write action above is performed by you in the GTM console.

Pitfalls#

  • Imported but no data: the version was not published. Go to Versions → Publish.
  • Duplicate entities: importing the same names again creates duplicates — import once, or pick Overwrite.
  • Site loads container A, metricsKit bound to B: everything looks right but nothing fires. Compare the GTM-XXXX in the page source with the bound container.
  • Parameters come out empty: built-in variables not enabled (checklist step 2).
  • Forms / outbound clicks do not fire: fetch-only submissions or special navigation; outbound triggers need "Wait for tags".
  • No events at all: the container has no "GA4 configuration" tag (checklist step 3).
  • GTM overview (with the container configuration items): /gtm
  • WordPress · GTM container configuration (GTM4WP data layer): /wordpress/gtm
  • Shopify · GTM container configuration (Custom Pixel): /shopify/gtm