UTM Naming Conventions: Define and enforce your UTM strategy

Terminus is utilized by companies of all types, from small one-person marketing agencies to several billion-dollar corporations with a team of hundreds of users.

I have worked closely with many of these companies to understand their requirements for building UTM tracking URLs. Several of these companies have thousands of products spread across many business units, divisions, product lines, etc. They have numerous active campaigns that target global audiences who speak different languages. Teams responsible for looking at analytics reports and CRM systems (where this information may also be captured) can be completely different from the ones building these UTM parameters.

With hundreds of people involved, the risk of confusion is high. Millions of dollars are involved when making decisions based on this information. Making sure all of this is reliably tracked using UTM and other custom parameters are no small feat.

This article will discuss the most successful UTM convention strategies that have worked for these companies.

Why Use Such System To Build Your UTM Parameters?

Some of the best systems have a surprisingly lot of commonalities. Many of these methods and techniques have been developed over the course of many years and experienced people spread these good practices to help companies and such.


  • High-quality information in UTM or custom tracking parameters
  • Least effort for the value compared to other methods
  • Portable information that works with the majority of systems (analytics tools, CRMs, form captures, databases, email service providers, etc.)
  • Ability to generate high-quality analytics reports (using only basic filtering capability available in most tools)
  • Does not rely on documents or memory


  • Requires upfront thinking and design for your specific company. No whatever-you-feel-like value allowed to be used in UTM parameters.
  • Initial setup can be complex and requires a system to be built to enforce the conventions.

If you are not familiar with UTM parameters, I suggest reading UTM Parameters Best Practices Course before you proceed. It covers many basic concepts and simple conventions. If you are already familiar with UTM parameters and would like to have a systematic, airtight approach to building UTM conventions, this article is for you.

Here’s what we will cover in this article:

The examples I give are entirely hypothetical but are inspired from real implementation of successful tracking systems.

Let’s get started with a basic question

What Information Should Be Tracked?

It all depends on the business and its marketing needs.

As an example, these might be some of the data points (Dimensions) worth capturing:

  • Business Unit
  • Department
  • Division
  • Product Category
  • Product Type
  • Product
  • Service
  • Event
  • Plan/Tier
  • Pricing
  • Coupon
  • Channel/Medium
  • Source
  • Goal/Objective
  • Target Market
  • Target Customer
  • Topic
  • Web Property
  • Client
  • Partner
  • Agency
  • Locale
  • Region
  • Country
  • State
  • Campaign name
  • Date
  • Call to Action (CTA) copy
  • CTA location
  • Ad size
  • Keyword
  • Version

This list is just an example. You’ll have your own set of data points that are relevant to your own business and campaigns.

Let’s take an example of a small eCommerce store, Acme Inc. that sells various kinds of clothing items for men and women. Here is some information we have about them:

  • Items that they sell include shirts, jeans, shorts, sweaters and socks for both men and women.
  • They also have a blog that covers latest fashion trends.
  • They collect email addresses in various forms to send blog updates, coupons, loyalty programs, etc.
  • They sell their items in the US and Canada and might have country-specific campaigns.

1. Data Points To Capture

A good way to come up with data points is to look at all existing marketing copy (website, emails, tweets, ads, etc.). Are there campaigns for specific products, regions, types, etc.? Are there promotions for particular segments of users (e.g. men, women, etc.)? Are there campaigns promoting specific products (e.g. shirts, jeans, etc.)?

The following data points may be captured for Acme Inc.

  • Gender (all, women, men)
  • Product (all, shirts, jeans, shorts, sweaters, socks)
  • Goal (sale, lead, education)
  • Country (all, us, canada)
  • Date (When the campaign will go live)
  • Campaign name – Something specific about this campaign, e.g. winter_promotion
  • Channel/Medium
  • Source
  • Call to Action copy

Once you start seeing this data in analytics, you might also get some ideas about new campaigns. e.g. Do most of your campaigns promote all products? Maybe it’s worth running a few campaigns for some specific products, say jeans.

2. Goal

Of all the data points mentioned earlier, Goal is the most underrated one that people don’t capture. It should be part of all campaigns irrespective of what type of business.

Goal not only provides clarity and purpose, but it also greatly helps what metrics to look for in any campaign. For example,

  1. If the goal is to get leads, then email captures is an important metric
  2. If the goal is to make a sale, then purchases is what you need to look at

Making it part of the campaign allows it to be absolutely clear to everyone even if the person building the UTM tracking is not the same as the one looking at analytics reports.

How Do You Track All This Information?

All the data points that are important for your business needs to be sent to your analytics system. In order to extract useful information from the reports, you will have to drill down on each data point.

For example, you should be able to answer the question: How many emails did I get for lead campaigns promoting shirts in the US?

1. UTM Parameters (Recommended)

There are only 5 UTM parameters available. If used carefully, they can be used to organize all this information. For example,

  • utm_medium for Channel/Medium
  • utm_source for Source
  • utm_content for Call to Action copy and other CTA data
  • utm_term for Keywords in paid ads
  • utm_campaign (everything else)

2. Custom Dimensions

It’s possible to define Custom Dimensions in Google Analytics (or something similar in other analytics tools) for each data point. For example, you can define a Custom Dimension Goal. But this approach has several disadvantages,

  1. You have to capture and send this data to Google Analytics yourself. GA script won’t do it automatically for you. This can be highly error-prone and needs to be implemented carefully considering many scenarios (is it per hit, per session, per user, etc.)
  2. If you use multiple analytics tools, you’ll need to configure all of them to support these custom dimensions (if they even support it)
  3. Sending this data to CRM or other tools is also complicated (they might not even support it). You need to define all these dimensions in those tools and keep them up-to-date with any changes.
  4. If you want to capture this information when a lead fills a form, those forms need a new input for each dimension.

3. Combination of UTM and Custom Parameters

It’s quite common to use UTM parameters for some data points and use Custom Dimensions for the rest. But since you need to configure these Custom Dimensions, their disadvantages still apply.

Basic Concepts

So how do we capture so many data points in a handful of UTM parameters?

Let’s introduce some concepts that will help us build a structure that will help with this. It will allow us to define the exact specifications for any convention including enforcement mechanisms.

1. Field

A Field is any piece of information (data point) you want to track. For example, Goal is a field.

So why not use Dimension instead?

Dimension has a specific meaning in the context of analytics tools. For example, utm_campaign is one dimension. You can also define your own Custom Dimension in GA.

To avoid such confusion we will use Field which is a better term in the context of conventions. Also, when the data generated from these conventions is seen in analytics tools, one dimension may be composed of multiple fields.

a. Field Types

Four (4) basic types of fields can support most needs:

  • Option: A dropdown field to select one of several values
  • Text: A free form text field
  • Date: For specifying dates in a specified format, say YYYY_MM_DD
  • Constant: A fixed value that cannot be changed

These field types help control how the values are entered and play a critical role in enforcing conventions.

b. Dependent Fields

In some cases, the value of one field will control the values in subsequent fields. Let’s say we have two fields

  • Country
  • State

Selecting Country = us should show State with option values

  • california
  • new_york
  • texas

Selecting Country = canada should show State with option values

  • ontario
  • alberta
  • british_columbia

Similarly, each Business Unit may have a completely different set of Products. It’s best to show only the applicable values to minimize mistakes.

Though not necessary in many cases, it is helpful to understand the concepts behind dependent fields.

2. Parameter

A Parameter is either a UTM parameter (e.g. UTM campaign) or a Custom Parameter (e.g. affiliate).

A Custom Dimension is nothing but a Custom Parameter defined in Google Analytics.

3. Parameter Format

A Parameter Format is a collection of fields organized in a certain order to build the final value. For example,


For our example company, Acme Inc, a Parameter Format can be defined as,


When we use the exact values for each of these fields, it may look like,


IMPORTANT!!: Once you define this format, any final value MUST have all the fields. If you need a value that doesn’t fit in this format, then you need to redesign the Parameter Format to accommodate that value.

There should be enforcement mechanisms in place to make sure none of the values are skipped. For example, it should not be possible to use a value that does not have goal specified. We’ll see in later sections how to create these enforcement systems.

Expert Tip – Separators

A separator is a character that is present between two fields in a parameter format.

It’s recommended to use a dash (-) as the separator. Some people also use underscores (_) as a separator, but it’s more fitting to join multiple words within a field, e.g. summer_sale.

This separator character is very useful for filtering. It can also help split the final value back into individual fields using spreadsheets or other programmatic tools. This can enable in-depth, custom analysis when needed.

IMPORTANT: Don’t use your separator character inside any field value because that completely negates its purpose.

4. Convention

A Convention is a collection of Parameter Formats as mapped to a Parameter (UTM or Custom Parameter).

If you are confused, the following sections will help clarify this definition.

How to Define a Convention?

Let’s define an Email Convention and Social Convention for Acme Inc.

1. Email Convention

For our Email Convention, we’ll define the UTM parameters as follows:

a. UTM Campaign Format (UTM Campaign)

This is nothing but a Parameter Format defined for UTM Campaign.

We will track these data points (fields) in our UTM Campaign

  • Gender
  • Product
  • Goal
  • Country
  • Date (When the campaign will go live)
  • Campaign name – Something specific about this campaign, e.g. winter_promotion

The above fields can have the following field types

  • Gender : Option (Dropdown values: all, women, men)
  • Product : Option (Dropdown values: all, shirts, jeans, shorts, sweaters, socks)
  • Goal : Option (Dropdown values: lead, education, sale, awareness)
  • Country : Option (Dropdown values: all, us, canada)
  • Date : Date with format YYYY_MM_DD
  • Campaign name : Text (Any free form text)

The format with a dash (-) as Separator will be


Even though we are building Email Convention, this campaign format may be reused in other conventions, say Social Convention.

b. Email UTM Medium Format (UTM Medium)

In this case, the format consists of one field of type Constant. The value of this field is email and will never change.

c. Email UTM Source Format (UTM Source)

Let’s say Acme Inc has three email lists: newsletter, rewards, loyalty

This format consists of one field of type Option with dropdown values of newsletter, rewards, loyalty.

2. Social Convention

We can define UTM parameter for Social Convention as:

a. UTM Campaign Format (UTM Campaign)

In our case, UTM Campaign Format is the same as Email Convention. So we’ll just reuse what we defined earlier.

b. Social UTM Medium Format (UTM Medium)

In this case, the format consists of one field of type Constant. The value of this field is social and will never change.

c. Social UTM Source Format (UTM Source)

This format consists of one field of type Option with dropdown values of facebook, google, twitter, linkedin

3. Other Conventions

You can define as many conventions as you like. They need not be differentiated based on medium (as we did for email and social), but could be based on anything that makes sense for your business.

How To Enforce Your Conventions?

Once you have defined your conventions, it’s important to have appropriate tools to generate these values. Using a simple URL builder will make this approach highly error-prone.

1. Tools

Enforcing your convention requires using a custom URL builder. It can be done using one of the following methods:

  1. Spreadsheets: For a highly skilled user, it’s possible to create these conventions in a spreadsheet. However, it can be quite complicated and difficult to maintain, especially for a team.
  2. Custom-built forms: You can use one of the many online form builders to build your UTM URL builder. It’s also possible to build something in-house using available open-source software, scripts, etc. It may require significant coding work and ongoing maintenance.
  3. Terminus: It allows you to define Fields, Parameter Formats and Conventions which can be used to configure your own custom UTM builder.

I’m going to use Terminus to show how a convention can be configured. If you don’t intend to use Terminus, you can use this section as a reference for implementing your conventions in other tools.

2. Create UTM Campaign Format

Create UTM Campaign Format using dash (-) as the separator.


Add fields to the parameter format. For example, Gender, an Option (dropdown) field, can be configured as:


Gender field might look something like this in the UTM URL builder

Similarly, other fields (Product, Goal, Country, Date, and Name) can be configured. Once these fields are configured, UTM Campaign Format will look something like this,


Make sure your custom UTM builder generates the final value men-shirts-sale-us-2018_10_28-promotion automatically. It SHOULD NOT be manually typed in.

3. Create Email UTM Medium Format

Since there is only one field in this format, there is no need for any separator.


Create Email field of Constant type with value email.



There’s not much else needed for Email UTM Medium Format.

4. Create Email UTM Source Format

For emails, UTM Source has only one field.



Source is a dropdown with some predefined values. Here’s how it might look like:


Once this is saved, we have Email UTM Source Format.

5. Create Email Convention with Parameter Formats

Once all the parameter formats are created, we can now define a convention by connecting them to the appropriate UTM parameters.


Similarly, it’s possible to to create Social Convention. We can reuse UTM Campaign Format without having to recreate it.

6. Using Convention in URL Builder

After creating the conventions, they should now be available to use in our custom UTM URL builder. When Email Convention is selected, this is how the URL builder looks like in Terminus.


This customized UTM URL builder only allows entering valid field values. The final UTM values are automatically generated as per the conventions as shown above.

How to See This Information in Google Analytics?

Let’s assume we have been running various campaigns using this UTM Campaign Format, e.g.

  • all-jeans-lead-us-2018_08_25-fall_promotion
  • men-shirts-lead-us-2018_11_11-events
  • women-jeans-sale-us-2018_09_25-sale
  • all-shirts-sale-us-2018_10_12-promotion
  • women-shirts-lead-canada-2018_10_12-rewards

If we need to find out all the campaigns in Google Analytics that were targeted to generate leads, we can do it as follows:


  1. Go to Acquisitions > Campaigns > All Campaigns from the left sidebar
  2. Click on advanced filters
  3. Select Containing and enter lead in the text box
  4. Click Apply

We’ll see these campaigns in the generated report.

  • all-jeans-lead-us-2018_08_25-fall_promotion
  • men-shirts-lead-us-2018_11_11-events
  • women-shirts-lead-canada-2018_10_12-rewards

How about if we want to see the campaigns promoting shirts in the US?


  1. Go to Acquisitions > Campaigns > All Campaigns from the left sidebar
  2. Click on advanced filters
  3. Select Matching RegExp and enter shirt.*us in the text box
  4. Click Apply

Now we’ll see all the campaigns that have shirts AND us in their values.

  • men-shirts-lead-us-2018_11_11-events
  • all-shirts-sale-us-2018_10_12-promotion

Did you notice how easy it is to create reports cutting across various data points by utilizing Google Analytics?

NOTE: By carefully defining conventions and enforcing them, it’s possible to get highly informative information with just a simple analytics setup.

How to Collect This Information in Leads, CRM, etc?

Besides analytics tools, it’s also possible to capture this information for each lead and send it to an email service or CRM system. Saving UTM parameters when someone fills a form can give you deep insights about where your most valuable leads/customers are coming from. The article, How to Add UTM and Referrer Information to Lead Forms goes through this setup in detail.


If you managed to read all the sections, I hope you have some basic ideas about how to think about tracking your marketing campaigns. As I mentioned in the beginning, this system is used by many enterprises across hundreds of users with great success. It’s proven to give results and is probably the most efficient compared to others.

If you need to track all this information at all, it’s not possible to completely get rid of the complexity. This system moves the complexity from the analytics/CRM tools to the URL builder and is much easier to manage.