The Google Tag Manager (GTM) is indeed a great tool to have. Although several tag management services did exist before (such as tagman and ubertags), none of them were as simple and as easy as GTM – at least not for me.
I know the GTM has only been with us for few months, and I know that the guys at Google are constantly working to improve it by adding all sorts of additional tag templates (such as comscore and media6degrees). But following the implementations that I have performed over the past few months, there are several specific features that I would be very happy to see in the near future. This is my GTM Feature Wishlist:
- A Tag Template Marketplace (something like the marketplace at SiteApps)
I don’t know how complicated it is to create a tag template but I am sure companies like Mixpanel and ClickTale would love to be able to develop tags and have them appear on the list of available tags. - UI Improvements that will enable:
- Organizing tags, rules and macros into folders.
- Providing quick access for creating a new tag, rule and macro from the left navigation and not just from the overview screen.
- Switching between containers from the account drop-down menu
- Tag Dependency Management
For defining the order in which the tag manager loads the tags. At present, the tag manager loads tags asynchronously, in order to optimize the page load time. However, there are some cases in which a specific tag is required to be loaded directly following another tag. [I am currently using events to do so, whereby the main tag fires an event (using the dataLayer object) which is used to fire the dependent tag.] - “Synchronous” Tag Support
Although tags that affect the page layout, such as in AB and MVT services, do not necessarily have to be loaded synchronously, you want to make sure they run BEFORE the page is shown to the user, as they might affect the user experience. Hence the term “synchronous”. For example, you may want to redirect to a different page in the case of a split test, or change the layout of the page in the case of an AB test or MVT. Together with tag dependencies, you can provide a good solution for split test and make sure other tags are not fired should the split test tag need to redirect the user to a different page.
- Session and user level scope for the dataLayer object.
A few weeks ago I posted my own solution for managing dataLayer variables across pages and sessions but it would be great to have it as a built-in GTM feature. - Log Console
For debugging and monitoring tags. If there is an error in one of my tags (not something that GTM will catch when I publish a version), I would like a way to have a log that shows JavaScript and network errors related to these tags. I would like also to be able to write to this log directly from my tags and get some basic statistics on my usage (how many times each tag was executed etc.) - Providing Support in Multiple Environments + Improving Version Management
For allowing versions to be archived (after all, I don’t really need to see all 40 versions from the past two months…), as well as offering label versions, the ability to mark that a certain version can go into production, etc. It would be great to be able to see which version is currently live, manage the environments (QA, development, production), and set different macros and versions for each of the environments. - Adding New Macro Types
For example, URL parameters, cookies, user agent, country, JavaScript methods, and many more. - Improving the Google Analytics Tag
The current Google Analytics tag is good enough as long as you do not need to reuse the same tracker on the page. If you do, you must create a separated Google Analytics tag for each event/pageview you want to send. My wish is to be able to:- Reuse the same tracker – If I have a Google Analytics tag, I should be able to use it on the page. However, currently, if I call ‘_trackPageview’ from the page, it will be sent without an account ID (it will be sent with UA-XXXXX-X)
- Configure the tag using Macros. I would like to set the Account ID based on a macro value (this will allow me to have one tag for multiple accounts).
- Sharing tags, macros and rules
Across containers and accounts. - Adding Built-In Events
Just like gtm.dom, which will let me execute tags on page onload, I would like to have other events that I can use, such as DOMContentLoaded, page refresh, exit, time on page, etc.
- Session and user level scope for the dataLayer object.
And one last thing: As the festive season is upon us, and Hannukah and Christmas are a great time to make a wish list, an on-premise version of the Google Tag Manager would be awesome! Unfortunately, I am sure this will never happen… 🙂
Just before I sign off, I’d like to mention a few interesting and relevant posts that I have recently read: