Extensions provide a variety of ways to customize your implementation by offering a simple configuration interface to add complex logic without the need for coding.

In this article:

Table of Contents Placeholder


Extensions have many purposes, from setting and updating data layer variables, to adding advanced event tracking to your site. The available extensions are presented in the Extensions Marketplace where they are grouped by category with brief descriptions of their functionality.

The extensions categories are:

  • Standard Data
    Set and modify data layer variables and cookies in a variety of ways.
  • Advanced
    Extensions that require some knowledge of JavaScript and/or advanced marketing strategies.
  • Events
    Extensions related to event tracking, either using jQuery, built-in tracking, or mapping the standard Tealium events.
  • Tag Specific
    Extended functionality for use with certain tags, such as Adobe Test & Target, or tags that require currency conversion.
  • Privacy
    Extensions to offer opt-in/opt-out, Do Not Track, or tracking preferences for your users.

Use the search box to find an extension across any tab.


The extension marketplace is like a toolbox filled with a variety of different tools to help you with tag management. We encourage you to familiarize yourself with all of the available extensions so that you'll know exactly how to solve your next tag management challenge.

For additional information, see the Master List of Extensions.

How It Works

When an extension is added to your configuration, then saved and published, the logic in the extension is converted to JavaScript code that then runs in the utag files that load on your website. The timing of the extension depends on several factors, including: the scope setting, the execution order setting, and the position of the extension in the list.

Understanding Scope

When adding an extension it is important to understand the scope setting. The scope determines which utag file the extension is published in and when the extension runs. Extensions within the same scope will run in the order that they appear in the user interface. The following scope options are available:

  • utag Sync – For use with the JavaScript Code or Advanced JavaScript Code extensions. Associates an extension to the utag.sync.js file.
  • Pre Loader – Runs before the data layer is processed and results are applied globally (code appears in utag.js).
  • Before Load Rules
  • After Load Rules
  • DOM Ready Extensions – Runs once, at the DOMContentLoaded browser event (code appears in utag.js).
  • Tag Scoped Extensions – Runs only when the specified tags run and changes are only applied for that tag (code appears in tag-specific utag.#.js). Any data layer values modified in this scope will not affect other tags.
    • Check Tag Scoped Extensions to display All Tags, which run after the data layer is processed and changes are applied globally (code appears in utag.js). See Execution Order for more information about exact timing.
  • After Tags Extensions – Runs after tags are triggered.

If you set Scope to utag Sync, Pre Loader, or DOM Ready Extensions you must set Occurrence to Run Once.

The scopes Pre Loader, All Tags (except for After Tags execution order), and Tag Scope are guaranteed to run in that order, but DOM Ready extensions will execute independently from the other three. In most standard implementations the DOM Ready scope likely occurs sequentially after the other three, but this timing should not be assumed.

Some extensions, such as E-Commerce, Pathname Tokenizer, jQuery, and onHandler 1.7, have a pre-set scope that cannot be changed.

Understanding Execution Order

The execution setting offers more granular control of the timing of an All Tags extension.

The following options are available:

  • Before Load Rules – runs after the data layer is processed, for example after Pre Loader but prior to evaluating load rules.
  • After Load Rules (default) – runs after load rules are evaluated.
  • After Tags – runs after tags have been triggered.
  • utag Sync – Runs first when using with JavaScript Code or Advanced JavaScript Code extensions by associating the extension to the utag.sync.js file.

For a detailed overview of extension execution order see Order of Operations.


Some extensions support conditions. Conditions are like load rules, but only applied to extensions. A condition applied to an extension will determine if the extension should run within the given scope and execution order.

Managing Extensions

Adding an Extension

Use the following steps to add an extension:

  1. In the sidebar, click iQ Tag Management > Extensions.
  2. Click + Add Extension.
  3. Browse the extension categories using the multi-tab menu and click + Add next to the extension you want to use.
  4. Enter a Title to identify the extension.
  5. (Optional) Click Apply Labels on the left to add a label to categorize the extension.
  6. Under Scope, select a scope from the drop-down list or click Edit Load Order.
    Learn more about the Load Order Manager.
  7. Click Apply.
  8. Configure additional settings pertinent to the extension.

Editing an Extension

Extensions are editable directly from the extensions view. Expand an extension and adjust the configuration. As changes are detected the Save/Publish button will turn orange to indicate unsaved changes exist.

Tealium does not recommend editing the uTag Sync extension.

Reordering Extensions

Use the Load Order Manager to change order of extensions. There are two ways to change the order that extensions execute: by scope and by position.

  • By Scope
    Changing the scope of an extension will affect the order of its execution. For example, an extension can be made to execute sooner by changing the scope from Before Load Rules to the Pre Loader or by changing the execution from After Tags to Before Load Rules.
  • By Position
    Click and drag an extension up or down to the new location. This method only affects extensions within the same scope. In other words, changing the position of an extension scoped to Pre Loader only has effects if it also changes the position of other Pre Loader extensions.

To learn more, see Load Order Manager.

Duplicating an Extension

An easy way create an extension is by copying an existing one that has similar functionality.

Use the following steps to copy an extension:

  1. Expand an extension.
  2. In the left side panel, click Duplicate.
    A copy of the original extension is added to the bottom of the extension list.
  3. Adjust the configuration of the new extension as needed.

Deactivating an Extension

To turn off an extension and still keep it in your account for later use, use the on/off switch. This is usually a better option than permanently deleting the extension because you will not lose the effort of the initial configuration.

Use the following steps to deactivate an extension:

  1. Click the On/Off toggle next to the extension to deactivate.
    A confirmation dialog displays.
  2. Click Deactivate to confirm your action.

Deleting an Extension

If an extension is no longer needed, it can be deleted permanently from the configuration.

Use the following steps to delete an extension:

  1. Expand an extension.
  2. In the left side panel click Delete.
    A confirmation dialog displays.
  3. Click Drop Extension to confirm the action.

If you accidentally delete an extension and have not saved the profile, you can reload the browser to return to the original state of your extensions.


Sort the list view of extensions using the Sort menu. Changing the order of items in the list view does not change the execution order of the extension.

The following sort options are available:

  • Load Order
    • First to Last
    • Last to First
  • Title
    • A to Z
    • Z to A
  • UID
    • Ascending
    • Descending

View Filters

iq-extensions-filter.pngThe list of extensions can quickly grow to a large number, so it can be difficult to find what you need. Use the Filter drop-down list to find a specific group of extensions quickly.

The following filters are available:

  • Hide Inactive Items
    Check this box to hide extensions that have been turned off.
  • Label
    Filter extensions by label.
  • Last Published (Location)
    Filter extensions by their publish location in the most recent publish.
  • Publish Location
    Filter extensions by their publish location.
  • Scope
    Filter extensions by scope, including those scoped to a specific tag.
  • Type
    Filter extensions by their type, for example all Set Data Values extensions.

Publish Locations

WhiteUI_TiQ_Extensions_PublishLocations.pngThe publish location settings control which environments the extension will be published to. If you uncheck a publish location, the extension will not be published to that location. For example, if you uncheck Prod for an extension, and then publish to Prod, that extension will be omitted from the files in the Prod environment.

The following publish locations options are available:

  • Dev
    The development (Dev) environment is a non-production environment intended for sandbox configuration.
  • QA
    The Quality Assurance (QA) environment is a non-production environment intended for testing prior to releasing to production.
  • Prod
    The Production (Prod) environment is the environment you intend to load on your live website.
  • Custom
    Optional. The Custom Environments selection only displays if previously configured using Custom Environments.

Publish locations can be used to prevent extensions that are in development from accidentally being published to Prod. For example, you may be working on a new extension and need it active for your QA environment, but do not want it to be included in any publishes to Prod. In this case, you simply uncheck the Prod publish location and the extension can remain active and not affect your Prod environment.