The Advanced UTM Naming Convention Guide for DTC Brands

Best practices on how the name your utm tracking as an eCommerce brand, including tools, template and tutorials.

The Advanced UTM Naming Convention Guide for DTC Brands

I got a confession to make. I am pretty obsessed with UTM parameters.

And I think you can judge the quality of DTC marketers by the way they use UTM parameters. Not only that, if done well, you can also deduct the strategy of a company by looking at their UTM parameters. Why?

Because good UTMs contain information about what the brand believes is important. Only if you can measure something, you can optimize it. With increasing privacy concerns and software updates like iOS 14 the amount of conversions that are being tracked in ad accounts is seriously diminished.

And good old UTMs are becoming increasingly important. For some brands Google Analytics, which uses UTMs, assigns more conversions to a channel like Facebook than the ad accounts themselves. That would have been unheard of a few months ago. Plus, the recent changes don't effect UTM tracking accuracy making them a consistent baseline brands can use to assess their performance in these uncertain times.

And finally, clear naming conventions empower you to identify success variables across a longer period of time - more signal, less noise.


Yet, many of the brands we speak to openly admit that

a) they are aware that they have lots of room for improvement in this area
b) they don't really know what exactly they need to do in order fix it

If that made you nod in silent agreement and you own or run a DTC brand than you have come to the right place. In this article, based on my 10 years of experience in growing DTC brands I will

  • show you how to develop a naming strategy for all marketing channels
  • give you a tool that allows you to consistently implement it across channels
  • explain how you can use your improved naming to analyze your marketing performance.

Let's get started.

UTM &  Naming Convention Basics

What are UTMs anyway?

I will make this quick. UTM parameters are information you can add to any URL that will be picked up by Google Analytics and made available in their reports to analyze performance.

There are 5 UTM parameters:

  • Source
  • Medium
  • Campaign
  • Term
  • Content

If you still want to have more basic information, I suggest that you read this intro article. I promise, from here on out, it's going to be 100% value.

Should I use Google Analytics or Shopify

Like Google Analytics, Shopify also captures the UTM parameters from your customers' sessions in order to provide you with some basic analytics. So which ones should you use? Short answer. GA.

Here is why:

1. Difference in Tracking Logic

Shopify is using a last-click logic to match UTMs to conversions unlike GA which uses a last-non-direct click (excl. the GA Attribution Reports).

So if a visitor comes from a Facebook ad, leaves, and comes back through a direct type in, Shopify will tell you that it's a direct conversion whereas GA will say it's a Facebook conversion.

Therefore the share of direct conversion in Shopify will always be higher but since our main goal is to try to understand which marketing campaigns drive conversion that is not ideal.

2. Google Search Ads

Most people use auto-tagging when using Google Ads (like they should - more on why below). However, Google Ads and Google Analytics are tightly integrated so Google Ads is actually not adding UTM parameters to the landing page links but a unique ID called GCLID.

Now, Google Analytics can match data in Google Ads and therefore show you the UTM parameter. Shopify obviously can't do that, making it difficult to clearly differentiate between Paid and Organic Search traffic in Shopify and impossible to drill down to different campaigns.

3. GA's problem: incomplete data

Shopify beeing your shop system naturally captures all orders. GA doesn't due to numerous factors like cookie consent and ad blockers. Now there are ways to work around that like server-side tracking in GA, but assuming you don't have that set up, you probably will miss 10-15% of your conversions in GA.

Yet, I still prefer working with GA. I rather have slightly incomplete data then flawed data as my assumption would be that the tracking loss is somewhat evenly distributed amongst channels and campaigns.

Klar, our BI tool for DTC brands, works around this issue by using UTM information from Google Analytics but falling back to Shopify UTMs when an order is not tracked in Google Analytics. That way you get the best of both worlds.

Removing redirect overwrites

The best naming is worth nothing if it is being overwritten. For Shopify stores, this often happens through payment redirects or product redirects.

I have seen some stores where 25% of the tracking information was overwritten. If you have conversions that are being assigned to the Source / Medium hooks.stripe.com / referral  you need to fix that asap. Go to the admin area in your Google Analytics account and in the Property column, click on Tracking Info and then on Referral Exclusion List to create a new entry where hooks.stripe.com is excluded.

Composition Of Your Naming Conventions

There are only 5 UTMs. But there are more than 5 variables that you need to track. That's why we have naming conventions.

The basic building blocks of any naming convention are Dimensions and Separators with a single parameter containing multiples of each.

Having such a clear structure not only allows you to efficiently navigate your ad accounts, but also later to analyse performance based on the dimensions you have tracked. This gets increasingly important as your ad account grows in size.

When you only have a few ads running and you are the only person working in the account, you might be able to exactly remember what the ad Pink Dress Image was about. However, as your business starts to grow this will change. You have multiple people working in the same account, testing small variations of the same ad and many different ads at the same time.

Yet, I still  recommend it for  even smaller brands to spend some time defining their own naming conventions. Otherwise, the hard earned learnings you got in the early days might get lost at a later point in time.

A note on capitalization and special characters

One of the most annoying things about GA is that if you write facebook (lower case f) one time, and Facebook (with a capital F) the next time, GA will create two entries making it more difficult to analyse your data.

To avoid this use Lists as much as possible (more on that below) and use lower case everywhere as a general rule of thumb.

When you use Klar, our BI tool for DTC brands we clean capitalization differences up for you.

Also keep your usage of special characters to a minimum. I recommend three at most:

  1. A dimension separator to split up different dimension (mentioned above) like a hyphen "-" or a full stop "."
  2. A replacement for spaces when writing multiple words in one dimension like an underscore "_"
  3. An additional character when two things apply like a plus "+"

Turning Your Strategy Into a Naming Convention

There are some best practices what information you should include in your UTMs and I will share those in a minute.

But to  some extent, the naming of your UTMs is unique to your business. It's dependent on

Your Strategy

What are the key hypotheses that you have in your strategy? In order to validate them, you need to measure them and therefore include them in your UTMs.

Your Customers

Who are they? What are they responding to? Including these variables will tell you what is working and what isn't. Not just on a single ad but across multiple.

Your Product

What are you selling? Not every customer group might respond to the same offer equally. That means the product itself but also the way the product is presented.

Your Sales Process

How does your conversion funnel work? And where are people in the funnel when clicking this ad? The impact on performance of these variables is massive so it is  vital  to include this information  so that this bias can be removed.

Your Channel & Account Structure

And finally to identify your marketing channels and navigate ad accounts efficiently. This one is pretty much a given. But some people like to be pretty broad here while others prefer to be narrow. I always prefer to go broad first and combine things later if necessary.

This might sound simple enough, but these are a bunch of things you want to track. And you need to be extremely conscious about them.

The more you want to track, the more mistakes can happen and the more annoyed your team will become by them. That is why it's crucial to make it as simple as possible for them to implement your guidelines, which is why we built a tool you can use for that.

However, everything you don't track today will cost you time when you need it as you first need to adjust your naming conventions and then gather 2-3 months worth of data before you can start to draw any conclusion.

So don't rush this process!

What To Measure In Each UTM Parameter?

Ok, now that we know what we want to measure, how do we distribute these dimension across each of the five parameters?

Defining your Marketing Channel

Source and Medium are the first two parameters and should work together to identify your marketing channels. Source is often referring to the site or platform the traffic is originating from whereas Medium identifies the type of marketing activity.

For example, source = google, medium = organic would tell you that traffic originated from an Organic Search result in Google's search engine. Like I said before, I prefer to keep marketing channel quite broad to start off with. So here is a list of channels you might want to define as a DTC brand and the source & medium you could give them:

Now with our channels defined via Source & Medium, let's look at the remaining UTMs. While it would be great to have a single logic for all channels, unfortunately this can't be the case. There is no one-size-fits-all.

Why?

Because different channels have different rules and limitations that you need take into consideration or serve a different function in your marketing mix. Some of them might be very similar or even the same while others could be completely different.

So for now, I am just going to show you what each parameter is generally used for and will give you specific examples for individual channels later.

Naming your UTM campaign

Especially the naming of your campaigns differs based on the channel and strategy but here are some of the dimensions that you might want to include:

1. Geography

When targeting the different markets from the same ad account. Technically a target group thing  but you usually want this info on the highest level for navigation and optimization purposes.

2. Funnel Position

The number one driver for performance is how much interaction a user had with you and your product before so you want to be able to analyze that.

3. Budget Type

How are you telling the platform to distribute your budget?

4. Optimization Event

What  is the conversion event you are optimising for? But depending on account size or purchase funnel, you might want to try different options.

5. Campaign Name

That's were the parameter gets its name from. If you run a big campaign across channels, you can tie it together and can give you an immediate understanding of the content of the campaign.

6. Date

The previous parameters can repeat themselves over time, so in order to create unique names, I recommend that you include a date either week or months based so that you can later clearly differentiate.

Naming your UTM term

For most channels your UTM term is best used to define the target group. But as targeting options vary wildly across different channels, you might need to adjust the dimensions for each channel.

Remember what I mentioned before, about you having to decide what you believe to be a variable that has a big impact on performance? This 100% applies here, too. For some people, tracking an age bracket might make sense. For others not at all.


So take the following options for what they are. Options:

1. Audience Type

For Facebook Ads this might be a broad, lookalike or website custom audience. For email marketing it might be your engaged subscribers and on Youtube it could be video viewers.

2. Audience Detail

Here you go into more detail on the previous dimension. If we are talking lookalike, it might be 5% customers. If it's an engaged subscriber, it could be maximum 60 days since the last click.

3. Placement

Might be relevant for some. Where  is your ad actually being shown? Desktop feed, mobile story? For some channels this could be important information to optimize for.

4. Demographics - Age/Gender/Location

Like I mentioned before this might be key for some brands, for others not at all. Are there specific demographic characteristics you are targeting?

5. Persona

Building on the previous point, you might not have hard demographic requirements but maybe you have identified different buyer personas that you are trying to target through some soft criteria.

Naming your UTM content

The UTM content is used to define the ad creative used. Again, there will be some variation between channels, with a channel like Transactional Email having way less dimensions to track than Facebook Paid.

Common dimensions to include here would be:

1. Ad Type

Is it an image, video, carousel etc?

2. Creative Category

What is the creative focus of the creative? UGC material, 3D animations, stop motion?

3. Creative Name

A name that you can use to refer to the creative when talking about it.

4. Offer

What product are you promoting in the creative.

5. Motivator

What is the primary motivator you are using for people to take action? Scarcity, Sale, New Arrivals?

6. Destination Type

What type of page are you linking to? A landing page? A product detail page?

7. Destination Detail

What page exactly are you linking to?

8. Testing Variable

If you are testing different version of the same creative, enter the variable here?

Especially on the content level, you might have dimension that are not applicable for every single creative.
Let's say you want to include video duration as a dimension of your Facebook Ads. That obviously doesn't apply when you use an image ad. Yet, within an account the naming structure should never change.Simply add a placeholder variable for a dimension, when is not applicable. I like to use 0.

What if you are unsure what to track?

Especially when you are just getting started, it might not be 100% obvious what dimensions actually impact performance. So what  should you do then? Easy answer: Test it!

Let's say you are confident about 5 dimensions in your ad level, but unsure about 5 other dimensions. You don't want to include all of them as you want to focus only on what's essential, right?

My suggestion now would be to temporarily add two dimensions that you use flexibly for some time to verify changes on which dimension leads to significant variance in performance. Once you have some conclusive results and you want to add 3 dimensions to your permanent naming, you can just add them to the end.

That way, you didn't waste any time tracking the initial 5 and they are still in the same position so that you easily can use the existing data to run analysis across. Yet at the same time you have verified that all tracked dimension actually impact performance.

Putting it all together

The UTM parameters get added to the end of your URL. Before adding the parameters you need to add a ?

If the URL already contains a ?, you need to add a &

The UTM parameters are then concatenated using a &

So that a final URL could look something like this:

www.getklar.com?utm_source=facebook&utm_medium=paid&utm_campaign=dim1.dim2.dim3&utm_term=dim4.dim5.dim6&utm_content=dim7.dim8.dim9

Obviously writing this out by hand is a pain. There are a bunch tools out there that will add your tracking parameters to a landing page. Our free tool below goes one step further and not only puts your parameter at the end of the URL but also helps you to create the parameters based on your own logic in the first place.

Where Tracking Dreams Come To Die

A word of caution before we go into more detail:

I have seen many well-intended naming projects that ended up failing. And it's always because of one or multiple of the reasons below. Read them carefully so that you can stay clear of them or at least be aware once you are going down the wrong path so that you can  correct your course.

No strategy behind naming:

I mentioned this before but because it is so vital I will mention it again: You really need to think about what you want to track! Every dimension costs time and is a potential source of error.

Everything you don't track will cost you a lot time and resources to add it later. This is not a process that should be done over half an hour but rather should take probably closer to two weeks with multiple sessions.

Consistency in Usage

You start with high ambitions and everybody is naming things perfectly. But already after 2 weeks  people start to slip. Naming things right takes time and the benefits sometimes are not immediately visible. You need to push through that phase! Most of the benefits are mid- to long-term. Show your team the end of this article where I will show what kind of analysis you can run with solid naming.

If they don't see the value in naming things properly after that, you probably don't want them on your team anyway.

Consistency in Terminology

Your naming needs to follow a clear structure, that we already talked about. But you also need to make sure that

  • Use the same terminology - don't call something UGC_Video today and Video_UGC tomorrow. This just makes your data dirty and unmanageable.
  • Spell things the same way - Google Analytics treats terms case sensitive and creates two dimensions if one is called BlackFriday and the other one blackfriday, meaning you always need to export data to clean that up.
  • Always use the same separators - this is key for getting all the benefits later when analysing your data.

The only way to get there is by having a tool, where these rules and terminology can be set.

Like the template shared below.

Use it (or build something similar) or you might as well not even start.

Consistency across platform

A clean naming convention is also important to join data from different sources together.

Want to know how many conversions Google Analytics measured for a specific Facebook campaign? Then the naming needs to match.

The following should be true:

utm_campaign = Campaign Name in Facebook, Google Ads, Email Tool etc

utm_term = Adset Name in Facebook, Ad Group Name in Google Ads, Subscriber List

utm_content = Ad in Facebook and Google or the Email Content in your Email Tool

At Klar, we assume the same consistent naming logic and match data automatically across platforms.So if you are using Klar, this consistent usage is more than strongly advised.


Luckily, these platforms are aware of these best practices and have build auto-tagging functionality to make this easier. That means, usually you just have to name the parameters in the ad account correctly and then your UTMs are automatically named the same.

I will show you how to do it for each account in the examples below.

Best Practices For Each Channel

Earlier on, I already shared how I would identify different marketing channels through  utm_souce and utm_medium.

But like I said, the three other parameters will be slightly different based on each channel, so now I will share some best practices for the campaign, term and content for the most common channels a DTC brand uses.

I will use "." as a separator and "_" to replace spaces.

Facebook Paid

Campaign

The campaign parameter is the main one used to define the structure of the account which in turn depends on the monthly ad spend, but it could look something like this.

Geography.Month.Funnel_Position.Campaign_Name.Budget_Type.

DE.202109.Prospecting.AlwaysOn.CBO.

DE.202111.FullFunnel.BlackFriday.CBO.

Ad Set

Here you define the target audience. If some demographic information is important for you, add it. Otherwise you can keep this quite lean.

Audience_Type.Audience_Detail.

Broad.0.

Interest.Luxury.

LAL.Purchase_5%.

WCA.ATC30

Ad

Creative is the most important variable in Facebook so here you want to go pretty detailed on what you track.

Creative_Name.Version.Format.Ad_Type.Creative_Category.Motivator.Offer.Destination_Type.Destination_Detail.

Summer_Dresses_Fiona.2.9x16.Video.UGC.Scarcity.0.CDP.Maxi_Dresses

Auto-Tagging UTMs

If you name the campaign, ad set and ad in Facebook based on your naming conventions (which you should → see Consistency Across Platforms above), then you can use them automatically for your UTM parameters. For that, you simply have to add a reference in the URL parameters section of each ad.

Assuming you want your source to be facebook and your medium to be paid, then you can add the following to the field.

utm_source=facebook&utm_medium=paid&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}&ad_id={{ad.id}}

That will draw in their names as the parameters which allowing to match Facebook data on its Google Analytics data later.

Influencer

So for Influencer marketing there are a few important things that you want to track .

  • Platform - Instagram vs Youtube vs .... we already included that in the UTM source
  • Category/Niche - e.g. fitness/lifestlye/sustainability
  • Type of Partnership - paid, product vs free
  • Campaign - If the posting is part of a larger campaign
  • Influencer Name - obviously so that you can tie it back to your costs for the partnership

These are the must tracks. There can be many others.

Usually though you have some tool or even an Excel sheet that keeps track of all of them. And to avoid sending influencers a link with 20 dimension to use as a Swipe Up, I would rather keep this pretty lean as Influencer marketing is first and foremost about building relationships and nobody likes to feel like they are being tracked. So only include the following:

Source = Influencer

Medium = Platform

Campaign = Campaign

Term = Influencer Name

With this information you can always match performance data to additional categories that you are keeping track of elsewhere.

Google Ads

Adwords actually contains multiple channels. Depending on how you want to define it, up to 5.

  • Branded Paid Search - ads for people searching your brand name
  • Generic Paid Search - ads for non-brand terms
  • Google Shopping - ads in Google's shopping section (I prefer to include them in Generic Paid Search but if it is a significant channel for you, you can break it down).
  • Display - display ads in the Google Display Network
  • YouTube Paid - Paid Ads on Youtube

Using auto-tagging in Google Ads - a double-edged sword

Like other ad platforms, Google Ads allows you to auto-tag your traffic with UTM parameters based on the names of the campaign, ad group and ad.

The problem is that they don't actually append the UTM information but an ID (the GCLID) which only Google Analytics can map onto the correct UTMs. So other tracking providers, even Shopify, cannot assign the tracking correctly.

They are some ways to work around this, all with their individual drawbacks, so I would still advise you to use auto-tagging. Just be aware of the drawbacks.

In case you haven't activated it yet, in the menu on the left go to Settings → Account Settings → Autotagging Section and click to check the box next to “Tag the URL that people click through from my ad" and save.

If you use it, you cannot set the Source / Medium yourself. It will alway be google / cpc (see my Channel Naming guide above).

But since Google Ads has up to five different channels, we now need to use the campaign name to differentiate between them.

So the first dimension that is used in the campaign name in Google Ads should identify the channel.

  • Branded Paid Search - Search.Brand.
  • Generic Paid Search - Search.Generic.
  • Google Shopping - Search.Shopping.
  • Display - Display.
  • YouTube Paid - Youtube.

See how I am using two dimension for the first three channels and only one for the other. Since they are different channels it is fine if I use a different naming logic. I only need to stay consistent within a channel.

The actual naming of your search campaign is very dependent on your account structure and logic.

Every search marketer has a preference here and there are multiple right ways to do it. Search marketers historically are also the best at naming, plus the options for targeting are limited. So as long you identify the channel in the first dimensions of the campaign you should be good to go.

Youtube Paid is likely going to be very similar to Facebook Paid, so you can use that as a reference.

Email

Like I outlined above, I would split email marketing up into three different channels.

  • Newsletter
  • Email Automation
  • Transactional Email

Let's looks at the parameter naming for all of them

Newsletter

Campaign = Date.Newsletter_Name → 20210730.New_Flavour_Launch

Term = Subscriber_List → Active_90_days

Content = Email_Area.Link_Desc → Body.Images_Dresses

Email Automation

Campaign = Automation_Name → First_Time_Buyer

Term = Sequence_Number.Sequence_Name.Type.Last_UpdateDate → 1.Welcome.Lifecycle.20210727

Content = Email_Area.Link_Desc → Body.Code

Transactional Email

Campaign = Transactional_Name → Order_Confirmation

Term = Sequence_Number.Sequence_Name.Last_UpdateDate → 2.Order_Shipped.20201215

Content = Email_Area.Link_Desc → Header.Home

Auto-Tagging in Klaviyo

Klaviyo also supports auto-tagging of UTM parameters.

Go to Account → Settings → UTM Tracking and decide how you want your UTMs to be tagged. Not all options might be available here but it's a good start.

What other channels would you like to see?

If there are any other channels that you would like to get an example for, please reach out to us or send me a message on LinkedIn.

The DTC Naming Convention Tool

Alright, after I have teased it a couple of times throughout this article, the time has come.

After we went over the theory and a few examples, you should have everything you need to develop your own naming convention.

Remember, don't rush this! Once you are done, you need a tool that enables you to consistently and efficiently build your naming conventions.

We build the Klar DTC Naming Convention Tool to do just that.

After you have developed your logic, you can implement it in this spreadsheet and then share it with your team so that they can use it, too.

Watch this video to understand how you can configure your naming convention into it our tool.

And remember, as naming conventions for campaign, term and content will vary for different channels, you will need multiple versions of this tool - one for each channel/channel group.

Analyzing Your Data Based On Your Naming Conventions

Once you start using a clean naming convention, analysing your data will become much easier. You can immediately see the core components of your campaigns, targeting and ads and you will start to understand what is working and what isn't.

And since you have used auto-tagging, you can easily combine data from Google Analytics with data from ad accounts, like let's say Facebook. This is becoming more and more important with Facebook's tracking accuracy taking a massive hit like we showed earlier on.

However, the biggest impact on your ability to analyze you data will not come immediately, but after 2-3 months.

Why?

Because most of the insights can actually not be found in a single campaign or creative. There are often too many factors that could influence performance and often it is not very clear what is the reason for a particular performance - good or bad.

However, when having a clean and consistent naming structure, you can move away from relying on micro trends (single campaigns/targeting/creatives) to macro trends (consistent across multiple campaigns/targeting/creatives).

The Magic Formula

Now, you could just use filters in order to do an analysis like the one I did with dresses above.

Just filter all creatives that contain "Dress" and compare the result. That works but is very cumbersome. And you need to run through all available options.

Luckily, there is a much better and much more efficient way to do it.

Because you always have the same dimensions in the same place, separated by the same connector, we can break these dimension down again. Putting each dimension in its own column making it much easier to analyze them.

Now, there are two ways of doing this, the one is using the Text to Columns feature, which is built-in into Excel. It's quick and should be used for once-off, ad-hoc analysis.

However, most of your analysis should be done using a constantly updating report in which you only paste newly exported data. And for that the Text to Columns feature is not ideal. However, I found a formula that does the exact same thing, which is great because you can just drag it down when you pasted it new data.

That saved me so much time already already so I started calling it the Magic Formula

In case you want to copy it

=SUBSTITUTE(MID(SUBSTITUTE("." & A1&REPT(" ",6),".",REPT(",",255)),5*255,255),",","")

In the following short video I run through these two options and show you how they work so that you have a reference when you start using them yourself.

How to analyze your UTM parameters

Once you have your data from the different sources matched up and each dimension broken down into its own column, the party can begin.

Simply put a pivot table on that data and start analyzing. In the video below I show you how you can set up the pivot table and what to pay attention for to identify the underlying reasons for variance in performance.

Here are a couple of key points:

  • Never use the average function of the pivot table as I won't give you a weighted average. Always use a Calculated Field instead.
  • Always analyze each funnel position separately as performance and what works varies widely in the different funnel stages.
  • When you think you found something, always drill down to the individual ad to check if it was caused by a single, high-volume outlier or if it's an overall trend.
  • Don't try to force it! There won't be massive insights everywhere. Some things simply don't impact performance as much as others. That's why it is always good advice to work with 2-3 variable dimensions that you can use to test different hypotheses of what can cause variance in performance.

How we use UTMs in Klar

Klar is the BI tool that we have built to give growing DTC brands like yours clarity on what is working and what isn't.

All of the concepts outlined above are deeply integrated into how Klar works. Want some examples?

  1. With our channel builder, you can define your naming convention rules and group data from different sources into your channel definitions.
  2. We assume that your utm_campaign is equal to your ad account campaign, utm_term is equal to your ad account ad set and utm_content is equal to your ad account ad. If that is the case, we match the sessions, costs and conversion from across sources to that dimension.
  3. (Coming soon) We are building functionality, similar to the magic formula, so that you can break down your naming conventions and create distinct dimensions you can analyze your data by.

Klar is built, like this article hopefully has shown, by people that operated growing DTC brands themselves. We only focus on that one niche and want to build the very best data tool for it.

Since you are reading this article, my guess is that you are trying to step up your data game to the next level. Klar is the perfect tool for that!

So if you want to get demo of Klar and/or get access to our closed beta, click here to sign up.

Talk soon 🙏

The Advanced UTM Naming Convention Guide for DTC Brands

Best practices on how the name your utm tracking as an eCommerce brand, including tools, template and tutorials.

Contents
The Advanced UTM Naming Convention Guide for DTC Brands

I got a confession to make. I am pretty obsessed with UTM parameters.

And I think you can judge the quality of DTC marketers by the way they use UTM parameters. Not only that, if done well, you can also deduct the strategy of a company by looking at their UTM parameters. Why?

Because good UTMs contain information about what the brand believes is important. Only if you can measure something, you can optimize it. With increasing privacy concerns and software updates like iOS 14 the amount of conversions that are being tracked in ad accounts is seriously diminished.

And good old UTMs are becoming increasingly important. For some brands Google Analytics, which uses UTMs, assigns more conversions to a channel like Facebook than the ad accounts themselves. That would have been unheard of a few months ago. Plus, the recent changes don't effect UTM tracking accuracy making them a consistent baseline brands can use to assess their performance in these uncertain times.

And finally, clear naming conventions empower you to identify success variables across a longer period of time - more signal, less noise.


Yet, many of the brands we speak to openly admit that

a) they are aware that they have lots of room for improvement in this area
b) they don't really know what exactly they need to do in order fix it

If that made you nod in silent agreement and you own or run a DTC brand than you have come to the right place. In this article, based on my 10 years of experience in growing DTC brands I will

  • show you how to develop a naming strategy for all marketing channels
  • give you a tool that allows you to consistently implement it across channels
  • explain how you can use your improved naming to analyze your marketing performance.

Let's get started.

UTM &  Naming Convention Basics

What are UTMs anyway?

I will make this quick. UTM parameters are information you can add to any URL that will be picked up by Google Analytics and made available in their reports to analyze performance.

There are 5 UTM parameters:

  • Source
  • Medium
  • Campaign
  • Term
  • Content

If you still want to have more basic information, I suggest that you read this intro article. I promise, from here on out, it's going to be 100% value.

Should I use Google Analytics or Shopify

Like Google Analytics, Shopify also captures the UTM parameters from your customers' sessions in order to provide you with some basic analytics. So which ones should you use? Short answer. GA.

Here is why:

1. Difference in Tracking Logic

Shopify is using a last-click logic to match UTMs to conversions unlike GA which uses a last-non-direct click (excl. the GA Attribution Reports).

So if a visitor comes from a Facebook ad, leaves, and comes back through a direct type in, Shopify will tell you that it's a direct conversion whereas GA will say it's a Facebook conversion.

Therefore the share of direct conversion in Shopify will always be higher but since our main goal is to try to understand which marketing campaigns drive conversion that is not ideal.

2. Google Search Ads

Most people use auto-tagging when using Google Ads (like they should - more on why below). However, Google Ads and Google Analytics are tightly integrated so Google Ads is actually not adding UTM parameters to the landing page links but a unique ID called GCLID.

Now, Google Analytics can match data in Google Ads and therefore show you the UTM parameter. Shopify obviously can't do that, making it difficult to clearly differentiate between Paid and Organic Search traffic in Shopify and impossible to drill down to different campaigns.

3. GA's problem: incomplete data

Shopify beeing your shop system naturally captures all orders. GA doesn't due to numerous factors like cookie consent and ad blockers. Now there are ways to work around that like server-side tracking in GA, but assuming you don't have that set up, you probably will miss 10-15% of your conversions in GA.

Yet, I still prefer working with GA. I rather have slightly incomplete data then flawed data as my assumption would be that the tracking loss is somewhat evenly distributed amongst channels and campaigns.

Klar, our BI tool for DTC brands, works around this issue by using UTM information from Google Analytics but falling back to Shopify UTMs when an order is not tracked in Google Analytics. That way you get the best of both worlds.

Removing redirect overwrites

The best naming is worth nothing if it is being overwritten. For Shopify stores, this often happens through payment redirects or product redirects.

I have seen some stores where 25% of the tracking information was overwritten. If you have conversions that are being assigned to the Source / Medium hooks.stripe.com / referral  you need to fix that asap. Go to the admin area in your Google Analytics account and in the Property column, click on Tracking Info and then on Referral Exclusion List to create a new entry where hooks.stripe.com is excluded.

Composition Of Your Naming Conventions

There are only 5 UTMs. But there are more than 5 variables that you need to track. That's why we have naming conventions.

The basic building blocks of any naming convention are Dimensions and Separators with a single parameter containing multiples of each.

Having such a clear structure not only allows you to efficiently navigate your ad accounts, but also later to analyse performance based on the dimensions you have tracked. This gets increasingly important as your ad account grows in size.

When you only have a few ads running and you are the only person working in the account, you might be able to exactly remember what the ad Pink Dress Image was about. However, as your business starts to grow this will change. You have multiple people working in the same account, testing small variations of the same ad and many different ads at the same time.

Yet, I still  recommend it for  even smaller brands to spend some time defining their own naming conventions. Otherwise, the hard earned learnings you got in the early days might get lost at a later point in time.

A note on capitalization and special characters

One of the most annoying things about GA is that if you write facebook (lower case f) one time, and Facebook (with a capital F) the next time, GA will create two entries making it more difficult to analyse your data.

To avoid this use Lists as much as possible (more on that below) and use lower case everywhere as a general rule of thumb.

When you use Klar, our BI tool for DTC brands we clean capitalization differences up for you.

Also keep your usage of special characters to a minimum. I recommend three at most:

  1. A dimension separator to split up different dimension (mentioned above) like a hyphen "-" or a full stop "."
  2. A replacement for spaces when writing multiple words in one dimension like an underscore "_"
  3. An additional character when two things apply like a plus "+"

Turning Your Strategy Into a Naming Convention

There are some best practices what information you should include in your UTMs and I will share those in a minute.

But to  some extent, the naming of your UTMs is unique to your business. It's dependent on

Your Strategy

What are the key hypotheses that you have in your strategy? In order to validate them, you need to measure them and therefore include them in your UTMs.

Your Customers

Who are they? What are they responding to? Including these variables will tell you what is working and what isn't. Not just on a single ad but across multiple.

Your Product

What are you selling? Not every customer group might respond to the same offer equally. That means the product itself but also the way the product is presented.

Your Sales Process

How does your conversion funnel work? And where are people in the funnel when clicking this ad? The impact on performance of these variables is massive so it is  vital  to include this information  so that this bias can be removed.

Your Channel & Account Structure

And finally to identify your marketing channels and navigate ad accounts efficiently. This one is pretty much a given. But some people like to be pretty broad here while others prefer to be narrow. I always prefer to go broad first and combine things later if necessary.

This might sound simple enough, but these are a bunch of things you want to track. And you need to be extremely conscious about them.

The more you want to track, the more mistakes can happen and the more annoyed your team will become by them. That is why it's crucial to make it as simple as possible for them to implement your guidelines, which is why we built a tool you can use for that.

However, everything you don't track today will cost you time when you need it as you first need to adjust your naming conventions and then gather 2-3 months worth of data before you can start to draw any conclusion.

So don't rush this process!

What To Measure In Each UTM Parameter?

Ok, now that we know what we want to measure, how do we distribute these dimension across each of the five parameters?

Defining your Marketing Channel

Source and Medium are the first two parameters and should work together to identify your marketing channels. Source is often referring to the site or platform the traffic is originating from whereas Medium identifies the type of marketing activity.

For example, source = google, medium = organic would tell you that traffic originated from an Organic Search result in Google's search engine. Like I said before, I prefer to keep marketing channel quite broad to start off with. So here is a list of channels you might want to define as a DTC brand and the source & medium you could give them:

Now with our channels defined via Source & Medium, let's look at the remaining UTMs. While it would be great to have a single logic for all channels, unfortunately this can't be the case. There is no one-size-fits-all.

Why?

Because different channels have different rules and limitations that you need take into consideration or serve a different function in your marketing mix. Some of them might be very similar or even the same while others could be completely different.

So for now, I am just going to show you what each parameter is generally used for and will give you specific examples for individual channels later.

Naming your UTM campaign

Especially the naming of your campaigns differs based on the channel and strategy but here are some of the dimensions that you might want to include:

1. Geography

When targeting the different markets from the same ad account. Technically a target group thing  but you usually want this info on the highest level for navigation and optimization purposes.

2. Funnel Position

The number one driver for performance is how much interaction a user had with you and your product before so you want to be able to analyze that.

3. Budget Type

How are you telling the platform to distribute your budget?

4. Optimization Event

What  is the conversion event you are optimising for? But depending on account size or purchase funnel, you might want to try different options.

5. Campaign Name

That's were the parameter gets its name from. If you run a big campaign across channels, you can tie it together and can give you an immediate understanding of the content of the campaign.

6. Date

The previous parameters can repeat themselves over time, so in order to create unique names, I recommend that you include a date either week or months based so that you can later clearly differentiate.

Naming your UTM term

For most channels your UTM term is best used to define the target group. But as targeting options vary wildly across different channels, you might need to adjust the dimensions for each channel.

Remember what I mentioned before, about you having to decide what you believe to be a variable that has a big impact on performance? This 100% applies here, too. For some people, tracking an age bracket might make sense. For others not at all.


So take the following options for what they are. Options:

1. Audience Type

For Facebook Ads this might be a broad, lookalike or website custom audience. For email marketing it might be your engaged subscribers and on Youtube it could be video viewers.

2. Audience Detail

Here you go into more detail on the previous dimension. If we are talking lookalike, it might be 5% customers. If it's an engaged subscriber, it could be maximum 60 days since the last click.

3. Placement

Might be relevant for some. Where  is your ad actually being shown? Desktop feed, mobile story? For some channels this could be important information to optimize for.

4. Demographics - Age/Gender/Location

Like I mentioned before this might be key for some brands, for others not at all. Are there specific demographic characteristics you are targeting?

5. Persona

Building on the previous point, you might not have hard demographic requirements but maybe you have identified different buyer personas that you are trying to target through some soft criteria.

Naming your UTM content

The UTM content is used to define the ad creative used. Again, there will be some variation between channels, with a channel like Transactional Email having way less dimensions to track than Facebook Paid.

Common dimensions to include here would be:

1. Ad Type

Is it an image, video, carousel etc?

2. Creative Category

What is the creative focus of the creative? UGC material, 3D animations, stop motion?

3. Creative Name

A name that you can use to refer to the creative when talking about it.

4. Offer

What product are you promoting in the creative.

5. Motivator

What is the primary motivator you are using for people to take action? Scarcity, Sale, New Arrivals?

6. Destination Type

What type of page are you linking to? A landing page? A product detail page?

7. Destination Detail

What page exactly are you linking to?

8. Testing Variable

If you are testing different version of the same creative, enter the variable here?

Especially on the content level, you might have dimension that are not applicable for every single creative.
Let's say you want to include video duration as a dimension of your Facebook Ads. That obviously doesn't apply when you use an image ad. Yet, within an account the naming structure should never change.Simply add a placeholder variable for a dimension, when is not applicable. I like to use 0.

What if you are unsure what to track?

Especially when you are just getting started, it might not be 100% obvious what dimensions actually impact performance. So what  should you do then? Easy answer: Test it!

Let's say you are confident about 5 dimensions in your ad level, but unsure about 5 other dimensions. You don't want to include all of them as you want to focus only on what's essential, right?

My suggestion now would be to temporarily add two dimensions that you use flexibly for some time to verify changes on which dimension leads to significant variance in performance. Once you have some conclusive results and you want to add 3 dimensions to your permanent naming, you can just add them to the end.

That way, you didn't waste any time tracking the initial 5 and they are still in the same position so that you easily can use the existing data to run analysis across. Yet at the same time you have verified that all tracked dimension actually impact performance.

Putting it all together

The UTM parameters get added to the end of your URL. Before adding the parameters you need to add a ?

If the URL already contains a ?, you need to add a &

The UTM parameters are then concatenated using a &

So that a final URL could look something like this:

www.getklar.com?utm_source=facebook&utm_medium=paid&utm_campaign=dim1.dim2.dim3&utm_term=dim4.dim5.dim6&utm_content=dim7.dim8.dim9

Obviously writing this out by hand is a pain. There are a bunch tools out there that will add your tracking parameters to a landing page. Our free tool below goes one step further and not only puts your parameter at the end of the URL but also helps you to create the parameters based on your own logic in the first place.

Where Tracking Dreams Come To Die

A word of caution before we go into more detail:

I have seen many well-intended naming projects that ended up failing. And it's always because of one or multiple of the reasons below. Read them carefully so that you can stay clear of them or at least be aware once you are going down the wrong path so that you can  correct your course.

No strategy behind naming:

I mentioned this before but because it is so vital I will mention it again: You really need to think about what you want to track! Every dimension costs time and is a potential source of error.

Everything you don't track will cost you a lot time and resources to add it later. This is not a process that should be done over half an hour but rather should take probably closer to two weeks with multiple sessions.

Consistency in Usage

You start with high ambitions and everybody is naming things perfectly. But already after 2 weeks  people start to slip. Naming things right takes time and the benefits sometimes are not immediately visible. You need to push through that phase! Most of the benefits are mid- to long-term. Show your team the end of this article where I will show what kind of analysis you can run with solid naming.

If they don't see the value in naming things properly after that, you probably don't want them on your team anyway.

Consistency in Terminology

Your naming needs to follow a clear structure, that we already talked about. But you also need to make sure that

  • Use the same terminology - don't call something UGC_Video today and Video_UGC tomorrow. This just makes your data dirty and unmanageable.
  • Spell things the same way - Google Analytics treats terms case sensitive and creates two dimensions if one is called BlackFriday and the other one blackfriday, meaning you always need to export data to clean that up.
  • Always use the same separators - this is key for getting all the benefits later when analysing your data.

The only way to get there is by having a tool, where these rules and terminology can be set.

Like the template shared below.

Use it (or build something similar) or you might as well not even start.

Consistency across platform

A clean naming convention is also important to join data from different sources together.

Want to know how many conversions Google Analytics measured for a specific Facebook campaign? Then the naming needs to match.

The following should be true:

utm_campaign = Campaign Name in Facebook, Google Ads, Email Tool etc

utm_term = Adset Name in Facebook, Ad Group Name in Google Ads, Subscriber List

utm_content = Ad in Facebook and Google or the Email Content in your Email Tool

At Klar, we assume the same consistent naming logic and match data automatically across platforms.So if you are using Klar, this consistent usage is more than strongly advised.


Luckily, these platforms are aware of these best practices and have build auto-tagging functionality to make this easier. That means, usually you just have to name the parameters in the ad account correctly and then your UTMs are automatically named the same.

I will show you how to do it for each account in the examples below.

Best Practices For Each Channel

Earlier on, I already shared how I would identify different marketing channels through  utm_souce and utm_medium.

But like I said, the three other parameters will be slightly different based on each channel, so now I will share some best practices for the campaign, term and content for the most common channels a DTC brand uses.

I will use "." as a separator and "_" to replace spaces.

Facebook Paid

Campaign

The campaign parameter is the main one used to define the structure of the account which in turn depends on the monthly ad spend, but it could look something like this.

Geography.Month.Funnel_Position.Campaign_Name.Budget_Type.

DE.202109.Prospecting.AlwaysOn.CBO.

DE.202111.FullFunnel.BlackFriday.CBO.

Ad Set

Here you define the target audience. If some demographic information is important for you, add it. Otherwise you can keep this quite lean.

Audience_Type.Audience_Detail.

Broad.0.

Interest.Luxury.

LAL.Purchase_5%.

WCA.ATC30

Ad

Creative is the most important variable in Facebook so here you want to go pretty detailed on what you track.

Creative_Name.Version.Format.Ad_Type.Creative_Category.Motivator.Offer.Destination_Type.Destination_Detail.

Summer_Dresses_Fiona.2.9x16.Video.UGC.Scarcity.0.CDP.Maxi_Dresses

Auto-Tagging UTMs

If you name the campaign, ad set and ad in Facebook based on your naming conventions (which you should → see Consistency Across Platforms above), then you can use them automatically for your UTM parameters. For that, you simply have to add a reference in the URL parameters section of each ad.

Assuming you want your source to be facebook and your medium to be paid, then you can add the following to the field.

utm_source=facebook&utm_medium=paid&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}&ad_id={{ad.id}}

That will draw in their names as the parameters which allowing to match Facebook data on its Google Analytics data later.

Influencer

So for Influencer marketing there are a few important things that you want to track .

  • Platform - Instagram vs Youtube vs .... we already included that in the UTM source
  • Category/Niche - e.g. fitness/lifestlye/sustainability
  • Type of Partnership - paid, product vs free
  • Campaign - If the posting is part of a larger campaign
  • Influencer Name - obviously so that you can tie it back to your costs for the partnership

These are the must tracks. There can be many others.

Usually though you have some tool or even an Excel sheet that keeps track of all of them. And to avoid sending influencers a link with 20 dimension to use as a Swipe Up, I would rather keep this pretty lean as Influencer marketing is first and foremost about building relationships and nobody likes to feel like they are being tracked. So only include the following:

Source = Influencer

Medium = Platform

Campaign = Campaign

Term = Influencer Name

With this information you can always match performance data to additional categories that you are keeping track of elsewhere.

Google Ads

Adwords actually contains multiple channels. Depending on how you want to define it, up to 5.

  • Branded Paid Search - ads for people searching your brand name
  • Generic Paid Search - ads for non-brand terms
  • Google Shopping - ads in Google's shopping section (I prefer to include them in Generic Paid Search but if it is a significant channel for you, you can break it down).
  • Display - display ads in the Google Display Network
  • YouTube Paid - Paid Ads on Youtube

Using auto-tagging in Google Ads - a double-edged sword

Like other ad platforms, Google Ads allows you to auto-tag your traffic with UTM parameters based on the names of the campaign, ad group and ad.

The problem is that they don't actually append the UTM information but an ID (the GCLID) which only Google Analytics can map onto the correct UTMs. So other tracking providers, even Shopify, cannot assign the tracking correctly.

They are some ways to work around this, all with their individual drawbacks, so I would still advise you to use auto-tagging. Just be aware of the drawbacks.

In case you haven't activated it yet, in the menu on the left go to Settings → Account Settings → Autotagging Section and click to check the box next to “Tag the URL that people click through from my ad" and save.

If you use it, you cannot set the Source / Medium yourself. It will alway be google / cpc (see my Channel Naming guide above).

But since Google Ads has up to five different channels, we now need to use the campaign name to differentiate between them.

So the first dimension that is used in the campaign name in Google Ads should identify the channel.

  • Branded Paid Search - Search.Brand.
  • Generic Paid Search - Search.Generic.
  • Google Shopping - Search.Shopping.
  • Display - Display.
  • YouTube Paid - Youtube.

See how I am using two dimension for the first three channels and only one for the other. Since they are different channels it is fine if I use a different naming logic. I only need to stay consistent within a channel.

The actual naming of your search campaign is very dependent on your account structure and logic.

Every search marketer has a preference here and there are multiple right ways to do it. Search marketers historically are also the best at naming, plus the options for targeting are limited. So as long you identify the channel in the first dimensions of the campaign you should be good to go.

Youtube Paid is likely going to be very similar to Facebook Paid, so you can use that as a reference.

Email

Like I outlined above, I would split email marketing up into three different channels.

  • Newsletter
  • Email Automation
  • Transactional Email

Let's looks at the parameter naming for all of them

Newsletter

Campaign = Date.Newsletter_Name → 20210730.New_Flavour_Launch

Term = Subscriber_List → Active_90_days

Content = Email_Area.Link_Desc → Body.Images_Dresses

Email Automation

Campaign = Automation_Name → First_Time_Buyer

Term = Sequence_Number.Sequence_Name.Type.Last_UpdateDate → 1.Welcome.Lifecycle.20210727

Content = Email_Area.Link_Desc → Body.Code

Transactional Email

Campaign = Transactional_Name → Order_Confirmation

Term = Sequence_Number.Sequence_Name.Last_UpdateDate → 2.Order_Shipped.20201215

Content = Email_Area.Link_Desc → Header.Home

Auto-Tagging in Klaviyo

Klaviyo also supports auto-tagging of UTM parameters.

Go to Account → Settings → UTM Tracking and decide how you want your UTMs to be tagged. Not all options might be available here but it's a good start.

What other channels would you like to see?

If there are any other channels that you would like to get an example for, please reach out to us or send me a message on LinkedIn.

The DTC Naming Convention Tool

Alright, after I have teased it a couple of times throughout this article, the time has come.

After we went over the theory and a few examples, you should have everything you need to develop your own naming convention.

Remember, don't rush this! Once you are done, you need a tool that enables you to consistently and efficiently build your naming conventions.

We build the Klar DTC Naming Convention Tool to do just that.

After you have developed your logic, you can implement it in this spreadsheet and then share it with your team so that they can use it, too.

Watch this video to understand how you can configure your naming convention into it our tool.

And remember, as naming conventions for campaign, term and content will vary for different channels, you will need multiple versions of this tool - one for each channel/channel group.

Analyzing Your Data Based On Your Naming Conventions

Once you start using a clean naming convention, analysing your data will become much easier. You can immediately see the core components of your campaigns, targeting and ads and you will start to understand what is working and what isn't.

And since you have used auto-tagging, you can easily combine data from Google Analytics with data from ad accounts, like let's say Facebook. This is becoming more and more important with Facebook's tracking accuracy taking a massive hit like we showed earlier on.

However, the biggest impact on your ability to analyze you data will not come immediately, but after 2-3 months.

Why?

Because most of the insights can actually not be found in a single campaign or creative. There are often too many factors that could influence performance and often it is not very clear what is the reason for a particular performance - good or bad.

However, when having a clean and consistent naming structure, you can move away from relying on micro trends (single campaigns/targeting/creatives) to macro trends (consistent across multiple campaigns/targeting/creatives).

The Magic Formula

Now, you could just use filters in order to do an analysis like the one I did with dresses above.

Just filter all creatives that contain "Dress" and compare the result. That works but is very cumbersome. And you need to run through all available options.

Luckily, there is a much better and much more efficient way to do it.

Because you always have the same dimensions in the same place, separated by the same connector, we can break these dimension down again. Putting each dimension in its own column making it much easier to analyze them.

Now, there are two ways of doing this, the one is using the Text to Columns feature, which is built-in into Excel. It's quick and should be used for once-off, ad-hoc analysis.

However, most of your analysis should be done using a constantly updating report in which you only paste newly exported data. And for that the Text to Columns feature is not ideal. However, I found a formula that does the exact same thing, which is great because you can just drag it down when you pasted it new data.

That saved me so much time already already so I started calling it the Magic Formula

In case you want to copy it

=SUBSTITUTE(MID(SUBSTITUTE("." & A1&REPT(" ",6),".",REPT(",",255)),5*255,255),",","")

In the following short video I run through these two options and show you how they work so that you have a reference when you start using them yourself.

How to analyze your UTM parameters

Once you have your data from the different sources matched up and each dimension broken down into its own column, the party can begin.

Simply put a pivot table on that data and start analyzing. In the video below I show you how you can set up the pivot table and what to pay attention for to identify the underlying reasons for variance in performance.

Here are a couple of key points:

  • Never use the average function of the pivot table as I won't give you a weighted average. Always use a Calculated Field instead.
  • Always analyze each funnel position separately as performance and what works varies widely in the different funnel stages.
  • When you think you found something, always drill down to the individual ad to check if it was caused by a single, high-volume outlier or if it's an overall trend.
  • Don't try to force it! There won't be massive insights everywhere. Some things simply don't impact performance as much as others. That's why it is always good advice to work with 2-3 variable dimensions that you can use to test different hypotheses of what can cause variance in performance.

How we use UTMs in Klar

Klar is the BI tool that we have built to give growing DTC brands like yours clarity on what is working and what isn't.

All of the concepts outlined above are deeply integrated into how Klar works. Want some examples?

  1. With our channel builder, you can define your naming convention rules and group data from different sources into your channel definitions.
  2. We assume that your utm_campaign is equal to your ad account campaign, utm_term is equal to your ad account ad set and utm_content is equal to your ad account ad. If that is the case, we match the sessions, costs and conversion from across sources to that dimension.
  3. (Coming soon) We are building functionality, similar to the magic formula, so that you can break down your naming conventions and create distinct dimensions you can analyze your data by.

Klar is built, like this article hopefully has shown, by people that operated growing DTC brands themselves. We only focus on that one niche and want to build the very best data tool for it.

Since you are reading this article, my guess is that you are trying to step up your data game to the next level. Klar is the perfect tool for that!

So if you want to get demo of Klar and/or get access to our closed beta, click here to sign up.

Talk soon 🙏