Why you may no longer need Google Tag Manager

Google Tag Manager (GTM) is a free tag management tool which is used to deploy various marketing and analytics tags on a website and/or mobile app.

So 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)

Introduction to Extract, Transform and Load (ETL)

Extract, Transform and Load (or ETL) is a process which 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:

Extract

Extract function is used to extract data from a data source.

Your website is an example of data source. Your mobile app is another example of data source. Following are other examples of data sources:

  • Local databases
  • CRMs
  • POS (Point of Sales Systems)
  • Email platforms (like ‘GetResponse) etc.

There is really no limit to the number of data sources you can have. It all depends upon how your company collect and store data.

Following are examples of extract functions in case of GTM:

  • Extracting data from a data layer hard coded on the website
  • 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 source, in order to extract data via GTM.

For example,

If you want to extract Facebook data (like ‘Facebook likes) from a website then you first need to develop at least basic understanding of Facebook JavaScript SDK for website.

If you want to extract Facebook data from a IOS mobile app then you first need to develop at least basic understanding of ‘Facebook SDK for IOS’.

If you want to extract Facebook data from a Android mobile app then you first need to develop at least 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 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 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.

Transform

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 transform function, in 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 understand the event data.

Now if you want 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 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, remain 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.

Load

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 load function.

Depending upon your destination data source and the type of data you are sending, creating a load function can 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 want to send same event data to 10 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, remain intact all of the time.

This makes the whole process of routing 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 increases 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 its 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 lot of engineering work and it just defeat 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 which you learned for years. But that is technology for you. No tool or technology last forever. A better alternative is almost always just around the corner.

GTM or infact 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 focus on more important things like ‘data analysis’. This is something you can do via tools like segment, keen.io and mParticle.

Through tools like ‘segment’ you can automate certain or all parts of ETL functions. For example, let us suppose you want to send clicks on ‘add to cart’ button (embedded on your website) to: Google Analytics, Mixpanel, Kissmetrics, Adobe Analytics and your data warehouse.

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, Kissmetrics, 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 act 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 which can replay’ your historical data into any new tool and can route your data to hundreds of tools with the flick of a switch.

One big downside of switching to tools like ‘segment’ is that you would have to retag your website all over again. But that should be your last tagging. Other downside of using tools 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.

Another article you will find useful: How to install and use Google Tag Manager in Segment.com

Announcement about my books

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 Beyond
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.

Himanshu Sharma

Certified web analyst and founder of OptimizeSmart.com

My name is Himanshu Sharma and I help businesses find and fix their Google Analytics and conversion issues. If you have any questions or comments please contact me.

  • Over eleven years' experience in SEO, PPC and web analytics
  • Google Analytics certified
  • Google AdWords certified
  • Nominated for Digital Analytics Association Award for Excellence
  • Bachelors degree in Internet Science
  • Founder of OptimizeSmart.com and EventEducation.com

I am also the author of three books:

error: Content is protected !!