Tealium Or Google Tag Manager? Weighing Your Options
Choosing the right tag management system for your organization can make or break the analytics at your company. Before making that decision, make sure you understand what is important to your company and how each tool will handle your needs. Is Google Analytics your main priority, or do you have a wide variety of tools and pixels that need to be managed? Will simple pageview tracking cover your Google Analytics needs or are you looking for a more complicated implementation with event tracking or custom data brought in from multiple sources? Are you looking to implement Google Analytics enhanced ecommerce tracking?
Focusing on Google Analytics
The purpose of this post is to compare the functionality of Tealium and Google Tag Manager with respect to Google Analytics tracking. Many organizations may wish to implement other tools and marketing pixels through a tag management system, in addition to Google Analytics. This may be an important consideration for your organization, and both of these tools also work well for more than just Google Analytics, but this post won’t cover support for other tools.
Long Story Short
What I like about Tealium & GA
- One Tracker – Easily manage custom dimensions and tracker settings across all of your events and pageviews in one place
- Bundled Data Sources – Get up and running quickly by bringing in data from your platform or ecommerce set-up through a quick, easy-to-use interface
What I like about Google Tag Manager & GA
- Event Tracking – Add robust and templated event tracking for common user actions with no custom code
- dataLayer – Easily modify and debug changes to your dataLayer
- Modularity – Reduce the risk that updates to your variables or event tracking will unintentionally break other tracking on your site
- Documentation – More robust, publicly available documentation that is specific to Google Analytics tracking
- Community Support – Many great blogs, forums, books, and training materials
- Preview your updates – Great support for quickly and easily testing updates on your live site, no publishing or QA access necessary
- Did I mention event tracking?
I break down pros and cons with each system below, but for the impatient – here is my general takeaway! As a Google Analytics consultant, I prefer the modular approach that Google Tag Manager has taken. While this may not be necessary for every implementation, larger enterprise websites may see greater benefit from the flexibility when implementing Google Analytics.
While both tools can get the job done, it makes sense that the product created by Google specifically for implementing Google Analytics would have more support for advanced features. Google Tag Manager’s focus on event tracking, enhanced ecommerce, and other Google Analytics specific features make it a better choice for a nuanced and strategic Google Analytics implementation.
For more details, check out the full post below:
You can set up Google Analytics events through Tealium extensions or writing on-page code. The recommended way to set up event tracking in Tealium is to use a jQuery onHandler extension. In this extension, you can add a jQuery selector and choose to trigger the event on several DOM events, such as mousedown, blur, and focus. There is even a tool in the Tealium Chrome extension that will allow you to click on elements on the page and have a jQuery selector automatically created for you. It will even create the extension for you in your Tealium container.
Additionally, you can send events from the source code of the page by sending an object into Tealium with the event category, action, and label.
- I would not recommend letting a chrome extension choose jQuery selectors for your event tracking, especially if you work on a larger or more complicated enterprise site. While jQuery or CSS selectors are often effective ways of identifying elements to target on the page, we handcraft our selectors to include the correct set of elements as well as being as robust as possible to changes on the site.
Below is an example of the jQuery selector created by the Tealium Tool chrome extension for tracking navigation on the example Tealium ecommerce site:
Unfortunately, this selector only identifies one specific element in the navigation. In order to track all navigation links using the Tealium Tool, you would need to create a separate event for every link in your main navigation. While this is somewhat feasible for this site given there are only 26 links in the navigation dropdowns, imagine having to go through this process for all of the downloads or outbound links on your site!
Below is an example of how you can set up outbound link tracking in Tealium:
- Some tracking is best left to the developers. With Tealium, developers can trigger Google Analytics events from the page. Often, the event information will be included in this trigger. It is possible to modify this event information within the Tealium interface. However, this is not done in a modular way and great care must be taken that modifying one event will not break the tracking for other events. As a result, the most stable and robust way to complete this tracking is to hard code all of the event information with the event trigger. While this approach certainly works, it takes away for the advantages you would otherwise get from a tag management system.
Google Tag Manager
Below is an example of how you would track outbound links from our website. First, an event trigger should be created using the click hostname variable we configured above:
Next, the templated event tag should be configured to send the desired event information:
No custom code was required to add this event.
Variables / Data Layer
Both tag management systems allow the user to bring in data on the page and use this data in different tags.
In Tealium, you can bring in data off of the page within the Data Layer tab. There are several supported types of data that can be brought in, including:
- UDO Variable
- Meta Data Element
- First Party Cookie
- Query String Parameter
Additionally, there are bundles of commonly used data sources that can be automatically added. This includes support for data sources from several different platforms, such as Demandware and WordPress.
- The built in support for platform specific data sources seems useful. I would expect this might be helpful in fast-tracking a new implementation.
- There is very little support for modifying or customizing data within the Data Layer tab.
Google Tag Manager
In Google Tag Manager, you can bring in data off of the page under the variables section. Google Tag Manager supports even more data types than Tealium, including:
- 1st Party Cookie
- Auto-Event Variable
- Container ID
- Container Version
- Custom Event
- Data Layer Variable
- Debug Mode
- DOM Element
- Environment Name
- HTTP Referrer
- Lookup Table
- Random Number
Google Tag Manager also has several built-in variables that can easily be added, including information about the page, clicks, forms, errors, history, and several other utility variables. These variables tend to be more general and platform-agnostic than the data source bundles provided by Tealium.
- The initial set-up may require more time, developer hours, and careful planning.
Data Layer / UDO Object
Both Tealium and Google Tag Manager provide a centralized place on the page to put data related to your analytics tracking. In both cases, this should be populated before the tag manager loads on the page. Both tag management systems can easily interact with this object by bringing in data from the object. You can also modify this object from the page or from within the tag management system.
- It is unclear to me how to update the UDO Data Object from the page without triggering a new event or virtual pageview in the process. This is a vital part of many of our client’s implementations.
Google Tag Manager
- This data layer is much easier to maintain if you have a more complicated implementation where the dataLayer is updated after the page loads. Having the structure of an array allows you to easily see each update that was made, as well as the order and timing in which the updates were made. In Preview Mode, you can also view the state of the dataLayer at the time each event was sent. This can be invaluable for debugging complicated custom code and event tracking.
With the Google Tag Manager dataLayer, you can view a record of all changes to the dataLayer from within the console:
From within the Preview panel of Google Tag Manager, you can view all updates made to the dataLayer, the current values in the dataLayer, as well as the values of each of the variables you are bringing in off of the page. This can be compared to the event information that is sent at that time for quick and effective debugging.
- We recommend that all of our clients set up the dataLayer in a way that they can progressively add values to the dataLayer without causing any issues. This way, if dataLayer code is added at the top of the page, above the existing dataLayer code, all of the data will still be available to Google Tag Manager without the whole array being over-written. This is invaluable for larger enterprise clients who may need to push data in from multiple sources or at multiple different points of time.
Both Tealium and Google Tag Manager have support for enhanced ecommerce tracking.
Tealium has a very slick enhanced ecommerce implementation that maps product information in the dataLayer to Google Analytics specific formatting of enhanced ecommerce. There is support for mapping product information in various platforms to this ecommerce tracking. In addition, if you already have enhanced ecommerce information in a Google Tag Manager format, and are switching to Tealium, the Tealium team can provide code to transform this data into a way that Tealium can accept.
Also, if certain ecommerce actions are set, such as add or remove from cart, Tealium, by default, will automatically send an event with the ecommerce information.
- This functionality can make your ecommerce tracking easier to set up as you do not have to adhere to a strict formatting rules and naming conventions.
- If you already have this product level information on the page, or if you need to use this information in multiple places, the Tealium ecommerce set-up may save your developers significant amounts of time.
Things to Watch Out For
- Not all ecommerce events are covered under the automatic ecommerce events feature. This is usually a good thing. For example, product detail views are usually sent with the pageview. However, you should not blindly rely on this feature to send all of your ecommerce information. Please check all of your ecommerce tracking to ensure all actions are being sent with a pageview or event.
- Tealium’s documentation and support around implementing enhanced ecommerce are not as detailed and comprehensive as the Google Tag Manager implementation, which is understandable. Tealium supports many different ecommerce platforms while Google Tag Manager really specializes in supporting Google Analytics, so there are definitely some noticeable differences in support documentation (which I cover more below.)
- The automatic ecommerce events sent by Tealium are formatted as event category = UX and event action = click. While this matches Google’s documentation for on-page ecommerce tracking, this is not a naming convention we would recommend to our clients.
- Tealium can have some unexpected behavior when it comes to enhanced ecommerce. For example, by default, if certain product values are missing, they will be set to a default value. In particular, the product price will be set to “1.00”, the quantity to “1”, and the name will be set to the product id (only if these fields are missing). Although you can now opt to remove this functionality, it is unclear to me how to avoid this in older versions of Tealium.
Google Tag Manager
Google recommends a very rigid structure for adding ecommerce information to the dataLayer. While there are certainly ways to get around this, most of our clients stick with the standard formatting. This information is then sent with pageviews or events that are configured using the templated tags in Google Tag Manager.
- Sticking to the rigid formatting that Google has provided means that you already have documentation on your enhanced ecommerce information. If there is turn-over in your analytics team, new members can easily research how your ecommerce tracking works. Also, there is an entire community of Google Analytics experts out there who will be using the exact same format as you.
- Having such a rigid set on constraints on the format of your data can keep you organized and help guard against unexpected or unintended mistakes.
- Setting up this ecommerce information in the dataLayer can be a significant cost in terms of developer hours. These updates are usually made at the very beginning of a project, so you may get very little reward until your developers have put in their time.
- If you deviate from the recommended format, even slightly, there is a good chance that your ecommerce tracking will not work.
Tracker – One vs Many
Creating the tracker and using all happens pretty much behind the scenes, most people may not need to use multiple trackers unless they’re dealing with sending data to multiple properties.
By default, Tealium creates one tracker on the page through which all pageviews and events will be sent. This is reflected in the Tealium interface where there is a single tag for Universal Analytics which sets up the tracker and sends the initial pageview hit. As a result, you only have to set up the tracker configurations once, and there is a single place where you can see all of your custom dimensions, cross-domain tracking settings, cookie settings, etc.
- Within Tealium, these settings are easy to find, update, and keep consistent across all of your pageviews and events.
- While it can certainly be done, it is a little less straightforward to set up custom dimensions based on specific events.
- Depending on your implementation, the GA tracker may interfere or be interfered with existing GA implementation on the page.
Google Tag Manager
In contrast, Google Tag Manager constructs a separate tracker for each hit that is sent, unless the user specifies otherwise. Again, this is reflected in the user interface, where events and pageviews have their own separate tags. Within Google Tag Manager, you have to set any tracker level information separately on every single tag.
- It is very easy to set custom dimensions and other tracker-level information based on specific events.
- By default, Google Analytics tags from Google Tag Manager will not interfere with code on the page.
- If you want to update a tracker setting, for example, adding a custom dimension or updating the list of sites included in your cross-domain tracking, you will need to make this update on every single Google Analytics tag (which is why strategically using Variables can save you time in the long run!) If you manage the analytics for an enterprise-level organization, making this small update could take hours. We have several ways to get around this using the Tag Manager API, but it is neither easy, quick, nor straightforward to make these relatively minor updates.
- Since your custom dimensions are set up separately in every tag, there is room for error in setting these options inconsistently across tags. It is very easy to miss a tag when you are making updates, and therefore cause unexpected errors in your data.
Testing Code Updates
It is important to test your tracking code before publishing it to your live site. Google Tag Manger and Tealium handle testing in very different ways.
Tealium has support for easily publishing your updates to a QA or dev site. The updates can then be thoroughly tested before you publish them. If you do not have a separate testing site, or if your analytics team does not have access to this site, you can preview the QA version of you site by using the Tealium Tools extension or simply injecting the Tealium QA snippet onto your live site.
- The ability to publish to different environments is very helpful if your development team wants to thoroughly test your updates before they are pushed live.
- If you do not have access to the QA site, previewing the QA version of the container adds an extra level of complexity.
- Every time you want to test something, you will need to publish a new version. This can be frustrating if, for example, you have several updates you would like to make and you would like to test each one as you add them.
Google Tag Manager
Google Tag Manager also supports publishing to different environments. In addition, it provides built-in support for previewing your updates on your production site.
- The preview feature in Google Tag Manager makes testing and debugging your code quick and easy. You do not need access to a test environment and it is simple to check your updates and you make them, in addition to checking them right before you publish live. This preview version can also be shared with others that don’t have access to GTM or the QA version of the site.
Documentation and Community
Having documentation and community support is vital to ensure your tracking is set up correctly and according to best practices
Tealium does have documentation and a community forum. This can only be accessed if you have a Tealium login. I have had difficulty navigating and searching their documentation. In addition, the documentation for tracking specific to Google Analytics seems somewhat limited. For example, I have not been able to find any documentation on the different version of tag templates for Google Analytics. This is important since different versions of the Google Analytics tag template handle tracking differently. For example, whether the tracker is named, details on how enhanced ecommerce is implemented, and whether event information is cleared from the data layer between events varies between different tag template versions.
Google Tag Manager
Although Google’s documentation is not perfect, it is much more extensive and easy to find than Tealium’s documention. Also, there is a large community around Google Tag Manager that provides additional help and support. For example, check out this post on How To Get Google Tag Manager Help from Simo Ahava that includes many options for finding GTM-focused articles and getting support from the community.
Sometimes, you don’t have time to manage your own tracking systems.
As a paid product, Tealium provides support to all of its customers when you sign a contract with them. Tealium will help you set up and maintain your implementation, which may include Google Analytics tracking.
Google Tag Manager
Since Google Tag Manager is free, it does not come with any support. However, Google supports a network of certified partners that have passed knowledge tests and submitted case studies to prove they are capable of providing implementation and support.
This post is designed to give you a nuanced view of how Google Analytics implementation differs between Google Tag Manager and Tealium. The built-in features for event tracking, editing custom dimensions, setting up enhanced ecommerce, bringing in data off the page, and testing and debugging your code differ significantly between the two tools. Understanding these differences before you select a tag management system will save you a lot of time in the long run.