by on ‎04-22-2016 05:09 PM - edited on ‎06-28-2018 09:37 AM by (11,327 Views)

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.

Check out 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 UI. The following scope options are available:

  • Pre Loader – runs before the data layer is processed and changes are applied globally (code appears in utag.js).
  • All Tags – runs 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.
  • Tag Scope – runs only when the specified tag(s) 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.
  • DOM Ready – runs once, at the DOMContentLoaded browser event (code appears in utag.js).

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 (like E-Commerce, Pathname Tokenizer, jQuery onHandler 1.7, etc.) 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 process (ie. 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.


Get a detailed overview of the overall 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

Follow these steps to add an extension:

  1. From the Extensions tab, click + Add Extension.
  2. Browse the extension categories via the multi-tab menu and click +Add next to the extension you want to use. 
  3. Enter a Title to identify the extension.
  4. (Optional) Apply a label to categorize the extension.
  5. Set the Scope.
  6. Set the Execution Order.
  7. Configure additional settings pertinent to the extension.

Editing an Extension

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

Reordering Extensions

Extension run in the order they appear in the UI (within the same scope). To change the order, click and drag an extension up or down in the order to the desired location.

Duplicating an Extension

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

To copy an extension:

  1. Expand an extension.
  2. In the left side panel click Duplicate.
    A copy of the original extension will be 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, but 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.

  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.

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.

View Filters

extensions-filter-menu.pngThe list of extensions can quickly grow to a very large number and viewing them all at once can make it difficult to find what you need. The Filter menu at the top of the extensions screen offers a few ways to filter the view of the extensions.

The following filters are available:

  • Display Inactive Items
    Uncheck this box to hide extensions that have been turned off (default is checked).
  • Scope
    Filter extensions by scope, including those scoped to a specific tag.
  • Label
    Filter extensions by label.

Publish Locations

extensions-publish-locations.jpgThe publich 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
    A custom environment previously configured using Custom Environments.

Publish locations can be used to prevent extensions that are in development from accidentally being published to Prod.  You might 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.