Skip to content

Tag managers

Tag managers change how tags load, not the consent model. Choose the loading path before installing: the configurator can help, and Choose your setup gives the short decision guide.

Use the Google bridge as the default path: set bridges.google.tagId: "GTM-…" and let the CMP load the container so the consent default is guaranteed before GTM boots. Gate individual tags inside GTM via each tag’s Consent Settings — never gate the container itself. Confirm tags fire in GTM Preview after wiring it up.

lightning("init", {
bridges: { google: { tagId: "GTM-XXXXXXX" } },
});

Do not also paste a second GTM loader. If your platform must own the GTM snippet, keep the inline Consent Mode default before it and omit tagId; see Google Consent Mode v2.

Use bridges.google.tagId: "G-…" and the CMP loads gtag.js with correct ordering. If you already hand-place gtag.js, omit tagId; Consent Mode signals still flow via googleConsentMode.

Relay CMP decisions into zaraz.consent so Zaraz-managed tools honour the same choices.