
March 29, 2025
21 Most common Google Tag Manager mistakes
Updated: March 29th, 2025
If you’re reading this article, you’ve probably been in this situation: you open Google Tag Manager, set up your tags, triggers, and variables correctly (at least you thought so), and then it doesn’t work (or doesn’t work how you expected)! You even retraced every line in that 12-step tutorial, but still no luck.
Feeling frustrated and stuck, you call it a day with GTM. The following day, upon reopening GTM with a fresh perspective, you quickly realize there was an obvious mistake in the container (which you could have fixed in the blink of an eye yesterday if you had noticed).
Don’t worry—you’re not alone. Luckily, you can learn from the comprehensive list of Google Tag Manager mistakes (that we will cover in this article) to reduce the likelihood of this situation happening again!

Table of Contents
Here are the most common Google Tag Manager mistakes:
- #1. Viewing the wrong GTM container
- #2. The container is not published
- #3. Using a data layer variable before its respective dataLayer.push
- #4. Not using the preview and debug console properly
- #5. Not using other debugging tools
- #6. Not checking the GA4 DebugView
- #7. Not removing hardcoded tracking codes
- #8. Not doing audits and not having someone in charge
- #9. Using dataLayer = [], and putting it after the GTM snippet
- #10. Not monitoring page performance
- #11. Typos
- #12. Not cooperating with developers
- #13. Not Using Regex to reduce the number of conditions/triggers
- #14. Publishing all the changes at once
- #15. Tracking forms with Click Trigger
- #16. Not having proper naming conventions in place
- #17. Not adding the event settings variable to tags
- #18. Not labeling your container versions
- #19. Putting event parameters as user properties and vice versa
- #20. Failing to plan
- #21. Overlooking the importance of a container backup
- Final Words
#1. Viewing the wrong Google tag manager container
Beginners and multitaskers often encounter this common error. If you find that GTM Preview and Debug mode is not working, this could be caused by the wrong GTM account/container.
If you track multiple websites and/or have access to numerous Tag Manager accounts, you might be using the snippet from another account or container (by accident, of course). Double-check whether the ID in your GTM account is the same as in the Javascript snippet that is hardcoded on the site.
On the topic of multiple GTM containers, you should also be cautious of using the same GTM container for various websites. This can lead to data leakage, confusion and management issues. It’s best practice to create separate containers for different websites. The rule of thumb is one website, one GTM container.
#2. The container is not published
So, you’ve set up a new project and configured the triggers, variables and tags, but you notice that you’re getting too little data compared to what you expect. It’s almost as if tracking works only on your browser, but what about all the visitors to your site? This probably occurred because you forgot to publish the container.
Once you have updated or added some new elements to your GTM container (but not too many—see #14), test your changes (using Preview and Debugview) and then push your changes live by clicking the “Submit” button at the top-right corner of the GTM interface (check out mistake #19).
#3. Using a data layer variable before its respective dataLayer.push occurs
Another common mistake is trying to access data before it’s available.
Imagine this: you have a tag that fires on the Initialization event. The tag uses a data layer variable that accesses the page_category key from the data layer.
So every time a page_view event is fired, you send the page_category to, say, Google Analytics 4.
But, here’s the problem – the page_data dataLayer.push (that contains the page_category) occurs after the DOM Ready. This means the page_category is not yet available on the Container Loaded tag. Therefore, you will always send undefined with the GA4 tag.
Understanding that you can only access a data layer variable after that particular data is available in the data layer is crucial. What options do you have in this case?
- Fire a tag on that particular dataLayer.push that contains the page_category key, or
- Ask a developer to activate that dataLayer.push code before the GTM container snippet is loaded.

#4. Not using the preview and debug console properly
When you select an event from the left column of the Preview and Debug console, the Tags tab will show the tags present during that event categorized into “Tags that fired” and “Tags that did not”.
This is where you should look for the answer to, “Why didn’t this tag fire?” GTM will only trigger the tag if all conditions of 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.
If you want to learn more about proper debugging in GTM, check out this guide.
#5. Not using other debugging tools
GA debugger and Data Layer Inspector are among the most popular debugging tools. Both are free Google Chrome extensions that will make your life infinitely easier.
The Data Layer Inspector is like a Swiss army knife that adds additional information to the browser’s console. It also allows you to temporarily inject the GTM container on any site, debug other analytics tools (including server-side setup), and more.
When it comes to e-commerce tracking, the GA debugger (together with the Analytics debugger) is irreplaceable to me. When enabled, it displays all data passed to Google Analytics 4, making troubleshooting much faster.
I have prepared a comprehensive list of Chrome extensions and tools for GTM. Take a look at this list here. I have also provided several tips for debugging here.
#6. Not checking the GA4 DebugView
I’ve seen many beginners not check their GA4 DebugView once they have implemented Google Analytics 4 tracking via GTM. There is a false perception that you have completed your task once the GA4 tag has fired (according to the Preview and Debug console).
However, that is very far from the truth because, in some cases, users might accidentally send data to the wrong Google Analytics 4 property (or maybe some other technical problem occurs). It is essential to confirm that you can see that data in DebugView, too.
When testing a new event, go to GA4 > Admin > Data display > DebugView. Here, you can see all the events that GA4 receives. Click on an event to see its parameters and user properties.
Lastly, there are other tools you can implement (e.g. Facebook Pixel) which offer real-time debugging features. Always use them if they are available. Better to be safe than sorry!
#7. Not removing hardcoded tracking codes
If you have decided to migrate from hardcoded Google Analytics 4 (or some other tool) to a more flexible implementation via Google Tag Manager, beware: the process won’t be easy.
This warning does not apply to small websites with basic tracking – just simply add the GTM container snippet to the website, publish the Google tag (or some other tool’s tag) in GTM and remove any hardcoded tracking codes from the website.
But if you’re considering migrating a more extensive website with more complex tracking, many things can go wrong. My Google Tag Manager for beginners course explores topics related to the migration process in greater depth.
The most common issue (from my experience) was not removing some parts of the hardcoded event tracking, which caused data duplication. Some of those hardcoded events were simply missed by the developer, so be vigilant when auditing your migration process.

#8. Not doing audits and not having someone in charge
Not to be dramatic, but when various people have access to the same Google Tag Manager container, chaos will inevitably ensue. Imagine a contractor from an agency adds some marketing, then a colleague from another department adds tags for a new feature, and so on.
Like two ships passing in the night, there may be a lack of coordination among all parties with access to the container; people either don’t know or don’t care about what others are doing in GTM.
The result is a bloated container full of tags that could conflict with one another. Or even better, maybe some of those tags haven’t been used for a year (or years), but they are still in the container (thus affecting the page speed). Remember, every additional tag affects the page speed (the impact might be trivial, but it’s still there).
How do you avoid this situation? I recommend auditing the container at least once every 6-12 months. Collaborate with your colleagues and contractors to review all the tags in the container to confirm if they are still active.
I have seen way too many situations where GTM still contains a tag of a tool that the company hasn’t even used in the last two years. Be sure to remove everything that your business is no longer using.
Or even better, have one person/team in the company who is responsible for Google Tag Manager. If something must be added to the container, that person/team must be informed and provide approval. And if the request is illogical or harmful, it should be rejected.
#9. Using dataLayer = [], and putting it after the GTM snippet
The data layer plays a pivotal role in ensuring a successful implementation of Google Tag Manager, serving as an array containing all the information you want to pass to Google Tag Manager. The data layer object initialized by the Google tag or Tag Manager is called the dataLayer.
Here are a few examples of what data can pass to the dataLayer:
- User’s pricing plan
- User’s registration country
What can you do with that data? Anything you like!
For example, you can pass the user’s pricing plan as a custom dimension to Google Analytics 4. However, there’s a catch – if developers make this one mistake, your entire GTM event tracking will break.
If a developer adds custom information to the data layer like this:
var dataLayer = [{ 'pricingPlan' : 'premium', 'registrationCountry' : 'Lithuania' }];
…and places this code snippet below the Google Tag Manager container JavaScript code, the data layer will break.
No new events will be visible in the Preview and Debug mode. In simpler words – things will go wrong.
So, the developer must place the dataLayer snippet (as shown below) above the GTM container snippet (according to Google’s recommendation):
<script> dataLayer = [{ 'pricingPlan': 'Premium', 'registrationCountry': 'United Kingdom' }]; </script> <!-- Google Tag Manager --> ... <!-- End Google Tag Manager -->
While talking about mistakes, you’ll find that following best practices will limit mistakes made. In this case, an even better option is to ask your developer to use the dataLayer is an even better option.push method instead (see the example below).
window.dataLayer = window.dataLayer || []; dataLayer.push({ 'pricingPlan': 'Premium', 'registrationCountry': 'United Kingdom' });
This is an excellent example of why we don’t want to make mistake #12.
Are you a little tired? If so, bookmark this blog post about common Google Tag Manager mistakes and return later. If not, let’s keep it rolling!

#10. Not monitoring page performance after adding additional codes/tags to GTM
When you started using Google Tag Manager, you probably saw something about how Google Tag Manager supposedly “optimizes page load time”.
The reality is — it depends. I have done a bunch of tests and saw some improvements when comparing hardcoded tracking snippets (added directly to the website) vs. GA4 tags added to GTM.
Nevertheless, every added code piece to a website negatively impacts page loading speed. So, if you add a bunch of different pixels, like Facebook Pixel, GA4, Reddit Pixel, Quora Pixel, or LinkedIn insight tag, your page load time will increase by A LOT.
It’s good practice to check your page speed after you add a new tag. Actually, you should run several tests before adding new tracking and then compare page load times to what happens after you publish your changes.
I have published an article about GTM vs Pagespeed, so take a look there.
#11. Typos
I’ll be quick here. When a tag doesn’t fire, always check for typos in the:
- Trigger conditions: If you’re using regular expressions in your conditions, double-check whether you need standard regex or the “(ignore case)” option.
- Names of variables and triggers: This usually happens with data layer events, where the custom event trigger and the variables need to match exactly what the developer has inputted into the codebase. For example, you could ask your developer to add an event into the data layer to track clicks on menu items on your site.
Now, when you create your custom event trigger and data layer variable, you need to ensure that you enter the name exactly as it’s shown above.
Also, keep in mind that all of the fields in GTM are case-sensitive. This means that “Menu_Item” is different from “menu_item”.
#12. Not cooperating with developers
Many marketers and digital analysts have started using Google Tag Manager (probably) because they believe in the promise that they will not need to rely on developers anymore. Ever.
The reality is quite the opposite. Even though Google Tag Manager greatly increases the flexibility and agility of marketing teams, developers will likely still be needed, especially when dealing with more complex setups or projects.
The Google Analytics 4 ecommerce implementation is a good example. If you’re working on a custom e-commerce platform, you must work with developers and ask them to push event data to the Data Layer.
Trying to implement everything on your own (and scrape the website for some data) will result in fragile setups that can easily break.
Additionally, ask a developer to quickly review any custom JavaScript code you find online and plan to implement it via a Custom HTML tag. Way too many times, I’ve seen cases where marketing teams add some unknown script and temporarily break some features (or the entire front end) of a website.
The end result of this? The marketing team lost access to publish GTM container changes.
Fostering a strong relationship between marketing/analytics teams and developers is crucial for the best, most robust tracking. By building these relationships, you can enhance your tracking capabilities and, who knows, maybe even make a new friend along the way!

#13. Not Using Regex to reduce the number of conditions/triggers
What happens when you want to add multiple conditions to fire one tag? Usually, people create multiple conditions in a trigger or assign multiple triggers to the same tag.
Technically, this will work, but there is a more optimal way to do that – regular expressions (or RegEx). Instead of having, say, multiple “contains” conditions, you can match different data with just one RegEx pattern.
If you want multiple conditions connected with “OR”, you’ll have to create separate triggers and assign them to the same tag, or you can use just one trigger with a regular expression.
Aleksandrs Pasters has explained how to utilize regex in GTM, so you should check it out. Also, I constantly use the Regex 101 validator to verify my regular expressions.
If you want to learn more about all the possible options for creating “OR” conditions in Google Tag Manager, read this guide.
#14. Publishing all the changes at once
When you work on a bunch of new tracking features for a week and then publish them all at once, I call this the “big bang” deployment.
Unlike the scientific theory that explains the universe’s origins, this is not a good thing (in my opinion).
If something goes wrong with your newly published container version, you must revert the entire version (including things that were working). Sometimes, you may not even be able to tell what’s causing issues, so you must start from the beginning again.
A good rule to follow is one feature, one version. So, as you implement small portions of your total work, publish each feature as a new container version once you have confirmed that it is working correctly using Preview and Debug mode.
In this case, if something goes wrong with your latest version, the previous smaller batches that you published will still be live and will work fine.
To go along with this, check out mistake #20.
#15. Tracking forms with Click Trigger
This mistake is widespread among beginners who need help using the built-in Form Submission trigger in GTM. What they do not know is that the Form Submission trigger sucks and does not work with most online forms. At least, that’s what I’ve experienced (let us know if you have any tricks up your sleeve for this in the comments).
And what do beginners do after the built-in trigger form does not work? They choose a Click trigger as plan B, which is a bad idea. Why? Because the click trigger tracks all Submit button clicks, not just the successful submissions.
If a visitor tries to submit a form on your site but accidentally leaves a required field empty, the click trigger will cause the event to fire successfully, saying that the form was submitted. As a result, you’ll have an inaccurate, overinflated event count for submissions/conversions.
The solution? There are a bunch of other techniques for tracking forms with Google Tag Manager. If you find yourself in this scenario, give one of them a try!

#16. Not having proper naming conventions in place
Working in a GTM container with many tags/triggers/variables but no decent naming convention is hell. Imagine that you see a tag called “contact”.
Contact what?
Is that a form submission of the contact form? Is that a click on a “contact us” link? Is that something else?
If you don’t have many tags, even the most terrible naming of your GTM assets won’t cause a ton of problems, but when you start to deal with 50+ tags, poor naming conventions will come back to haunt you and waste your time.
Since none of us can see into the future (but if you can, please let us know when GA4 will bring back annotations), you never know when your GTM container will start to explode with tags. So, build good habits early on and use proper naming conventions from day 1.
I have published a guide on GTM and GA4 conventions that you might find helpful.
#17. Not adding the event settings variable to tags
The Event Settings variable provides the ability to define extra parameters accompanying every event it’s added to. This saves time updating multiple event tags each time you need to add a new parameter.
However, just because you have set up the Event Settings variable doesn’t mean that this will automatically apply to every event. You need to ensure that you go through every tag in your container and add the variable to each tag.
Another mistake would be to not set up an Event Settings variable, so check out this article to find out why and how.

#18. Not labeling your container versions
Even if you ensure that you aren’t making mistake #14 (publishing all changes at once), this is no help when you want to go back and look at different versions and need to click through each version to see what was updated.
To mitigate this issue, label your container versions (following these naming conventions) so that it’s easier to find what updates were made in case any issues arise later on.
#19. Putting event parameters as user properties and user properties as event parameters
If you’re new to Google Tag Manager, then you may find it hard to determine the distinction between what should be an event parameter and a user property in the Event Settings variable (or just in a tag if you’re doing it individually).
Event parameters provide additional information about actions that visitors take on your site. However, user properties are attributes that describe groups of your user base, such as their language preferences or the pricing plan they subscribe to. You can use user properties to define audiences.
If you have a share event, then the group that the shared content falls into is an event parameter (content_group), and the information on the pricing plan the visitor is on (pricing_plan) is a user property.
#20. Failing to plan
Not thinking through your ultimate tracking goals can cause many issues within your GTM container.
Firstly, over-tagging can slow down your website and clutter your GTM containers. Not planning what you want to track can lead to unnecessary or incorrectly configured tags.
Similarly, if you fail to plan, then you may ignore the automatically tracked events and built-in variables. Not leveraging these variables can lead to unnecessary custom events and custom variable creation.
Lastly, as part of your planning process, you want to ensure that you have documentation of tags, triggers and variables. When you have multiple people making tags, or even if it’s only you, things can get very confusing very quickly if you fail to have proper documentation.
Here is an example of a spreadsheet with events you could update for your needs. You can use it as an example/inspiration to create your own spreadsheet.
#21. Overlooking the importance of a container backup
There is a feature that allows you to export a JSON file of your container, which is a great practice to get into since you never know what can happen to your container, especially if you have multiple people with access to it
If anything were to happen to your container, you can import the JSON file you exported from your lost container into a new container, so you don’t need to worry about having to recreate everything.
Now, you may be thinking, “Aren’t container versions our backups?” Yes, but not in the case of a container being deleted altogether.
Sometimes things happen – rogue agency takes your GTM container as a hostage, or an employee leaves the company, their email is deleted, and nobody at the company knows how to get access to the container.
To export your container, go to Admin > Export Container.
Click the container version that you want to export (likely just your Default Workspace, assuming it’s up to date with all changes you’ve made) and then “Export”.
So, take the path that has been less traveled and export your container. Your future self may be really grateful for it.
Most common Google Tag Manager mistakes: Final Words
In short, we all make mistakes; we’re human, after all! If I had a penny for each mistake I’ve made… well, let’s just say, I’d likely be a millionaire by now!
All jokes aside, mistakes are powerful teachers, so I want to share this list with as many people as possible. I hope you can steer clear of these mistakes, but in case you don’t (and that’s ok!), this list is here to help you work things out.
If you think I missed something, let me know in the comments. Remember, it’s much cheaper to learn from the mistakes of others, so let’s help each other out!

75 COMMENTS
Thanks a lot for this post!
I have question regarding a situation I just encountered. Please forgive my excessive laymen:
I have pasted the SAME GTM snippet, to various domains, each of which has it's own Google Analytics tracking ID.
I created a click event tag, linking it to only one GA Tracking ID (Website A), thinking that only events from that website would be triggered. Websites A, B and C were once properties in the same GA Account (they're from the same series of GA tracking ID numbers), but now are spread among three accounts. Website D is from a completely separate Account.
The Events ended up triggering in all websites, but all the data merged in Website A's GA account. The rest didn't record any Events.
Secondly, Website B's GA account registered sessions from all the other websites, effectively doubling my total sessions in Website B3s account.
Website's C and D did not record any Events or extra sessions.
Any idea of what might've happened here?
Hey, honestly, that sounds like playing with matches. I'd say that your triggers are misconfigured somewhere but there might be many other reasons.
My personal best practice approach - use different GTM containers in different websites IF those websites have different structures/functionality.
For example, in a company I'm working in, we have one container for website, one for blog, on for the main product, etc. They are all very different in structure, content, features, so it's more logical for me have different tags, triggers, Google analytics tags, etc.
In addition to that, all those different GTM containers are using the same GA tracking ID.
Hi,
I get a [javascript][/javascript] at the footer of all pages ever since I integrated the tag manager snippet. Everything works fine but I cannot get rid of this annoying text at the bottom of all pages. Any ideas?
Thanks,
Peter
Hi, Looks like one of your Custom HTML tags is injecting that text. Try disabling them one by one and see it if helps. You can do this check with help of GTM Preview and Debug mode.
Hi,
I already installed tag manager. However, the click classes can't detect :'(
And how i can get the publish button...I can't find out where it is.
Hey,
Does that element have a CSS class that you're trying to track?
If you're not seeing publish button, then it looks like you don't have a full access to the container. Someone share with you only limited access.
Cheers
Hi Julius,
We just started setting up GTM and already have a GA account. I created a Tag for our Youtube page which aligned with a goal (conversion) set in GA. I ran preview mode and confirmed that the tag is tracking in GTM and afterwards published to the Live site. However, I was looking in Real-time reports and it appears to not be tracking in GA. Why would that be?
Side note: I did remove all of GA and have since placed it back in until I can figure out a solution.
Thanks,
Brandon
Hi, maybe this will help https://www.analyticsmania.com/post/google-analytics-real-time-reports-not-working/
For multi-location companies, can you load more than one Google tag manager onto a site?
Yes, but they will use the same dataLayer, therefore conflicts might happen.
Hi Julus,
This is probably a dumb question, but when I click through my site, the GTM code appears but the entire page then reloads and it refreshes the debug console - thus erasing the event triggers.
What am I doing wrong? This is happening on the past 2 sites.
Hey, don't worry. This behavior is expected. When you refresh the page, he preview and debug mode refreshes as well. You're not doing anything wrong!
Hi Julius,
One question after analise a GTM from a client.
It's possible to use a unique GTM in multiples URLS tottaly different one from other? Off course every one has a different GA.
Ex:
www.url-1.com
www.url-2.com.br
www.url-3.net
www.url-4.org
Thanks in advance.
Junior
Yes, that is totally fine.
Hi Julius,
those are very interesting tips, but I think I have a different kind of problem.
We run our local environment in a different URL than the production site, after changing our hosts file. And I cannot make GTM work with this setup (at least not the debug & preview mode), because seems like it doesn't understand it's the same thing.
It's like if 'analyticsmania.com' was your public URL, but you type 'am.com' to open it in your local server.
Is it possible to use GTM like this?
Thanks in advance!
Yes, it is possible. Preview and debug mode is using 3rd party cookies, therefore it does not care about different domains.
What does the js console show when you try to enable preview and debug mode in the local environment?
Are you sure that developers have added the gtm code snippet to the local environment? You can check that with the Tag Assistant chrome extension.
After struggling for 2 days I could make it work by disabling a chrome extension (DuckDuckGo Privacy Essentials). I tested a few times and every time it was disabled the debug mode worked fine.
Followed a tip from a comment on one of your other posts: https://www.analyticsmania.com/post/google-tag-manager-preview-mode-not-working/#comment-6524
Thanks Omkar and Julius!
I went through and checked the list and it appears I haven't made these mistakes with my Tag Manager. I'm having a problem when that when I go in to my Google Analytics page I'm only able to see Real time data. It will accurately show when tags are fired such as the page views and clicks on particular links I have on my site. The problem is that I can only see the real time data and the option to see "Events (Last 30 min)." I set up my tag manager and analytics page a day and a half ago. Is this why it's not holding any data yet? It seems like I'm doing it right I just can't tell if I will be able to see the Behavior information.
Thank you!
This is not ok. My guess would be that you have enabled a particilar segment in your GA reports and because of it you don't see any data in behavior.
Thank you for your reply. I looked into it and changed some things as mentioned. But I think I found out what my rookie mistake was! For some reason the date range for the reports was showing yesterday and the previous days before that. As mentioned I just setup my analytics yesterday. I didn't have the current date selected in the upper right hand corner on my report page. I changed it to today's date and ta-da! my data appeared!! An embarrassing noob mistake.
Thanks again for helping and your quick reply! Your info was really helpful.
Hi Julius,
We've always had google analytics goals set up and now that we're using GTM a question came up.
As we set up GTM and triggers, will this affect the GA goals?
If you send events using the same category/action/label, then your GA goals will not be affected.
Hi
what is "Only fire this tag in published containers" GTM?
thanks
Hey, here's a quote from Google's help:
"If firing a particular tag results in a fee being charged, you can avoid firing it in testing environments (e.g., during previewing and debugging). Instead, when applicable, Google Tag Manager will tell you when the tag would have fired. For the most accurate testing, leave this option unchecked."
Hope that helps.
I did not understand
Would you please say your own deduction?
thanks
Let's say that you have a particular tag which costs you money to fire (because maybe you're paying that tool a fee per submission, etc.).
You don't want to actually fire that tag on testing or development environment because you don't want to spend money on fake submissions of your employees.
So what you do is that you enable this checkbox. When it's enabled, the tag (in testing environments) will be displayed in the Preview and Debug mode as "fired", but it won't send the actual data to that 3rd party tool, therefore, you won't spend money on fake submissions.
hi. I have a problem. After I installed google analytic by google tag manager, every time I enter my website and click something, google analytics include my clicks. How can i solve this problem?
Hey, are you sure you haven't implement click tracking via GTM? If that's not the case, I'd say that your website has some hardcoded click tracking or some plugin which does that automatically.
Before I install Google Analytics by GTM, I did not had this problem. I have installed Google Analytics by GTM on two of my website and I have the same problem. You have never had this problem?
I do not know what you mean by click tracking via GTM. I have just done the same process that all website teach us about installing GA by GTM.
How can I find that my website has some hardcoded click tracking or plugin?
Thank you for your help.
Could you explain then, what you mean by saying "you installed GA by GTM"? How did you do that?
If there is a plugin, you could check in your content management system's list of plugins. Or contact a developer who developed that website.
To find out if you have hardcoded click tracking is to temporarily remove GTM code and check GA reports again. If you see the clicks, then you probably some hardcoded click tracking. There are other ways to check but they are more technical and require a deeper dive into the source code, so I'll skip them this time.
Hi Julius,
My All variable always show Undefined as like click ID variable is undefined.
When i select Form Submission trigger and then i select all Form but my trigger is not show in Debug mode left Side this gtm.formSubmit?
I am new In GTM.
Hi, Click variables will return some value only if:
1. You click some element and you have enabled at least one click trigger
2. AND that clicked element has some attribute like ID, Class, etc.
Form trigger does not support all forms. Here's a guide explaining various form tracking techniques
No need to worry about being new in GTM. We've all been there. Just continue reading/learning and you'll be good.
If you're in a hurry, my GTM course will save you time learning GTM and will show you many shortcuts.
I m facing issues with my data counts. Some time the stats of event tracking matches with back-end data .. but some some I see huge difference. I want to make sure every tag must fire its pixel / GA events on triggers . Is there any method where I cam make browser or code to make sure every applicable GTM pixel firing appropriately.
It's next to impossible to guarantee that your tracking data will be 100% accurate compared to the backend data (due to browser nuances, JavaScript isn't very reliable too, visitors might be using blocking extensions, etc.). it is acceptable to have 5-10% discrepancy (depending on a project).
But if you have a larger discrepancy, you need to thoroughly test your implementation. Here's a guide with various tools/ideas.
Hi Julius,
I have a question on how I see reporting/metrics of GTM Tags in GA. I use Pardot, Salesforce, GTM, and GA. When I have a marketing campaign, for example, CES 2019, this is my workflow:
1) Create a campaign in Pardot and copy the tracking code
2) Go into GTM and create a new Tag (custom HTML) so I can incorporate the Pardot tracking code. Trigger “all page views”.
I then distribute the landing page with the CES 2019 campaign on LinkedIn, our blog, Twitter, and Facebook. I should mention we have the universal GA tag set up with our site, and I have Twitter and Facebook linked.
Where Google Analytics should I see reporting on the GTM Tag? I would like to see in GA which distribution source had more views. In GA, Behavior/Events tab is empty. Do I need to only use the featured Google Analytics Tag for something to populate in Events?
Thanks in advance!
Hi, I'm not familiar with the Pardot but I guess that the custom HTML tag's data will be visible somewhere in Pardot, not GA. If you want to see some attribution data in GA regarding CES campaign, you should tag all your campaign links on FB, Linkedin, etc. with UTM parameters. Read more about them here https://www.annielytics.com/guides/definitive-guide-campaign-tagging-google-analytics/
Hi Julius,
I'm new to GTM. My employer is separating from our agency and I am taking over the marketing. How do I transfer the GTM without duplicating or losing data? I think the agency may not have used best practice - create a GTM for our company and add their agency as a user. If they added my client's Hubspot website (which they created) to their GTM account, is there a way to remove their GTM without losing data and add a new one that I create?
Can you explain the situation a bit clearer? So there is an agency, then you as their client and then you have some additional clients?
It does not matter who created the container, they can be removed from it in GTM. So why don't you just take over the container that was created for you by the agency? Ask them to make you the admin and then remove them.
Hi Julius,
I've set up some Google Ads Conversion Tracking tags, and they're firing with the correct triggers, but nothing seems to be tracking in Google Ads. I've got the correct conversion ID and Labels assigned to the tags, and I've published the latest version on GTM (including a conversion linker tag on all pages), but nothing is coming through when i check conversion actions on Google Ads. Google Tags assistant is also telling me nothing is wrong. Is there something I'm missing?
Cheers,
Chris
Just by firing those tags, nothing will be displayed in Google Ads. You need to actually click your live ad, then fire the conversion tag and only then you'll see the conversion in your GAds reports (with some delay).
Hi Julius,
I am new to GTM and in project also. GTM is added for e-commerce project. My Code is working absolutely fine on stage environment. Decided to deploy same code on live environment. There I am getting issue, On live environment Only "page view Requests" tab is showing and "Events" tab is not showing up on Google Tag Assistant. Because of this we are not able to do any tracking.
Will it take 2-3 days time? Or if in 2- 3 days problem will be still there, then what will be the solution for this?
Thanks
Achla
There's no need to wait 2-3 days. Make sure you have published your container changes to the live environment too. If you are using GTM environments feature, you need to choose to which environment you're publishing your changes.
If you're using a totally different container for the live site, you need to copy your changes from the test container to live container.
Hi,
The data layer for page view is firing after the page view event. How could I push this along with page view so that when my tag fires on page view event I get the data layer to info to use.
could you please recommend something.
You need to ask a developer to activate that dataLayer.push (with your custom data) before even Google Tag Manager container is loaded. In other words, that dataLayer.push code should be placed above Google Tag Manager container snippet.
Hi,
I have an analytics account and tag manager account.
Let us say, I have added Google Analytics Snippet to my website. (The GA will start reporting the date)
And,
I want to use the tag manager account only to collect the triggers/events. I will just create a variable for my GA ID and I will use this variable to create different tags.
My question.
Now I will have 2 snippets.
1 is for GA.
1 is for Tag Manager. (There is no tag with the track type: page view tag added )
In the above case: Can I use both the GA and Tag manager snippets on the site?
Or,
It's mandatory to add page view tag on the tag manager and use only Tag manager snippet for tracking GA report and Events report.
Please guide me. Hope I will receive an email once you reply to this.
You can have pageview hardcoded in site's code, it will work fine. But in the long run, you'll need to migrate fully to GTM anyway (because once you need to make a custom configuration to the pageview, you will not be able to do that via GTM and will have to modify your hardcoded snippet)
Hello, I have question about the GTM container id.
I added GTM Snippet to my website ( head and opening body script)
And download the WASP to check if the GTM installed correctly or not.
but my GTM container id which I can see at GTM manager page and GTM id of my website what I can see through the WASP is not matched.
For example, correct GTM id is GTM-MK00000 and I added the snippet which include GTM-MK00000 to my website at the correct position. but when I check container id of my website through WASP, it shows that GTM Container (gtm): 2ou1m0.
I'm not sure what is problem...
please help
WASP is too difficult for beginners. Use Tag Assistant and you'll be fine.
I already installed tag manager.
I can't find out where it is publish button.
If you don't see the button, this means that don't have full access to the container (not enough permissions). Ask your coworker or client to give you "publish" permission. Or create a new container.
I'm curious about your Rule #13. Have you done any tests that show regex is faster than multiple more simple trigger rules?
Rule 13 is not about speed. It's about easy of tag management.
Speedwise - 10 triggers vs one trigger with regex will not make a big difference.
Hi Julius,
I have a question regarding the Click buttons that appear on the left side of the debug mode.
I recently added a new GTM container to our website, while all our pageview tags are working fine but when I make clicks on the website (in debug mode) I don’t see the ‘Click’ getting recorded on the left side of the GTM debug window. Can you please advise what could be the reason behind it?
You need to create a click trigger in gtm
Thank you, Julius.
I wasn't referring to a specific tag that is dependent on a click. Rather, when you have the website in debug mode, wherever you click on the website a corresponding click gets recorded in the debug window. So, that part is not happening. And without that I am not able to determine the click variables associated with the click, to thereafter use in a click trigger.
As I have said, you must have at least one click trigger in a container to start seeing click events. With or without a tag. So just create a trigger.
Thank you once again, Julius.
I wasn't aware that without a click trigger (with or without a tag), the click doesn't record in the debug mode.
I am able to see the clicks now.
Yes, this one of the fundamental things that many GTM usres don't realize and that I focus a lot in my GTM course for beginners.
Hi Julius, how are you? Thanks for sharing this post with us!
I set-up my GTM with basically three conversions: Contact Form, WhatsAppbutton and click email. But I found that some users, use in the same session CF and WhatsApp to contact with us, triggering 2 conversions when actually is one.
Is there a way to stop triggering one of them to avoid counting two times?
Thanks!!
Here is one which has given me a migraine, and it's silly.
I was trying to track a click event on a tag. Nothing was showing in up vars in tagman on the click event; they were blank. I couldn't understand it.
Every now and then, they would pass though, I'd try again, and they wouldn't show up the next time. It was driving me insane.
I looked more closely and see there is a tag wrapping the text inside the button, and most of the time, that is what I (the user) was actually pressing!! It was showing up sometimes because I would press the button on the outer edges, missing the span.
I added the class trigger name to both the span and the button... done!
Hi Julius,
Im using GTM & Universal Analytics to track conversion from Google ads.
I setup goals in analytics of 6 types which is Destination, Duration, Pages, Events, & Smart Goal.
Do I need to create a trigger in GTM for the 6 of them?
Thank you so much!
Hi Julius,
Thanks a lot for your amazing content on Google Analytics, it is always most helpful - both articles and videos! I've learned so much from you over the past few months.
I was wondering if you could give me a piece of advice, please... I am fairly new to GA/GTM and am stuck in a situation where both Gtag and Gtm snippets had been installed on a website and I cannot possibly get developers remove the old GA tracking as it's not on the priority list (I realise it's bad practice).
I tried using GTM without firing a Pageview tag (as 'in theory' gtag should cover that basic data collection) however now I'm seeing thousands of users with only a handful of pageviews. Could this be caused by using both snippets at the same time? Or is that a deeper issue with tracking that I need to investigate? Prior to publishing event tags (but gtm container published) the numbers looked fine.
Thank you!!
Hi, gtag base tag alone should not be the problem. Further investigation required.
Thanks for getting back to me! That's some relief on my end, but going to keep digging deeper.
Thanks again!
Thanks for getting back to me! That's some relief on my end, but going to keep digging deeper.
Thanks again!
hi julius :)
I have a question:
Is Google Tag Manager required for the site?
thank you dude
Hi, Julius, I read all of the above mention mistakes about the google tag manager but did not find a solution. I am trying to track button clicks but can not add variable configuration. Can you please tell me how I can resolve this issue?
Hello, I am working on Vue application.
I have configured gtm in html file,and pushing the random data into datal ayer using event key in one of my vue component.
in this way the data is getting populated after container loaded.
but is there any way to push the data before the gtm snippet code in html file?
I am not a developer. You should find a way to activate GTM container snippet after the dataLayer is initiated.
Hi Julius
The highest two resources on my website pages, when running PageSpeed Insight, are Google Tag Manager and Google Analytics. Google lists Google Tag Manager as an "Opportunity" for improvement. Is there a way to reduce KiB of Google Tag Manager? Thank you
You can reduce the size of GTM container by having fewer tags, triggers, variables
Hi Julius,
Thanks a lot for your amazing content on Google Analytics.
In my application Google Analytics is already implemented, Now we implemented Google Tag Manager - created a container, events, variables. Events and triggers are working fine, and we are able to track the data. But in the analytics, the bounce rate is completely down now. How can we use scripts (window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga4s'); and 'https://www.googletagmanager.com/gtm.js?id=' , Is there any other way we could use ?
Read this https://www.analyticsmania.com/post/how-to-fix-low-bounce-rate-in-google-analytics/
Thank you so much! What a great troubleshooting checklist.
It was "#2. Container is not published" for me.
I did a number of sites at once. I couldn't figure out for the life of me why one was tracking with a GA4 tag update.
Hi Julius, thanks for the helpful content you have here. I had a question. I ran into an issue where I had imported a container into PROD env from the DEV env. However i did not update the measurement id for the PROD and by the time I figured what was going on 2 days of GA4 data was gone.We still have UA running parallel since GA4 migration is half way. My question is how to avoid these scenarios? Are there an scripts or automation tools for GTM that can help with a Go/No Go checklist?