Load the allGood tag through a GTM container, using the template allGood generates for your account.
For teams whose only route onto the website is Google Tag Manager. The result is identical to pasting the script tag — the container just does the pasting.Where: Settings → Web Tracking → Install with Google Tag Manager.
The Google Tag Manager install drawer, with the template download and your pre-filled domain and key.
Why the template is generated for you
GTM requires a template to name the exact host it may load a script from, and it won’t accept a wildcard. A one-size-fits-all template would force every customer to hand-edit the permissions, and anyone who didn’t would get an install that fails for no obvious reason.So allGood generates the template against your domain, with both fields already filled in. Download it again whenever your domain changes — that’s the only reason to re-import.
1
Import the template
Select Download allgood.tpl.In GTM: Templates → New → ⋮ → Import, choose the file, then Save.
2
Add the tag
Tags → New → allGood Web Tracking → Triggering → All Pages → Submit.Both fields arrive pre-filled. Fire it on All Pages — that’s what page-view tracking needs. The script only loads once even if the tag fires on several events.
3
Check it works
The drawer has a Container id field and an Open test page button. Enter your GTM-XXXXXXX id and open the page.
Step three of the drawer, where you enter your container id and open the test page.
On that page, check these in order:
GTM preview. Point GTM’s preview at the page URL. The allGood Web Tracking tag should show as fired once, with the status Succeeded.
Readiness checks. Every check on the test page should be green. That means the script loaded, your domain is allowed, and your settings are valid.
If both pass, the install works. Your tag is loading allGood’s script, and allGood is accepting what it sends.To see real traffic arrive, visit your live site and then identify yourself. Fill out an allGood form, or click a link in an email allGood sent you. Visits are anonymous until then. Once allGood knows who you are, open your person page and look at the timeline. The page views from your visit should appear there.
For your developer: the same checks in the browser
Console: no message beginning [allGood], and window.allgood.version returns a version string.
Network: filter on _ag. The configuration request succeeds. Once consent allows it, the event request is accepted too.
No event request and no errors: the tag is holding events until the visitor answers your consent banner. See What consent gates.
In GTM mode the test page deliberately stops loading the script itself and lets your container do it — so what you’re testing is your tag, not a second install path that happens to work.
The test page link is signed with your container id. You can’t append a different id to an existing link — the page builds a script address from it, so an id anyone could add would be a way to make an allGood page load a container of their choosing.
If the tag reports a failure
The host it tried to load from doesn’t match the template’s permission. Download the template again from the drawer — it’s generated against your current domain.The tag reports the failure and GTM’s preview shows it, so you will see it before anything goes live.
The template editor’s Run button is not this test
Selecting Run in GTM’s template editor executes the template on Google’s own sandbox page. The console then warns that tagmanager.googleusercontent.com isn’t an allowed origin — which is correct, and actually means the tag loaded and reached allGood.Do not add that origin to your allowed list. It’s shared by every GTM template author in the world, so anyone’s sandbox could then send events into your account. Test on a page whose origin you control instead.
Consent in GTM
Two options, and they compose:
Let allGood handle it. Keep No tracking before opt-in on and make sure your consent platform writes its signal on every page. The tag holds and releases events on its own. This is simpler, and it works whether or not GTM knows about consent.
Let GTM handle it. Use GTM’s own consent triggers so the allGood tag doesn’t fire until analytics consent is granted. The allGood gate then has nothing to hold.
Don’t use GTM consent triggers and switch off allGood’s own gate — that leaves GTM as the only control.
Forms through GTM
Form capture works exactly the same way: the injected script binds any form on the page marked for allGood. The container’s job ends at loading the script.
What the tag decides
Nothing. It loads the script and reports back. Which events are captured, whether consent allows them, what a form’s fields are, whether a bot check is required — all of that is read at runtime from your allGood settings, so a settings change never means re-importing the template.
Was this page helpful?
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"allGood Docs","colors":{"primary":"#dc4393","light":"#ea7cb9","dark":"#b12563"},"logo":{"light":"https://mintcdn.com/allgoodtechnologyinc/QQ498qL6_aJdv7lm/logo/light.svg?fit=max\u0026auto=format\u0026n=QQ498qL6_aJdv7lm\u0026q=85\u0026s=0a6e25720e392678288f3d5e92580677","dark":"https://mintcdn.com/allgoodtechnologyinc/QQ498qL6_aJdv7lm/logo/dark.svg?fit=max\u0026auto=format\u0026n=QQ498qL6_aJdv7lm\u0026q=85\u0026s=d68d3e70bcb0adf89895e438a7dd3dd1"},"favicon":"https://mintcdn.com/allgoodtechnologyinc/QQ498qL6_aJdv7lm/favicon.svg?fit=max\u0026auto=format\u0026n=QQ498qL6_aJdv7lm\u0026q=85\u0026s=393be1889fc5f811dc575e9e7c4aa16f","background":{"decoration":"gradient"},"navbar":{"links":[{"href":"mailto:support@allgoodhq.com","label":"Support"}],"primary":{"type":"button","label":"App","href":"https://allgoodhq.app"}},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude","mcp"],"display":"header"},"interaction":{"drilldown":true},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Welcome","icon":"house","href":"/"},{"anchor":"Release Notes","icon":"list","href":"/release-notes"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"allgoodtechnologyinc","hasAudioNarration":false,"actualSubdomain":"allgoodtechnologyinc","customDomains":["docs.allgoodhq.com"],"gitSource":{"type":"github","owner":"allgoodhq","repo":"mint","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6af66f52f801d783dc232a6b","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"allGood","count":127},{"language":"default","tag":"Use Cases","count":68},{"language":"default","tag":"Email Reply Management","count":65},{"language":"default","tag":"Error Codes","count":38},{"language":"default","tag":"Marketing Kernel","count":20},{"language":"default","tag":"Marketo","count":18},{"language":"default","tag":"Integrations","count":17},{"language":"default","tag":"Settings","count":16},{"language":"default","tag":"Email Builder","count":12},{"language":"default","tag":"HubSpot","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"support@allgoodhq.com","showHelpButton":true}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":root{--sidebar-width: 18rem}.frame{padding:0}.frame>.relative>*[data-as=\"p\"]{margin:0!important}div:has(>.frame){margin:0.5rem 0}.frame [data-component-part=\"frame-caption\"]{margin:0.5rem 0;margin-left:1rem;padding:0;text-align:left}"}],"page":{"pagePath":"mk/developer/web-edge/install-with-gtm","slug":"/mk/developer/web-edge/install-with-gtm","pageMetadata":{"title":"Install with Google Tag Manager","sidebarTitle":"Install with GTM","description":"Load the allGood tag through a GTM container, using the template allGood generates for your account.","noindex":true,"href":"/mk/developer/web-edge/install-with-gtm"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Load the allGood tag through a GTM container, using the template allGood generates for your account.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Frame,Heading,Note,OptimizedImage,Step,Steps,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`For teams whose only route onto the website is Google Tag Manager. The result is identical to pasting the script tag — the container just does the pasting.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Where:`}),` Settings → Web Tracking → `,_jsx(_components.strong,{children:`Install with Google Tag Manager`}),`.`]}),`\n`,_jsx(Frame,{caption:`The Google Tag Manager install drawer, with the template download and your pre-filled domain and key.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer.png?fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=e7d3ee56b20db660f71a56f99dbc4911`,alt:`The Google Tag Manager install drawer, with the template download and your pre-filled domain and key`,\"data-og-width\":`1080`,width:`1080`,\"data-og-height\":`900`,height:`900`,\"data-path\":`images/mk/web-edge/integrate-gtm-drawer.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer.png?w=280\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=5eb01136aa7e996aafe73b7412b0c2a3 280w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer.png?w=560\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=ad8a13b7bf6f1d8f6bad2e0a45a037fa 560w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer.png?w=840\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=77553a931b35ae486189d5b63a37395c 840w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=de0c22425517a9f816c3b4177889fa13 1100w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=46f2b8cb6f7cff2823c7a289532646cf 1650w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=60ca7126981c05657a1ef40d7a5e8f69 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`why-the-template-is-generated-for-you`,children:`Why the template is generated for you`}),`\n`,_jsx(_components.p,{children:`GTM requires a template to name the exact host it may load a script from, and it won’t accept a wildcard. A one-size-fits-all template would force every customer to hand-edit the permissions, and anyone who didn’t would get an install that fails for no obvious reason.`}),`\n`,_jsxs(_components.p,{children:[`So allGood generates the template against `,_jsx(_components.strong,{children:`your`}),` domain, with both fields already filled in. Download it again whenever your domain changes — that’s the only reason to re-import.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{id:`import-the-template`,title:`Import the template`,children:[_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Download allgood.tpl`}),`.`]}),_jsxs(_components.p,{children:[`In GTM: `,_jsx(_components.strong,{children:`Templates → New → ⋮ → Import`}),`, choose the file, then `,_jsx(_components.strong,{children:`Save`}),`.`]})]}),_jsxs(Step,{id:`add-the-tag`,title:`Add the tag`,children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Tags → New → allGood Web Tracking → Triggering → All Pages → Submit.`})}),_jsxs(_components.p,{children:[`Both fields arrive pre-filled. Fire it on `,_jsx(_components.strong,{children:`All Pages`}),` — that’s what page-view tracking needs. The script only loads once even if the tag fires on several events.`]})]}),_jsxs(Step,{id:`check-it-works`,title:`Check it works`,children:[_jsxs(_components.p,{children:[`The drawer has a `,_jsx(_components.strong,{children:`Container id`}),` field and an `,_jsx(_components.strong,{children:`Open test page`}),` button. Enter your `,_jsx(_components.code,{children:`GTM-XXXXXXX`}),` id and open the page.`]}),_jsx(Frame,{caption:`Step three of the drawer, where you enter your container id and open the test page.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer-test.png?fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=81e48ee6a59bb2c53a921dd2d84c23cc`,alt:`Step three of the drawer, where you enter your container id and open the test page`,\"data-og-width\":`1080`,width:`1080`,\"data-og-height\":`900`,height:`900`,\"data-path\":`images/mk/web-edge/integrate-gtm-drawer-test.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer-test.png?w=280\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=53aa3c8b2a35f3fbc636abdbbae36c5c 280w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer-test.png?w=560\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=2b7c3ddcb53ffeb6e1f273e86af91751 560w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer-test.png?w=840\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=6cc1b74c31ed2b723e24ddd8ca4d3374 840w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer-test.png?w=1100\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=11045d0dd35e08e2e5f236d763b30524 1100w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer-test.png?w=1650\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=005a3eb4a38ffb4a02bf3814562df80d 1650w, https://mintcdn.com/allgoodtechnologyinc/bf1LRHwyriZvgDxT/images/mk/web-edge/integrate-gtm-drawer-test.png?w=2500\u0026fit=max\u0026auto=format\u0026n=bf1LRHwyriZvgDxT\u0026q=85\u0026s=940e0b30d9ac0d0ae83b3abdbc850a7e 2500w`})}),_jsx(_components.p,{children:`On that page, check these in order:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`GTM preview.`}),` Point GTM’s preview at the page URL. The `,_jsx(_components.strong,{children:`allGood Web Tracking`}),` tag should show as fired once, with the status `,_jsx(_components.strong,{children:`Succeeded`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Readiness checks.`}),` Every check on the test page should be green. That means the script loaded, your domain is allowed, and your settings are valid.`]}),`\n`]}),_jsx(_components.p,{children:`If both pass, the install works. Your tag is loading allGood’s script, and allGood is accepting what it sends.`}),_jsx(_components.p,{children:`To see real traffic arrive, visit your live site and then identify yourself. Fill out an allGood form, or click a link in an email allGood sent you. Visits are anonymous until then. Once allGood knows who you are, open your person page and look at the timeline. The page views from your visit should appear there.`}),_jsx(Accordion,{title:`For your developer: the same checks in the browser`,id:`for-your-developer-the-same-checks-in-the-browser`,children:_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Console:`}),` no message beginning `,_jsx(_components.code,{children:`[allGood]`}),`, and `,_jsx(_components.code,{children:`window.allgood.version`}),` returns a version string.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Network:`}),` filter on `,_jsx(_components.code,{children:`_ag`}),`. The configuration request succeeds. Once consent allows it, the event request is accepted too.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`No event request and no errors:`}),` the tag is holding events until the visitor answers your consent banner. See `,_jsx(_components.a,{href:`/mk/developer/web-edge/consent-behavior`,children:`What consent gates`}),`.`]}),`\n`]})}),_jsx(_components.p,{children:`In GTM mode the test page deliberately stops loading the script itself and lets your container do it — so what you’re testing is your tag, not a second install path that happens to work.`})]})]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`The test page link is signed with your container id. You can’t append a different id to an existing link — the page builds a script address from it, so an id anyone could add would be a way to make an allGood page load a container of their choosing.`})}),`\n`,_jsx(Heading,{level:`2`,id:`if-the-tag-reports-a-failure`,children:`If the tag reports a failure`}),`\n`,_jsx(_components.p,{children:`The host it tried to load from doesn’t match the template’s permission. Download the template again from the drawer — it’s generated against your current domain.`}),`\n`,_jsx(_components.p,{children:`The tag reports the failure and GTM’s preview shows it, so you will see it before anything goes live.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-template-editor’s-run-button-is-not-this-test`,children:`The template editor’s Run button is not this test`}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`Selecting `,_jsx(_components.strong,{children:`Run`}),` in GTM’s template editor executes the template on Google’s own sandbox page. The console then warns that `,_jsx(_components.code,{children:`tagmanager.googleusercontent.com`}),` isn’t an allowed origin — which is correct, and actually means the tag loaded and reached allGood.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Do not add that origin to your allowed list.`}),` It’s shared by every GTM template author in the world, so anyone’s sandbox could then send events into your account. Test on a page whose origin you control instead.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`consent-in-gtm`,children:`Consent in GTM`}),`\n`,_jsx(_components.p,{children:`Two options, and they compose:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Let allGood handle it.`}),` Keep `,_jsx(_components.strong,{children:`No tracking before opt-in`}),` on and make sure your consent platform writes its signal on every page. The tag holds and releases events on its own. This is simpler, and it works whether or not GTM knows about consent.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Let GTM handle it.`}),` Use GTM’s own consent triggers so the allGood tag doesn’t fire until analytics consent is granted. The allGood gate then has nothing to hold.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Don’t use GTM consent triggers `,_jsx(_components.em,{children:`and`}),` switch off allGood’s own gate — that leaves GTM as the only control.`]}),`\n`,_jsx(Heading,{level:`2`,id:`forms-through-gtm`,children:`Forms through GTM`}),`\n`,_jsx(_components.p,{children:`Form capture works exactly the same way: the injected script binds any form on the page marked for allGood. The container’s job ends at loading the script.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-the-tag-decides`,children:`What the tag decides`}),`\n`,_jsx(_components.p,{children:`Nothing. It loads the script and reports back. Which events are captured, whether consent allows them, what a form’s fields are, whether a bot check is required — all of that is read at runtime from your allGood settings, so a settings change never means re-importing the template.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Install with Google Tag Manager","sidebarTitle":"Install with GTM","description":"Load the allGood tag through a GTM container, using the template allGood generates for your account.","noindex":true,"href":"/mk/developer/web-edge/install-with-gtm"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why the template is generated for you","slug":"why-the-template-is-generated-for-you","depth":2,"children":[]},{"title":"If the tag reports a failure","slug":"if-the-tag-reports-a-failure","depth":2,"children":[]},{"title":"The template editor’s Run button is not this test","slug":"the-template-editor’s-run-button-is-not-this-test","depth":2,"children":[]},{"title":"Consent in GTM","slug":"consent-in-gtm","depth":2,"children":[]},{"title":"Forms through GTM","slug":"forms-through-gtm","depth":2,"children":[]},{"title":"What the tag decides","slug":"what-the-tag-decides","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"allgoodtechnologyinc","siteName":"allGood Docs","title":"Install with Google Tag Manager - allGood Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T16:53:25.274Z","originalFileLocation":"mk/developer/web-edge/install-with-gtm.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Load the allGood tag through a GTM container, using the template allGood generates for your account.\">\u003cmeta data-mint-head name=\"application-name\" content=\"allGood Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Install with Google Tag Manager - allGood Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Load the allGood tag through a GTM container, using the template allGood generates for your account.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"allGood Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.allgoodhq.com/mk/developer/web-edge/install-with-gtm\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://allgoodtechnologyinc.mintlify.site/_mintlify/api/og/v2?division=Web+Edge\u0026amp;title=Install+with+Google+Tag+Manager\u0026amp;description=Load+the+allGood+tag+through+a+GTM+container%2C+using+the+template+allGood+generates+for+your+account.\u0026amp;theme=46684a5ecd44441e4b9bfe1f\u0026amp;signature=8121aec71c6430771f2f0f031f1fa27417a6646f98828a4b93fe8047fb123e1f\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Install with Google Tag Manager - allGood Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Load the allGood tag through a GTM container, using the template allGood generates for your account.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://allgoodtechnologyinc.mintlify.site/_mintlify/api/og/v2?division=Web+Edge\u0026amp;title=Install+with+Google+Tag+Manager\u0026amp;description=Load+the+allGood+tag+through+a+GTM+container%2C+using+the+template+allGood+generates+for+your+account.\u0026amp;theme=46684a5ecd44441e4b9bfe1f\u0026amp;signature=8121aec71c6430771f2f0f031f1fa27417a6646f98828a4b93fe8047fb123e1f\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/allgoodtechnologyinc/_ALjgld6m1uJaRhW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"allGood Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#dc4393\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.allgoodhq.com/mk/developer/web-edge/install-with-gtm\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mk/developer/web-edge/install-with-gtm.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"allGood Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"allGood Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/mk/developer/web-edge/install-with-gtm.md","siteName":"allGood Docs","nav":{"global":{"anchors":[{"anchor":"Welcome","icon":"house","href":"/"},{"anchor":"Release Notes","icon":"list","href":"/release-notes"}]},"tabs":[{"tab":"allGood","icon":"book-open","pages":[{"title":"allGood","href":"/use-cases/email-builder"}]},{"tab":"Marketing Kernel","icon":"layers","groups":[{"group":"Marketing Kernel","pages":[{"title":"Marketing Kernel","sidebarTitle":"Overview","href":"/mk"},{"group":"Content","pages":[{"title":"Content","sidebarTitle":"Overview","href":"/mk/content/index"},{"title":"Getting started with Content","sidebarTitle":"Getting Started","href":"/mk/content/getting-started"},{"group":"Set up once","pages":[{"title":"Brand guidelines","sidebarTitle":"Brand Guidelines","href":"/mk/content/brand-guidelines"},{"title":"Component libraries","sidebarTitle":"Component Libraries","href":"/mk/content/component-libraries"},{"title":"Templates","sidebarTitle":"Templates","href":"/mk/content/templates"}]},{"group":"Visual assets","pages":[{"title":"Visual assets","sidebarTitle":"Overview","href":"/mk/content/visual-assets/index"},{"title":"Using an image in an email or page","sidebarTitle":"In an email or page","href":"/mk/content/visual-assets/using-an-image-in-an-email-or-page"},{"title":"Using an image you host elsewhere","sidebarTitle":"Images hosted elsewhere","href":"/mk/content/visual-assets/images-hosted-elsewhere"},{"title":"Visual assets FAQ","sidebarTitle":"FAQ","href":"/mk/content/visual-assets/faq"}]},{"title":"Hosted files","sidebarTitle":"Hosted Files","href":"/mk/content/hosted-files"},{"group":"Landing pages","pages":[{"title":"Landing pages","sidebarTitle":"Overview","href":"/mk/content/landing-pages/index"},{"title":"What a landing page is","sidebarTitle":"What a landing page is","href":"/mk/content/landing-pages/what-a-landing-page-is"},{"title":"Creating a landing page","sidebarTitle":"Creating a landing page","href":"/mk/content/landing-pages/creating-a-landing-page"},{"title":"Making a page from a template","sidebarTitle":"From a template","href":"/mk/content/landing-pages/making-a-page-from-a-template"},{"title":"Page components","sidebarTitle":"Page Components","href":"/mk/content/landing-pages/page-components"},{"title":"Editing a landing page's code","sidebarTitle":"Editing the code","href":"/mk/content/landing-pages/editing-the-code"},{"title":"Previewing a landing page","sidebarTitle":"Previewing","href":"/mk/content/landing-pages/previewing-a-landing-page"},{"title":"Checks before a page goes live","sidebarTitle":"Checks before publishing","href":"/mk/content/landing-pages/checks-before-publishing"},{"title":"Publishing a landing page","sidebarTitle":"Publishing and taking down","href":"/mk/content/landing-pages/publishing-a-landing-page"},{"title":"Showing different versions of a page","sidebarTitle":"Different versions","href":"/mk/content/landing-pages/testing-versions-of-a-page"},{"title":"Using a page you host elsewhere","sidebarTitle":"External pages","href":"/mk/content/landing-pages/using-an-external-page"},{"title":"Coming from Marketo or HubSpot: landing pages","sidebarTitle":"Coming from Marketo/HubSpot","href":"/mk/content/landing-pages/coming-from-marketo-hubspot"},{"title":"Landing page not showing or not saving?","sidebarTitle":"Troubleshooting","href":"/mk/content/landing-pages/troubleshooting"},{"title":"Landing pages FAQ","sidebarTitle":"FAQ","href":"/mk/content/landing-pages/faq"}]},{"group":"Email","pages":[{"title":"Email","sidebarTitle":"Overview","href":"/mk/content/email/index"},{"group":"Components","pages":[{"title":"Email components","sidebarTitle":"Overview","href":"/mk/content/email/components/index"},{"title":"Editing an email component","sidebarTitle":"Editing a component","href":"/mk/content/email/components/editing-an-email-component"},{"title":"Setting up and reviewing email components in allGood","sidebarTitle":"Setting up and reviewing","href":"/mk/content/email/components/setting-up-and-reviewing-email-components"},{"title":"What MJML is","sidebarTitle":"What MJML is","href":"/mk/content/email/components/what-mjml-is"}]},{"group":"Email templates","pages":[{"title":"Email templates","sidebarTitle":"Overview","href":"/mk/content/email/templates/index"},{"title":"What an email template is","sidebarTitle":"What a template is","href":"/mk/content/email/templates/what-an-email-template-is"},{"title":"Creating an email template","sidebarTitle":"Creating a template","href":"/mk/content/email/templates/creating-an-email-template"},{"title":"Decide what writers fill in","sidebarTitle":"What writers fill in","href":"/mk/content/email/templates/writing-the-copy-schema"},{"title":"Changing an email template","sidebarTitle":"Changing a template","href":"/mk/content/email/templates/changing-an-email-template"}]},{"group":"Emails","pages":[{"title":"Emails","sidebarTitle":"Overview","href":"/mk/content/email/emails/index"},{"title":"What an email is","sidebarTitle":"What an email is","href":"/mk/content/email/emails/what-an-email-is"},{"title":"Creating an email","sidebarTitle":"Creating an email","href":"/mk/content/email/emails/creating-an-email"},{"title":"Previewing and testing an email","sidebarTitle":"Previewing and testing","href":"/mk/content/email/emails/previewing-and-testing-an-email"},{"title":"Editing an email's code","sidebarTitle":"Editing the code","href":"/mk/content/email/emails/editing-the-code"},{"title":"Personalizing an email","sidebarTitle":"Personalizing","href":"/mk/content/email/emails/personalizing-an-email"},{"title":"Merge field reference","sidebarTitle":"Merge field reference","href":"/mk/content/email/emails/merge-field-reference"},{"title":"Show content conditionally and repeat a list","sidebarTitle":"Conditional content","href":"/mk/content/email/emails/conditional-content-and-lists"},{"title":"Liquid recipes for emails","sidebarTitle":"Liquid recipes","href":"/mk/content/email/emails/liquid-recipes"},{"title":"Before an email can send","sidebarTitle":"Before it can send","href":"/mk/content/email/emails/before-an-email-can-send"},{"title":"How unsubscribes work","sidebarTitle":"How unsubscribes work","href":"/mk/content/email/emails/how-unsubscribes-work"},{"title":"Email not sending or rendering wrong?","sidebarTitle":"Troubleshooting","href":"/mk/content/email/emails/troubleshooting"}]},{"title":"Email FAQ","sidebarTitle":"FAQ","href":"/mk/content/email/faq"},{"title":"Coming from Marketo or HubSpot: email","sidebarTitle":"Coming from Marketo or HubSpot","href":"/mk/content/email/coming-from-marketo-hubspot"}]},{"group":"Forms","pages":[{"title":"Forms","sidebarTitle":"Overview","href":"/mk/content/forms/index"},{"title":"What a form is","sidebarTitle":"What a form is","href":"/mk/content/forms/what-a-form-is"},{"title":"Creating a form","sidebarTitle":"Creating a form","href":"/mk/content/forms/creating-a-form"},{"title":"Testing a form","sidebarTitle":"Testing a form","href":"/mk/content/forms/testing-a-form"},{"title":"Adding a form to a page","sidebarTitle":"Adding a form to a page","href":"/mk/content/forms/adding-a-form-to-a-page"},{"title":"What protects a form","sidebarTitle":"What protects a form","href":"/mk/content/forms/what-protects-a-form"},{"title":"See how a form is performing","sidebarTitle":"Seeing performance","href":"/mk/content/forms/seeing-form-performance"},{"title":"Find where a form is used","sidebarTitle":"Finding where it's used","href":"/mk/content/forms/finding-where-a-form-is-used"},{"title":"Form not capturing submissions?","sidebarTitle":"Troubleshooting","href":"/mk/content/forms/troubleshooting"},{"title":"Forms FAQ","sidebarTitle":"FAQ","href":"/mk/content/forms/faq"},{"title":"Coming from Marketo or HubSpot: forms","sidebarTitle":"Coming from Marketo/HubSpot","href":"/mk/content/forms/coming-from-marketo-hubspot"}]},{"title":"Copy and variants","sidebarTitle":"Copy and Variants","href":"/mk/content/copy-and-variants"},{"title":"Publishing and versions","sidebarTitle":"Publishing and Versions","href":"/mk/content/approvals"},{"title":"Marketo to MK","icon":"arrow-right-left","href":"/mk/content/marketo-to-mk"}]},{"group":"Data Platform","pages":[{"title":"MK Data Platform","sidebarTitle":"Overview","href":"/mk/data/index"},{"title":"Data Sharing","sidebarTitle":"Data Sharing","href":"/mk/data/sharing"},{"title":"Data Architecture","href":"/mk/data/architecture"},{"title":"Orchestration","sidebarTitle":"Orchestration","href":"/mk/data/orchestration"}]},{"group":"Formulas","pages":[{"title":"Formulas in MK","sidebarTitle":"Overview","href":"/mk/formulas/index"},{"title":"What formulas are and when to use one","sidebarTitle":"What formulas are","href":"/mk/formulas/what-formulas-are"},{"title":"How formulas find your data","sidebarTitle":"How formulas find your data","href":"/mk/formulas/how-formulas-find-your-data"},{"title":"Filter a list with a formula","sidebarTitle":"Filter a list","href":"/mk/formulas/filter-a-list"},{"title":"Add a calculated column to a list","sidebarTitle":"Add a calculated column","href":"/mk/formulas/add-a-calculated-column"},{"title":"Handle blank and messy values in formulas","sidebarTitle":"Handle blank values","href":"/mk/formulas/handle-blank-values"},{"title":"Formula recipes","sidebarTitle":"Recipes","href":"/mk/formulas/recipes"},{"title":"Where you can use formulas in MK","sidebarTitle":"Where you can use formulas","href":"/mk/formulas/where-you-can-use-formulas"},{"title":"Formula reference: functions and operators","sidebarTitle":"Reference","href":"/mk/formulas/reference"},{"title":"Formula gives a blank, wrong, or error result","sidebarTitle":"Formula not working","href":"/mk/formulas/not-working"},{"title":"Formulas FAQ","sidebarTitle":"FAQ","href":"/mk/formulas/faq"},{"title":"Coming from Marketo: formulas in MK","sidebarTitle":"Coming from Marketo","href":"/mk/formulas/coming-from-marketo"}]},{"group":"Motions","pages":[{"title":"Motions","sidebarTitle":"Overview","href":"/mk/motions/index"},{"title":"What a motion is","sidebarTitle":"What a motion is","href":"/mk/motions/what-a-motion-is"},{"title":"Motion types","sidebarTitle":"Motion Types","href":"/mk/motions/motion-types"},{"title":"Gated content","sidebarTitle":"Gated Content","href":"/mk/motions/gated-content"},{"title":"Set up a gated content motion","sidebarTitle":"Set Up Gated Content","href":"/mk/motions/set-up-gated-content"},{"title":"Webinars","sidebarTitle":"Webinars","href":"/mk/motions/webinars"},{"title":"Set up a webinar motion","sidebarTitle":"Set Up a Webinar","href":"/mk/motions/set-up-webinar"},{"title":"Create and update a motion template","sidebarTitle":"Motion Templates","href":"/mk/motions/create-a-motion-template"},{"title":"Launching a motion","sidebarTitle":"Launching","href":"/mk/motions/launching"}]},{"group":"MK MCP","pages":[{"title":"MK MCP","sidebarTitle":"Overview","href":"/mk/mcp/index"},{"title":"Connect an AI assistant to allGood","sidebarTitle":"Connect an assistant","href":"/mk/mcp/connect"},{"title":"What you can ask the MK MCP to do","sidebarTitle":"What you can ask it to do","href":"/mk/mcp/what-you-can-do"},{"title":"Upload a list by chatting with Claude","sidebarTitle":"Upload a List in Claude","href":"/mk/mcp/upload-a-list-in-claude"},{"title":"Roll out the MK MCP to your team","sidebarTitle":"Roll it out to your team","href":"/mk/mcp/admin-rollout"}]},{"group":"Web Edge","pages":[{"title":"Add Web Edge to your website","sidebarTitle":"Overview","href":"/mk/developer/web-edge/index"},{"title":"Create a form","sidebarTitle":"Create a Form","href":"/mk/developer/web-edge/create-a-form"},{"title":"Install the tag","sidebarTitle":"Install the Tag","description":"The script tag itself — where it goes, what it does on load, and how to confirm it worked.","href":"/mk/developer/web-edge/install-the-tag"},{"title":"Install with Google Tag Manager","sidebarTitle":"Install with GTM","href":"/mk/developer/web-edge/install-with-gtm"},{"title":"Capture a form","sidebarTitle":"Capture a Form","description":"Point a form on your own website at allGood by adding one attribute to markup you already have.","href":"/mk/developer/web-edge/capture-a-form"},{"title":"Identify and track","sidebarTitle":"Identify and Track","href":"/mk/developer/web-edge/identify-and-track"},{"title":"Track custom events on your website","sidebarTitle":"Track Custom Events","href":"/mk/developer/web-edge/track-custom-events"},{"title":"What consent gates","sidebarTitle":"Consent Behavior","href":"/mk/developer/web-edge/consent-behavior"},{"title":"A complete example page","sidebarTitle":"Worked Example","href":"/mk/developer/web-edge/worked-example"},{"title":"Test your setup","sidebarTitle":"Test Your Setup","href":"/mk/developer/web-edge/test-your-setup"},{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","href":"/mk/developer/web-edge/troubleshooting"},{"title":"Coming from Marketo: Web Edge for developers","sidebarTitle":"Coming from Marketo","href":"/mk/developer/web-edge/from-marketo"}]}]},{"group":"Platform","pages":[{"group":"Integrations","pages":[{"title":"The Integrations screen","sidebarTitle":"Overview","href":"/mk/integrations/index"},{"title":"Add your Anthropic API key","sidebarTitle":"Anthropic","href":"/mk/integrations/anthropic"},{"title":"How allGood connects with your other marketing tools","href":"/mk/integrations/how-allgood-connects"},{"title":"Zoom and webinars","sidebarTitle":"Zoom and webinars","href":"/mk/integrations/zoom-webinars"},{"title":"Understanding incoming and outgoing webhooks","href":"/mk/integrations/webhooks"}]}]},{"group":"Developer","pages":[{"group":"Web Edge reference","pages":[{"title":"Form capture API","sidebarTitle":"Form Capture API","href":"/mk/developer/web-edge/reference/form-api"},{"title":"Event capture API","sidebarTitle":"Event Capture API","href":"/mk/developer/web-edge/reference/event-api"},{"title":"Endpoint reference","sidebarTitle":"Endpoints","href":"/mk/developer/web-edge/reference/endpoints"},{"title":"Reason codes","sidebarTitle":"Reason Codes","href":"/mk/developer/web-edge/reference/reason-codes"},{"title":"Settings reference","sidebarTitle":"Settings","href":"/mk/developer/web-edge/reference/settings"},{"title":"Glossary","sidebarTitle":"Glossary","href":"/mk/developer/web-edge/reference/glossary"}]},{"group":"Email components","pages":[{"title":"How MJML works","sidebarTitle":"How MJML works","href":"/mk/developer/email/how-mjml-works"},{"title":"Write an email component","sidebarTitle":"Writing components","href":"/mk/developer/email/how-to-write-email-components"},{"title":"Compare MJML with other email tools","sidebarTitle":"Compare MJML with other tools","href":"/mk/developer/email/compare-mjml-with-other-tools"},{"title":"Move your Marketo unsubscribes to allGood","sidebarTitle":"Move Marketo unsubscribes","href":"/mk/developer/email/move-your-marketo-unsubscribes"}]},{"group":"Landing pages","pages":[{"title":"Write a landing page by hand","sidebarTitle":"Write a page by hand","href":"/mk/developer/landing-pages/write-a-landing-page"},{"title":"Retire your Marketo landing page subdomain","sidebarTitle":"Retire Marketo landing pages","href":"/mk/developer/landing-pages/retire-marketo-landing-pages"}]},{"group":"API and Webhooks","pages":[{"title":"API and Webhooks","sidebarTitle":"Overview","href":"/mk/developer/api/index"}]}]},{"group":"Enterprise","pages":[{"title":"Enterprise","sidebarTitle":"Overview","href":"/mk/enterprise/index"},{"title":"MCP usage","sidebarTitle":"MCP Usage","href":"/mk/enterprise/mcp-usage"},{"title":"Data privacy","sidebarTitle":"Data Privacy","href":"/mk/enterprise/data-privacy"}]},{"group":"Settings","pages":[{"group":"Web Edge","pages":[{"title":"Web Edge","sidebarTitle":"Overview","href":"/mk/settings/web-edge/index"},{"title":"How Web Edge keeps your domain secure","sidebarTitle":"How it works","href":"/mk/settings/web-edge/how-it-works"},{"title":"Connect a subdomain","sidebarTitle":"Connect a subdomain","href":"/mk/settings/web-edge/connect-a-subdomain"},{"title":"Set your allowed origins","sidebarTitle":"Allowed origins","href":"/mk/settings/web-edge/allowed-origins"},{"title":"Connect your consent platform","sidebarTitle":"Consent provider","href":"/mk/settings/web-edge/consent-provider"},{"title":"Set up Web Tracking","sidebarTitle":"Web Tracking","href":"/mk/settings/web-edge/tracking-setup"},{"title":"Turn on bot protection for a form","sidebarTitle":"Bot protection","href":"/mk/settings/web-edge/bot-protection"},{"title":"Review your form processing settings","sidebarTitle":"Form processing","href":"/mk/settings/web-edge/form-processing"},{"title":"Manage your landing page settings","sidebarTitle":"Landing page settings","href":"/mk/settings/web-edge/landing-page-settings"},{"title":"Saved vs live at the edge","sidebarTitle":"Saved vs live","href":"/mk/settings/web-edge/edge-sync"},{"title":"Web Edge setup checklist","sidebarTitle":"Setup checklist","href":"/mk/settings/web-edge/setup-checklist"},{"title":"Coming from Marketo: Web Edge for admins","sidebarTitle":"Coming from Marketo","href":"/mk/settings/web-edge/coming-from-marketo"},{"title":"Web Edge FAQ","sidebarTitle":"FAQ","href":"/mk/settings/web-edge/faq"}]},{"group":"Email","pages":[{"title":"Set up an email domain","href":"/mk/settings/email/domains-setup"},{"title":"Web Edge domain vs. email domain","href":"/mk/settings/email/domains-vs-web-edge"},{"title":"Authenticate your sending domain: SPF, DKIM, DMARC, BIMI, and VMC","href":"/mk/settings/email/authentication"},{"title":"Your sending IP: shared pool or dedicated","href":"/mk/settings/email/sending-ip"},{"title":"Email deliverability","sidebarTitle":"Deliverability","href":"/mk/settings/email/deliverability"},{"title":"Set up your Subscription Center","sidebarTitle":"Subscription Center","href":"/mk/settings/email/subscription-center"},{"title":"Email Frequently Asked Questions","href":"/mk/settings/email/faq"}]}]}]}]},"basePath":"","title":"Install with Google Tag Manager - allGood Docs","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-D2acuaLg.js","DynamicMarkdown-Co5nikxh.js","zoom-image-lightbox-BbK2OBGL.js","lightbox-handle-r17bVUz3.js"]}