Google Tag Manager (GTM) is a free tag management tool that is used to deploy various marketing and analytics tags on a website and/or mobile app.
Instead of hardcoding several tags on a website, one tag (called the GTM container code) is placed on each and every web page and this tag is used to deploy and manage other tags on the website.
This makes tag management efficient. This is the advantage of using GTM.
Up to now, it all sounds good. However, the happiness that you get by managing all the tags from one central location is short-lived and the trouble is around the corner.
As your need for integrating website data with various data sources increases and become more complex, you quickly realize, how hard it can be to create and maintain each integration.
In GTM we create integration with each data source via ETL (extract, transform, load).
What is ETL (Extract, Transform, Load)?
ETL is a process that is used to send data from one data source to another (usually from one database to another).
When you use a tag management solution like ‘GTM’ to route data from one data source to another (like from your website to Google Analytics) you knowingly or unknowingly carry out ETL:
The data source from which you extract the data is called the originating data source.
The data source to which you send the data is called the destination data source.
For example, if you are sending marketing data from your website to Google Analytics via GTM then your website is the originating data source and your Google Analytics account is the destination data source.
Your GTM account is your TMS which acts as a hub between the originating data source and the destination data source.
Note: You can also send data:
From one originating data source to several destination data sources, or
From several originating data sources to one destination data source, or
From several originating data sources to several destination data sources.
What are the ETL functions?
ETL is made up of the following three functions called ‘ETL functions’:
The extract function – used to extract data from the originating data source.
The transform function – used to transform the data into the format your destination data source can understand.
The load function – used to send the transformed data to the destination data source.
Traversing the HTML DOM to extract data from the website and then sending it to GTM
You need a considerably good knowledge of JavaScript and considerably good knowledge of the development environment of each of your data sources, in order to extract data via GTM.
If you want to extract Facebook data (like ‘Facebook likes) from a website then you first need to develop at least a basic understanding of ‘Facebook JavaScript SDK for website’.
If you want to extract Facebook data from an IOS mobile app then you first need to develop at least a basic understanding of ‘Facebook SDK for IOS’.
If you want to extract Facebook data from an Android mobile app then you first need to develop at least a basic understanding of ‘Facebook SDK for Android’.
If you want to extract Youtube data (like video played) from a website then you first need to develop at least a basic understanding of YouTube Player API.
If you want to extract twitter data (like tweets) from a website then you first need to develop at least a basic understanding of ‘Twitter JavaScript SDK’.
For ‘N’ data sources there could be ‘N’ JavaScript libraries. How many JavaScript libraries you can learn and remember?
On top of that, JavaScript libraries update all of the time.
How many libraries you can keep a track of (for new updates) and for how long?
If the JavaScript library you used for tracking data, get an update and you are not aware of it then your tracking can stop working immediately and the worse part is you won’t know about it in a timely manner.
Think of all of the countless websites which relied on ga.js JavaScript library to build their tracking setups and which were later forced to update their installations because Google switched to analytics.js library.
The more data sources you have got, the more ‘extract’ functions you would need to create and maintain.
Not only you would need to manually create the ‘extract’ functions but you would also need to make sure that the system (tags, triggers, variables, data layers, and JavaScript library) you used to extract data, remain intact all of the time.
This makes the whole process of extracting data from several data sources very complex and challenging.
Even for a seasoned developer extracting data from multiple data sources is nothing short of a nightmare, let alone a marketer with mediocre JS skills.
The ‘Transform’ function
The transform function is used to transform the data into the format, your destination data source can understand.
For example, if you are using GTM to route/send data to ‘Google Analytics’ then GA is the example of ‘destination data source’.
Similarly, if you use GTM to route/send data to ‘Mixpanel’ then ‘Mixpanel’ is the example of ‘destination data source’.
Just like ‘originating data source’, there is really no limit to the number of destination data sources you can have.
Converting event data into the format which Google Analytics can understand is an example of a transform function, in the case of GTM.
For example, let us suppose you are tracking clicks on ‘add to cart’ button on your website. You sent this event data to GTM via a tag.
But before you can route this event data to Google Analytics, you would first need to convert the event data into ‘Event Category’ – ‘Event Action’ format. Because this is the format in which GA understands the event data.
Now if you want to send the same event data to ‘Mixpanel’, you would first need to convert the event data into the format, ‘Mixpanel’ can understand.
Similarly, if you want to send the same event data to ‘Kissmetrics’, you would first need to convert the event data into the format, Kissmetrics’ can understand.
This process of transforming the data into the format, your destination data source can understand is the ‘transform’ function.
The more destination data sources you have got, the more transform functions you would need to carry out.
Not only you would need to manually create the transform functions but you would also need to make sure that the system (tags, triggers, variables, data layers, JavaScript library) you used to transform data, remains intact all of the time.
This makes the whole process of transforming data for several destination data sources very complex and challenging.
Even for a seasoned developer transforming data for several destination data sources is nothing short of a nightmare, let alone a marketer with mediocre JS skills.
The ‘Load’ function
The load function is used to send the transformed data to the destination data source.
Sending a pageview hit via GTM to Google Analytics is an example of a load function.
Depending on the quantity, type of destination data sources, and the type of data you are sending, creating a load function can also become very complex, very fast.
Let us suppose you want to send event data to Amazon Redshift (your data warehouse).
Now how you will do that via GTM?
Let us suppose you also want to send the same event data to 20 different analytics tools via GTM.
Now how you will do that via GTM?
The more destination data sources you have got, the more load functions you would need to create.
Not only you would need to manually create load functions but you would also need to make sure that the system (tags, triggers, variables, data layers, JavaScript library) you used to route data, remains intact all of the time.
This makes the whole process of sending data to several destination data sources very complex and challenging.
And above all, you would need to carry out ETL for each of your tracking requirements from a particular data source:
As your tracking requirements increase over time, so will be the need to create and maintain several ETL functions.
Now let us suppose, you have got more than one originating data source. You have also got one mobile app. And just like your website, you have several tracking requirements for your mobile app.
Consequently, you would need to create and maintain several ETL functions for your mobile app as well:
Now let us suppose, you have got several data sources. You have got your website, your mobile app, your CRM, your point of sales system, etc.
Let us suppose, you have got ‘N’ tracking requirements for each data source. So you would need to create ‘N’ ETL functions for each data source.
Let us also suppose, you have got ‘N’ destination data sources. So instead of just sending data to one destination, you now have to send data to ‘N’ destinations.
This is the point where your GTM configurations will no longer remain stable and manageable, and would likely collapse under their own weight:
Can you see yourself creating and maintaining several hundred ETL functions?…. NO
Can GTM automate ETL functions for you?….. NO
As long as you use GTM or in fact any tag management solution, you would need to manually carry out ETL functions for each tracking requirement, for each data source, and for each destination.
And on top of that, you would need to make sure that the systems (tags, triggers, variables, data layers, JavaScript libraries) you use to create ETL functions remain intact all of the time.
This is a lot of engineering work and it just defeats the whole purpose of using a tag management tool.
So what is the solution?
The solution is if you are in a situation where you need to route data between several data sources and several destinations for hundreds of different reasons (tracking requirements) then say goodbye to GTM.
I know it can be hard to say goodbye to a tool that you learned for years. But that is the technology for you. No tool or technology lasts forever. A better alternative is almost always just around the corner.
GTM, or in fact any tag management solution, is not designed for carrying out hundreds of complex ETL functions which is one of the primary requirements for carrying out ‘Business Intelligence’ (BI) and/or to work with ‘Big Data’.
Your time would be better spent in automating certain or all parts of ETL functions and focusing on more important things like ‘data analysis’.
This is something you can do via CDPs like ‘Segment’, keen.io and mParticle. That’s why I recommend using a CDP.
What is a Customer Data Platform (CDP) and why do you need one?
A customer data platform (or CDP) is a tool designed to route (send) data between data sources.
Unlike a TMS, a CDP can be more easily used to route data between multiple data sources.
Both CDPs and TMSs are primarily designed to be used by developers. However, unlike a TMS, a CDP is much more non-developer friendly as it can automate many ETL functions.
Yes, you heard it right.
A CDP can automate ETL functions for you. Something a TMS can never do. This is the biggest advantage of using a CDP.
Many CDPs promote themselves as an alternative to a TMS. However, it is worth noting that they are not replacements for a TMS (yet).
For example, GTM has one very strong advantage over CDPs like Segment; and that is its ability to control tags. Through GTM, you can easily control:
When a tag should fire
When a tag should not fire
Where a tag should fire
Where a tag should not fire
How often a tag should fire
In which order different tags should fire
What the tag should do when it fires
Segment lacks that ability. So in many cases, you have to rely on a TMS, like GTM, even when using a CDP.
However, here is a thing. I don’t see any reason why a CDP cannot also provide the features of a traditional TMS in the near future.
If you keep this possibility in mind, there will come a time when a traditional TMS may no longer be required. For this reason, I think the future of TMSs (like GTM) is bleak.
However, for now, you have to use a TMS alongside your CDP. And yes, you can install a TMS via a CDP and get the best of both worlds.
It is worth noting that a CDP is generally not free to use.
Yes, many CDPs do provide a free version, but these are very limited in functionality. If you want to use a CDP for commercial purposes, then you are better off using a paid version.
You would be charged based on your monthly API usage and the integrations you have enabled.
Meet the Google Tag Manager Alternative ‘Segment.com’
There are many CDPs available on the market. The one that I use and recommend is ‘Segment’.
Through tools like ‘Segment’ you can automate certain or all parts of ETL functions.
With ‘segment’, you track the clicks on ‘add to cart’ button only once using their tracking code.
Then segment can automatically route the same event data to all of your destinations: Google Analytics, Mixpanel, Adobe Analytics, and your data warehouse.
You won’t need to create and maintain ‘transform’ and ‘load’ functions for each destination data source. This would be done automatically by the Segment API.
If there is any change in the JavaScript library used by a data source and ‘Segment’ supports the integration with that data source, then ‘segment’ will automatically start using the updated JavaScript library without breaking your tracking.
You won’t need to make any changes to your tracking code.
Remember you are sending your analytics data to ‘segment’ and ‘segment’ is routing that data to your chosen data sources.
Once you have sent your data to ‘segment’ then it is the job of ‘segment’ to route your data to various analytics tools.
‘Segment’ is not a tag management solution (TMS).It is a good alternative to GTM but not a replacement.
It acts as a hub between ‘originating data sources’ and ‘destination data sources’. Its job is to automate ETL functions and make data integration easier and less time-consuming.
Unlike GTM, Segment does not rely on ‘data layers’. It uses an API that can replay’ your historical data into any new tool and can route your data to hundreds of tools with the flick of a switch.
When you use a CDP like ‘Segment’, you can easily and efficiently fix data collection and integration issues. All of this helps in getting the correct conversion attribution data.
The downside of using a CDP like Segment
One big downside of switching to a CDP like ‘Segment’ is that you would have to retag your website all over again. But that should be your last tagging.
Another downside of using a CDP like ‘segment’ is that it is not free to use. They do provide the free version to developers but that is limited to 50k API calls per month.
You would be charged based on your monthly API usage and the integrations you have enabled.
So if you run a high traffic website, tracking and data integration can get very expensive, very fast. But that is the cost for automating ETL, for now.
"How to use Digital Analytics to generate floods of new Sales and Customers without spending years figuring everything out on your own."
Here’s what we’re going to cover in this training…
#1 Why digital analytics is the key to online business success.
#2 The number 1 reason why most marketers are not able to scale their advertising and maximize sales.
#3 Why Google and Facebook ads don’t work for most businesses & how to make them work.
#4 Why you won’t get any competitive advantage in the marketplace just by knowing Google Analytics.
#5 The number 1 reason why conversion optimization is not working for your business.
#6 How to advertise on any marketing platform for FREE with an unlimited budget.
#7 How to learn and master digital analytics and conversion optimization in record time.
My best selling books on Digital Analytics and Conversion Optimization
Maths and Stats for Web Analytics and Conversion Optimization
This expert guide will teach you how to leverage the knowledge of maths and statistics in order to accurately interpret data and take actions, which can quickly improve the bottom-line of your online business.
Master the Essentials of Email Marketing Analytics
This book focuses solely on the ‘analytics’ that power your email marketing optimization program and will help you dramatically reduce your cost per acquisition and increase marketing ROI by tracking the performance of the various KPIs and metrics used for email marketing.
Attribution Modelling in Google Analytics and BeyondSECOND EDITION OUT NOW!
Attribution modelling is the process of determining the most effective marketing channels for investment. This book has been written to help you implement attribution modelling. It will teach you how to leverage the knowledge of attribution modelling in order to allocate marketing budget and understand buying behaviour.
Attribution Modelling in Google Ads and Facebook
This book has been written to help you implement attribution modelling in Google Ads (Google AdWords) and Facebook. It will teach you, how to leverage the knowledge of attribution modelling in order to understand the customer purchasing journey and determine the most effective marketing channels for investment.
About the Author
Himanshu Sharma
Founder, OptimizeSmart.com
Over 15 years of experience in digital analytics and marketing
Author of four best-selling books on digital analytics and conversion optimization
Nominated for Digital Analytics Association Awards for Excellence
Runs one of the most popular blogs in the world on digital analytics
Consultant to countless small and big businesses over the decade
Get My Step-By-Step Blueprint For Finding The Best KPIs (32 pages ebook)
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.