January 9, 2021
Updated: January 9th, 2021
In 2016, when this blog saw the daylight, my vision was (and still is) to make Analytics Mania No.1 place to find Google Tag Manager resources. Yes, I know it’s next to impossible to surpass Simo’s blog, but hey, let me dream big 🙂
As a result, the library of GTM recipes was born and its popularity exceeded my biggest expectations. Also, let’s not forget The Ultimate list of 120+ GTM Resources, GTM Checklist (60+ items), huge Google Tag Manager Glossary, etc.
Turns out such a thing still does not exist! Or at least I couldn’t find one online. Hmmm… Time to shine?
Each link will redirect you to a GTM recipe or a blog post (written by me or other authors) that provides detailed installation instructions. For your convenience, I’ve split all codes into categories.
Obviously, this list is not in its final form and will grow in the future so if you haven’t yet, subscribe to Analytics Mania’s updates in the form below.
Do you notice something missing? Do you have an awesome script hiding in your pocket? Let me know in the comments and I’ll include it on the list.
Regular readers of Analytics Mania will (probably) already know a lot of these scrips but I promise that everyone will find something new. Ready? Let’s go!
The appearance of particular elements
#1. Hover Listener pushes events to the data layer about hover interactions that occur over the given CSS selectors in the page.
#2. Custom Element Visibility Listener tracks when certain elements appear and disappear from the screen (after scrolling up or down).
#3. Soundcloud player listener tracks interactions with embedded Soundcloud player on your site (Play, Pause, and view 25, 50, 75, and 100% of the audio track).
#4. Mixcloud player listener tracks interactions with embedded Mixcloud player on your site (when visitor listens to 25%, 50%, 75% of the audio track. Other possible events are: ‘buffering’, ‘play’, ‘pause’, ‘ended’, ‘error’).
#5. HTML5 audio player listener covers a bunch of generic no-name audio players that can be embedded on your site.
#7. Tab visibility tracking enables you to track when the browser tab with your website in it is hidden or visible.
#10. Exit-intent listener fires data layer event when visitor tends to leave your website.
#11. Print listener tracks when someone prints a page of your website.
#12. Copy text listener tracks when someone copies a text on your website.
#13. Track Facebook comments (embedded on your site).
#15. Track Zendesk (formerly Zopim) chat widget interactions.
#17. Implement Cookie consent when a new visitor lands on your page.
#18. Set cookies in the visitor’s browser (then read it via 1st Party Cookie Variable).
#19. Set cookie with page view count. With every page view the counter in the cookie increases by 1. Useful for those who want to fire a particular tag after, say, 3rd page view.
#23. Track form abandonment.
#24. Track form field timing.
#25. Gravity forms listener. In one of my blog posts, how to track form submissions, I’ve explained how to write a custom auto-event listener without coding skills. Gravity forms were chosen as an example.
#26. Contact Form 7 form submission listener.
#27. AJAX form tracking by taking advantage of Bounteous’ AJAX listener. In fact, you can track any web interaction which is based on this technology.
#28. Pre-fill form fields. This technique is useful when you want to see what was the exact traffic source of each submission (without the need of checking Google Analytics).
#29. Track page load time.
Remember, it’s always better to add SEO stuff (like schemas, meta tags, etc.) directly via code. Anyway, here are some codes (for science).
#33. Add schema markup.
Updated: There is a newer guide on how to implement SEO changes via GTM.
#35. Track clicks of Twitter buttons (embedded on your site).
#37. Fetch the visitor’s local time and split the traffic into content groups.
#38. Catch visitor’s weather data and send it to Google Analytics.
#39. Custom timer trigger which starts when another interaction occurs (e.g. a click).
#40. Transfer UTM parameters from one page to another. This is useful when cross-domain tracking isn’t possible, you have an intermediate landing page, and you want to transfer its UTM parameters to the next page.
#49-52. Konami codes. Simo Ahava published a listener who captures the famous combination used as a cheat code in video games. I added some minor modifications (found online) and as a result, you can now use 4 different Konami codes:
This list is far from complete. There is still a bunch of useful scripts wandering somewhere out there. Help me make this library/list/collection/whatever even bigger, therefore make it more useful to readers like you.