Updated: Feb 11th, 2018. We’ve all been there: you open Google Tag Manager, set up tags, triggers and variables properly (at least you thought so), but that new implementation doesn’t work. You read that super awesome 5-step tutorial few more times, but it doesn’t help. You feel stuck, irritated and decide it’s enough GTM for today. The next day you open GTM, take a fresh look and realize you did a stupid and obvious mistake (which could have been fixed in a blink of an eye). I’ve been there. Too many times. That’s why I’m sharing a list of the most common Google Tag Manager mistakes I’ve committed. Let’s hope this blog post will save you some time and energy.


Mistake #1 – viewing wrong Google tag manager account

This mistake is popular among newbies and/or multi-taskers. “I can’t see Preview and Debug console” problem might be caused by a distraction and wrong GTM account. If you track multiple websites and/or have access to multiple Tag Manager accounts, you might be using the snippet from another account and/or container (by accident, of course). Double check whether ID in your GTM account is the same as in the Javascript.

Common google tag manager mistakes


MISTAKE #2 – Container is not published

So you’ve started working on a new project, set up all triggers, variables, tags, etc., but you get way too little data (as if only your browser is being tracked. But what about all those other visitors?). This has probably happened because you didn’t publish the container.  If possible, once you do a significant portion of changes in your GTM container, TEST it and then go Live by pressing Publish button.

Another tip – right after you (or your developer) adds GTM snippet to a new website, publish a version of the empty container (with default settings). If unpublished GTM container’s snippet is placed on a website, you’ll get a 404 error (GET http://www.googletagmanager.com/gtm.js?id=GTM-XXXXXX) in browser’s Javascript console. This isn’t a big problem, but if your developers are tracking Javascript errors with particular tools (e.g. TrackJS), they’ll see those 404 errors in reports. This will create an unwanted noise for them (yes, I know they can use filters, but simply publishing an empty container won’t hurt anybody 🙂 ).

Common google tag manager mistakes - Publish Container


MISTAKE #3 – Not refreshing Preview & Debug mode or browser tab

Google Tag Manager’s preview mode allows you to browse a site on which your container code is implemented as if the current container draft was deployed. After you enable Preview and Debug mode, a large orange notification banner will appear in GTM user interface.

Google tag manager preview notification

Once the preview mode is enabled, navigate to the site where the container is implemented and you will see a debug console window at the bottom of browser showing detailed information about your tags, including their firing status and what data is being processed.

Each time you do changes in Google Tag Manager (e.g. add new tags, triggers, etc.), you need to complete the following steps:

  • Click Refresh link in orange preview notification banner.
  • Refresh browser tab of the site you are currently testing.

Remember: You must complete these steps every time you want to preview and test new changes of your GTM container.

MISTAKE #4 – Not using preview and debug console properly

When an event is selected in the left column of Preview and Debug console, the Tags tab will show the tags present for that event. They are separated between those that fired on the selected event and those that did not. This is the place where you should look for the answer to Why didn’t this tag fire? A tag will be fired only if all conditions of a a single trigger are met. A red X icon indicates which conditions weren’t satisfied. Use them as clues and find out how you can fix the trigger.

Google tag manager preview and debug mode


MISTAKE #5 – NOT USING other debugging tools

Tag Assistant and GA debugger are among the most popular debugging tools you should be aware of. Both of these are free Google Chrome extensions which will make your life much easier.

Tag Assistant helps troubleshoot installation of various Google tags including Google Analytics, Google Tag Manager, Adwords Conversion Tracking and more. You can find out more here. P.S. Tag assistant still does not support the newest recommendation (to place GTM container’s snippet in website’s <head>), therefore you’ll get a validation error. We all hope it will be fixed soon. In the meantime, you should ignore it.

As for GA debugger, I don’t use it too often (because previously mentioned debugging tools provide enough valuable information for me). But when it comes to E-commerce tracking, GA debugger is irreplaceable for me. When enabled, it displays all data that is passed to Google Analytics, thus I can troubleshoot much faster.


MISTAKE #6 – Not checking Google analytics real-time reports

I’ve seen a lot of beginners not checking their GA real-time reports once they have implemented Google Analytics tracking via GTM. They had a false perception that once the GA tag fired (according to the Preview and Debug console), their task was completed. But that was far from the truth because in some cases they were accidentally sending data to the wrong Google Analytics property. Constantly checking real-time reports prevents this issue.

common google tag manager mistakes - ga realtime


MISTAKE #7 – NOT removing old Google Analytics implementation (completely)

If you have decided to migrate from hardcoded Google Analytics to more agile implementation via Google Tag Manager, bear in mind: the process won’t be easy. This warning does not apply to small websites with basic GA Pageview tracking – just simply add GTM container snippet, publish Google Analytics Pageview tag and simultaneously remove Google Analytics tracking code from a website. But if you’re thinking about migrating larger website with more complex tracking, a lot of things can go wrong. Dan Wilkerson has outlined few possible problems and how you can safely migrate to GTM without interruptions in data flow.

The most common issue (from my experience) was not removing all hardcoded link tracking events which caused event duplication. Some of those hardcoded events were simply missed by the developer. That’s why my team and I always double-check it now.

Google Tag Manager Course - Learn More

MISTAKE #8 – Not using GA tracking iD as USer-defined variable

Before progressing too far in your Google Tag Manager implementation, I highly recommend that you set up constant user-defined variable – Google Analytics Tracking ID (e.g. UA-XXXXXXXX). Why? Here’s the answer:

  • Every Google Analytics tag in GTM requires Google Analytics Tracking ID. 10 tags = 10 times when you need to enter UA-XXXXXXXX manually. But what if you suddenly have to change Tracking ID in all events? Rather than typing out your new Tracking ID in every tag, you could just edit one variable – GA ID or gaProperty (or name it whatever you want).
  • This simple technique will save you a lot of time and possibly prevent errors later on. Learn more about constant string user-defined variables.


MISTAKE #9 – Creating datalayer dataLayer = []; and putting it after GTM snippet

To ensure maximum flexibility, portability, and ease of implementation, Google Tag Manager functions best when deployed alongside a data layer. A data layer is an object that contains all of the information that you want to pass to Google Tag Manager. Few examples of what data can be passed to dataLayer:

  • User’s pricing plan
  • User’s registration country, etc.

Google Tag Manager can be configured to fire tags on all pages on which the visitor has been marked as Premium (it’s his Pricing plan). The biggest mistake here (thanks to Simo Ahava for pointing this out) is creating dataLayer with

…and putting it after Google Tag Manager container.

As a result, this will 1. potentially break GTM, 2. render the Page View event non-functional. In other words – things will go wrong.

So it’s important that dataLayer’s snippet (as shown below) would be placed above the GTM container snippet (according to Google’s recommendation):

Even a better option (and safer) is to command dataLayer with dataLayer.push method. If you need any particular data to be passed to dataLayer, ask your developer to use dataLayer.push method (see the example below).

Are you tired? If yes, then bookmark this blog post about common Google Tag Manager mistakes and come back later. If not, let’s roll!


MISTAKE #10 – Using too many auto-event listeners

If you’re an avid fan of Google Tag Manager (like I am), you’ve probably already tried all recipes created by Lunametrics, googled and tested a bunch of other custom auto-event listeners (like Vimeo). Are they all installed in your GTM containers? Do you constantly use them? If your answer is yes, then my question is do you regularly check their data as well? My mistake here was that I was tracking as many events and interactions on my websites as I could. The problem which I realized later was that I utilized only ~10% of the collected data. Everything else was just unnecessary noise in my reports.

Yes, scroll tracking is an awesome feature, but do I need it in every project? Do I always need to track Vimeo or Youtube player interactions? The definite answer is No. First, you need to create a measurement plan and then track only what matters for that particular project. With this kind of mindset, you can easily get rid of few auto-event listeners (at least) in each of your GTM containers. Here’s why:

  • Every auto-event listener is a piece of code which needs to be executed. The more code and requests there, the more time it will require a window to completely load. Of course, usually those pieces of code are fairly small, but (hypothetically speaking) multiply 100 milliseconds by 10 and you’ll get and 1 second added to page load duration.
  • At Soundest, we’re using not only Google Analytics, but also Mixpanel to track user interactions. I could easily send every interaction I can to Mixpanel, but we chose to push only the most important ones because a) too many events = too much noise in various reports (especially “Filter by event” drop-downs), b) we would quickly exceed our monthly event limit.

We prefer quality over quantity here. You can add additional listeners later on.


MISTAKE #11 – Typos (duh…)

I’ll be laconic here. When a tag doesn’t fire, always check for typos in:

  • Trigger’s conditions. If you’re using regular expressions in your conditions, double check whether you need standard regex or ignore cases option.
  • Names of variables. This usually happens with Data Layer variables for me.

MISTAKE #12 – Empty space in Tag Manager injector’s settings

If you haven’t used TagManagerInjector chrome extension before, you definitely should. It makes the transition to Google Tag Manager as quick and painless as possible. The extension gives you the ability to run/preview a GTM container on your site without needing to add any JavaScript to your pages. You just open the extension and paste your GTM container’s ID into the predefined field. tag manager injector

However, there is one bug. You need to paste that ID precisely without any blank spaces before or after, otherwise TagManajerInjector will not work => Preview and Debug console will not appear in your browser. Examples:

  • ” GTM-XXXXX” is incorrect (because there is a blank space before GTM container’s ID)
  • “GTM-XXXXX ” is also incorrect for the same reason – blank space, but this time it’s after container’s ID.
  • “GTM-XXXXX” is the only correct solution.

Unfortunately, this extension does not strip unnecessary blank spaces in the ID field (well, at least for now), so you should keep an eye on that.


MISTAKE #13 – Not Using Regex in order to Reduce the number of conditions/Triggers

What happens when you want to add multiple conditions to fire one tag? Usually, people create either multiple conditions in a trigger or assign multiple triggers to the same tag.

Multiple conditions instead of regex

Technically, this will work, but there is a more optimal way to do that, regular expressions (RegEx).

Instead of having, say, multiple “contains” conditions, you can match different data with just one Regular Expression. If you want to have multiple conditions connected with “OR”, you’ll have to either create separate triggers and assign them to the same tag, or you can use just one trigger with a regular expression.

regex instead of multiple conditions

Aleksandars Pasters has explained how you can utilize regex in GTM. You should definitely check it out. Also, I constantly use Regex 101 online validator to check whether my regular expressions are configured correctly.



Another entry in the list of most common Google Tag Manager mistakes is the absence of Folders. If you have a large number of tags, it is highly recommended that you organize them into folders by tag type.

Folders in Google Tag Manager

Why is this helpful? Well, if you want to edit a Facebook Pixe event, you just go to Folders > Facebook folder and you’ll find what you need. In a blink of an eye!

Too bad that one tag/trigger/variable cannot be added to several folders because sometimes one trigger is related to multiple tracking setups. Nonetheless, folders are this little GTM feature which will keep your implementation clean and easy to maintain. Be a professional, use them 🙂


MISTAKE #15 – Tracking forms with Click Trigger

This mistake is popular among beginners who tried and failed to use a built-in Form Submission trigger in GTM. What they do not know, is that Form Submission trigger sucks and does not work with the majority of online forms. At least that’s what I’ve experienced.

And what do beginners do after they the built-in trigger form does not work? Apparently, they choose a Click trigger as a plan B which is a super bad idea. Why? Because click trigger track all clicks of a Submit button.

If a visitor tries to submit the form but leaves a required field empty, click trigger will be dispatched anyway. As a result, you’d have way too many form submissions/conversions which are false positives.

Solution? There is a bunch of other techniques how to track forms with Google Tag Manager. Just try one of them.


Common Google Tag Manager Mistakes: final words

In short, we all do mistakes. If I got a penny for every mistake I’ve made… I’d probably have two pennies right now. Just kidding! I’d be a millionaire. Mistakes teach us valuable lessons, that’s why I wanted to share my lessons with you. Hopefully, you’ll manage to avoid them.

Remember, it’s much cheaper to learn from mistakes made by others.



Have you come across any other common Google Tag Manager mistakes? I’d really like to hear them and add to this list. You can contact me via Twitter, LinkedIn, o just simply post a comment. It would be awesome to compile an ultimate list and help those who are just starting with GTM, don’t you think so?

Julius Fedorovicius

Head of Developer Operations at Omnisend. I am highly interested in Google Tag Manager, Google Analytics, Adwords, Email marketing, Email Deliverability, Digital Marketing in general. You can follow me on Twitter or Linkedin.