{"id":1515,"date":"2024-10-02T09:53:00","date_gmt":"2024-10-02T07:53:00","guid":{"rendered":"https:\/\/www.sabatka.net\/cs\/?p=1515"},"modified":"2026-10-12T11:52:11","modified_gmt":"2026-10-12T09:52:11","slug":"what-is-google-tag-manager","status":"publish","type":"post","link":"https:\/\/www.sabatka.net\/en\/what-is-google-tag-manager\/","title":{"rendered":"What Is Google Tag Manager and Why You Want It on Your Website"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You&#8217;ve just been given access to Google Tag Manager, or someone recommended it to you, and you&#8217;re not sure what to do with it. Let&#8217;s start from the beginning: what is Google Tag Manager, why companies put it on their websites, and what you need to remember before you start clicking around.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Google Tag Manager<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Google Tag Manager (GTM) is a free tool that runs measurement and advertising code on your website.<\/strong> Google describes it as a <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6102821\" target=\"_blank\" rel=\"noopener\">tag management system that lets you configure and manage tags on your website without editing its code<\/a>. So what is GTM for? You manage all your measurement and advertising code in one place instead of one piece at a time in the site&#8217;s source.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button scroll_to_subscribe\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.sabatka.net\/en\/kontakt\/\">Contact me<\/a><\/div>\n\n\n\n<div class=\"wp-block-button linkedinShare\"><a class=\"wp-block-button__link wp-element-button\">Share on LinkedIN<\/a><\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">A tag is a small piece of code that does one thing. For example, it tells Google Analytics 4 (GA4) that a page was viewed. Or it tells an ad network that someone made a purchase. Without GTM, every such tag would have to be written directly into the website&#8217;s code. With GTM, the site&#8217;s code contains GTM and a data layer (more on that in a moment), and everything else is set up in GTM&#8217;s interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GTM is not new. Google launched it on <a href=\"https:\/\/agency.googleblog.com\/2012\/10\/digital-marketing-made-much-easier.html\" target=\"_blank\" rel=\"noopener\">October 1, 2012<\/a>, and according to <a href=\"https:\/\/w3techs.com\/technologies\/overview\/tag_manager\" target=\"_blank\" rel=\"noopener\">W3Techs<\/a> it runs on 45.1% of all websites as of October 9, 2026. That&#8217;s a third-party estimate, but the order of magnitude is right: you&#8217;ll run into it almost everywhere.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why do we need GTM when code can go straight into the HTML<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Picture a mail envelope. A developer puts it on the website once, and it&#8217;s sent to every visitor along with the page content. What goes into the envelope is then up to the analyst or marketer: GA4 measurement, a social media pixel, ad scripts. Nobody has to reopen the site&#8217;s code for that.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s what it looks like without the envelope.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I had a client, an e-shop, where the developers spent a week implementing GA4 including events. The next week it was Meta Pixel (formerly Facebook Pixel). The week after that, another platform. Every tool meant another round of developer work: brief, development, testing, deployment. And until deployment, the measurement simply waited.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">With GTM it&#8217;s different. Developers deploy GTM once. Most further scripts are then added to the site by whoever owns the measurement, through the GTM interface. A new tool stops being a week-long development project and becomes a change in settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tracking a new button, tweaking an event, or swapping an ad account ID is, in the site&#8217;s code, yet another task for busy developers. In GTM it&#8217;s usually a simple edit that you can test before it goes live.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GTM, GA4 and Google tag: who does what<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is where beginners get tangled most often, so briefly.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>GTM measures nothing by itself.<\/strong> It&#8217;s the envelope that other measurement tools sit in.<\/li>\n\n\n\n<li><strong>GA4 measures.<\/strong> It collects data about visitors and shows it in reports.<\/li>\n\n\n\n<li><strong>Google tag<\/strong> is a single piece of code from Google for GA4 and other Google products. On the site it&#8217;s delivered by the gtag.js library. If you put it directly into the site, every change means editing code. In GTM, the Google tag is just one tag type, so you configure it in the interface. Google itself <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/7582054\" target=\"_blank\" rel=\"noopener\">recommends GTM<\/a>, because it lets you deploy and change Google and third-party tags without touching the site&#8217;s code.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Example: a website has GA4, Google Ads and a social media pixel. GTM is what brings those three things onto the site. GA4 is what actually counts the visitors. Google Tag Manager vs Google Analytics, then, isn&#8217;t an either-or choice: they do different jobs and usually work together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Do you need Google Tag Manager if you only have GA4? Not necessarily. But with every additional tool it becomes more useful.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How GTM gets onto the website and what the data layer is<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Developers install GTM on the site. From your GTM account you get <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/14847097\" target=\"_blank\" rel=\"noopener\">two snippets of code<\/a>: one goes as high as possible in the page&#8217;s head, the other right after the opening <code>&lt;body&gt;<\/code> element. The second one is a fallback for browsers without JavaScript, and you don&#8217;t strictly have to deploy it. It does come in handy if you want to <a href=\"https:\/\/support.google.com\/webmasters\/answer\/9008080\" target=\"_blank\" rel=\"noopener\">verify the site in Google Search Console via GTM<\/a>: Search Console looks for it right after <code>&lt;body&gt;<\/code>, so verification passes without any further change to the code (it works for URL-prefix properties, not domain properties). Usually the whole thing means a single edit in the site&#8217;s template. After that, GTM just waits for whatever you put into it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The data layer: a channel between the website and GTM<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tags often need data that GTM can&#8217;t see on the page by itself. For example, the contents of a cart, an order value or an order ID. This information is passed to GTM by the <strong>data layer (dataLayer, as developers call it)<\/strong>: a place where the website stores information and GTM picks it up. Technically it&#8217;s <a href=\"https:\/\/developers.google.com\/tag-platform\/tag-manager\/datalayer\" target=\"_blank\" rel=\"noopener\">a JavaScript array (a list)<\/a> to which the website keeps adding messages with information for tags.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Developers fill it. That matters, because you&#8217;ll sometimes hear that with GTM you don&#8217;t need a developer. You do. Neither GTM nor the data layer works without them: developers put GTM on the site and populate the data layer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When do you need a data layer?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A simple website<\/strong> (business card site, blog): often not at all. GTM gets by with what it can see on the page, such as the page URL or a click on a link. For developers that usually means just copying and pasting the GTM code and deploying it.<\/li>\n\n\n\n<li><strong>An e-shop:<\/strong> essential. You can&#8217;t reliably read the order value or the cart contents from how the page looks. The website has to hand them over. For developers that can mean several days of development.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The amount of developer work varies a lot. Passing just the order value into the data layer is a small change. Full e-commerce events (product view, cart, payment) take much longer. An experienced analyst can help you decide what level of effort fits your project and your situation, so nobody builds something that never gets used. For advanced readers, I cover working with the data layer <a href=\"https:\/\/www.sabatka.net\/en\/datalayer-and-recursive-merge\/\">in a separate article<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What GTM can do (and what it can&#8217;t)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It can:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Fire Google tags (GA4, Google Ads) and third-party tags (ad networks, price comparison sites).<\/li>\n\n\n\n<li>Use templates. A template is a ready-made tag where you only fill in your details. For the Czech market I wrote a <a href=\"https:\/\/www.sabatka.net\/en\/seznam-sem-gtm-template\/\">template for Sklik (Seznam SEM)<\/a>, the PPC network run by Seznam, a major Czech search engine and portal, and a <a href=\"https:\/\/www.sabatka.net\/en\/gtm-template-heureka-cz-and-sk\/\">template for Heureka<\/a>, a popular price comparison service in Czechia and Slovakia. Third-party templates exist for many other services too.<\/li>\n\n\n\n<li>React to clicks, form submissions or page views.<\/li>\n\n\n\n<li>Define which tags must respect a visitor&#8217;s consent. <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/10718549\" target=\"_blank\" rel=\"noopener\">Google has a dedicated consent setting in GTM for this<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>It can&#8217;t:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Measure by itself.<\/strong> GA4, Meta and Sklik measure. GTM fires them.<\/li>\n\n\n\n<li><strong>Solve GDPR.<\/strong> You first have to obtain consent from the visitor, and that&#8217;s the job of a cookie banner (a CMP, consent management platform). GTM then simply respects it. It doesn&#8217;t obtain consent for you and doesn&#8217;t replace it. Typical mistakes are covered in the article on the <a href=\"https:\/\/www.sabatka.net\/en\/5-most-common-bugs-in-cookie-bar-configuration\/\">most common bugs in cookie banner configuration<\/a> and in the one on the <a href=\"https:\/\/www.sabatka.net\/en\/gtm-gdpr-conflict\/\">conflict between GTM and GDPR<\/a>.<\/li>\n\n\n\n<li><strong>Replace developers.<\/strong> See the data layer above.<\/li>\n\n\n\n<li><strong>Speed up your site.<\/strong> It can slow it down. The container (a set of tags for your site, see Core concepts below) loads asynchronously, but a larger container, meaning more tags, is linked to worse page responsiveness. According to <a href=\"https:\/\/web.dev\/articles\/tag-best-practices\" target=\"_blank\" rel=\"noopener\">web.dev<\/a>, the impact varies from case to case and depends on the type of tag too. More in the article on the <a href=\"https:\/\/www.sabatka.net\/en\/gtm-page-speed-impact\/\">impact of GTM on page speed<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Core concepts<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Five concepts that everything else is built on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Account:<\/strong> the top level, usually one company. Example: the account &#8220;My Company Ltd.&#8221;.<\/li>\n\n\n\n<li><strong>Container:<\/strong> <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/14842164\" target=\"_blank\" rel=\"noopener\">a set of tags, triggers and variables for one website or app<\/a>. Google recommends one container per website or app. The code you put on the site is the code of this container.<\/li>\n\n\n\n<li><strong>Tag:<\/strong> code that does something. Example: sending a &#8220;purchase&#8221; event to GA4.<\/li>\n\n\n\n<li><strong>Trigger:<\/strong> says when a tag fires. Example: when a visitor opens the order confirmation page.<\/li>\n\n\n\n<li><strong>Variable:<\/strong> a value that a tag or trigger needs. Example: the page URL, or the order value from the data layer.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Put together: <em>when<\/em> (trigger) <em>this<\/em> happens, <em>do<\/em> (tag) <em>that<\/em>, with <em>these values<\/em> (variables).<\/p>\n\n\n\n<div class=\"wp-block-columns lab-note is-layout-flex wp-container-core-columns-is-layout-794e3cfa wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"1024\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know.png\" alt=\"V\u011bd\u011bli jste? \u2014 informa\u010dn\u00ed panel\" class=\"wp-image-936 lazyload\" data-srcset=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know.png 1024w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know-300x300.png 300w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know-150x150.png 150w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/04\/null-did-you-know-768x768.png 768w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/1024;\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h3 class=\"wp-block-heading\"><strong><strong>Lab note<\/strong><\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A trigger in GTM behaves like <a href=\"https:\/\/en.wikipedia.org\/wiki\/Maxwell%27s_demon\" target=\"_blank\" rel=\"noopener\">Maxwell&#8217;s demon<\/a> at the door between two chambers: for every tag it decides whether it gets through. The only difference is that the demon sorted molecules by speed, whereas a trigger sorts tags by when and where they should fire. A badly configured demon lets in what should have stayed out.<\/p>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\">How you work in GTM<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">GTM has a point-and-click interface where you set up tags, triggers and variables. You mostly don&#8217;t need to write code: you pick the tag type from a list and fill in the details in a form.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"506\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/10\/google-tag-manager-interface-1024x506.png\" alt=\"\" class=\"wp-image-1518 lazyload\" data-srcset=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/10\/google-tag-manager-interface-1024x506.png 1024w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/10\/google-tag-manager-interface-300x148.png 300w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/10\/google-tag-manager-interface-768x380.png 768w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/10\/google-tag-manager-interface.png 1200w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/506;\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">At the top you switch between three tabs: <strong>Workspace<\/strong> (where everything is configured), <strong>Versions<\/strong> (the container&#8217;s history) and <strong>Admin<\/strong> (users, permissions and container settings). In the workspace&#8217;s left-hand menu you&#8217;ll find:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Overview:<\/strong> what&#8217;s in progress in the workspace and not yet live.<\/li>\n\n\n\n<li><strong>Tags, Triggers, Variables:<\/strong> lists of your tags, triggers and variables.<\/li>\n\n\n\n<li><strong>Folders:<\/strong> for sorting things once tags start piling up.<\/li>\n\n\n\n<li><strong>Templates:<\/strong> tag and variable templates, such as the Sklik and Heureka ones mentioned above.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Setting up one tag then looks like this:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In the Tags section, click <strong>New<\/strong>.<\/li>\n\n\n\n<li>Choose the tag type, for example a GA4 event, and fill in the details, such as the event name.<\/li>\n\n\n\n<li>Below that, pick a trigger, meaning when the tag should fire, for example after a form is submitted.<\/li>\n\n\n\n<li>Save. The tag is now in the workspace, but not yet on the site. The next section explains how it gets there.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Variables come in two kinds. <strong>Built-In Variables<\/strong> (page URL, clicked element and others) you just switch on. <strong>User-Defined Variables<\/strong> you create yourself, for example for the order value from the data layer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How a change gets onto the website<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No change in GTM goes live right away. It goes through four steps. The fifth point isn&#8217;t a step but an emergency brake, in case something goes wrong.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Workspace.<\/strong> This is where you prepare changes. On the free plan there can be <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/7059647\" target=\"_blank\" rel=\"noopener\">at most three at a time<\/a>, so you can work on several things in parallel without overwriting a colleague. If you can&#8217;t find the workspace switcher in the new GTM interface, <a href=\"https:\/\/www.sabatka.net\/en\/gtm-workspace-switcher-missing\/\">I explain where it went<\/a>.<\/li>\n\n\n\n<li><strong>Preview.<\/strong> You open the site <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6107056\" target=\"_blank\" rel=\"noopener\">as if the changes were already deployed<\/a>, but only you can see them (and anyone you send the preview to). This is where you find out whether a tag fires where it should.<\/li>\n\n\n\n<li><strong>Version.<\/strong> A version is created <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6107163\" target=\"_blank\" rel=\"noopener\">only when you submit your changes<\/a>, not with every edit. It&#8217;s a frozen state of the container.<\/li>\n\n\n\n<li><strong>Publish.<\/strong> Only now does the version go live on the site. In the interface, creating a version and publishing it are done in one dialog.<\/li>\n\n\n\n<li><strong>Rolling back to a previous version.<\/strong> If a published version turns out badly, you go back to the previous one and the site keeps running as before.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">A practical tip: always go through preview before you publish. A mistake in a workspace takes minutes to fix. A mistake that has been sending bad data to GA4 for weeks can&#8217;t be repaired retroactively: GA4 doesn&#8217;t reprocess data it has already processed, and what wasn&#8217;t sent can&#8217;t be filled in.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Who should get Publish permission<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The envelope has a flip side. Whatever goes into it reaches every visitor of the site, and that holds for any script. Whoever has <strong>Publish<\/strong> permission can put anything in.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are four <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6107011\" target=\"_blank\" rel=\"noopener\">container access levels<\/a> (besides No access):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Read:<\/strong> can see the setup, changes nothing.<\/li>\n\n\n\n<li><strong>Edit:<\/strong> prepares changes in workspaces, but doesn&#8217;t publish.<\/li>\n\n\n\n<li><strong>Approve:<\/strong> also creates versions, but doesn&#8217;t publish. (The approval workflow itself exists only in the paid GTM 360.)<\/li>\n\n\n\n<li><strong>Publish:<\/strong> can do everything, including pushing to the live site.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Give Publish only to people who truly need it. Being an agency contractor, a temp or a former colleague is no reason to hand it over. Access should go to whoever really needs it, and only for as long as they need it. Attacks, real-world examples and concrete recommendations are in my article on <a href=\"https:\/\/www.sabatka.net\/en\/gtm-security-risks\/\">Google Tag Manager security risks<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Watch the account-level role too. An account Administrator manages users and their permissions, so they can grant themselves Publish. The Administrator role is therefore just as sensitive as Publish.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently asked questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Is Google Tag Manager free?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Both GTM and the Google tag are <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/7582054\" target=\"_blank\" rel=\"noopener\">free<\/a>. The paid variant, GTM 360, is aimed at large companies.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Do I need Google Tag Manager if I have GA4?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Not necessarily. GA4 works fine with the Google tag placed directly on the site. GTM pays off once you want more tools or more events and don&#8217;t want to hand every change to developers.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Does GTM slow down my website?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The container loads asynchronously, so the mere fact that a site uses it doesn&#8217;t block the page. But a larger container, meaning more tags, is linked to worse responsiveness (INP, which is how quickly a page reacts to a click), and different kinds of tags weigh on a site differently. That&#8217;s why it pays to remove tags you don&#8217;t need. More in the article on the <a href=\"https:\/\/www.sabatka.net\/en\/gtm-page-speed-impact\/\">impact of GTM on page speed<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s also server-side GTM, which moves part of the work out of the visitor&#8217;s browser, as I describe in the article on <a href=\"https:\/\/www.sabatka.net\/en\/server-side-tracking-sgtm\/\">server-side tracking and sGTM<\/a>. It is, however, a separate project with its own server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Is GTM GDPR compliant?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The tool alone doesn&#8217;t guarantee compliance. Compliance comes from a properly configured cookie banner (CMP) and tags that respect consent. GTM helps you set all of that up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Under a strict reading of GDPR (in Germany, for example), though, using GTM itself can be a problem, because visitors&#8217; IP addresses and other network identifiers are transferred to Google&#8217;s servers. More on the <a href=\"https:\/\/www.sabatka.net\/en\/gtm-gdpr-conflict\/\">conflict between GTM and GDPR<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is GTM 360?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The paid variant for large organizations. It adds unlimited workspaces, an approval workflow and contractual support. Pricing is on request, and you can find a comparison on <a href=\"https:\/\/marketingplatform.google.com\/about\/tag-manager\/compare\/\" target=\"_blank\" rel=\"noopener\">Google&#8217;s page<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to get started with GTM<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The basic way to get started with Google Tag Manager has four steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Create an account and a container<\/strong> at <a href=\"https:\/\/tagmanager.google.com\" target=\"_blank\" rel=\"noopener\">tagmanager.google.com<\/a>. Choose &#8220;Web&#8221; as the container type. The procedure is in the <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/14842164\" target=\"_blank\" rel=\"noopener\">official help<\/a>.<\/li>\n\n\n\n<li><strong>Hand the container code to your developers.<\/strong> You get it right after creating the container. The <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/14847097\" target=\"_blank\" rel=\"noopener\">first snippet<\/a> is required, the second is optional (see above).<\/li>\n\n\n\n<li><strong>Create your first tag<\/strong>, for example GA4 measurement, and try it out in preview.<\/li>\n\n\n\n<li><strong>Publish<\/strong> only once preview confirms the tag works.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Until you publish something, nothing changes on the live site.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Getting started with GTM and want to know what&#8217;s next? Once in a while I send a short email with what I&#8217;ve learned working with GTM and GA4. <\/p>\n\n\n\n<div class=\"wp-block-buttons blog-cta is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button scroll_to_subscribe\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.sabatka.net\/en\/kontakt\/\">Contact me<\/a><\/div>\n\n\n\n<div class=\"wp-block-button linkedinShare\"><a class=\"wp-block-button__link wp-element-button\">Share on LinkedIN<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ve just been given access to Google Tag Manager, or someone recommended it to you, and you&#8217;re not sure what to do with it. Let&#8217;s start from the beginning: what is Google Tag Manager, why companies put it on their websites, and what you need to remember before you start clicking around. What is Google [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1578,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,10],"tags":[],"class_list":["post-1515","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-digital-analytics","category-google-tag-manager-gtm"],"_links":{"self":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/1515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/comments?post=1515"}],"version-history":[{"count":15,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/1515\/revisions"}],"predecessor-version":[{"id":1577,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/1515\/revisions\/1577"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/media\/1578"}],"wp:attachment":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/media?parent=1515"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/categories?post=1515"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/tags?post=1515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}