Profile cover photo
Profile photo
Simo Ahava
Senior Data Advocate
Senior Data Advocate


Post has attachment
Persist GTM's dataLayer across pages

My latest article is a solution for persisting Google Tag Manager's dataLayer array (and internal data model) from one page to the next. This way, you can access the full history of the dataLayer array and GTM's data model even if you reload the browser. The script does this automatically, so all you need to do is load the script in a Custom HTML tag that fires as the first tag on any page.

Post has attachment
#GTMTips: Search dataLayer For A Key-Value Pair

My latest article is a quick trick for checking whether a specific key-value pair has existed in dataLayer at some earlier moment on the current page. This is useful if you need to, for example, check for earlier values of the "event" key, or whether the user has transitioned from one state to another (not-logged-in to logged-in).

Post has attachment
Fire GTM Tag Upon Scroll Depth And Time Spent

In my latest article, I'll show you how you can create a dependency between two GTM triggers, and use that to fire a tag when the user has scrolled X% AND spent X seconds on the page. Great for tracking engagement!

Post has attachment
#GTMTips: Prevent Clicks And Form Submits From Redirecting

My latest article is a list of some tips you can employ to tackle the page redirect obfuscating GTM's Preview mode output because the user is whisked away before you can see what was written into the Preview panel output.

Post has attachment
Workspace Mode in GTM Tools

I updated my GTM Tools with a big new feature: Workspace mode.

With Workspace mode, you can do mass-edit and mass-update runs to items in any workspace. The feature set to start with is pretty limited (though with the Edit JSON mode you could do any update you ever wanted to), but I'll be adding new features in the future.


PS. You can find GTM Tools at

Post has attachment
Enhanced Ecommerce Guide For Google Tag Manager

My latest article / guide is for Enhanced Ecommerce implementations using Google Tag Manager.

Hope you find it useful!

Post has attachment
What a wonderful addition to Google Tag Manager. The Format Value option lets you modify the output of GTM's variables without having to use custom JavaScript to do the conversion.

This is extremely useful for keeping the container lean and mean. I only hope the available formatting options multiply in the future!

Post has attachment
My latest article tackles a problem I've already written a solution for in the past. But thanks to the wonders of customTask, I was able to approach it from a different angle.

The problem is, of course, cross-domain tracking with iframes. In this new, upgraded solution, we're using customTask to locate the iframe that needs to be decorated with the necessary cross-domain parameters, and then the same customTask will reload the iframe with the parameters as soon as the iframe is found. Dynamically added iframes (e.g. modals upon clicks) are covered as well, since the customTask polls the page periodically until it reaches a timeout you can specify yourself.

Post has attachment
*Create and update Google Analytics session timeout cookie*

My latest customTask trick for Google Analytics is how to create (and update) a session timeout cookie that mimics the session timeout (30 minutes by default) you have configured in Google Analytics.

You can use this cookie to detect if there's (probably) an active session, and use this information to prevent events from firing if there is no active session, for example.

Post has attachment
*Decorate Links and Decorate Forms tag types*

My latest #GTMTips article explores two lesser-known Universal Analytics tag types in Google Tag Manager: Decorate Links and Decorate Forms. You can use these tag types to cross-domain decorate only very specific link clicks and form submits, rather than all links and forms that share the same domain name (as when using the Auto-Link Domains plugin).
Wait while more posts are being loaded