{"id":173047,"date":"2025-04-06T05:42:51","date_gmt":"2025-04-06T05:42:51","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/google-tag-manager-playing-by-the-rules\/"},"modified":"2025-04-06T05:42:51","modified_gmt":"2025-04-06T05:42:51","slug":"google-tag-manager-playing-by-the-rules","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=173047","title":{"rendered":"Google Tag Manager: Playing By The Rules"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p><em>There is a new version of this guide for GTM V2 <a href=\"https:\/\/www.simoahava.com\/analytics\/trigger-guide-google-tag-manager\/\">here<\/a>.<\/em><\/p>\n<p>(Last updated April 2014) I see Google Tag Manager\u2019s operational model as an analogy of Montesquieu\u2019s three-branched government theory (don\u2019t leave just yet, I\u2019m getting somewhere with this). We have the <em>legislative<\/em> power of <strong>tags<\/strong> (what should be done), the <em>judiciary<\/em> power of <strong>macros<\/strong> (explore the context and circumstance of each tag), and the <em>executive<\/em> power of <strong>rules<\/strong> (make the tag happen). Not one of these would work without the others, so checks and balances are in place as well.<\/p>\n<p>Google\u2019s own documentation on <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/2644396?hl=en\">firing and blocking rules<\/a> is pretty clear and comprehensive, but as always, I think it could be better.<\/p>\n<p>So here are a couple of refreshers for you concerning Google Tag Manager rules, and some special cases which have caused headaches for many.<\/p>\n<p>                <span class=\"simmer\"><br \/>\n  <span class=\"close\">X<\/span><\/p>\n<p>\n    <span class=\"fa fa-md fa-bell\"\/><br \/>\n    <strong>The Simmer Newsletter<\/strong>\n  <\/p>\n<p>\n    Subscribe to the <a href=\"https:\/\/www.simoahava.com\/newsletter\/\">Simmer newsletter<\/a> to get the latest news and content from Simo Ahava into your email inbox!\n  <\/p>\n<p>  <\/span><\/p>\n<h2 id=\"rules-and-conditions\">Rules and conditions<\/h2>\n<p>You can have <strong>many rules<\/strong> on a single tag, and your single rule can have <strong>many conditions<\/strong>. The difference between these is that if your tag has multiple rules attached to it, they operate in an <em>either-or<\/em> relationship, so it\u2019s enough <strong>if just one of the rules is met<\/strong> for the tag to fire.<\/p>\n<p><strong>Note!<\/strong> If you have multiple rules, operating in an either-or-relationship, your tag can fire multiple times, if all the rules match at different times. So if you have the following rules on your tag: <strong>{{event}} equals gtm.js<\/strong> OR <strong>{{event}} equals gtm.dom<\/strong> OR <strong>{{event}} equals gtm.dom<\/strong>, your tag will fire THREE times per page, when each of these events occur in the GTM loading process.<\/p>\n<div style=\"aspect-ratio: 334 \/ 160;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/03\/tag-multiple.jpg\" title=\"Tag firing multiple times\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"160\" width=\"334\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/03\/tag-multiple.jpg#ZgotmplZ\" alt=\"Tag firing multiple times\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>However, if your rule has multiple <em>conditions<\/em>, <strong>all<\/strong> of these conditions must be met at the same time for the tag to fire.<\/p>\n<p>Allow me to illustrate.<\/p>\n<p>Let\u2019s say you have a tag that you only want to fire on your Thank you page, and you want to make sure that the entire DOM has loaded first. Maybe you have some custom variables that you want to pass along, and they\u2019re written on the bottom of the page template.<\/p>\n<p>Here\u2019s how <strong>not<\/strong> to do it:<\/p>\n<div style=\"aspect-ratio: 928 \/ 261;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/03\/two-rules.jpg\" title=\"Two rules firing on a tag\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"261\" width=\"928\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/03\/two-rules.jpg#ZgotmplZ\" alt=\"Two rules firing on a tag\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In this example, you have <strong>two different firing rules<\/strong> set on the tag. The thing is, if you have multiple rules on a tag, <strong>it\u2019s enough if just one of them checks out<\/strong>. The other doesn\u2019t need to. So in this case, your tag will actually fire on every single page, because every page that has the GTM container snippet will also push the event <em>gtm.dom<\/em> into the data layer to signify that the DOM has loaded.<\/p>\n<p>Here\u2019s how you should do it:<\/p>\n<div style=\"aspect-ratio: 746 \/ 331;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/03\/two-conditions.jpg\" title=\"Two conditions on the rule\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"331\" width=\"746\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/03\/two-conditions.jpg#ZgotmplZ\" alt=\"Two conditions on the rule\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>So here you have just <strong>one rule<\/strong> with <strong>two conditions<\/strong>. The difference is huge: when you have conditions on a rule, <em>every single one of these conditions<\/em> must be met for the rule to work.<\/p>\n<p><strong>KEY TAKEAWAYS<\/strong>:<\/p>\n<ul>\n<li>\n<p>If you have multiple rules, it\u2019s enough that just one of them is met for the tag to fire<\/p>\n<\/li>\n<li>\n<p>If you have multiple rules, the tag can fire on each one, so be careful<\/p>\n<\/li>\n<li>\n<p>If you have multiple conditions in a single rule, all conditions must be fulfilled for the rule to work<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"url-and-event\">{{url}} and {{event}}<\/h2>\n<p>There are two easy ways to make a tag fire as soon as possible. Either<\/p>\n<p><strong>{{url}} matches regex .<\/strong>*<\/p>\n<p>or<\/p>\n<p><strong>{{event}} equals gtm.js<\/strong><\/p>\n<p>You see, the earliest possible moment that you can query for either of these two rules is when the container is setup and macros are enabled.<\/p>\n<p>The reason these two rules do the same thing is that GTM implicitly adds the rule <strong>{{event}} equals gtm.js<\/strong> to <em>every rule that doesn\u2019t check the {{event}} macro<\/em>. This is because if there is no event evaluated, a rule such as <strong>{{url}} matches regex .<\/strong>* would fire every single time an event is pushed into the data layer. Due to this implicit behavior, a rule like **{{url}} matches regex .*** has actually two conditions, one which is \u201chidden\u201d: **{{url}} matches regex .*** AND **{{event}} equals gtm.js**. (Thanks <a href=\"https:\/\/plus.google.com\/+BrianKuhn\">Brian Kuhn<\/a> for this detail).<\/p>\n<p>Another thing to observe is that<\/p>\n<p><strong>{{event}} can only be one thing at a time<\/strong>.<\/p>\n<p>This is really important. So let\u2019s say you want to fire a tag after the DOM has loaded AND after the event \u201creadyToFire\u201d has been pushed to the data layer. The first thing you\u2019d probably try is a single rule with the following two conditions:<\/p>\n<p><strong>{{event}} equals gtm.dom<br \/>{{event}} equals readyToFire<\/strong><\/p>\n<p>The problem here is that {{event}} is a data layer variable, and you can\u2019t have a variable with multiple values at any given time (unless it\u2019s an array, which {{event}} is not).<\/p>\n<p>If you <strong>really<\/strong> must wait for gtm.dom first, you\u2019ll need to make sure that the code which pushes \u201creadyToFire\u201d into the data layer is run after <strong>{{event}} equals gtm.dom<\/strong>. This way you\u2019ll just need to add the rule <strong>{{event}} equals readyToFire<\/strong> in your tag, since it\u2019s already run after the DOM has loaded.<\/p>\n<p><strong>KEY TAKEAWAYS<\/strong>:<\/p>\n<ul>\n<li>\n<p>If your rule doesn\u2019t check the {{event}} macro, GTM implicitly adds the condition <strong>{{event}} equals gtm.js<\/strong> to the rule<\/p>\n<\/li>\n<li>\n<p>This is why <strong>{{url}} matches regex .<\/strong>* and **{{event}} equals gtm.js** are pretty much the same thing<\/p>\n<\/li>\n<li>\n<p>{{event}} can only ever be one thing at any given time<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"load-order-of-gtm-events\">Load order of GTM events<\/h2>\n<p>This is run-of-the-mill stuff, but good to reiterate. When the GTM container is loaded, during the process three different events are pushed into the data layer, which you can use as triggers for your tags. The order is:<\/p>\n<p><em>{{event}} equals\u2026<\/em><br \/>\u2026<strong>gtm.js<\/strong>\u2026 &gt; \u2026<strong>gtm.dom<\/strong>\u2026 &gt; \u2026<strong>gtm.load<\/strong><\/p>\n<p>Here\u2019s how they look (in order) in the data layer:<\/p>\n<div style=\"aspect-ratio: 536 \/ 76;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/03\/gtm-rules.jpg\" title=\"GTM events in the data layer\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"76\" width=\"536\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/03\/gtm-rules.jpg#ZgotmplZ\" alt=\"GTM events in the data layer\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>If you want your tags to fire on the earliest possible moment, use either <strong>{{event}} equals gtm.js<\/strong> or <strong>{{url}} matches regex .<\/strong>*.<\/p>\n<p>If you want your tags to fire after the DOM has loaded, for example if you know you have important variables processed at the very bottom of your page template, use <strong>{{event}} equals gtm.dom<\/strong>.<\/p>\n<p>If you want to wait for the window to load, meaning all initial requests have to be processed first, use <strong>{{event}} equals gtm.load<\/strong>.<\/p>\n<p>Note! I strongly recommend against leaving any critical tags to wait for <strong>gtm.load<\/strong>, since any hitches or timeouts in loading your page might lead to the tag never firing.<\/p>\n<p><strong>KEY TAKEAWAYS<\/strong>:<\/p>\n<ul>\n<li>\n<p>The automatically created GTM events are, in order, gtm.js &gt; gtm.dom &gt; gtm.load<\/p>\n<\/li>\n<li>\n<p>Use them to align your tags with their dependencies in the DOM or in external assets<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"firing-and-blocking-rules\">Firing and blocking rules<\/h2>\n<p>In GTM, you can have two kinds of rules: <strong>firing rules<\/strong>, which are required for a tag to fire, and <strong>blocking rules<\/strong> which can be used to signify when a tag must not fire.<\/p>\n<p>Blocking rules take precedence, so if you have competing conditions, the blocking rule will always win.<\/p>\n<p>For example, in the very first chapter of this tutorial, we had a tag which only fires on the Thank You page. Now let\u2019s say I want to exclude the Thank You page from the normal tracking tag, so that double hits are not recorded. I\u2019ll have to add the following blocking rule to the tracking tag:<\/p>\n<p><strong>{{url}} contains thankyou.html<\/strong><\/p>\n<p>This means that even though the tracking tag has a <em>firing rule<\/em> of <strong>{{url}} matches regex .<\/strong>*, it will not fire on the Thank You page, because the blocking rule denies it when <strong>{{url}} contains thankyou.html<\/strong>.<\/p>\n<div style=\"aspect-ratio: 863 \/ 259;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/03\/blocking-rule.jpg\" title=\"Blocking Rule takes precedence\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"259\" width=\"863\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/03\/blocking-rule.jpg#ZgotmplZ\" alt=\"Blocking Rule takes precedence\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Blocking rules are an excellent way to reduce clutter in your tags. With a blocking rule, you won\u2019t need complicated firing rules, macros or multiple tags to enact a simple <em>IF x THEN y EXCEPT z<\/em> scenario.<\/p>\n<p><strong>KEY TAKEAWAYS<\/strong><\/p>\n<ul>\n<li>\n<p>Firing rules tell the tag when to fire, blocking rules tell the tag when not to fire<\/p>\n<\/li>\n<li>\n<p>If there is a conflict, the blocking rule will always win<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"some-useful-rules\">Some useful rules<\/h2>\n<p>Here\u2019s a bunch of rules which might come in handy during your work with GTM.<\/p>\n<ol>\n<li>\n<p><strong>{{url}} matches regex .<\/strong>* &#8211; Fire tag on all pages at the earliest possible moment<\/p>\n<\/li>\n<li>\n<p><strong>{{event}} equals gtm.js<\/strong> &#8211; Fire tag at the earliest possible moment<\/p>\n<\/li>\n<li>\n<p><strong>{{event}} equals gtm.dom<\/strong> &#8211; Fire tag after the DOM has loaded<\/p>\n<\/li>\n<li>\n<p><strong>{{event}} equals gtm.load<\/strong> &#8211; Fire tag after the page has loaded<\/p>\n<\/li>\n<li>\n<p><strong>{{event}} equals gtm.click<\/strong> &#8211; Fire tag when a GTM Click Listener records a click<\/p>\n<\/li>\n<li>\n<p><strong>{{event}} equals gtm.linkClick<\/strong> &#8211; Fire tag when a GTM Link Click Listener records a link click<\/p>\n<\/li>\n<li>\n<p><strong>{{event}} equals gtm.formSubmit<\/strong> &#8211; Fire tag when a GTM Form Submit Listener records a form submission<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"conclusions\">Conclusions<\/h2>\n<p>Google Tag Manager rules are just as important as tags and macros in making your tag setup work. The problem is that rules can get really complicated really soon. When this happens, it\u2019s really important to understand things like loading order, GTM events, firing and blocking rules, and so forth.<\/p>\n<p>The thing about rules is that you need a good understanding of macros as well, since rules evaluate macro values on runtime. If you need a refresher on macros, don\u2019t forget to check <a href=\"https:\/\/www.simoahava.com\/analytics\/macro-guide-google-tag-manager\/\">my macro guide<\/a>.<\/p>\n<p>Do you have any other examples of trouble you\u2019ve had with rules? Or have you come up with ingenious ways to use firing and blocking rules to simplify your tag setup?<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>There is a new version of this guide for GTM V2 here. (Last updated April 2014) I see Google Tag Manager\u2019s operational model as an analogy of Montesquieu\u2019s three-branched government theory (don\u2019t leave just yet, I\u2019m getting somewhere with this). We have the legislative power of tags (what should be done), the judiciary power of [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":173048,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[1531,14495,2971,11149,1791],"dealstore":[],"offerexpiration":[],"class_list":["post-173047","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-google","tag-manager","tag-playing","tag-rules","tag-tag"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Google Tag Manager: Playing By The Rules - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=173047\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Google Tag Manager: Playing By The Rules - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"There is a new version of this guide for GTM V2 here. (Last updated April 2014) I see Google Tag Manager\u2019s operational model as an analogy of Montesquieu\u2019s three-branched government theory (don\u2019t leave just yet, I\u2019m getting somewhere with this). We have the legislative power of tags (what should be done), the judiciary power of [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=173047\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-06T05:42:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"334\" \/>\n\t<meta property=\"og:image:height\" content=\"160\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=173047#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=173047\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Google Tag Manager: Playing By The Rules\",\"datePublished\":\"2025-04-06T05:42:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=173047\"},\"wordCount\":1590,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=173047#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg\",\"keywords\":[\"Google\",\"Manager\",\"Playing\",\"Rules\",\"TAG\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=173047#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=173047\",\"url\":\"https:\/\/fivemor.com\/?p=173047\",\"name\":\"Google Tag Manager: Playing By The Rules - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=173047#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=173047#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg\",\"datePublished\":\"2025-04-06T05:42:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=173047#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=173047\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=173047#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg\",\"width\":334,\"height\":160},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=173047#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Google Tag Manager: Playing By The Rules\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Google Tag Manager: Playing By The Rules - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=173047","og_locale":"en_US","og_type":"article","og_title":"Google Tag Manager: Playing By The Rules - Som2ny Network","og_description":"There is a new version of this guide for GTM V2 here. (Last updated April 2014) I see Google Tag Manager\u2019s operational model as an analogy of Montesquieu\u2019s three-branched government theory (don\u2019t leave just yet, I\u2019m getting somewhere with this). We have the legislative power of tags (what should be done), the judiciary power of [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=173047","og_site_name":"Som2ny Network","article_published_time":"2025-04-06T05:42:51+00:00","og_image":[{"width":334,"height":160,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=173047#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=173047"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Google Tag Manager: Playing By The Rules","datePublished":"2025-04-06T05:42:51+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=173047"},"wordCount":1590,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=173047#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg","keywords":["Google","Manager","Playing","Rules","TAG"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=173047#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=173047","url":"https:\/\/fivemor.com\/?p=173047","name":"Google Tag Manager: Playing By The Rules - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=173047#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=173047#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg","datePublished":"2025-04-06T05:42:51+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=173047#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=173047"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=173047#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/04\/tag-multiple.jpg","width":334,"height":160},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=173047#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Google Tag Manager: Playing By The Rules"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/173047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=173047"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/173047\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/173048"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=173047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=173047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=173047"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=173047"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=173047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}