{"id":105940,"date":"2025-02-23T22:07:05","date_gmt":"2025-02-23T22:07:05","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/gtmtips-delay-the-history-change-trigger\/"},"modified":"2025-02-23T22:07:05","modified_gmt":"2025-02-23T22:07:05","slug":"gtmtips-delay-the-history-change-trigger","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=105940","title":{"rendered":"#GTMTips: Delay The History Change Trigger"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>When working with the analytics of <a href=\"https:\/\/en.wikipedia.org\/wiki\/Single-page_application\">single-page applications (SPA)<\/a>, there are a number of things to pay attention to. For example, you need to make sure that Google Analytics doesn\u2019t <a href=\"https:\/\/www.simoahava.com\/gtm-tips\/fix-rogue-referral-problem-single-page-sites\/\">break your session attribution<\/a>, and that you are not inadvertently <a href=\"https:\/\/www.simoahava.com\/analytics\/site-speed-sample-rate-multiple-page-views\/\">inflating your page speed timing metrics<\/a>. Actually, there are so many \u201cgotchas\u201d when it comes to SPA tracking in tools like <a href=\"https:\/\/analytics.google.com\/\">Google Analytics<\/a> that you just can\u2019t get by with a plug-and-play implementation.<\/p>\n<p>See <a href=\"https:\/\/www.bounteous.com\/insights\/2018\/03\/30\/single-page-applications-google-analytics\/\">Dan Wilkerson\u2019s excellent article<\/a>, which sums nicely the can of worms involved with tracking an SPA.<\/p>\n<p>One of the problems with frameworks that load their content dynamically using JavaScript (e.g. <a href=\"https:\/\/reactjs.org\/\">React<\/a>) is when the history event is dispatched <em>before<\/em> the content has been loaded or the URL has actually changed.<\/p>\n<p>This is problematic, since you might actually want to refer to elements loaded in this dynamic state change in your tags, but because the <a href=\"https:\/\/www.simoahava.com\/analytics\/google-tag-manager-history-listener\/\">History Change trigger<\/a> fires as soon as the event is dispatched, the content might not be there yet when your tags fire.<\/p>\n<p>So in this article I\u2019ll show a quick and dirty way to delay the trigger, so that your tags don\u2019t fire until the page has had time to load the content.<\/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=\"tip-79-delay-the-history-change-trigger\">Tip 79: Delay The History Change Trigger<\/h2>\n<div style=\"aspect-ratio: 960 \/ 540;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2018\/05\/delay-the-history-change-trigger.jpg\" title=\"Delay the history change trigger\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"540\" width=\"960\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2018\/05\/delay-the-history-change-trigger.jpg#ZgotmplZ\" alt=\"Delay the history change trigger\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>The <strong>easy way<\/strong> to do it is to fire a <strong>Custom HTML tag<\/strong> with the <strong>History Change trigger that is causing problems on your site<\/strong>.<\/p>\n<p>First, make sure you have all the history-related <a href=\"https:\/\/www.simoahava.com\/analytics\/variable-guide-google-tag-manager\/#history\">Built-in variables<\/a> enabled in the container.<\/p>\n<p>Then, in the Custom HTML tag, add the following code:<\/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> timeout = <span style=\"color:#099\">500<\/span>; <span style=\"color:#aaa;font-style:italic\">\/\/ Milliseconds - change to what you want the timeout to be.\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>    <span style=\"color:#0aa\">window<\/span>.setTimeout(<span style=\"color:#00a\">function<\/span>() {\n      <span style=\"color:#0aa\">window<\/span>.dataLayer.push({\n        event: <span style=\"color:#a50\">'custom.historyChange'<\/span>,\n        custom: {\n          historyChangeSource: {{History Source}},\n          newHistoryState: {{New History State}},\n          oldHistoryState: {{Old History State}},\n          newHistoryFragment: {{New History Fragment}},\n          oldHistoryFragment: {{Old History Fragment}}\n        }\n      });\n    }, timeout);\n  })();\n<span style=\"color:#1e90ff;font-weight:bold\">script<\/span>&gt;<\/code><\/pre>\n<\/div>\n<p>As said above, make sure this tag fires on the History Change trigger you want to delay.<\/p>\n<p>The Custom HTML tag adds a 500 millisecond delay, after which it pushes a custom event named <code>custom.historyChange<\/code> into the <code>dataLayer<\/code>. With this event, five new Data Layer variables are pushed, each with the values from the <em>original<\/em> History event that triggered the Custom HTML tag in the first place. These new variables are:<\/p>\n<ul>\n<li>\n<p><code>custom.historyChangeSource<\/code> &#8211; the history event that triggered the delay (e.g. <code>pushState<\/code> or <code>replaceState<\/code>).<\/p>\n<\/li>\n<li>\n<p><code>custom.newHistoryState<\/code> &#8211; the <em>state object<\/em> set in the history event.<\/p>\n<\/li>\n<li>\n<p><code>custom.oldHistoryState<\/code> &#8211; the <em>state object<\/em> that was overwritten with the new state object.<\/p>\n<\/li>\n<li>\n<p><code>custom.newHistoryFragment<\/code> &#8211; the <em>hash fragment<\/em> set in the history event (e.g. <code>#contactus<\/code>).<\/p>\n<\/li>\n<li>\n<p><code>custom.oldHistoryFragment<\/code> &#8211; the <em>hash fragment<\/em> that was overwritten with the new hash.<\/p>\n<\/li>\n<\/ul>\n<p>Now, create a new <strong>Custom Event trigger<\/strong> for event name <code>custom.historyChange<\/code>, and create <strong>Data Layer variables<\/strong> for all of the new custom variables listed above (or at least the ones that make sense in your case). Here\u2019s what the trigger and a sample variable would look like:<\/p>\n<div style=\"aspect-ratio: 2826 \/ 1100;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2018\/05\/trigger-and-variable.jpg\" title=\"Custom Event trigger and Data Layer variable\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1100\" width=\"2826\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2018\/05\/trigger-and-variable.jpg#ZgotmplZ\" alt=\"Custom Event trigger and Data Layer variable\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Add the Custom Event trigger to whatever tag you want to fire with the history event, and use the new Data Layer variables where necessary.<\/p>\n<p>You might be wondering why rewrite the original Built-in variables into custom Data Layer variables. This is just a precaution. If your site dispatches more than one history event before the 500 millisecond delay is over, then the Built-in variables will always refer to the <strong>latest<\/strong> history state, and not the one that was delayed.<\/p>\n<h3 id=\"problem-with-this-approach\">Problem with this approach<\/h3>\n<p>There\u2019s one, potentially big issue with this approach. By firing a Custom HTML tag with every single history event, you are clogging up the document object model of the page, because that gets unloaded when the user navigates away from the page, and not when new content is pulled in. For example, after ten history events, this is what the DOM can end up looking like:<\/p>\n<div style=\"aspect-ratio: 1944 \/ 832;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2018\/05\/clogged-up-dom.jpg\" title=\"DOM getting full of custom html tags\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"832\" width=\"1944\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2018\/05\/clogged-up-dom.jpg#ZgotmplZ\" alt=\"DOM getting full of custom html tags\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>The problem with rewriting the DOM so many times is that each new element added forces a re-evaluation of the document object model, and the more items in the DOM, the longer this re-evaluation takes. So the more Custom HTML tags that fire without a page reload or refresh, the more the page performance will suffer.<\/p>\n<h3 id=\"potential-solution\">Potential solution<\/h3>\n<p>One potential solution is to use only a single Custom HTML tag, where you overwrite the <code>window.history.pushState<\/code> and <code>window.history.replaceState<\/code> methods. The overwritten code should include the delayed <code>dataLayer.push()<\/code>, and you <strong>must<\/strong> pass the arguments to the original <code>window.history.pushState<\/code> using <code>apply()<\/code>, unless you want to destroy your site navigation. See <a href=\"https:\/\/stackoverflow.com\/a\/4585031\/2367037\">here<\/a> for inspiration.<\/p>\n<p>Basically, you\u2019re writing a <a href=\"https:\/\/www.simoahava.com\/analytics\/simple-custom-event-listeners-gtm\/\">custom event listener<\/a>, but instead of listening for user interactions, you\u2019ll be listening for <code>pushState<\/code> and <code>replaceState<\/code> events.<\/p>\n<p>I\u2019m not going to write the solution here &#8211; it\u2019s difficult to write a generic history listener that works with your particular use case. But the <a href=\"https:\/\/stackoverflow.com\/a\/4585031\/2367037\">Stack Overflow article<\/a> should help you get started. Just remember to test <strong>thoroughly<\/strong> if overwriting basic browser interfaces like the Window History API.<\/p>\n<h2 id=\"summary\">Summary<\/h2>\n<p>The trick outlined in this article should really be a <strong>temporary<\/strong> solution (as all hacks should). You really ought to talk to your developers and ask them to implement the custom event push directly into whatever JavaScript is handling the route \/ state changes on the site.<\/p>\n<p>By delegating the work to your developers, they can ensure that the <code>dataLayer<\/code> event is dispatched at the exact right time. Using a delay like the 500 milliseconds of this article is sub-optimal for two reasons:<\/p>\n<ol>\n<li>\n<p>It can be <strong>too short<\/strong>, meaning the delay goes off, the custom event is pushed, but the transition is still not complete.<\/p>\n<\/li>\n<li>\n<p>It can be <strong>too long<\/strong>, meaning you are wasting time with the trigger, and tracking the page view of each dynamic transition can lag behind the events dispatched with each new bit of content.<\/p>\n<\/li>\n<\/ol>\n<p>Regardless, it\u2019s a way to <strong>make things work<\/strong>, which I guess is a good justification as any for using hacks.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>When working with the analytics of single-page applications (SPA), there are a number of things to pay attention to. For example, you need to make sure that Google Analytics doesn\u2019t break your session attribution, and that you are not inadvertently inflating your page speed timing metrics. Actually, there are so many \u201cgotchas\u201d when it comes [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":105942,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[7001,1781,14492,3734,22089],"dealstore":[],"offerexpiration":[],"class_list":["post-105940","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-change","tag-delay","tag-gtmtips","tag-history","tag-trigger"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>#GTMTips: Delay The History Change Trigger - 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=105940\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"#GTMTips: Delay The History Change Trigger - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"When working with the analytics of single-page applications (SPA), there are a number of things to pay attention to. For example, you need to make sure that Google Analytics doesn\u2019t break your session attribution, and that you are not inadvertently inflating your page speed timing metrics. Actually, there are so many \u201cgotchas\u201d when it comes [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=105940\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-23T22:07:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=105940#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=105940\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"#GTMTips: Delay The History Change Trigger\",\"datePublished\":\"2025-02-23T22:07:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=105940\"},\"wordCount\":948,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=105940#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg\",\"keywords\":[\"Change\",\"Delay\",\"GTMTips\",\"history\",\"Trigger\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=105940#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=105940\",\"url\":\"https:\/\/fivemor.com\/?p=105940\",\"name\":\"#GTMTips: Delay The History Change Trigger - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=105940#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=105940#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg\",\"datePublished\":\"2025-02-23T22:07:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=105940#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=105940\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=105940#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=105940#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"#GTMTips: Delay The History Change Trigger\"}]},{\"@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":"#GTMTips: Delay The History Change Trigger - 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=105940","og_locale":"en_US","og_type":"article","og_title":"#GTMTips: Delay The History Change Trigger - Som2ny Network","og_description":"When working with the analytics of single-page applications (SPA), there are a number of things to pay attention to. For example, you need to make sure that Google Analytics doesn\u2019t break your session attribution, and that you are not inadvertently inflating your page speed timing metrics. Actually, there are so many \u201cgotchas\u201d when it comes [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=105940","og_site_name":"Som2ny Network","article_published_time":"2025-02-23T22:07:05+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=105940#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=105940"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"#GTMTips: Delay The History Change Trigger","datePublished":"2025-02-23T22:07:05+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=105940"},"wordCount":948,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=105940#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg","keywords":["Change","Delay","GTMTips","history","Trigger"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=105940#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=105940","url":"https:\/\/fivemor.com\/?p=105940","name":"#GTMTips: Delay The History Change Trigger - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=105940#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=105940#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg","datePublished":"2025-02-23T22:07:05+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=105940#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=105940"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=105940#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/delay-the-history-change-trigger.jpg","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=105940#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"#GTMTips: Delay The History Change Trigger"}]},{"@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\/105940","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=105940"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/105940\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/105942"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=105940"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=105940"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=105940"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=105940"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=105940"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}