When most people think about tag management, they think about Google Tag Manager (GTM), Adobe Launch, and Adobe DTM. And, usually, companies are using the tag manager provided by their chosen web and/or app analytics vendor.
This article highlights what a vendor-agnostic tag manager product, Tealium iQ, brings to the table. Tealium iQ is a feature-rich product that also has a unique angle to tag management compared to the market-dominating products.
There is no free version, so companies need a solid use case.
I’ll start by covering some of the general differences between Tealium iQ and Google Tag Manager, then dig into some technical specifics of Tealium iQ.
Tealium iQ vs. Google Tag Manager
Most people working in analytics knows something about GTM, so, for this article, I’ll compare GTM and Tealium iQ directly.
Let’s start with a look at terminology. This list isn’t comprehensive but illustrates similarities and differences.
Google Tag Manager | Tealium iQ | Explanation |
---|---|---|
Accounts | Account (singular) | In Tealium iQ, one company usually has one Account. One Tealium iQ user, like a consultant, can have access to multiple customer Accounts. |
Container | Profiles and Libraries | Profiles serve the same purpose as Containers in Google Tag Manager. A Library has the same functionality as a Profile, but its purpose is to be inherited by one or multiple Profiles. One Account can contain multiple Profiles and Libraries. |
Tags | Tags | Tags are the same as in Google Tag Manager. |
Variables | Variables | The term Variables has the same meaning as in Google Tag Manager. However, Tealium iQ doesn’t have the same Variables as Google Tag Manager, and not all of them work the same way or provide the same functionality. |
Triggers | Load Rules, Conditions, and Scope | Load Rules are the equivalent of Triggers in Google Tag Manager. Tealium iQ also has the terms Conditions and Scope, which serve similar purposes elsewhere in the product. |
1. Vendor-agnostic (or not)
Tag management products like Google Tag Manager and Adobe Launch aren’t really vendor-agnostic, which makes sense—these tools cater to the needs of other products created and maintained by the same vendor.
However, with a recently added Tag Templates and Community Template Gallery functionality, Google Tag Manager is rapidly becoming a more vendor-agnostic product. Until then, that hadn’t been the case—unless you were ready to do a lot of custom JavaScript work.
Tealium iQ has long supported lots of tags from different vendors on the same terms, providing similar functionality for all tags. Even the same Variables and Data Layer setup, for instance, can be used for ecommerce tracking in Google Analytics and Adobe Analytics.
2. Tags
As mentioned, Tags in Tealium iQ are the same as in Google Tag Manager, though Tealium iQ has a slightly different way of creating and editing them.
A three-step wizard approach
When adding or editing Tags, you use the same kind of three-step template:
- Tag Configuration. Manage the general settings of the Tag. It’s also possible (see below) to use an “Extract From Code” function, which tries to identify settings and their values from a script you paste in.
- Load Rules. Define the Load Rules that trigger execution of the Tag. You can select multiple rules, and these can then trigger the Tag using a “Match All Rules” or “Match Any Rule” evaluation method.
- Data Mappings. Map your data to specific Tag parameters. One piece of data can be mapped to multiple Tag parameters; Tag parameters are organized into logical categories.
Tag Marketplace
The Tag Marketplace has many pre-made Tag templates—more than 1,000, both old and new.
You also have a nice feature called “Detect Tag From Code,” which does exactly that. It doesn’t always identify Tags correctly, but if you have an unfamiliar script, it might point you in the right direction.
When adding a Tag, you’re presented with the exact same three-step template as if editing an existing Tag.
You can limit the types of Tags that can be added to your Profiles via the Tag Marketplace Policy. Select the Tags you want to allow, then hide the rest.
An important note about using Tag templates: Most evolve and change over time, some more than others. Tealium doesn’t automatically update existing Tags to the newest available versions. If asked to do it, Tealium can take a long time to update Tags. This might be a downside of the current Tag templates, even for Tealium themselves.
3. Data Layer
As with any other tag management system, Tealium iQ’s Data Layer is a collection of key-value pairs containing information. But compared to Google Tag Manager, Tealium iQ is a bit different.
You can read Tealium’s own description of the term Data Layer here. You can also find specific Tealium Data Layer recommendations for different areas of business.
From page
As you would expect, Tealium iQ has a Data Layer that you define in the HTML of web pages or native code of mobile apps. The following is from the homepage of tealium.com:
It looks very much like what you see when implementing tag management systems from other vendors. In Tealium terminology, this Data Layer is called the Universal Data Object (UDO).
In product
In the Tealium iQ UI, you will also find a section named “Data Layer,” and, as you would expect, this is where the data from the “in-page” Data Layer, the UDO, also lives.
In this section, you create Variables as a connection between the UI and the Data Layer implemented on site pages or in-app code.
Here, you can also create variables with other data, for instance data in cookies or meta tags of a web page. You can create empty variables to populate with data from within the UI, too.
An example would be screen scraping web pages or tracking user scroll with JavaScript added through the UI. That JavaScript would map data into the empty Variables for use in any implemented Tags.
Arrays of Strings, not JSON
As opposed to Google Tag Manager—where the Data Layer is one massive JSON object—the Tealium iQ Data Layer is a collection of Strings and Arrays of Strings.
So, for tracking product-specific things in Tealium iQ, you would, for instance, have one Data Layer Variable with product IDs and one with product names, much like tracking in Adobe Analytics—but certainly not like defining one JSON object per product that contains all its data, like in Google Tag Manager.
If you’ve worked a lot with Google’s suite of products, this difference takes a bit of getting used to. For an example of this, look at Tealium’s description of Array Variables.
4. Variables
As with any tag management system, Variables are the cornerstone of Tealium iQ. Let’s dive into how they exist in the Tealium iQ universe.
Types
Tealium iQ has a specific collection of Variable types that are similar—but not exactly the same—as in other products:
- UDO Variable. Fetch data defined in the page/app Data Layer.
- JavaScript Variable. Define a Variable based on the output of a one-line JavaScript reference. For instance, “window.testVar1” to get the value of the “testVar1” variable placed directly in the window object of a web page.
- Meta Data Element. Fetch the value of meta data elements found on web pages. For example, get the value “utf-8″ from the meta tag: <meta charset=”utf-8”>.
- First Party Cookie. Stating the name of a first-party cookie will fetch the value of that cookie.
- Querystring Parameter. Fetch the value of any key/value pair found in the query string of your web pages.
All Variables are named like their individual data source, so you also have the option to add an alias, which is then displayed throughout the UI. This also helps circumvent any bad naming that comes from the data sources of your Variables.
As you can see, the Data Layer used inside of Tealium iQ can consist of a lot more than what’s defined in your “in page” Data Layer, namely the UDO.
Persistence
Without the need for JavaScript, Tealium iQ allows persistent Data Layer Variables. The duration can be set to the lifetime of the session or visitor, but also a specific number of hours or days. This persistence functionality is based on the use of first-party cookies.
You can use a pre-made Extension—something covered a bit later—for that purpose.
Common Variables (pre-made packages)
A Variable-specific feature worth mentioning is “Common Variables,” which allows you to import predefined packages of Variables.
These packages are functionality- or system-based and are divided into two bundle categories: standard and provider.
Standard bundles
This category has bundles for specific technical purposes, like site search, ecommerce, and “Tealium Built-in Data” Variables. Adding the package “Tealium Built-in Data” adds Variables like:
- Is_start_of_session. A flag that indicates whether a pageview is the start of a session. A value of 1 means yes; 0 means no.
- Session_page_view_count. The number of pages viewed during the current session.
- Session_count. The number of sessions for a unique visitor.
- Visitor_id. A unique identifier for each visitor.
(More Variables than those listed are part of the package.)
Provider bundles
While standard bundles are based on functionality, provider bundles support integrations with Tealium iQ for Adobe Experience Manager, Sitecore, Shopify, Magento, WordPress, and others.
These packages let you see Variables like CMS template and page author. (Tealium provides an integration guide.)
Bulk Import Variables from CSV
If you want to create a lot of Variables at the same time, you can bulk import these as one combined chunk of comma-separated text.
This import functionality is easy to use, though—for some reason—exporting Variables from the Data Layer and importing them doesn’t always work. Having more reliable import and export capabilities would make this functionality so much better.
5. Labels and Notes
You can add Labels and Notes to everything in Tealium iQ. Notes are entered in a simple commentary field, helping others—or yourself—remember what a specific Tealium iQ component does or why it was set up as it is.
Labels in Tealium iQ are similar to Folders in Google Tag Manager—a way to group things together but also mark them by importance or some other ruleset. A nice thing about Labels, which people tend to overlook, is that you can use them as resource locks, so that users added only to a certain Label have access to change elements.
6. Environments
In Tealium iQ, publishing is done to one of three default Environments:
- Dev;
- QA;
- Prod.
When you implement Tealium iQ, you set it to run Dev on your development servers, QA on your QA/Test servers, and Prod on your live production site.
You can publish to any combination of Environments at the same time, so make sure you’re publishing changes to the correct Environments.
7. Versions
Every time you publish in Tealium iQ, you save a new Version of the Profile you publish. You can also choose to save—but not publish—a Version in the Publishing modal.
When saving, you can choose either to “Save” (i.e. overwrite) or “Save As” (i.e. create a new version).
Tealium iQ includes an elaborate (but visual) overview of Versions.
8. Community
If you want to work with Tealium iQ, head to their online community, Tealium Learning Community (TLC).
You won’t find much by searching Google for in-depth resources on Tealium iQ implementation. The interesting stuff—guides, documentation, and peers—is in the TLC, so you might as well go there directly.
Almost none of the information requires a login.
9. Support
Besides providing a good community, Tealium has knowledgeable support. The support system itself isn’t greater than with any other vendor, but the staff providing the support are top-notch, even for highly technical issues or solution requests.
Tealium iQ: The technical details that differentiate it
You have some basic knowledge about what makes Tealium iQ tick. Let’s look at some aspects that are unique to Tealium iQ.
1. Extensions
Extensions act as helpers—for existing functionality and, in their advanced form, as a way to add new functionality to your setup.
Helpers
A lot of the available Extensions serve as helpers. Here are a few common ones:
- Lookup Table. Like in Google Tag Manager, you can use Lookup Tables, including the import or export of key/value mappings.
- Set Data Values. Define the value of UDO Variables as directly entered text, from another Variable, or the value of a one-line JavaScript.
- Lower-Casing. Convert the casing of all Variable values to Lower-Case. This can benefit data consistency.
- Persist Data Value. As the name suggests, this helper Extension makes added Variables persistent.
There are also quite a few advanced Extensions. We’ll look into one of them, the “JavaScript Code” Extension.
The “JavaScript Code” Extension
Add custom JavaScript code for whatever purpose, like adding your own script for scroll tracking.
The Extension is quite advanced, including functionality like:
- Drafts. Create different Drafts (Versions) of your code that are contained within the Extension.
- Compare Drafts. Compare Drafts of the JavaScript code.
- Approval for publish. Approval to publish code to chosen Environments. If needed, you can publish different Drafts to different Environments.
- GitHub Sync. Synchronize the code contained in the Extension with that of a GitHub-hosted repository.
Conditions
Tags use Load Rules to decide when they should run; Extensions use Conditions. Conditions have the same functionality as Load Rules but must be defined on a per-Extension basis.
Additionally, you still define which Variables need to include which values for the Extension to fire. You can also not set any Conditions, in which case the Extension will run solely based on the Scope setting (discussed below) for the Extension.
Scope
When working with Extensions in Tealium iQ, you also need to know the term Scope, which—like a Condition—affects when Extensions run.
Available Scope setting are:
- Pre Loader;
- All Tags – Before Load Rules;
- All Tags – After Load Rules;
- DOM Ready;
- Specific Tag(s);
- All Tags – After Tags.
I won’t go into detail about all of them, but you probably see the potential based on their names. “Pre Loader,” however, might need a bit of explanation. The “Pre Loader” Scope is the earliest point in time at which you can run an Extension.
You could, for instance, set up a “kill switch” Extension to tell Tealium iQ not to run anything at all—the “Pre Loader” Scope is just before Tealium iQ starts loading everything you’ve set up in the Profile.
If you want to change Variables before they get sent to Google Analytics, you can Scope an Extension to do that (i.e. running just before your Google Analytics Tag).
Every Scope option, in fact, has its position in the Tealium iQ “Order Of Operations.”
2. Order of Operations
Tealium iQ follows a strict “Order of Operations” process, which stipulates exactly when it does what. The following is a simplified list of the Order of Operations when loading a web page:
- “Pre Loader” Extensions;
- Data Layer Processing;
- “All Tags” Extensions with execution “Before Load Rules”;
- Load Rules;
- “All Tags” Extensions with execution “After Load Rules”;
- Tags not set to wait for DOM Ready;
- Standard tags;
- DOM Ready:
- Run Extensions scoped to “DOM Ready”;
- Trigger Vendor Tags:
- Extensions scoped to the tag;
- Apply Data Mappings;
- Fire Tag.
- Extensions scoped to “All Tags” with execution “After Tags.”
Because Scope lets you define when in the Order of Operations you want an Extension to run, you can pinpoint when actions take place. Read a more thorough explanation here.
3. On/Off
A very simple, but nice, feature in Tealium iQ is that almost everything can be turned on or off with the flip of a switch. This includes Load Rules, Tags, and Extensions—but not Variables administered in the Data Layer section of the UI.
It saves the work of having to fiddle with Load Rules and Conditions if you just temporarily want to toggle something on or off.
(It is actually an On/Off switch you just click, so it’s very easy. Though, you still need to publish the Profile to get the change active in your Environments.)
4. Libraries
Libraries have the same abilities as Profiles, but Profiles can inherit the contents from one or more Libraries. When Library content is inherited by a Profile, that content is locked and cannot be modified in inheriting Profiles.
The Library content can still be modified within the Library based on access rights.
In the illustration below, the green boxes are Libraries, and the orange boxes are individual Profiles:
As you can see by following the green and blue lines, the “Corporate Tracking” Library is inherited by all Profiles (i.e. Site #1, Site #2, Site #3). But the Library “Global Ad tags” is inherited only by Profiles “Site #1” and “Site #3.”
One Profile can inherit from multiple Libraries simultaneously.
5. Content Delivery Networks (CDNs)
As with other tag management systems, Tealium iQ hosts published content on CDN servers. Tealium iQ, however, uses a multi-CDN network, serving content from CDNs such as Akamai and EdgeCast.
This ensures good failover if one vendor’s servers are down. It also makes it possible to check the speeds of the closest CDNs and serve files to the user from the fastest one, across geographical locations and between vendors.
If you don’t want to use Tealium’s CDN, you can host it yourself. It’s easy to set up Tealium iQ to generate distribution .zip files, then download those for unpacking and hosting on your servers.
Also of note: Tealium has CDN servers in China if you want to target the Chinese market.
6. Custom tags
Given the earlier mention of the many pre-made tags, you might wonder: Is it possible to create your own Tags? Yes.
The advanced way of doing this is to use a Tag called “Tealium Custom Container,” which provides an empty Tag “shell.” That “shell” is a rather large snippet of JavaScript built to fit the Tealium “Order of Operations.” You can then add code bits to be executed within that structure.
An easier option is to use the Tealium Generic Tag, which allows you to add custom pixels, iframes, or scripts, including mapping of Variable data to parameters.
7. Debugging
If you are used to debugging Google Tag Manager containers, then you’ll find debugging Tealium iQ Profiles a bit different. That said, Tealium iQ allows you to debug its Profiles extensively.
The recommended way of debugging Tealium iQ Profiles—but also the more technical one— is to enable its console debugging output:
You don’t need to understand every line; however, know that it outputs data about almost everything going on, including Data Layer and Tag data for all states in the Order of Operations.
This is technical, but it’s also where you get most information about what’s going on. Browser extensions exist for debugging Tealium iQ, but none relays as much detail as console debugging.
One browser extension you may want to use is Tealium Tools, created by Tealium. It lets you switch between Environments on sites with Tealium iQ. So, for instance, you can do a test run of the Dev Environment on the production site, which would normally run the Prod Environment.
This browser extension can also be expanded via custom scripts. Tealium provides some of these, but you can also create your own.
8. Platform SDKs
Tealium iQ has SDKs for several platforms: JavaScript (Web), iOS (also tvOS and WatchOS), Android (also TV and Wear), C#, Angular, Node, Ruby, and Python.
Have a look at their platform documentation here.
9. Access management
Creating Tealium iQ users follows a five-step process, which nicely illustrates the extent of the access management:
Users are added to the Account and a selection of underlying Profiles and Libraries. Permissions are assigned on both an Account and Profile/Library level.
To give you an idea of the potential granularity, look at the following screenshot that shows Profile/Library permission settings:
A Password Policy and Multi-Factor Authentication can be set up on the Account level.
10. APIs
One great thing about Google Tag Manager is the Management API. And to use that API, you don’t even need to develop a tool yourself. You can use freely provided tools, like those created by Simo Ahava.
In September 2018, I submitted a product idea for the development of a similar Management API for Tealium iQ. One year later, the status of the product idea is still “Being Considered.” So, sadly, it doesn’t seem to be a high priority for Tealium.
Other APIs exist, but in the scope of this article, we won’t look into them.
Conclusion
This post is intended to shed light on what Tealium iQ offers. Despite its length, it would be easy to write even more extensively about just a few parts or features.
Should you choose Tealium iQ over a product like Google Tag Manager? I can’t say—a multitude of factors need to be taken into account.
But, hopefully, the details and comparisons in this post might help you make that decision.