{"id":140927,"date":"2025-03-18T04:28:15","date_gmt":"2025-03-18T04:28:15","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/understanding-tag-sequencing-in-google-tag-manager\/"},"modified":"2025-03-18T04:28:15","modified_gmt":"2025-03-18T04:28:15","slug":"understanding-tag-sequencing-in-google-tag-manager","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=140927","title":{"rendered":"Understanding Tag Sequencing In Google Tag Manager"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>A recent update to <a href=\"https:\/\/tagmanager.google.com\">Google Tag Manager<\/a> introduced a feature which has been on the wishlist of many users for a long time. It\u2019s called <strong>Tag sequencing<\/strong>, and its purpose is to facilitate the sequential firing of Tags. The idea is that you can specify a <strong>setup<\/strong> and a <strong>cleanup<\/strong> for each Tag in your container.<\/p>\n<div style=\"aspect-ratio: 1556 \/ 458;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2015\/05\/tag-sequencing.jpg\" title=\"Tag Sequencing\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"458\" width=\"1556\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2015\/05\/tag-sequencing.jpg#ZgotmplZ\" alt=\"Tag Sequencing\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This article is intended to function as a quick tour of the feature. It\u2019s not the simplest feature to understand, as Tag sequencing runs parallel but separate from the normal flow of your container. Don\u2019t worry, I\u2019ll get back to this soon.<\/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=\"1sequence-in-a-nutshell\">1.Sequence in a nutshell<\/h2>\n<p>A <em>sequence<\/em> comprises three phases:<\/p>\n<p>The <strong>setup<\/strong>, which is a Tag which must <em>successfully<\/em> complete before the main Tag fires.<\/p>\n<p>The <strong>main tag<\/strong>, which is the Tag with the dependencies. It\u2019s either dependent on the <strong>setup<\/strong>, or it establishes a dependency with the <strong>cleanup<\/strong>.<\/p>\n<p>The <strong>cleanup<\/strong>, which is a Tag which fires after the <strong>main tag<\/strong> has completed successfully.<\/p>\n<div style=\"aspect-ratio: 1084 \/ 416;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2015\/08\/setup-cleanup.jpg\" title=\"Setup Cleanup\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"416\" width=\"1084\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2015\/08\/setup-cleanup.jpg#ZgotmplZ\" alt=\"Setup Cleanup\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>The sequence is created by editing the <strong>Advanced Settings<\/strong> of the <strong>main tag<\/strong>. You will see two new settings here:<\/p>\n<ul>\n<li>\n<p>Fire a tag before\u2026<\/p>\n<\/li>\n<li>\n<p>Fire a tag after\u2026<\/p>\n<\/li>\n<\/ul>\n<p>The first setting is for choosing the <strong>setup<\/strong> for the <strong>main Tag<\/strong>. The latter is for the <strong>cleanup<\/strong>. If you choose a <strong>setup<\/strong>, it will need to complete before the <strong>main tag<\/strong> itself fires. If you choose a <strong>cleanup<\/strong>, the <strong>main tag<\/strong> will need to complete before the <strong>teardown<\/strong> is fired. For both, you can choose whether or not a failure in either the <strong>setup<\/strong> or the <strong>main tag<\/strong> will abort the sequence.<\/p>\n<p>OK. That was confusing. Allow me to visualize it with my superior PowerPoint skills.<\/p>\n<div style=\"aspect-ratio: 1514 \/ 992;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2015\/05\/sequence.jpg\" title=\"tag sequence visualized\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"992\" width=\"1514\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2015\/05\/sequence.jpg#ZgotmplZ\" alt=\"tag sequence visualized\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In the sequence above, the Page View Tag (<strong>setup<\/strong>) must successfully complete before the Event Tag (<strong>main tag<\/strong>) fires. If the Page View Tag fails, the sequence is aborted. Similarly, the Event Tag must successfully complete before the final Event Tag (<strong>cleanup<\/strong>) fires. If the main Tag fails, the final Event Tag will not fire.<\/p>\n<p>You can, of course, specify that the Tags fire even if some member in the sequence fails.<\/p>\n<p>The key thing to understand about the sequence is that it\u2019s <em>isolated<\/em>. Using Tag sequencing lets you specify a sequence of hits that fire when the <strong>main tag<\/strong> is triggered. This means that the <strong>setup<\/strong> and <strong>cleanup<\/strong> Tags will act completely oblivious to any Triggers you might have added to them.<\/p>\n<p>Indeed, no matter what Triggers you have or have not equipped on them, they are completely ignored if the Tag is used as a <strong>setup<\/strong> or <strong>cleanup<\/strong>. For this reason, it might be prudent to <em>not<\/em> use <strong>setup<\/strong> and <strong>cleanup<\/strong> Tags for anything except sequencing, but there is a way to make it work both ways (I\u2019ll get back to this soon).<\/p>\n<p>I emphasize again that this is a difficult concept to grasp. I\u2019m sure the UX \/ UI could be made more intuitive, but the reason it\u2019s difficult is that it relies on callbacks, which are invisible in actual GTM usage (unless you start debugging on a really granular level).<\/p>\n<h2 id=\"2-the-callbacks\">2. The callbacks<\/h2>\n<p>We still have some theory to cover before delving deeper into the practical stuff.<\/p>\n<p>In GTM, each Tag has a callback. With Tag templates, these callbacks depend on how the Tag works. For example, the Google Analytics Tag uses the <a href=\"https:\/\/www.simoahava.com\/gtm-tips\/hitcallback-eventcallback\/\">hitCallback<\/a> feature as its callback.<\/p>\n<p>So, when you establish a <strong>setup<\/strong>, for example, the <strong>main tag<\/strong> will not fire until the <code>onSuccess<\/code> callback of <strong>setup<\/strong> is invoked. With the Google Analytics Tag template, the <strong>tag<\/strong> will be fired only after the hitCallback of the <strong>setup<\/strong> is executed successfully. Similarly, the <strong>cleanup<\/strong> will not be fired until the <code>onSuccess<\/code> callback of the <strong>main tag<\/strong> is called.<\/p>\n<p>Phew!<\/p>\n<p>The other callback is <code>onFailure<\/code>. This is invoked in case the Tag does not successfully complete. In the settings for Tag sequencing, you can specify that the <strong>main tag<\/strong> must not fire if <strong>setup<\/strong> fails, or you can choose to ignore the failure. Similarly, you can specify that the <strong>cleanup<\/strong> must not fire if <strong>main tag<\/strong> fails, or you can, again, choose to ignore the failure.<\/p>\n<p>You don\u2019t have to worry about these callbacks when using Tag templates. GTM takes care of calling <code>onSuccess<\/code> and <code>onFailure<\/code> for you, and all you need to do is make sure that you\u2019ve checked the correct boxes in the settings (I promise, we\u2019re going to get to the settings very soon!).<\/p>\n<h2 id=\"3-the-custom-html-tag\">3. The Custom HTML Tag<\/h2>\n<p>The exception is the <strong>Custom HTML Tag<\/strong>. Since you might want to tell Google Tag Manager not to proceed to the next tag until something has happened (e.g. an asynchronous operation has completed), a workaround is required. If you go to the <strong>Built-in Variables<\/strong>, you should see a new one: <strong>HTML ID<\/strong>:<\/p>\n<div style=\"aspect-ratio: 654 \/ 566;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2015\/05\/html-id.jpg\" title=\"HTML ID built-in variable\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"566\" width=\"654\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2015\/05\/html-id.jpg#ZgotmplZ\" alt=\"HTML ID built-in variable\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This is used to invoke either the <code>onSuccess<\/code> or <code>onFailure<\/code> callback for the Custom HTML Tag.<\/p>\n<p>So, if you want to use a Custom HTML Tag as either the <strong>setup<\/strong> or the <strong>main tag<\/strong>, and you want to establish a sequence with success and\/or failure conditions, you will need the following:<\/p>\n<ol>\n<li>\n<p>The <strong>HTML ID<\/strong> Built-In Variable<\/p>\n<\/li>\n<li>\n<p>The <strong>Container ID<\/strong> Built-In Variable<\/p>\n<\/li>\n<li>\n<p>The <strong>Custom HTML Tag<\/strong> itself<\/p>\n<\/li>\n<\/ol>\n<p>In the following code example, I\u2019m running some custom JavaScript, and once it\u2019s done, I\u2019m letting the sequence know that <code>onSuccess<\/code> has been called.<\/p>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-html\" data-lang=\"html\">script&gt;\n  (<span style=\"color:#00a\">function<\/span>() {\n    <span style=\"color:#00a\">var<\/span> gtm = <span style=\"color:#0aa\">window<\/span>.google_tag_manager[{{Container ID}}];\n    <span style=\"color:#00a\">var<\/span> el = <span style=\"color:#0aa\">document<\/span>.getElementById(<span style=\"color:#a50\">'content-head'<\/span>);\n    <span style=\"color:#00a\">try<\/span> {\n      el.innerHTML = <span style=\"color:#a50\">'We have taken over your website!'<\/span>;\n      gtm.onHtmlSuccess({{HTML ID}});\n    } <span style=\"color:#00a\">catch<\/span>(e) {\n      gtm.onHtmlFailure({{HTML ID}});\n    }\n  })();\n<span style=\"color:#1e90ff;font-weight:bold\">script<\/span>&gt;<\/code><\/pre>\n<\/div>\n<p>In the first line of the script, you copy a reference to the GTM container interface into the <code>gtm<\/code> variable. This is a very specific interface into GTM\u2019s mechanisms, so don\u2019t worry about it too much. Suffice to say that this reference allows you to pass the <code>onSuccess<\/code> and <code>onFailure<\/code> callbacks, which is why it\u2019s important here.<\/p>\n<p>Next, there\u2019s a <code>try...catch<\/code> block, where a DOM method is executed. Once it\u2019s completed, the <code>onHtmlSuccess()<\/code> method of the interface is invoked. The parameter to this method is the new <strong>HTML ID<\/strong> Built-In Variable. This way GTM will be able to communicate to the next member of the sequence that it was precisely <em>this<\/em> particular Custom HTML Tag that just completed.<\/p>\n<p>If there\u2019s an error, then the <code>onHtmlFailure()<\/code> method is invoked, and information is passed to the sequence that this Tag did not complete successfully.<\/p>\n<p>By now it shouldn\u2019t be too complicated anymore to understand what\u2019s happening. Each Tag template has an <code>onSuccess<\/code> and <code>onFailure<\/code> callback, except for the Custom HTML Tag, where you can to provide them yourself.<\/p>\n<blockquote>\n<p><strong>UPDATE 23 July 2018<\/strong>: Be sure to read my article on <a href=\"https:\/\/www.simoahava.com\/analytics\/tag-sequencing-custom-html-tags\/\">Custom HTML tags with tag sequencing<\/a> for more details on how Custom HTML tags and tag sequencing work together.<\/p>\n<\/blockquote>\n<h2 id=\"4-how-to-create-the-sequence\">4. How to create the sequence<\/h2>\n<p>Finally! Some practical information!<\/p>\n<p>Under the <strong>Advanced Settings<\/strong> of each Tag template, you will find three new options:<\/p>\n<ol>\n<li>\n<p><strong>Tag firing options<\/strong> &#8211; Lets you delimit the Tag to fire either just <em>Once per event<\/em>, <em>Once per page<\/em>, or just let it fire <em>Unlimited<\/em> times.<\/p>\n<\/li>\n<li>\n<p><strong>Tag Sequencing -&gt; SETUP<\/strong> &#8211; Lets you choose the Tag which must complete before the Tag whose settings you are currently editing. You can specify whether the <strong>setup<\/strong> must complete successfully, or if failures should still make this Tag fire.<\/p>\n<\/li>\n<li>\n<p><strong>Tag Sequencing -&gt; CLEANUP<\/strong> &#8211; Lets you choose the Tag which must fire after the current Tag has completed execution. Again, you can specify whether the current Tag must complete successfully, or if its failure should be ignored, and the <strong>cleanup<\/strong> should fire regardless.<\/p>\n<\/li>\n<\/ol>\n<div style=\"aspect-ratio: 1582 \/ 982;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2015\/05\/new-settings.jpg\" title=\"Tag Advanced Settings\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"982\" width=\"1582\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2015\/05\/new-settings.jpg#ZgotmplZ\" alt=\"Tag Advanced Settings\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>That\u2019s how you set up a <strong>Tag Sequence<\/strong>.<\/p>\n<p>Now, in the very beginning I mentioned that the sequence works in isolation. This means that the setup you establish for any particular Tag will run the sequence regardless of what other Triggers you might have attached to the <strong>setup<\/strong> or <strong>cleanup<\/strong>. This also means that a sequence is always bound to the event of the <strong>main tag<\/strong>. Thus, if the <strong>main tag<\/strong> fires upon the \u201cAll Pages\u201d Trigger, for example, then the entire sequence will be completed during this event.<\/p>\n<p>Because you can use a Tag both independently and as part of a sequence, the new <strong>Tag firing options<\/strong> are very useful, indeed. For example, if you have Tag A as the <strong>setup<\/strong> for some Tag, as well as firing on its own, individual Trigger, you can specify that Tag A must only fire <em>Once per page<\/em> to prevent multiple hits from being sent. This means simply that after it has fired once, either independently or as part of a sequence, it will not fire again while the user is on the page.<\/p>\n<p>You can also specify <em>Once per event<\/em>, which means that the Tag will only fire once for any given <strong>data layer event<\/strong>. So, you might have Tag A firing on the \u201cAll Pages\u201d Trigger, and you might also have it as the <strong>cleanup<\/strong> of some Tag which also fires on the \u201cAll Pages\u201d Trigger. By using the <em>Once per event<\/em> setting, Tag A will only fire once during the \u201cAll Pages\u201d event.<\/p>\n<h2 id=\"5-note-about-using-datalayerpush-in-the-sequence\">5. Note about using <code>dataLayer.push()<\/code> in the sequence<\/h2>\n<p>One of the main use cases for using tag sequencing would be to have the <strong>setup<\/strong> Tag push something into <code>dataLayer<\/code> for the main Tag to use.<\/p>\n<p>Hold your horses!<\/p>\n<p>If you know your Google Tag Manager, you\u2019ll know that the Data Layer available to any Tag is fixed for the <strong>duration of the Data Layer Event<\/strong>! So any Tags which fire on the initial <code>dataLayer.push()<\/code> will only be able to access the values in this push. If some Tag tries to modify the values in the Data Layer, these values will not be registered until the <strong>next<\/strong> <code>dataLayer.push()<\/code> with an event.<\/p>\n<p>(<strong>UPDATE:<\/strong> Some time after this article was written, GTM\u2019s behavior changed so that variables are resolved separately for every tag in a sequence. This means that you <em>don\u2019t<\/em> need to use <code>google_tag_manager[...].dataLayer.get()<\/code> if you want to retrieve a variable that changed from one tag in the sequence to the next. Instead, you can just use regular Google Tag Manager Variables, as their values will update for each tag in the sequence!)<\/p>\n<p>This hampers development a little, since it sounds like <code>dataLayer<\/code> can\u2019t be used as a messaging medium within a sequence, as the entire sequence operates in the span of a single Data Layer Event (the one which fired the main Tag in the first place).<\/p>\n<p>The <a href=\"https:\/\/support.google.com\/tagmanager\/answer\/6238868?vid=1-635767739658514293-2846637075\">developer guide<\/a> actually has a note about this:<\/p>\n<div style=\"aspect-ratio: 1448 \/ 244;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2015\/08\/tag-sequencing-help.jpg\" title=\"Tag Sequencing note dataLayer.set()\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"244\" width=\"1448\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2015\/08\/tag-sequencing-help.jpg#ZgotmplZ\" alt=\"Tag Sequencing note dataLayer.set()\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>However, at the time of writing this, <code>dataLayer.set()<\/code> does not exist. I asked the developers, and this seems to be a mistake in the guide. Instead, you need to use the following command to <em>set<\/em> values in the Data Layer even during the tag sequence:<\/p>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-javascript\" data-lang=\"javascript\"><span style=\"color:#aaa;font-style:italic\">\/\/ To set a value, use set() with the key as the first parameter, and value as the second\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>google_tag_manager[{{Container ID}}].dataLayer.set(<span style=\"color:#a50\">'someKey'<\/span>, <span style=\"color:#a50\">'someValue'<\/span>);\n<\/code><\/pre>\n<\/div>\n<p>Once you use this, any Tag that fires after this one (in the same sequence), will have its Data Layer Variable reference to <strong>someKey<\/strong> updated to return <em>someValue<\/em>.<\/p>\n<p>If you want to retrieve this changed value in the <em>same<\/em> Tag it was changed in, you can\u2019t use a Data Layer Variable, since it\u2019s resolved before the Tag is executed (and the <code>set()<\/code> command is run). You\u2019ll need to use this syntax instead:<\/p>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-javascript\" data-lang=\"javascript\"><span style=\"color:#aaa;font-style:italic\">\/\/ To get a value, use get() with the key as the parameter\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>google_tag_manager[{{Container ID}}].dataLayer.get(<span style=\"color:#a50\">'someKey'<\/span>);\n<\/code><\/pre>\n<\/div>\n<p>Remember to enable the <strong>Container ID<\/strong> Built-in Variable!<\/p>\n<p>These are fairly advanced use cases, but it\u2019s very good to keep this in mind when working with Tag sequences that are scoped to a single Data Layer event.<\/p>\n<h2 id=\"6-why-use-tag-sequencing\">6. Why use tag sequencing?<\/h2>\n<p>The asynchronous loading of JavaScript is taken for granted these days. It\u2019s a nice way for browsers to ensure a decent browsing experience even with large, bulky linked assets.<\/p>\n<p>However, asynchronous JavaScript makes it difficult to establish <em>order<\/em>, as you can\u2019t predict when some script or library finishes loading. Order is introduced with <em>callbacks<\/em> or <em>promises<\/em>, but these are difficult concepts to manoeuvre around, and the Google Tag Manager UI doesn\u2019t necessarily let you take advantage of them, especially if using templates.<\/p>\n<p>Sequencing lets you tap into callbacks that GTM establishes by default (the tag templates), or that you create manually (Custom HTML Tags). It lets you chain Tags together, which is particularly useful if you want to establish dependencies.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>A recent update to Google Tag Manager introduced a feature which has been on the wishlist of many users for a long time. It\u2019s called Tag sequencing, and its purpose is to facilitate the sequential firing of Tags. The idea is that you can specify a setup and a cleanup for each Tag in your [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":140928,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[1531,14495,48123,1791,5715],"dealstore":[],"offerexpiration":[],"class_list":["post-140927","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-google","tag-manager","tag-sequencing","tag-tag","tag-understanding"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Understanding Tag Sequencing In Google Tag Manager - 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=140927\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Tag Sequencing In Google Tag Manager - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"A recent update to Google Tag Manager introduced a feature which has been on the wishlist of many users for a long time. It\u2019s called Tag sequencing, and its purpose is to facilitate the sequential firing of Tags. The idea is that you can specify a setup and a cleanup for each Tag in your [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=140927\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-18T04:28:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1556\" \/>\n\t<meta property=\"og:image:height\" content=\"458\" \/>\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=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=140927#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=140927\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Understanding Tag Sequencing In Google Tag Manager\",\"datePublished\":\"2025-03-18T04:28:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=140927\"},\"wordCount\":2030,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=140927#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg\",\"keywords\":[\"Google\",\"Manager\",\"Sequencing\",\"TAG\",\"Understanding\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=140927#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=140927\",\"url\":\"https:\/\/fivemor.com\/?p=140927\",\"name\":\"Understanding Tag Sequencing In Google Tag Manager - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=140927#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=140927#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg\",\"datePublished\":\"2025-03-18T04:28:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=140927#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=140927\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=140927#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg\",\"width\":1556,\"height\":458},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=140927#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Understanding Tag Sequencing In Google Tag Manager\"}]},{\"@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":"Understanding Tag Sequencing In Google Tag Manager - 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=140927","og_locale":"en_US","og_type":"article","og_title":"Understanding Tag Sequencing In Google Tag Manager - Som2ny Network","og_description":"A recent update to Google Tag Manager introduced a feature which has been on the wishlist of many users for a long time. It\u2019s called Tag sequencing, and its purpose is to facilitate the sequential firing of Tags. The idea is that you can specify a setup and a cleanup for each Tag in your [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=140927","og_site_name":"Som2ny Network","article_published_time":"2025-03-18T04:28:15+00:00","og_image":[{"width":1556,"height":458,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=140927#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=140927"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Understanding Tag Sequencing In Google Tag Manager","datePublished":"2025-03-18T04:28:15+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=140927"},"wordCount":2030,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=140927#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg","keywords":["Google","Manager","Sequencing","TAG","Understanding"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=140927#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=140927","url":"https:\/\/fivemor.com\/?p=140927","name":"Understanding Tag Sequencing In Google Tag Manager - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=140927#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=140927#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg","datePublished":"2025-03-18T04:28:15+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=140927#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=140927"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=140927#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/03\/tag-sequencing.jpg","width":1556,"height":458},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=140927#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Understanding Tag Sequencing In Google Tag Manager"}]},{"@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\/140927","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=140927"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/140927\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/140928"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=140927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=140927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=140927"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=140927"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=140927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}