This article provides an overview of how GTM compares with Tealium and describes the GTM-to-Tealium migration process.

In this article:

How GTM Compares with Tealium

GTM has six components:

  • Workspace
  • Tags
  • Templates
  • Triggers
  • Variables
  • Folders


High-Level Differences

  • Triggers in GTM include similar functionality to load rules and onHandler extensions in TiQ. GTM can track link clicks, scroll events and form submissions
  • GTM Preview Mode has strong integration with Google products (GA, GA + Enhanced Ecommerce) 
  • Many platforms/tags are not natively integrated so they are deployed as custom templates
  • GTM has different advanced tag settings such as prioritization numbers and the option to sequence tags, forcing one tag to finish before another one starts

GTM Component Definitions


A GTM Workspace allows you to create multiple sets of changes (versions) for your container. This is approximately the same as Environments.

Key Differences: 

  • Weak history reporting compare to Tealium Version History 
  • Up to two additional workspaces for regular accounts, and an unlimited number of workspaces for Tag Manager 360 accounts
  • No concurrency support



GTM Tags are like Tealium Marketplace Tags, but are more often like custom Javascript Extensions. They are snippets of JavaScript that run under defined conditions or when triggered by events. 

Key Differences: 

  • Works really well with Google products (GA, Google Ads, etc.) 
  • GTM tag templates for vendors are minimal and not well maintained
  • All of the Google tags are black-boxed, meaning you can’t view or edit them



GTM Templates are similar to the Tealium Custom Container. You can build a custom tag that’s not natively supported by GTM or implement a distributed custom template via the gallery view.

Key Differences: 

  • User will need to build the tag from scratch
  • Approved custom templates are available within a public-facing gallery



Triggers are similar to load rules, the jQuery onHandler extension and view/link calls. 

Key Differences: 

  • GTM does not use jQuery but its own listeners 
  • Extensive built-in user engagement events (e.g. scroll, visibility, form submission) 
  • JavaScript Error, Timer, History Change



Variables are approximately the same as data layer variables. 

Key Differences: 

  • Custom JavaScript variable
  • Auto-Event variable 
  • Built-in lookup table for variable 
  • Google Analytics settings variable 
  • Element Visibility variable (boolean)


The Folder concept is similar to Tealium Labels

Key Differences: 

  • Folders UI provides a central place to manage all components in GTM


Example User Flow in GTM

A GTM user has just launched a new site and wants to add Google Analytics to all pages, and track an event when someone clicks the hero banner on the homepage. 

  • Go to default Workspace 
  • Create a new Google Analytics from Featured Tag type 
  • Create new variable: Google Analytics settings and do the configure for Page View 
  • Create another Google Analytics tag for Event tracking 
  • Create new variables to capture event info 
  • Configure the newly created tag with event variables mapping Caveat: Every new GA event in GTM, requires a new Tag to be created

What Tealium Needs From the Customer

  • View access to GTM container 
  • Specification for existing dataLayer object if any
  • Customers can also provide view-only access to GTM, which can be helpful for larger migrations.

Migrating to Tealium

  • Map Containers to Tealium 
    • TiQ profile for each container
    • There is an option to export containers out of GTM in JSON format that can be completed by Tealium staff.

Folders to Label

  • Identify Folders to map to Tealium Labels


  • In User-Defined Variables 
    • Identify all variables that can be mapped to the Tealium Universal Data Object (UDO) 
    • Identify all Custom Javascript variables that can be replaced by UDO variables and enriched via Tealium extensions

If Using An Existing Data Layer

Use the Tealium Data Layer Converter here:, to transform the nested dataLayer object to a flat Universal Data Object.

Custom JavaScript Variable

  • Check if there are any dependencies on: 
  • other GTM variables → use Set Data Value or JavaScript Code extensions; Use the utag_data (Pre-Loader) or b (All Tags/Tag-specific) objects as reference for the UDO in any custom JavaScript; 
  • references to Trigger/Tags → decide on the relevant Scope when creating the JS extension, eg. PreLoader, All Tags, Tag-Specific



  • Identify Page View triggers that can be mapped to Load Rules 
  • Identify Element, Custom Event, Form Submission, Link Click triggers, that can be re-created using jQuery Handler or JavaScript extensions

Triggers - Click All Elements

  • Identify id that can be used in jQuery Handler extension 
  • Identify Trigger/Tag reference, to scope accordingly, if required

Triggers - Scroll Depth


  • Identify all unique vender tag types, eg. there could be multiple tags of the same type (Google Analytics, DoubleClick, etc.), but with TiQ we only require a single tag and handle call variations via mappings and load rules; 
  • Add equivalent tags from the Tealium Tag Marketplace 
  • Check if trigger is assigned, map to Tealium Load Rule accordingly 
  • If trigger is non ‘page view’, check if it can be replicated via a tag-scoped extension
Version history
Last update:
‎01-26-2021 10:12 AM
Updated by: